{"version":3,"sources":["webpack://PowerSchoolDesignSystemToolkitModule/webpack/bootstrap","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/tslib/tslib.es6.js","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Subscriber.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/toSubscriber.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Observable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/InnerSubscriber.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeToResult.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/OuterSubscriber.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Subscription.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/errorObject.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-i18n.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-utils.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Subject.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-logger.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/empty.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/async.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isArray.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/animationFrame.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/bindCallback.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/bindNodeCallback.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/forkJoin.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromEvent.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromEventPattern.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/generate.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/iif.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/interval.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/never.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/pairs.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/range.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/using.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/map.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/tryCatch.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/audit.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/auditTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/buffer.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/bufferCount.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/bufferTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/bufferToggle.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/bufferWhen.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/catchError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/combineAll.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/combineLatest.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/concat.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/concatMap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/concatMapTo.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/count.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/debounce.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/debounceTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isDate.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/delay.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/delayWhen.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/dematerialize.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/distinct.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/tap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/take.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/elementAt.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/endWith.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/every.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/exhaust.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/exhaustMap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/expand.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/finalize.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/find.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/findIndex.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/first.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/ignoreElements.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/isEmpty.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/takeLast.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/last.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/mapTo.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/materialize.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/scan.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/reduce.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/max.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/merge.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/mergeMapTo.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/mergeScan.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/min.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/multicast.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/pairwise.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/not.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/partition.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/pluck.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/publish.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/publishBehavior.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/publishLast.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/publishReplay.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/race.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/repeat.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/repeatWhen.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/retry.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/retryWhen.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/sample.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/sampleTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/sequenceEqual.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/share.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/shareReplay.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/single.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/skip.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/skipLast.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/skipUntil.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/skipWhile.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/startWith.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/subscribeOn.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/switchMap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/switchAll.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/switchMapTo.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/takeUntil.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/takeWhile.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/throttle.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/throttleTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/timeInterval.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/timeoutWith.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/timeout.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/timestamp.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/toArray.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/window.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/windowCount.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/windowTime.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/windowToggle.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/windowWhen.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/withLatestFrom.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/zip.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/zipAll.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/operators/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isInteropObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isIterable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromPromise.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromIterable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/from.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/fromArray.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/config.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/noop.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/identity.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/symbol/iterator.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-abstract-input-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-validation-rules-engine.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/symbol/observable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/concat.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/i18n-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/mergeMap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isFunction.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/common-utils/index.js","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/EmptyError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/AsyncSubject.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/Action.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isNumeric.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/grid-widget-data-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/hostReportError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-local-storage.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-http-utils.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/rest-argument.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/grid-widget-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/grid-widget-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/pipe.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/service-instances.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/ordered-map.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/refCount.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/ReplaySubject.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/of.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/throwError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/combineLatest.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/mergeAll.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/defer.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/zip.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/scalar.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/Immediate.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AsapAction.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/asap.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Observer.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/single-popover-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/Scheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/date-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/number-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/string-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/notification-item-group.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/groupBy.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/activity-feed-notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/simple-parse-resolver.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-validation.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/get-stream-feed-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/select-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/ConnectableObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/BehaviorSubject.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/observeOn.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/TimeoutError.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/operators/concatAll.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/merge.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/race.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/observable/timer.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/QueueAction.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/scheduler/queue.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isObject.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/SubjectSubscription.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeToArray.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeTo.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeToObservable.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isArrayLike.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/isPromise.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeToPromise.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/rxjs/src/internal/util/subscribeToIterable.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-xss.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/asgmt-submission-notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/assignment-template-notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/communication-notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/chat-thread-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/poppable-element-factory.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/version-and-paths.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-properties/text-length.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/get-stream-cache-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/multi-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/score-type/score-if.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/simple-time.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/email-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/grade-scale-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/validation-engine.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/tree-sort.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/reporting-term.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/reporting-term-wrapper.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/interfaces/download-file-params.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/assignment-notification-item-group.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/asgmt-return-notification-item.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-natural-sort.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/help-link-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/popover-accessibility-controller-factory.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-dialog.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/immersive-reader-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/cancel-immersive-reader-request.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-parsed-html-content.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-sections-engine.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-properties/background.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-properties/font-weight.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-properties/font-size.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-properties/table-ancestor.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/node-grouping-mode.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/wizard-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/wizard.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/message-history.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/multi-select.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/grid-widget/grid-widget-logger.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/filter-container.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/data-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/inverse-multi-select-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/multi-select-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/multi-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/multi-field-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/text-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/date-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/pill-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/number-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/powerschool-design-system-toolkit.ts","webpack://PowerSchoolDesignSystemToolkitModule/(webpack)/buildin/global.js","webpack://PowerSchoolDesignSystemToolkitModule/../src/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/calculator/total-points.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/score-type/valid-score.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/score-type/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/score-calculator/score-type/points-score.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/section-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/number-validation-rules.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/date-validation-rules.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/text-validation-rules.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/time-validation-rules.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/reporting-term-sort.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/xss-options.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/feature-access-checker.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/score-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/utils/smart-text-util.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/CONSTANTS.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/models/chat-thread-type-enum.ts","webpack://PowerSchoolDesignSystemToolkitModule/../src/validation-engine/index.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/controllers/notification-indicator-controller.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/communication-notification-item-group.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/multi-count-notification-item-group.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-accessibility.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/property-observer.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/polymer-utils.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-date-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-date-widget-dialog.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-app-nav.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-class-block.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-class-picker.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-dynamic-select.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-select-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-text-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-file-picker-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-number-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-numbered-slider.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-progress-bar-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-reporting-term-selector.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-search.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-icon.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-help-menu.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/popover-accessibility-controller.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/popper-configuration.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-global-create-menu.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-loader.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-circular-progress.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-radio-button-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-rich-text-editor.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/rich-text-editor-configurations.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-img.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-overlay-dropdown.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-announce.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-notification-indicator.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-activity-feed-notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-rich-text-display.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-time-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-communication-notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-assignment-template-notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-assignment-submission-notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-assignment-return-notification.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-chat-quick-message.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-notification-badge.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-user-avatar.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/controllers/image-controller.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-tooltip.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-error-page.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-copyright-clause.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-app-switcher.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-textarea-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-checkbox-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-user-menu.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-immersive-reader.ts","webpack://PowerSchoolDesignSystemToolkitModule/./node_modules/@microsoft/immersive-reader-sdk/lib/immersive-reader-sdk.js","webpack://PowerSchoolDesignSystemToolkitModule/(webpack)/buildin/module.js","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-logout.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-section.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/all.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/background-change.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/bold.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/font-size-increase.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/table-change.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/html-content-sections-engine/html-content-heuristics/too-many-characters.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-banner.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-element-renderer.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-date-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-grid-widget-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/grid-widget-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/message-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/message.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-grid-widget-pagination-control.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-multi-field-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-multi-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-number-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-pill-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-grid-widget-sort-fields.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/components/grid-widget/pds-gw-text-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-multi-select-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-pop-over.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-messages-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-format-time.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-wizard-steps.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/pds-format-number.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/activity-feed-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/aggregated-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/asgmt-submission-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/asgmt-return-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/assignment-template-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/services/communication-notification-service.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/grid-widget.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/filter-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/inverse-multi-select-filter.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/paginate-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/reset-pagination-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/sort-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/grid-widget/linked-list.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/data-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/complete-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/utils/file-creator.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/counter-task.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/text-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/date-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/pill-select-field.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/sort-configuration.ts","webpack://PowerSchoolDesignSystemToolkitModule/pds-library/src/models/grid-widget/number-field.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__createBinding","o","m","k","k2","undefined","__exportStar","exports","__values","__read","ar","error","__spread","concat","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","settle","fulfill","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","module","define","window","l","enumerable","toStringTag","bind","renderButtons","close","launchAsync","addEventListener","af","am","as","az","be","bg","bn","bs","ca","cs","da","de","el","en","es","et","eu","fa","fi","fil","fr","gd","gl","gu","ha","he","hi","hr","hu","hy","id","ig","is","it","ja","ka","kk","km","kn","ko","kok","ky","lb","lo","lt","lv","mi","mk","ml","mn","mr","ms","mt","ne","nl","no","nso","or","pa","pl","prs","pt","quc","quz","ro","ru","rw","sd","si","sk","sl","sq","sv","sw","ta","te","th","ti","tk","tn","tr","tt","uk","ur","uz","vi","wo","xh","yo","zh","zu","u","document","createElement","src","getAttribute","style","height","width","verticalAlign","marginTop","alt","appendChild","marginLeft","textContent","toLowerCase","substring","lastIndexOf","innerHTML","head","slice","getElementsByClassName","elements","setAttribute","chunks","Date","now","uiZIndex","timeout","useWebview","allowFullscreen","hideExitButton","clearTimeout","contains","removeChild","parentNode","data","removeEventListener","onExit","cogSvcsAccessToken","cogSvcsSubdomain","request","launchToPostMessageSentDurationInMs","contentWindow","postMessage","JSON","stringify","messageType","messageValue","code","ErrorCode","TokenExpired","message","Throttled","setTimeout","Timeout","cssText","h","customDomain","uiLang","BadArgument"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA;;;;;;;;;;;;;;;AAcA;AAEA,IAAIA,cAAa,GAAG,uBAASC,CAAT,EAAYC,CAAZ,EAAe;AAC/BF,gBAAa,GAAGG,MAAM,CAACC,cAAP,IACX;AAAEC,aAAS,EAAE;AAAb,eAA6BC,KAA7B,IAAsC,UAAUL,CAAV,EAAaC,CAAb,EAAgB;AAAED,KAAC,CAACI,SAAF,GAAcH,CAAd;AAAkB,GAD/D,IAEZ,UAAUD,CAAV,EAAaC,CAAb,EAAgB;AAAE,SAAK,IAAIK,CAAT,IAAcL,CAAd;AAAiB,UAAIA,CAAC,CAACM,cAAF,CAAiBD,CAAjB,CAAJ,EAAyBN,CAAC,CAACM,CAAD,CAAD,GAAOL,CAAC,CAACK,CAAD,CAAR;AAA1C;AAAwD,GAF9E;;AAGA,SAAOP,cAAa,CAACC,CAAD,EAAIC,CAAJ,CAApB;AACH,CALD;;AAOO,SAASO,SAAT,CAAmBR,CAAnB,EAAsBC,CAAtB,EAAyB;AAC5BF,gBAAa,CAACC,CAAD,EAAIC,CAAJ,CAAb;;AACA,WAASQ,EAAT,GAAc;AAAE,SAAKC,WAAL,GAAmBV,CAAnB;AAAuB;;AACvCA,GAAC,CAACW,SAAF,GAAcV,CAAC,KAAK,IAAN,GAAaC,MAAM,CAACU,MAAP,CAAcX,CAAd,CAAb,IAAiCQ,EAAE,CAACE,SAAH,GAAeV,CAAC,CAACU,SAAjB,EAA4B,IAAIF,EAAJ,EAA7D,CAAd;AACH;;AAEM,IAAII,OAAQ,GAAG,oBAAW;AAC7BA,SAAQ,GAAGX,MAAM,CAACY,MAAP,IAAiB,SAASD,QAAT,CAAkBE,CAAlB,EAAqB;AAC7C,SAAK,IAAIC,CAAJ,EAAOC,CAAC,GAAG,CAAX,EAAcC,CAAC,GAAGC,SAAS,CAACC,MAAjC,EAAyCH,CAAC,GAAGC,CAA7C,EAAgDD,CAAC,EAAjD,EAAqD;AACjDD,OAAC,GAAGG,SAAS,CAACF,CAAD,CAAb;;AACA,WAAK,IAAIX,CAAT,IAAcU,CAAd;AAAiB,YAAId,MAAM,CAACS,SAAP,CAAiBJ,cAAjB,CAAgCc,IAAhC,CAAqCL,CAArC,EAAwCV,CAAxC,CAAJ,EAAgDS,CAAC,CAACT,CAAD,CAAD,GAAOU,CAAC,CAACV,CAAD,CAAR;AAAjE;AACH;;AACD,WAAOS,CAAP;AACH,GAND;;AAOA,SAAOF,OAAQ,CAACS,KAAT,CAAe,IAAf,EAAqBH,SAArB,CAAP;AACH,CATM;;;AAWA,SAASI,MAAT,CAAgBP,CAAhB,EAAmBQ,CAAnB,EAAsB;AACzB,MAAIT,CAAC,GAAG,EAAR;;AACA,OAAK,IAAIT,CAAT,IAAcU,CAAd;AAAiB,QAAId,MAAM,CAACS,SAAP,CAAiBJ,cAAjB,CAAgCc,IAAhC,CAAqCL,CAArC,EAAwCV,CAAxC,KAA8CkB,CAAC,CAACC,OAAF,CAAUnB,CAAV,IAAe,CAAjE,EACbS,CAAC,CAACT,CAAD,CAAD,GAAOU,CAAC,CAACV,CAAD,CAAR;AADJ;;AAEA,MAAIU,CAAC,IAAI,IAAL,IAAa,OAAOd,MAAM,CAACwB,qBAAd,KAAwC,UAAzD,EACI,KAAK,IAAIT,CAAC,GAAG,CAAR,EAAWX,CAAC,GAAGJ,MAAM,CAACwB,qBAAP,CAA6BV,CAA7B,CAApB,EAAqDC,CAAC,GAAGX,CAAC,CAACc,MAA3D,EAAmEH,CAAC,EAApE,EAAwE;AACpE,QAAIO,CAAC,CAACC,OAAF,CAAUnB,CAAC,CAACW,CAAD,CAAX,IAAkB,CAAlB,IAAuBf,MAAM,CAACS,SAAP,CAAiBgB,oBAAjB,CAAsCN,IAAtC,CAA2CL,CAA3C,EAA8CV,CAAC,CAACW,CAAD,CAA/C,CAA3B,EACIF,CAAC,CAACT,CAAC,CAACW,CAAD,CAAF,CAAD,GAAUD,CAAC,CAACV,CAAC,CAACW,CAAD,CAAF,CAAX;AACP;AACL,SAAOF,CAAP;AACH;AAEM,SAASa,UAAT,CAAoBC,UAApB,EAAgCC,MAAhC,EAAwCC,GAAxC,EAA6CC,IAA7C,EAAmD;AACtD,MAAIC,CAAC,GAAGd,SAAS,CAACC,MAAlB;AAAA,MAA0Bc,CAAC,GAAGD,CAAC,GAAG,CAAJ,GAAQH,MAAR,GAAiBE,IAAI,KAAK,IAAT,GAAgBA,IAAI,GAAG9B,MAAM,CAACiC,wBAAP,CAAgCL,MAAhC,EAAwCC,GAAxC,CAAvB,GAAsEC,IAArH;AAAA,MAA2HhC,CAA3H;AACA,MAAI,QAAOoC,OAAP,yCAAOA,OAAP,OAAmB,QAAnB,IAA+B,OAAOA,OAAO,CAACC,QAAf,KAA4B,UAA/D,EAA2EH,CAAC,GAAGE,OAAO,CAACC,QAAR,CAAiBR,UAAjB,EAA6BC,MAA7B,EAAqCC,GAArC,EAA0CC,IAA1C,CAAJ,CAA3E,KACK,KAAK,IAAIf,CAAC,GAAGY,UAAU,CAACT,MAAX,GAAoB,CAAjC,EAAoCH,CAAC,IAAI,CAAzC,EAA4CA,CAAC,EAA7C;AAAiD,QAAIjB,CAAC,GAAG6B,UAAU,CAACZ,CAAD,CAAlB,EAAuBiB,CAAC,GAAG,CAACD,CAAC,GAAG,CAAJ,GAAQjC,CAAC,CAACkC,CAAD,CAAT,GAAeD,CAAC,GAAG,CAAJ,GAAQjC,CAAC,CAAC8B,MAAD,EAASC,GAAT,EAAcG,CAAd,CAAT,GAA4BlC,CAAC,CAAC8B,MAAD,EAASC,GAAT,CAA7C,KAA+DG,CAAnE;AAAxE;AACL,SAAOD,CAAC,GAAG,CAAJ,IAASC,CAAT,IAAchC,MAAM,CAACoC,cAAP,CAAsBR,MAAtB,EAA8BC,GAA9B,EAAmCG,CAAnC,CAAd,EAAqDA,CAA5D;AACH;AAEM,SAASK,OAAT,CAAiBC,UAAjB,EAA6BC,SAA7B,EAAwC;AAC3C,SAAO,UAAUX,MAAV,EAAkBC,GAAlB,EAAuB;AAAEU,aAAS,CAACX,MAAD,EAASC,GAAT,EAAcS,UAAd,CAAT;AAAqC,GAArE;AACH;AAEM,SAASE,UAAT,CAAoBC,WAApB,EAAiCC,aAAjC,EAAgD;AACnD,MAAI,QAAOR,OAAP,yCAAOA,OAAP,OAAmB,QAAnB,IAA+B,OAAOA,OAAO,CAACS,QAAf,KAA4B,UAA/D,EAA2E,OAAOT,OAAO,CAACS,QAAR,CAAiBF,WAAjB,EAA8BC,aAA9B,CAAP;AAC9E;AAEM,SAASE,SAAT,CAAmBC,OAAnB,EAA4BC,UAA5B,EAAwCC,CAAxC,EAA2CC,SAA3C,EAAsD;AACzD,WAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,WAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,aAAO,CAACD,KAAD,CAAP;AAAiB,KAA5C,CAApC;AAAoF;;AAC5G,SAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,aAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,UAAI;AAAEK,YAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;AAA8B,OAApC,CAAqC,OAAO5B,CAAP,EAAU;AAAE+B,cAAM,CAAC/B,CAAD,CAAN;AAAY;AAAE;;AAC3F,aAASmC,QAAT,CAAkBP,KAAlB,EAAyB;AAAE,UAAI;AAAEK,YAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;AAAkC,OAAxC,CAAyC,OAAO5B,CAAP,EAAU;AAAE+B,cAAM,CAAC/B,CAAD,CAAN;AAAY;AAAE;;AAC9F,aAASiC,IAAT,CAAcG,MAAd,EAAsB;AAAEA,YAAM,CAACC,IAAP,GAAcR,OAAO,CAACO,MAAM,CAACR,KAAR,CAArB,GAAsCD,KAAK,CAACS,MAAM,CAACR,KAAR,CAAL,CAAoBU,IAApB,CAAyBN,SAAzB,EAAoCG,QAApC,CAAtC;AAAsF;;AAC9GF,QAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAAC5B,KAAV,CAAgByB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;AACH,GALM,CAAP;AAMH;AAEM,SAASK,WAAT,CAAqBhB,OAArB,EAA8BiB,IAA9B,EAAoC;AACvC,MAAIC,CAAC,GAAG;AAAEC,SAAK,EAAE,CAAT;AAAYC,QAAI,EAAE,gBAAW;AAAE,UAAIpD,CAAC,CAAC,CAAD,CAAD,GAAO,CAAX,EAAc,MAAMA,CAAC,CAAC,CAAD,CAAP;AAAY,aAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,KAAvE;AAAyEqD,QAAI,EAAE,EAA/E;AAAmFC,OAAG,EAAE;AAAxF,GAAR;AAAA,MAAsGC,CAAtG;AAAA,MAAyGC,CAAzG;AAAA,MAA4GxD,CAA5G;AAAA,MAA+GyD,CAA/G;AACA,SAAOA,CAAC,GAAG;AAAEd,QAAI,EAAEe,IAAI,CAAC,CAAD,CAAZ;AAAiB,aAASA,IAAI,CAAC,CAAD,CAA9B;AAAmC,cAAUA,IAAI,CAAC,CAAD;AAAjD,GAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,CAAC,CAACE,MAAM,CAACC,QAAR,CAAD,GAAqB,YAAW;AAAE,WAAO,IAAP;AAAc,GAAjF,CAA5D,EAAgJH,CAAvJ;;AACA,WAASC,IAAT,CAAcvD,CAAd,EAAiB;AAAE,WAAO,UAAU0D,CAAV,EAAa;AAAE,aAAOnB,IAAI,CAAC,CAACvC,CAAD,EAAI0D,CAAJ,CAAD,CAAX;AAAsB,KAA5C;AAA+C;;AAClE,WAASnB,IAAT,CAAcoB,EAAd,EAAkB;AACd,QAAIP,CAAJ,EAAO,MAAM,IAAIQ,SAAJ,CAAc,iCAAd,CAAN;;AACP,WAAOb,CAAP;AAAU,UAAI;AACV,YAAIK,CAAC,GAAG,CAAJ,EAAOC,CAAC,KAAKxD,CAAC,GAAG8D,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAR,GAAYN,CAAC,CAAC,QAAD,CAAb,GAA0BM,EAAE,CAAC,CAAD,CAAF,GAAQN,CAAC,CAAC,OAAD,CAAD,KAAe,CAACxD,CAAC,GAAGwD,CAAC,CAAC,QAAD,CAAN,KAAqBxD,CAAC,CAACM,IAAF,CAAOkD,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,CAAC,CAACb,IAAjG,CAAD,IAA2G,CAAC,CAAC3C,CAAC,GAAGA,CAAC,CAACM,IAAF,CAAOkD,CAAP,EAAUM,EAAE,CAAC,CAAD,CAAZ,CAAL,EAAuBhB,IAA9I,EAAoJ,OAAO9C,CAAP;AACpJ,YAAIwD,CAAC,GAAG,CAAJ,EAAOxD,CAAX,EAAc8D,EAAE,GAAG,CAACA,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAT,EAAY9D,CAAC,CAACqC,KAAd,CAAL;;AACd,gBAAQyB,EAAE,CAAC,CAAD,CAAV;AACI,eAAK,CAAL;AAAQ,eAAK,CAAL;AAAQ9D,aAAC,GAAG8D,EAAJ;AAAQ;;AACxB,eAAK,CAAL;AAAQZ,aAAC,CAACC,KAAF;AAAW,mBAAO;AAAEd,mBAAK,EAAEyB,EAAE,CAAC,CAAD,CAAX;AAAgBhB,kBAAI,EAAE;AAAtB,aAAP;;AACnB,eAAK,CAAL;AAAQI,aAAC,CAACC,KAAF;AAAWK,aAAC,GAAGM,EAAE,CAAC,CAAD,CAAN;AAAWA,cAAE,GAAG,CAAC,CAAD,CAAL;AAAU;;AACxC,eAAK,CAAL;AAAQA,cAAE,GAAGZ,CAAC,CAACI,GAAF,CAAMU,GAAN,EAAL;;AAAkBd,aAAC,CAACG,IAAF,CAAOW,GAAP;;AAAc;;AACxC;AACI,gBAAI,EAAEhE,CAAC,GAAGkD,CAAC,CAACG,IAAN,EAAYrD,CAAC,GAAGA,CAAC,CAACK,MAAF,GAAW,CAAX,IAAgBL,CAAC,CAACA,CAAC,CAACK,MAAF,GAAW,CAAZ,CAAnC,MAAuDyD,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAeA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAhF,CAAJ,EAAwF;AAAEZ,eAAC,GAAG,CAAJ;AAAO;AAAW;;AAC5G,gBAAIY,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,KAAgB,CAAC9D,CAAD,IAAO8D,EAAE,CAAC,CAAD,CAAF,GAAQ9D,CAAC,CAAC,CAAD,CAAT,IAAgB8D,EAAE,CAAC,CAAD,CAAF,GAAQ9D,CAAC,CAAC,CAAD,CAAhD,CAAJ,EAA2D;AAAEkD,eAAC,CAACC,KAAF,GAAUW,EAAE,CAAC,CAAD,CAAZ;AAAiB;AAAQ;;AACtF,gBAAIA,EAAE,CAAC,CAAD,CAAF,KAAU,CAAV,IAAeZ,CAAC,CAACC,KAAF,GAAUnD,CAAC,CAAC,CAAD,CAA9B,EAAmC;AAAEkD,eAAC,CAACC,KAAF,GAAUnD,CAAC,CAAC,CAAD,CAAX;AAAgBA,eAAC,GAAG8D,EAAJ;AAAQ;AAAQ;;AACrE,gBAAI9D,CAAC,IAAIkD,CAAC,CAACC,KAAF,GAAUnD,CAAC,CAAC,CAAD,CAApB,EAAyB;AAAEkD,eAAC,CAACC,KAAF,GAAUnD,CAAC,CAAC,CAAD,CAAX;;AAAgBkD,eAAC,CAACI,GAAF,CAAMW,IAAN,CAAWH,EAAX;;AAAgB;AAAQ;;AACnE,gBAAI9D,CAAC,CAAC,CAAD,CAAL,EAAUkD,CAAC,CAACI,GAAF,CAAMU,GAAN;;AACVd,aAAC,CAACG,IAAF,CAAOW,GAAP;;AAAc;AAXtB;;AAaAF,UAAE,GAAGb,IAAI,CAAC3C,IAAL,CAAU0B,OAAV,EAAmBkB,CAAnB,CAAL;AACH,OAjBS,CAiBR,OAAOzC,CAAP,EAAU;AAAEqD,UAAE,GAAG,CAAC,CAAD,EAAIrD,CAAJ,CAAL;AAAa+C,SAAC,GAAG,CAAJ;AAAQ,OAjBzB,SAiBkC;AAAED,SAAC,GAAGvD,CAAC,GAAG,CAAR;AAAY;AAjB1D;;AAkBA,QAAI8D,EAAE,CAAC,CAAD,CAAF,GAAQ,CAAZ,EAAe,MAAMA,EAAE,CAAC,CAAD,CAAR;AAAa,WAAO;AAAEzB,WAAK,EAAEyB,EAAE,CAAC,CAAD,CAAF,GAAQA,EAAE,CAAC,CAAD,CAAV,GAAgB,KAAK,CAA9B;AAAiChB,UAAI,EAAE;AAAvC,KAAP;AAC/B;AACJ;AAEM,SAASoB,eAAT,CAAyBC,CAAzB,EAA4BC,CAA5B,EAA+BC,CAA/B,EAAkCC,EAAlC,EAAsC;AACzC,MAAIA,EAAE,KAAKC,SAAX,EAAsBD,EAAE,GAAGD,CAAL;AACtBF,GAAC,CAACG,EAAD,CAAD,GAAQF,CAAC,CAACC,CAAD,CAAT;AACH;AAEM,SAASG,YAAT,CAAsBJ,CAAtB,EAAyBK,OAAzB,EAAkC;AACrC,OAAK,IAAIlF,CAAT,IAAc6E,CAAd;AAAiB,QAAI7E,CAAC,KAAK,SAAN,IAAmB,CAACkF,OAAO,CAACjF,cAAR,CAAuBD,CAAvB,CAAxB,EAAmDkF,OAAO,CAAClF,CAAD,CAAP,GAAa6E,CAAC,CAAC7E,CAAD,CAAd;AAApE;AACH;AAEM,SAASmF,QAAT,CAAkBP,CAAlB,EAAqB;AACxB,MAAIlE,CAAC,GAAG,OAAO0D,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACC,QAA/C;AAAA,MAAyDQ,CAAC,GAAGnE,CAAC,IAAIkE,CAAC,CAAClE,CAAD,CAAnE;AAAA,MAAwEC,CAAC,GAAG,CAA5E;AACA,MAAIkE,CAAJ,EAAO,OAAOA,CAAC,CAAC9D,IAAF,CAAO6D,CAAP,CAAP;AACP,MAAIA,CAAC,IAAI,OAAOA,CAAC,CAAC9D,MAAT,KAAoB,QAA7B,EAAuC,OAAO;AAC1CsC,QAAI,EAAE,gBAAY;AACd,UAAIwB,CAAC,IAAIjE,CAAC,IAAIiE,CAAC,CAAC9D,MAAhB,EAAwB8D,CAAC,GAAG,KAAK,CAAT;AACxB,aAAO;AAAE9B,aAAK,EAAE8B,CAAC,IAAIA,CAAC,CAACjE,CAAC,EAAF,CAAf;AAAsB4C,YAAI,EAAE,CAACqB;AAA7B,OAAP;AACH;AAJyC,GAAP;AAMvC,QAAM,IAAIJ,SAAJ,CAAc9D,CAAC,GAAG,yBAAH,GAA+B,iCAA9C,CAAN;AACH;AAEM,SAAS0E,MAAT,CAAgBR,CAAhB,EAAmBhE,CAAnB,EAAsB;AACzB,MAAIiE,CAAC,GAAG,OAAOT,MAAP,KAAkB,UAAlB,IAAgCQ,CAAC,CAACR,MAAM,CAACC,QAAR,CAAzC;AACA,MAAI,CAACQ,CAAL,EAAQ,OAAOD,CAAP;AACR,MAAIjE,CAAC,GAAGkE,CAAC,CAAC9D,IAAF,CAAO6D,CAAP,CAAR;AAAA,MAAmBhD,CAAnB;AAAA,MAAsByD,EAAE,GAAG,EAA3B;AAAA,MAA+BnE,CAA/B;;AACA,MAAI;AACA,WAAO,CAACN,CAAC,KAAK,KAAK,CAAX,IAAgBA,CAAC,KAAK,CAAvB,KAA6B,CAAC,CAACgB,CAAC,GAAGjB,CAAC,CAACyC,IAAF,EAAL,EAAeG,IAApD;AAA0D8B,QAAE,CAACX,IAAH,CAAQ9C,CAAC,CAACkB,KAAV;AAA1D;AACH,GAFD,CAGA,OAAOwC,KAAP,EAAc;AAAEpE,KAAC,GAAG;AAAEoE,WAAK,EAAEA;AAAT,KAAJ;AAAuB,GAHvC,SAIQ;AACJ,QAAI;AACA,UAAI1D,CAAC,IAAI,CAACA,CAAC,CAAC2B,IAAR,KAAiBsB,CAAC,GAAGlE,CAAC,CAAC,QAAD,CAAtB,CAAJ,EAAuCkE,CAAC,CAAC9D,IAAF,CAAOJ,CAAP;AAC1C,KAFD,SAGQ;AAAE,UAAIO,CAAJ,EAAO,MAAMA,CAAC,CAACoE,KAAR;AAAgB;AACpC;;AACD,SAAOD,EAAP;AACH;AAEM,SAASE,QAAT,GAAoB;AACvB,OAAK,IAAIF,EAAE,GAAG,EAAT,EAAa1E,CAAC,GAAG,CAAtB,EAAyBA,CAAC,GAAGE,SAAS,CAACC,MAAvC,EAA+CH,CAAC,EAAhD;AACI0E,MAAE,GAAGA,EAAE,CAACG,MAAH,CAAUJ,MAAM,CAACvE,SAAS,CAACF,CAAD,CAAV,CAAhB,CAAL;AADJ;;AAEA,SAAO0E,EAAP;AACH;AAEM,SAASI,cAAT,GAA0B;AAC7B,OAAK,IAAI/E,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAG,CAAf,EAAkB+E,EAAE,GAAG7E,SAAS,CAACC,MAAtC,EAA8CH,CAAC,GAAG+E,EAAlD,EAAsD/E,CAAC,EAAvD;AAA2DD,KAAC,IAAIG,SAAS,CAACF,CAAD,CAAT,CAAaG,MAAlB;AAA3D;;AACA,OAAK,IAAIc,CAAC,GAAG7B,KAAK,CAACW,CAAD,CAAb,EAAkBoE,CAAC,GAAG,CAAtB,EAAyBnE,CAAC,GAAG,CAAlC,EAAqCA,CAAC,GAAG+E,EAAzC,EAA6C/E,CAAC,EAA9C;AACI,SAAK,IAAIgF,CAAC,GAAG9E,SAAS,CAACF,CAAD,CAAjB,EAAsBiF,CAAC,GAAG,CAA1B,EAA6BC,EAAE,GAAGF,CAAC,CAAC7E,MAAzC,EAAiD8E,CAAC,GAAGC,EAArD,EAAyDD,CAAC,IAAId,CAAC,EAA/D;AACIlD,OAAC,CAACkD,CAAD,CAAD,GAAOa,CAAC,CAACC,CAAD,CAAR;AADJ;AADJ;;AAGA,SAAOhE,CAAP;AACH;AAAA;AAEM,SAASkE,OAAT,CAAiBxB,CAAjB,EAAoB;AACvB,SAAO,gBAAgBwB,OAAhB,IAA2B,KAAKxB,CAAL,GAASA,CAAT,EAAY,IAAvC,IAA+C,IAAIwB,OAAJ,CAAYxB,CAAZ,CAAtD;AACH;AAEM,SAASyB,gBAAT,CAA0BtD,OAA1B,EAAmCC,UAAnC,EAA+CE,SAA/C,EAA0D;AAC7D,MAAI,CAACwB,MAAM,CAAC4B,aAAZ,EAA2B,MAAM,IAAIxB,SAAJ,CAAc,sCAAd,CAAN;AAC3B,MAAIN,CAAC,GAAGtB,SAAS,CAAC5B,KAAV,CAAgByB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAR;AAAA,MAAoD/B,CAApD;AAAA,MAAuDsF,CAAC,GAAG,EAA3D;AACA,SAAOtF,CAAC,GAAG,EAAJ,EAAQwD,IAAI,CAAC,MAAD,CAAZ,EAAsBA,IAAI,CAAC,OAAD,CAA1B,EAAqCA,IAAI,CAAC,QAAD,CAAzC,EAAqDxD,CAAC,CAACyD,MAAM,CAAC4B,aAAR,CAAD,GAA0B,YAAY;AAAE,WAAO,IAAP;AAAc,GAA3G,EAA6GrF,CAApH;;AACA,WAASwD,IAAT,CAAcvD,CAAd,EAAiB;AAAE,QAAIsD,CAAC,CAACtD,CAAD,CAAL,EAAUD,CAAC,CAACC,CAAD,CAAD,GAAO,UAAU0D,CAAV,EAAa;AAAE,aAAO,IAAItB,OAAJ,CAAY,UAAU2C,CAAV,EAAahG,CAAb,EAAgB;AAAEsG,SAAC,CAACvB,IAAF,CAAO,CAAC9D,CAAD,EAAI0D,CAAJ,EAAOqB,CAAP,EAAUhG,CAAV,CAAP,IAAuB,CAAvB,IAA4BuG,MAAM,CAACtF,CAAD,EAAI0D,CAAJ,CAAlC;AAA2C,OAAzE,CAAP;AAAoF,KAA1G;AAA6G;;AAC1I,WAAS4B,MAAT,CAAgBtF,CAAhB,EAAmB0D,CAAnB,EAAsB;AAAE,QAAI;AAAEnB,UAAI,CAACe,CAAC,CAACtD,CAAD,CAAD,CAAK0D,CAAL,CAAD,CAAJ;AAAgB,KAAtB,CAAuB,OAAOpD,CAAP,EAAU;AAAEiF,YAAM,CAACF,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAD,EAAU/E,CAAV,CAAN;AAAqB;AAAE;;AAClF,WAASiC,IAAT,CAAcvB,CAAd,EAAiB;AAAEA,KAAC,CAACkB,KAAF,YAAmBgD,OAAnB,GAA6B9C,OAAO,CAACD,OAAR,CAAgBnB,CAAC,CAACkB,KAAF,CAAQwB,CAAxB,EAA2Bd,IAA3B,CAAgC4C,OAAhC,EAAyCnD,MAAzC,CAA7B,GAAgFkD,MAAM,CAACF,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAD,EAAUrE,CAAV,CAAtF;AAAqG;;AACxH,WAASwE,OAAT,CAAiBtD,KAAjB,EAAwB;AAAEoD,UAAM,CAAC,MAAD,EAASpD,KAAT,CAAN;AAAwB;;AAClD,WAASG,MAAT,CAAgBH,KAAhB,EAAuB;AAAEoD,UAAM,CAAC,OAAD,EAAUpD,KAAV,CAAN;AAAyB;;AAClD,WAASqD,MAAT,CAAgBnC,CAAhB,EAAmBM,CAAnB,EAAsB;AAAE,QAAIN,CAAC,CAACM,CAAD,CAAD,EAAM2B,CAAC,CAACI,KAAF,EAAN,EAAiBJ,CAAC,CAACnF,MAAvB,EAA+BoF,MAAM,CAACD,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAD,EAAUA,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAV,CAAN;AAA2B;AACrF;AAEM,SAASK,gBAAT,CAA0B1B,CAA1B,EAA6B;AAChC,MAAIjE,CAAJ,EAAOX,CAAP;AACA,SAAOW,CAAC,GAAG,EAAJ,EAAQwD,IAAI,CAAC,MAAD,CAAZ,EAAsBA,IAAI,CAAC,OAAD,EAAU,UAAUjD,CAAV,EAAa;AAAE,UAAMA,CAAN;AAAU,GAAnC,CAA1B,EAAgEiD,IAAI,CAAC,QAAD,CAApE,EAAgFxD,CAAC,CAACyD,MAAM,CAACC,QAAR,CAAD,GAAqB,YAAY;AAAE,WAAO,IAAP;AAAc,GAAjI,EAAmI1D,CAA1I;;AACA,WAASwD,IAAT,CAAcvD,CAAd,EAAiBoD,CAAjB,EAAoB;AAAErD,KAAC,CAACC,CAAD,CAAD,GAAOgE,CAAC,CAAChE,CAAD,CAAD,GAAO,UAAU0D,CAAV,EAAa;AAAE,aAAO,CAACtE,CAAC,GAAG,CAACA,CAAN,IAAW;AAAE8C,aAAK,EAAEgD,OAAO,CAAClB,CAAC,CAAChE,CAAD,CAAD,CAAK0D,CAAL,CAAD,CAAhB;AAA2Bf,YAAI,EAAE3C,CAAC,KAAK;AAAvC,OAAX,GAA+DoD,CAAC,GAAGA,CAAC,CAACM,CAAD,CAAJ,GAAUA,CAAjF;AAAqF,KAA3G,GAA8GN,CAArH;AAAyH;AAClJ;AAEM,SAASuC,aAAT,CAAuB3B,CAAvB,EAA0B;AAC7B,MAAI,CAACR,MAAM,CAAC4B,aAAZ,EAA2B,MAAM,IAAIxB,SAAJ,CAAc,sCAAd,CAAN;AAC3B,MAAIK,CAAC,GAAGD,CAAC,CAACR,MAAM,CAAC4B,aAAR,CAAT;AAAA,MAAiCrF,CAAjC;AACA,SAAOkE,CAAC,GAAGA,CAAC,CAAC9D,IAAF,CAAO6D,CAAP,CAAH,IAAgBA,CAAC,GAAG,OAAOO,QAAP,KAAoB,UAApB,GAAiCA,QAAQ,CAACP,CAAD,CAAzC,GAA+CA,CAAC,CAACR,MAAM,CAACC,QAAR,CAAD,EAAnD,EAAyE1D,CAAC,GAAG,EAA7E,EAAiFwD,IAAI,CAAC,MAAD,CAArF,EAA+FA,IAAI,CAAC,OAAD,CAAnG,EAA8GA,IAAI,CAAC,QAAD,CAAlH,EAA8HxD,CAAC,CAACyD,MAAM,CAAC4B,aAAR,CAAD,GAA0B,YAAY;AAAE,WAAO,IAAP;AAAc,GAApL,EAAsLrF,CAAtM,CAAR;;AACA,WAASwD,IAAT,CAAcvD,CAAd,EAAiB;AAAED,KAAC,CAACC,CAAD,CAAD,GAAOgE,CAAC,CAAChE,CAAD,CAAD,IAAQ,UAAU0D,CAAV,EAAa;AAAE,aAAO,IAAItB,OAAJ,CAAY,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AAAEqB,SAAC,GAAGM,CAAC,CAAChE,CAAD,CAAD,CAAK0D,CAAL,CAAJ,EAAa6B,MAAM,CAACpD,OAAD,EAAUE,MAAV,EAAkBqB,CAAC,CAACf,IAApB,EAA0Be,CAAC,CAACxB,KAA5B,CAAnB;AAAwD,OAAjG,CAAP;AAA4G,KAA1I;AAA6I;;AAChK,WAASqD,MAAT,CAAgBpD,OAAhB,EAAyBE,MAAzB,EAAiCvD,CAAjC,EAAoC4E,CAApC,EAAuC;AAAEtB,WAAO,CAACD,OAAR,CAAgBuB,CAAhB,EAAmBd,IAAnB,CAAwB,UAASc,CAAT,EAAY;AAAEvB,aAAO,CAAC;AAAED,aAAK,EAAEwB,CAAT;AAAYf,YAAI,EAAE7D;AAAlB,OAAD,CAAP;AAAiC,KAAvE,EAAyEuD,MAAzE;AAAmF;AAC/H;AAEM,SAASuD,oBAAT,CAA8BC,MAA9B,EAAsCC,GAAtC,EAA2C;AAC9C,MAAI9G,MAAM,CAACoC,cAAX,EAA2B;AAAEpC,UAAM,CAACoC,cAAP,CAAsByE,MAAtB,EAA8B,KAA9B,EAAqC;AAAE3D,WAAK,EAAE4D;AAAT,KAArC;AAAuD,GAApF,MAA0F;AAAED,UAAM,CAACC,GAAP,GAAaA,GAAb;AAAmB;;AAC/G,SAAOD,MAAP;AACH;AAAA;AAEM,SAASE,YAAT,CAAsBC,GAAtB,EAA2B;AAC9B,MAAIA,GAAG,IAAIA,GAAG,CAACC,UAAf,EAA2B,OAAOD,GAAP;AAC3B,MAAItD,MAAM,GAAG,EAAb;AACA,MAAIsD,GAAG,IAAI,IAAX,EAAiB,KAAK,IAAI9B,CAAT,IAAc8B,GAAd;AAAmB,QAAIhH,MAAM,CAACK,cAAP,CAAsBc,IAAtB,CAA2B6F,GAA3B,EAAgC9B,CAAhC,CAAJ,EAAwCxB,MAAM,CAACwB,CAAD,CAAN,GAAY8B,GAAG,CAAC9B,CAAD,CAAf;AAA3D;AACjBxB,QAAM,CAACwD,OAAP,GAAiBF,GAAjB;AACA,SAAOtD,MAAP;AACH;AAEM,SAASyD,eAAT,CAAyBH,GAAzB,EAA8B;AACjC,SAAQA,GAAG,IAAIA,GAAG,CAACC,UAAZ,GAA0BD,GAA1B,GAAgC;AAAEE,WAAO,EAAEF;AAAX,GAAvC;AACH;AAEM,SAASI,sBAAT,CAAgCC,QAAhC,EAA0CC,UAA1C,EAAsD;AACzD,MAAI,CAACA,UAAU,CAACC,GAAX,CAAeF,QAAf,CAAL,EAA+B;AAC3B,UAAM,IAAIzC,SAAJ,CAAc,gDAAd,CAAN;AACH;;AACD,SAAO0C,UAAU,CAACE,GAAX,CAAeH,QAAf,CAAP;AACH;AAEM,SAASI,sBAAT,CAAgCJ,QAAhC,EAA0CC,UAA1C,EAAsDpE,KAAtD,EAA6D;AAChE,MAAI,CAACoE,UAAU,CAACC,GAAX,CAAeF,QAAf,CAAL,EAA+B;AAC3B,UAAM,IAAIzC,SAAJ,CAAc,gDAAd,CAAN;AACH;;AACD0C,YAAU,CAACI,GAAX,CAAeL,QAAf,EAAyBnE,KAAzB;AACA,SAAOA,KAAP;AACH,C;;;;;;;;;;;;;;;;ACzN8C;AACK;AAEN;AACuC;AACnD;AACuB;AAYzD;IAAmC,sCAAY;IAuC7C,0DAAY,iBAA+D,CAE1C;QAFjC,YAGE,iBAAO,SA8BR;QAhDgB,oBAAc,GAAQ,IAAI,CAAC;QAC3B,qBAAe,GAAY,IAAM;QACjC,wBAAkB,GAAY,GAAM;QAE3C,eAAS,GAAY,KAAK,CAAC;QAgBnC,QAAQ,SAAS,CAAC,MAAQ;YACxB,KAAK,CAAC;gBACJ,GAAiC;gBACjC,MAAM;YACR,KAAK,CAAC;gBACJ,GAAwB;oBACtB,KAAI,CAAC,WAAW,GAAG,CAAc;oBACjC,MAAM;iBACP;gBACD,CAA2C;oBAGzC,IAAI,mBAAmB,CAAC,gBAAoB;wBAC1C,IAAM,iBAAiB,GAAG,iBAA2D;wBACrF,KAAI,CAAC,kBAAkB,GAAG,iGAAkB,GAAkB,CAAC;wBAC/D,KAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBACrC,iBAAiB,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC;qBAC7B;qBAAM;wBACL,EAA+B;wBAC/B,KAAI,CAAC,WAAW,GAAG,IAAI,QAAkE;qBAC1F;oBACD,CAAM;iBACP;YACH;gBACE,IAA+B;gBAC/B,KAAI,CAAC,WAAW,GAAG,IAAI,QAAmF;gBAC1G,MAAM;SACT;;IACH,CAAC;IAtED,CAAuC;IAchC,iBAAM,GAAb,mFACiB,EAAyB,EACzB,QAAqB;QACpC,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAU;QACzD,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IA2DD,EAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACnB;IACH,CAAC;IASD,EAAe;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,CAAK;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;IAQD;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,CAAK;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QACD,CAAsB;QACtB,iBAAM,KAAc;IACtB,CAAC;IAES,EAAc;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,EAAV;QACE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAGD;QACQ,aAA4B,EAA1B,oBAAO,EAAE,kBAAkB;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAK;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAM;QACpB,IAAI,CAAC,SAAS,GAAG,GAAM;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAS;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACH,EAAC;AAAD,CAAC,CApJkC,YAAY,GAoJ9C;;AAOD;IAAgC,0CAAa;IAI3C,8DAAoB,iBAAgC,CAGnB;QAHjC,YAIE,iBAAO,SAwBR;QA5BmB,uBAAiB,GAAjB,YAAgC;QAMlD,IAAI,IAA0B,CAAC;QAC/B,IAAI,KAAoB;QAExB,IAAI,UAAU,CAAC,KAAiB;YAC9B,2EAA+B,WAAe,CAAC;SAChD;SAA0B;YACzB,IAAI,GAAyB,cAAe,CAAM;YAClD,KAAK,GAAyB,cAAe,CAAC,IAAM;YACpD,QAAQ,GAAyB,cAAe,CAAC,GAAS;YAC1D,IAAI,cAAc,KAAK,YAAe;gBACpC,OAAO,GAAG,MAAM,CAAC,yDAAO,GAAgB;gBACxC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACnC,2EAAsB,OAAO,CAAC,WAAW,CAAC,IAAe;iBAC1D;gBACD,CAAkD;aACnD;SACF;QAED,CAAwB;QACxB,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAI,CAAC,MAAM,GAAG,IAAM;QACpB,KAAI,CAAC,SAAS,GAAG,GAAS;;IAC5B,CAAC;IAED,CAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;YACzB,gCAA2B;YACnC,IAAI,CAAC,MAAM,CAAC,mCAAgF;gBAC1F,uDAAK,UAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACtC;aAAsE;gBACrE,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAED,EAAe;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACX,kBAA2B;YAC3B,+CAAiD;YACzD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,SAAgF;oBACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;iBAAM;oBACL,EAA0D;oBAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;aAAiD;gBAChD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,eAAuC;oBACzC,MAAM,GAAG,CAAC;iBACX;gBACD,CAAqB;aACtB;aAAM;gBACL,EAA2C;oBACzC,iBAAiB,CAAC,cAAc,GAAG,GAAG,CAAC;oBACvC,iBAAiB,CAAC,eAAe,GAAG,GAAK;iBAC1C;iBAAM;oBACL,EAAqB;iBACtB;gBACD,CAAmB;aACpB;SACF;IACH,CAAC;IAED;QAAA,iBAiBC;QAhBC,IAAI,CAAC,IAAI,CAAC,OAAW;YACX,kBAA2B;YACnC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAM,aAA2D;gBAEjE,IAAI,CAAC,MAAM,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,WAAoB;oBAC1F,uDAAK,UAAY,CAAC,eAAe,CAAC,CAAC;oBACnC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;iBAAM;oBACL,EAAyD;oBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;aAAM;gBACL,EAAmB;aACpB;SACF;IACH,CAAC;IAEO,EAAsC;QAC5C,IAAI;YACF,CAA8B;SAC/B;QAAC,CAAY;YACZ,IAAI,CAAC,IAAc;YACnB,IAAI,MAAM,CAAC,QAAuC;gBAChD,sDAAM,GAAG,CAAC;aACX;aAAM;gBACL,EAAqB;aACtB;SACF;IACH,CAAC;IAEO,EAAgE;QACtE,IAAI,CAAC,MAAM,CAAC,qCAAqC,EAAE;YACjD,uDAAM,GAAI,KAAK,CAAC,UAAU,CAAC,CAAC;SAC7B;QACD,CAAI;YACF,CAA8B;SAC/B;QAAC,CAAY;YACZ,IAAI,KAA8C;gBAChD,sDAAM,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC5B,MAAM,CAAC,eAAe,GAAG,GAAK;gBAC9B,OAAO,IAAI,CAAC;aACb;aAAM;gBACL,EAAqB;gBACrB,qFAAY;aACb;SACF;QACD,CAAa;IACf,CAAC;IAGD;QACU,8CAAiB,CAAU;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAyB;QAC9B,iBAAiB,CAAC,WAAW,CAAG;IAClC,CAAC;IACH,EAAC;AAAD,CAAC,CArI+B,UAAU,GAqIzC;AAED,eAAqC;IACnC,OAAO,GAAG,YAAY,SAAuE;AAC/F,CAAC;;;;;;;;;;;;;;;;;;;;ACtTD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACiC;AACvB;AAM9B;AAErB,CAAI,cAAc,EAAE;QAClB,IAAI,aAAsC;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,CAAwC;YACtC,OAAO,4CAAe,IAAsB;SAC7C;KACF;IAED,CAA4C;QAC1C,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,CAAuD;AACzD,CAAC;;;;;;;;;;;;;ACrBD;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG6B;AACpC;AACV;AAQlC;IAkBE,+BAAY,SAA6E;QAflF,cAAS,GAAY,KAAK,CAAC;QAgBhC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,OAAuB;SAC7B;IACH,CAAC;IAwBD,CAAgC;QAC9B,IAAM,UAAU,GAAG,IAAI,UAAU,EAAK,CAAC;QACvC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,CAAC,QAAQ,GAAG,GAAS;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IA0HD,EAE+B;QAErB,4BAAQ,CAAU;QAC1B,IAAM,IAAI,GAAG,YAAY,CAAC,KAAiC;QAE3D,IAAI,mBAAU;YACZ,QAAQ,CAAC,EAAwB;SAClC;SAAM;YACL,EAC6F;gBAC3F,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAE;gBACvB,IAAI,CAAC,aAAa,CAAC,IACnB;SACH;QAED,CAAkD;YAChD,wBAAI,EAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,GAAS;gBAChC,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,MAAM,IAAI,CAAC,YAAe;iBAC3B;aACF;SACF;QAED,CAAY;IACd,CAAC;IAGD,EAAiC;QAC/B,IAAI;YACF,CAA6B;SAC9B;QAAC,CAAY;YACZ,IAAI,KAA8C;gBAChD,wBAAK,cAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;aAC3B;YACD,CAAgB;SACjB;IACH,CAAC;IASD,EAAsE;QAAtE,iBAkBC;QAjBC,WAAW,GAAG,GAA4B;QAE1C,OAAO,IAAI,WAAW,CAAO,UAAC,OAAO,EAAQ;YAG3C,IAAI,YAA0B,CAAC;YAC/B,YAAY,GAAG,EAAqB;gBAClC,IAAI;oBACF,CAAY;iBACb;gBAAC,CAAY;oBACZ,MAAM,CAAC,EAAK;oBACZ,IAAI,QAAc;wBAChB,YAAY,CAAC,EAAc;qBAC5B;iBACF;YACH,CAAC,EAAE,EAAiB;QACtB,CAAC,CAAkB,CAAC;IACtB,CAAC;IAGD,EAAsC;QAC5B,wBAAM,CAAU;QACxB,OAAO,MAAM,IAAI,MAAM,CAAC,CAAsB;IAChD,CAAC;IAoBD;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAmCD;QAAQ,oBAAuC;aAAvC,UAAuC,EAAvC,GAAuC;YAAvC,+BAAuC;;QAC7C,CAA6B;YAC3B,OAAO,IAAW,CAAC;SACpB;QAED,CAAuC;IACzC,CAAC;IAQD,EAA8C;QAA9C,iBAOC;QANC,WAAW,GAAG,GAA4B;QAE1C,OAAO,IAAI,WAAW,CAAC,UAAC,OAAO,EAAQ;YACrC,IAAI,KAAU,CAAC;YACf,KAAI,CAAC,IAAgF;QACvF,CAAC,CAAe,CAAC;IACnB,CAAC;IAjSM,EAA+E;QACpF,OAAO,IAAI,UAAU,CAAI,SAAS,CAAC,CAAC;IACtC,CAAC;IAgSH,EAAC;CAAA;KArUsB;AA8UgD;IACrE,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,CAA0B;KACzC;IAED,CAAkB;QAChB,MAAM,IAAI,KAA+B;KAC1C;IAED,CAAmB;AACrB,CAAC;;;;;;;;;;;;;;;;;;ACzWyC;AAQ1C;IAA2C,2DAAa;IAGtD,sCAAoB,MAA6B,EAAS,UAAwC;QAAlG,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAuB;QAAS,gBAAU,GAAV,GAAa;QAAS,gBAAU,GAAV,UAAU,CAAQ;QAF1F,WAAK,GAAG,CAAC,CAAC;;IAIlB,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAqC;IACtF,CAAC;IAES,EAAiB;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,EAAV;QACE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,EAAC;AAAD,CAAC,CApB0C,UAAU,GAoBpD;;;;;;;;ACzBD;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAET;AASY;AACtD,CAAM,WAAW,GAAG,IAAI,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEjF,OAAO,WAAW,CAAC,kCAAQ,CAAW,CAAC,CAAC;AAC1C,CAAC;;;;;;;;;;;;;AClByC;AAQ1C;IAA2C,2CAAa;IAAxD;;IAcA,CAAC;IAbC,CAE0C;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,EAAuD;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,EAA8C;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,EAAC;AAAD,CAAC,CAd0C,UAAU,GAcpD;;;;;;;;;;;;ACtBD,wCAAqC;AACrC,yCAAuC;AACvC,mDAA8D;AAG9D;IAAA;QAME,WAAM,GAAG,EAAE,CAAC;QACZ,WAAM,GAAG,CAAC,CAAC;QAiED,kBAAa,GAAwB,EAAE,CAAC;IA0YpD,CAAC;IAnYC,6BAAS,GAAT;QACE,OAAO,IAA8B,CAAC;IACxC,CAAC;IAKD,8BAAU,GAAV,UAAW,OAAuC;QAAvC,oCAAuB,IAAI,CAAC,SAAS,EAAE;QAChD,OAAQ,MAAc,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAID,gCAAY,GAAZ;QACG,MAAc,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAKD,sCAAkB,GAAlB;QAAA,iBAIC;QAHC,UAAU,CAAC;YACT,KAAI,CAAC,aAAa,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,yBAAK,GAAL;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,4BAAQ,GAAR;QACE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,4BAAQ,GAAR;QACE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAEhC,KAAgB,UAAiC,EAAjC,WAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;gBAA9C,IAAI,GAAG;gBACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;aACrC;YAGD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;IACH,CAAC;IAGD,iCAAa,GAAb,UAAc,KAAa;QAEzB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEtD,CAAC;IAGD,oCAAgB,GAAhB,UAAiB,KAAa;QAE5B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEtD,CAAC;IAED,iCAAa,GAAb,UAAc,CAAQ;QAEpB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEtD,CAAC;IAED,gCAAY,GAAZ,UAAa,IAAY;QACvB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAY,GAAZ,UAAa,IAAY,EAAE,KAAa;QACtC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAED,+BAAW,GAAX,UAAY,IAAU;QACpB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAiB,GAAjB;QACE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,2CAA2C,CAAC,CAAC;SACtE;IACH,CAAC;IAGD,8BAAU,GAAV;QAAW,eAAoC;aAApC,UAAoC,EAApC,qBAAoC,EAApC,IAAoC;YAApC,0BAAoC;;QAE7C,IAAI,MAAM,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,UAAC,EAAuB,EAAE,EAAuB;YAClF,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,gCAAY,GAAZ,UAAa,SAAiB,EAAE,UAAkB;QAChD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAK,SAAS,UAAK,UAAY,CAAC,CAAC;IAC5D,CAAC;IASD,oCAAgB,GAAhB,UAAiB,SAAiB,EAAE,MAAW,EAAE,QAAiB,EAAE,MAAY;QAC9E,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,MAAM,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;SACF;aAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;YAClC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,SAAS,CAAC;aAClB;SACF;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;YACjD,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAQD,wCAAoB,GAApB,UAAqB,cAAsB,EAAE,MAAW,EAAE,QAAiB,EAAE,MAAY;QACvF,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,2BAAO,GAAP,UAAQ,MAAW,EAAE,QAAgB,EAAE,MAAY;QACjD,QAAQ,QAAQ,CAAC,IAAI,EAAE,EAAE;YACvB,KAAK,UAAU;gBACb,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAC/C,KAAK,aAAa;gBAEhB,OAAO,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,IAAI,CAAC;YACxB,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,IAAI,CAAC;YACxB,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU;gBACb,OAAO,MAAM,KAAK,KAAK,CAAC;YAC1B,KAAK,UAAU,CAAC;YAChB,KAAK,SAAS;gBACZ,OAAO,MAAM,KAAK,IAAI,CAAC;YAEzB,KAAK,IAAI;gBACP,OAAO,MAAM,IAAI,MAAM,CAAC;YAC1B,KAAK,IAAI;gBACP,OAAO,MAAM,IAAI,MAAM,CAAC;YAE1B,KAAK,KAAK;gBACR,OAAO,MAAM,KAAK,MAAM,CAAC;YAC3B,KAAK,KAAK;gBACR,OAAO,MAAM,KAAK,MAAM,CAAC;YAC3B,KAAK,GAAG;gBACN,OAAO,MAAM,GAAG,MAAM,CAAC;YACzB,KAAK,IAAI;gBACP,OAAO,MAAM,IAAI,MAAM,CAAC;YAC1B,KAAK,GAAG;gBACN,OAAO,MAAM,GAAG,MAAM,CAAC;YACzB,KAAK,IAAI;gBACP,OAAO,MAAM,IAAI,MAAM,CAAC;YAC1B,KAAK,GAAG;gBACN,OAAO,CAAC,MAAM,CAAC;YACjB;gBACE,MAAM,oBAAoB,CAAC;SAC9B;IACH,CAAC;IAUD,6BAAS,GAAT,UAAU,YAAoB,EAAE,OAAa;QAE3C,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC;SAChB;QAED,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAID,6BAAS,GAAT,UAAU,aAAkB,EAAE,GAAQ;QAAE,gBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,+BAAwB;;QAI9D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,kBAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAOD,0BAAM,GAAN,UAAO,IAAY;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpB,CAAC;IAiBD,+BAAW,GAAX,UAAY,WAAmB,EAAE,MAA2B,EAAE,iBAAiC;QAE7F,IAAI,aAAa,GAAQ,IAAI,CAAC;QAC9B,KAAkB,UAAsB,EAAtB,gBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;YAArC,IAAI,KAAK;YACZ,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;SACtC;QAED,IAAI,aAAa,YAAY,KAAK,EAAE;YAClC,IAAI,aAAa,GAAe,aAAa,CAAC;YAE9C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,QAAQ,GAAW,aAAa,CAAC,MAAM,CAAC;YAE5C,IAAI,MAAM,IAAI,IAAI,EAAE;gBAElB,IAAI,iBAAiB,IAAI,IAAI,EAAE;oBAC7B,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACzC;gBAGD,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,OAAO;iBACR;gBACD,KAAiB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE;oBAA/B,IAAI,IAAI;oBAEX,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;iBACzD;aACF;iBAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAEnC,IAAI,iBAAiB,IAAI,IAAI,EAAE;oBAC7B,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;gBAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC7C,KAAiB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,EAAE;wBAA/B,IAAI,IAAI;wBAEX,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;qBACrD;iBACF;aACF;SACF;IACH,CAAC;IAYD,mCAAe,GAAf,UAAgB,KAAY,EAAE,eAAuB,EAAE,QAAgB;QACrE,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC1D,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACvC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC1B;IACH,CAAC;IAWD,oCAAgB,GAAhB,UAAiB,KAAY,EAAE,gBAAwB,EAAE,SAAiB;QACxE,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC3D,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;YACxC,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,CAAkB,CAAC;SACzD;IACH,CAAC;IAUD,kDAA8B,GAA9B,UAA+B,QAAgB,EAAE,KAAU;QACzD,IAAI,iBAAiB,GAAW,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;YACjD,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;SAChC;aAAM;YAGL,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAOD,yBAAK,GAAL,UAAM,IAAY;QAEhB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACnC;QAGD,IAAI,QAAQ,GAAG,IAAI,oCAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAGhD,QAAQ,CAAC,MAAM,EAAE,CAAC;QAGlB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAGtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uCAAmB,GAAnB;QACE,KAAyB,UAAkB,EAAlB,SAAI,CAAC,aAAa,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;YAAxC,IAAI,YAAY;YACnB,YAAY,CAAC,WAAW,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAGO,kCAAc,GAAtB,UAAuB,KAAY,EAAE,eAAuB;QAC1D,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI,EAAE;YACnD,OAAO;SACR;QACD,IAAI,aAAa,GAAgB,KAAK,CAAC,MAAqB,CAAC;QAC7D,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAqB,EAAE,eAAe,CAAC,EAAE;YAC9D,aAAa,GAAG,oBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAqB,EAAE,eAAe,CAAgB,CAAC;YACjG,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,OAAO;aACR;SACF;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACH,gBAAC;AAAD,CAAC;AAldqB,8BAAS;;;;;;;;;ACL/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACE;AACI;AACJ;AACM;AACgB;AAejE;IAwBE,sBAAY,WAAwB;QAb7B,WAAM,GAAY,KAAK,CAAC;QAGrB,YAAO,GAAiB,IAAI,CAAC;QAE7B,aAAQ,GAAmB,IAAK;QAElC,mBAAc,EAA4B;QAOhD,IAAI,WAAW,EAAE;YACR,IAAK,CAAC,SAA2B;SAEzC;IACH,CAAC;IAQD;QACE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAa,CAAC;QAElB,IAAI,IAAI,CAAC,EAAQ;YACf,OAAO;SACR;QAEG,CAAmE;QAEvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAK;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAK;QAGrB,IAAI,CAAC,cAAc,EAAQ;QAE3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,KAA+B;QAIzC,OAAO,OAAO,EAAE;YACd,OAAO,CAAC,KAAa;YAGrB,OAAO,GAAG,EAAE,KAAK,GAAG,CAA+B;SACpD;QAED,CAA8B;YAC5B,2EAAS,EAAG,QAAQ,CAAC,MAAyB;YAC9C,IAAI,KAAK,0EAAK,KAAW,EAAE;gBACzB,SAAS,CAAC,qEAAO;gBACjB,MAAM,GAAG,MAAM,EACiC;oBAC5C,qFAA2B,CAAC,WAAW,CAAC,CAAC,qFAAY,EACvD;aACH;SACF;QAED,CAA6B;YAE3B,qEAAK,CAAG,CAAC,CAAC,CAAC;YACX,GAAG,GAAG,KAAsB;YAE5B,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE;gBACpB,IAAM,GAAG,GAAG,SAAsB;gBAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjB,uEAAI,CAAK,GAAG,IAAoC;oBAChD,IAAI,KAAK,0EAAK,KAAW,EAAE;wBACzB,SAAS,CAAC,qEAAO;wBACjB,MAAM,GAAG,MAAM,EAAO;wBACtB,IAAI,GAAG,GAAG,WAAW,CAAG;wBACxB,IAAI,GAAG,wEAAY,GAAqB;4BACtC,MAAM,GAAG,MAAM,qFAAQ,GAAyC;yBACjE;yBAAM;4BACL,EAAiB;yBAClB;qBACF;iBACF;aACF;SACF;QAED,CAAe;YACb,MAAM,IAAI,EAA4B;SACvC;IACH,CAAC;IAoBD,EAA2B;QACzB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,EAAQ;YAClD,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QAED,CAAuB;YACrB,OAAO,IAAI,CAAC;SACb;QAED,CAA6C;QAE7C,QAAQ,OAAO,QAAQ,EAAE;YACvB,KAAK,UAAU;gBACb,YAA0D;YAC5D,KAAK,QAAQ;gBACX,IAAI,MAAuE;oBACzE,OAAO,YAAY,CAAC;iBACrB;iBAAuB;oBACtB,YAAY,CAAC,MAAc;oBAC3B,OAAO,YAAY,CAAC;iBACrB;iBAA2E;oBAC1E,IAAM,GAAG,GAAG,YAAY,CAAC;oBACzB,YAAY,GAAG,IAAI,IAAe;oBAClC,YAAY,CAAC,cAAc,GAAG,CAAC,GAAK;iBACrC;gBACD,CAAM;YACR;gBACE,IAAiF;SACpF;QAED,CAAwE;QAExE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9B,OAAO,YAAY,CAAC;IACtB,CAAC;IAQD,EAAiC;QAC/B,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,IAAM,YAAwD;YAC9D,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;gBAC5B,aAAa,CAAC,MAAM,CAAC,MAAsB;aAC5C;SACF;IACH,CAAC;IAGO,EAA+B;QACjC,aAA4B,EAA1B,oBAAO,EAAE,cAAkB;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE;YAGlC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;SAAqB;YAGpB,IAAI,CAAC,QAAQ,GAAG,CAAS;SAC1B;SAA2C;YAE1C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACH,CAAC;IA9La,EAA0C;QACtD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,IAAI,WAAiB;IA4LzB,mBAAC;CAAA;KAjMwB;AAmMyB;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,GAAG,EAA+E;AAC/G,CAAC;;;;;;;;;ACxND;AAAA,MAAM,CAAC,IAAM,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACD1C,6CAAwC;AAExC,kDAAsD;AACtD,yCAAuC;AAMvC;IAAsB,2BAAQ;IAA9B;QAAA,qEAwEC;QAvEC,SAAG,GAAG,SAAS,CAAC;QAChB,oBAAc,GAA8B,EAAE,CAAC;QAC/C,6BAAuB,GAA8B,EAAE,CAAC;;IAqE1D,CAAC;IAnEC,2BAAS,GAAT,UAAU,MAAM;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,OAAO,GAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU,EAAE;gBACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC;aAC9B;SACF;IACH,CAAC;IAMD,mCAAiB,GAAjB;QACE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAgB,UAAgC,EAAhC,WAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAhC,cAAgC,EAAhC,IAAgC,EAAE;YAA7C,IAAI,GAAG;YACV,MAAM,IAAI,OAAI,GAAG,cAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAM,CAAC;SACxD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,qCAAmB,GAAnB,UAAoB,GAAW;QAC7B,IAAI,OAAO,GAAG,iBAAM,mBAAmB,YAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,OAAO,IAAI,IAAI,IAAI,mCAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;YACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SACpC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAUD,2CAAyB,GAAzB,UAA0B,eAAuB,EAAE,KAAU;QAAV,kCAAU;QAC3D,KAAgB,UAA4B,EAA5B,WAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;YAAzC,IAAI,GAAG;YACV,IAAI,OAAO,GAAoB,eAAe,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,OAAO,GAAW,OAAO,CAAC;gBAC9B,IAAI,kBAAkB,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;oBAGpE,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC;iBAC5D;gBAED,IAAI,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;gBACtE,IAAI,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;gBAKlD,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aACjD;iBAAM;gBACL,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IACH,cAAC;AAAD,CAAC,CAxEqB,uBAAQ,GAwE7B;AAGU,eAAO,GAAG,oBAAQ,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAIpE,eAAO,CAAC,WAAW,CAAC,4CAA4C,CAAC,GAAG,kEAAkE,CAAC;AACvI,eAAO,CAAC,WAAW,CAAC,wCAAwC,CAAC,GAAG,iEAAiE,CAAC;AAClI,eAAO,CAAC,WAAW,CAAC,0CAA0C,CAAC,GAAG,4EAA4E,CAAC;AAC/I,eAAO,CAAC,WAAW,CAAC,uCAAuC,CAAC,GAAG,6KAA6K,CAAC;AAC7O,eAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,2BAA2B,CAAC;AACvE,eAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,GAAG,kBAAkB,CAAC;AACxE,eAAO,CAAC,WAAW,CAAC,oCAAoC,CAAC,GAAG,uBAAuB,CAAC;AACpF,eAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,GAAG,sBAAsB,CAAC;AAC/E,eAAO,CAAC,WAAW,CAAC,kCAAkC,CAAC,GAAG,6BAA6B,CAAC;AACxF,eAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;AAC/E,eAAO,CAAC,WAAW,CAAC,qCAAqC,CAAC,GAAG,8CAA8C,CAAC;AAC5G,eAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,GAAG,oBAAoB,CAAC;AACzE,eAAO,CAAC,WAAW,CAAC,yCAAyC,CAAC,GAAG,6BAA6B,CAAC;AAC/F,eAAO,CAAC,WAAW,CAAC,uCAAuC,CAAC,GAAG,kCAAkC,CAAC;AAClG,eAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;AACjE,eAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,GAAG,0BAA0B,CAAC;AAC9E,eAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,sBAAsB,CAAC;AACtE,eAAO,CAAC,WAAW,CAAC,iDAAiD,CAAC,GAAG,+BAA+B,CAAC;AACzG,eAAO,CAAC,WAAW,CAAC,2DAA2D,CAAC,GAAG,yCAAyC,CAAC;AAC7H,eAAO,CAAC,WAAW,CAAC,4CAA4C,CAAC,GAAG,6CAA6C,CAAC;AAClH,eAAO,CAAC,WAAW,CAAC,0DAA0D,CAAC,GAAG,mEAAmE,CAAC;;;;;;;;;;;ACzGtJ,sDAI8D;AAC9D,wCAA+C;AAC/C,6CAAiE;AACjE,kDAAsD;AAItD,qCAA2C;AAY3C,SAAS,qBAAqB,CAAC,MAAW,EAAE,IAAY;IACtD,IAAI,gBAAgB,GAAmC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrG,IAAI,gBAAgB,IAAI,IAAI,EAAE;QAC5B,OAAO,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;KACnE;SAAM;QACL,OAAO,gBAAgB,CAAC;KACzB;AACH,CAAC;AAID,IAAI,yBAAyB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9D,yBAAyB,CAAC,YAAY,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;AAE9E,IAAI,gBAAgB,GAAwB,IAAI,cAAO,EAAc,CAAC;AACtE,IAAI,uBAAuB,GAAG,CAAC,CAAC;AAErB,gBAAQ,GAAG;IACpB,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,SAAS;IACd,uBAAuB,EAAE,qCAAqC;IAC9D,0BAA0B,EAAE,yBAAU,CAAC,0BAA0B;IACjE,+BAA+B,EAAE,cAAc;IAC/C,kBAAkB,EAAE,4BAAkB;IACtC,YAAY,EAAE;QACZ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;QACR,YAAY;KACb,CAAC,GAAG,CAAC,UAAC,QAAgB,IAAK,eAAQ,GAAG,kBAAkB,EAA7B,CAA6B,CAAC;IAC1D,cAAc,EAAE,EAAE;IAOhB,SAAS,EAAT,UAAU,KAAyB;QACnC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QACD,yBAAyB,CAAC,SAAS,GAAG,KAAK,CAAC;QAC5C,OAAO,yBAAyB,CAAC,WAAW,IAAI,yBAAyB,CAAC,SAAS,CAAC;IACtF,CAAC;IAED,eAAe,EAAE,UAAU,SAAiB;QAC1C,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAGD,mBAAmB,EAAE,UAAU,GAAW,EAAE,aAAqB;QAArB,qDAAqB;QAC/D,OAAO,mCAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACjE,CAAC;IAOD,mBAAmB,EAAnB,UAAoB,IAAY,EAAE,aAAqB;QACrD,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClD,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC1C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;QAClC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9B,QAAS,CAAC,eAAe,GAAG,IAAI,CAAC;QACvC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAE1B,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YAElD,IAAI,KAAK,GAAU,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,GAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;YACnC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;aAAM;YAEL,QAAQ,CAAC,MAAM,EAAE,CAAC;SACnB;QAED,IAAI;YACF,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACjC;QAGD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,kBAAkB,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,kBAAkB,CAAC,KAAK,EAAE,CAAC;SAC5B;IACH,CAAC;IASC,oBAAoB,EAApB,UAAqB,aAA0B;QAC/C,IAAI,aAAa,IAAI,IAAI,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,UAAU,EAAE;YACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACzC;IACH,CAAC;IAMC,uBAAuB,EAAvB;QACA,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IASC,oBAAoB,EAApB;QACA,IAAI,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACxD,IAAI,sBAAsB,GAAG,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;SAClC;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAMC,qBAAqB,EAArB;QACA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,CAAC;IAMC,YAAY,EAAZ,UAAa,aAA0B;QACvC,IAAI,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAoB,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAOC,aAAa,EAAb,UAAc,aAA0B;QACxC,IAAI,aAAa,CAAC,iBAAiB,GAAG,CAAC,EAAE;YACvC,OAAO,aAAa,CAAC;SACtB;aAAM;YACL,OAAO,IAAI,CAAC,aAAa,CAAc,aAAa,CAAC,iBAAiB,CAAC,CAAC;SACzE;IACH,CAAC;IAOC,sBAAsB,EAAtB,UAAuB,OAAuC;QAC9D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAQC,yBAAyB,EAAzB,UAA0B,sBAA2B,EAAE,KAAa;QACpE,IAAI,sBAAsB,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;YACnD,IAAI,KAAK,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;aACtC;SACF;IACH,CAAC;IAYC,sBAAsB,EAAtB,UAAuB,sBAA2B,EAAE,gBAAqB;QACzE,IAAI,sBAAsB,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC9D,IAAI,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC7D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,IAAI,KAAK,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7C,OAAO,sBAAsB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC1C;aACF;SACF;IACH,CAAC;IAED,gBAAgB,EAAhB,UAAiB,OAAoB,EAAE,OAAe,EAAE,IAA8C,EAAE,OAAgB;QACtH,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;YAC9E,OAAO;SACR;QAGD,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC;SAChB;QAED,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,KAAa,CAAC,MAAM,GAAG,EAAE,OAAO,WAAE,IAAI,QAAE,OAAO,WAAE,CAAC;QAGnD,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAUD,QAAQ,EAAE;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IACzC,CAAC;IAKD,YAAY,EAAE,UAAU,KAAa;QACnC,OAAO,wBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAMD,UAAU,EAAE,UAAU,IAAU;QAG9B,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACtD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB;IACH,CAAC;IAUD,UAAU,EAAE,UAAU,OAAuC,EAAE,QAA4B;QACzF,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,QAAQ,IAAI,IAAI,EAAE;YAChF,OAAO;SACR;QAED,OAAO,OAAO,IAAI,IAAI,EAAE;YACtB,IAAI;gBACF,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC7B,OAAO,OAAO,CAAC;iBAChB;aACF;YAAC,OAAO,CAAC,EAAE;gBAEV,OAAO;aACR;YAED,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;SACjC;IACH,CAAC;IACD,OAAO,EAAE,UAAS,OAAoB,EAAE,aAA0B;QAChE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAe,aAAa,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,EAAE,UAAS,OAAoB,EAAE,aAA0B;QAC/D,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,YAAY,EAAE,UAAU,OAAoB,EAAE,aAA0B;QACtE,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;YACpC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;SAC/D;IACH,CAAC;IACD,WAAW,EAAE,UAAU,OAAoB,EAAE,aAA0B;QACrE,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;YACpC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;SAC3E;IACH,CAAC;IACD,EAAE,EAAE,UAAU,OAAoB,EAAE,QAAgB;QAClD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,QAAQ,IAAI,IAAI,EAAE;YAChF,OAAO;SACR;QAED,IAAI;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAClC;QAAC,OAAO,CAAC,EAAE;YAEV,OAAO;SACR;IACH,CAAC;IAMD,QAAQ,EAAE,UAAU,OAAuC,EAAE,SAAiB;QAC5E,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACzE,OAAO;SACR;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAQD,aAAa,EAAE,UAAU,OAAuC,EAAE,SAAiB;QACjF,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC9C;IACH,CAAC;IAOD,WAAW,EAAE,UAAU,OAAuC,EAAE,SAAiB;QAC/E,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACzE,OAAO;SACR;QACD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAWD,WAAW,EAAE,UAAS,OAAuC,EAAE,SAAiB,EAAE,KAAe;QAC/F,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACzE,OAAO,KAAK,CAAC;SACd;QAED,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC5C;QAED,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACrC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,MAAM,EAAE,UAAS,OAAuC;QACtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YACjD,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACzC;IACH,CAAC;IAMD,OAAO,EAAE,UAAU,IAAgB;QAA1B,iBAcR;QAbC,IAAI,MAAM,GAAe,EAAE,CAAC;QAC5B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,UAAC,YAAiB;gBAC7B,IAAI,YAAY,YAAY,KAAK,EAAE;oBACjC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAC,gBAAqB;wBACvD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,EAAE,UAAS,IAAY,EAAE,KAAa,EAAE,aAAqB;QAArB,qDAAqB;QACvE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACzD,OAAO,EAAE,CAAC;SACX;QAED,IAAI,SAAS,GAAuB,EAAE,CAAC;QAEvC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAGvC,IAAI,SAAS,GAAG,UAAU,SAAiB,EAAE,YAAqB,EAAE,SAAkB;YACpF,IAAI,SAA2B,CAAC;YAChC,IAAI,YAAY,EAAE;gBAChB,IAAI,SAAS,EAAE;oBAEb,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;iBACvD;qBAAM;oBAEL,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1C;aACF;YAED,IAAI,YAAY,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBAClC,YAAY,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,YAAY,IAAI,SAAS,IAAI,IAAI,EAAE;oBACrC,SAAS,CAAC,IAAI,CAAC;wBACb,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE;wBAC3B,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE;wBAChC,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;wBACnD,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAK,SAAS,CAAC,WAAW,EAAE,SAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAI,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAG;qBACpI,CAAC,CAAC;oBACH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;iBAC5C;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;wBACnD,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAEjD,IAAI,YAAY,CAAC;QACjB,GAAG;YACD,YAAY,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE;gBACzB,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE;gBAC9B,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;gBACnD,YAAY,EAAK,OAAO,CAAC,WAAW,EAAE,SAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAG;aAC9H,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACxC,QACM,OAAO,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;QAErC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5B,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;SAC7D;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mBAAmB,EAAE;QACnB,OAAO,IAAI,CAAC,GAAG,CACX,QAAQ,CAAC,IAAI,CAAC,YAAY,EAC1B,QAAQ,CAAC,IAAI,CAAC,YAAY,EAC1B,QAAQ,CAAC,eAAe,CAAC,YAAY,EACrC,QAAQ,CAAC,eAAe,CAAC,YAAY,EACrC,QAAQ,CAAC,eAAe,CAAC,YAAY,CACtC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAChC,CAAC;IACD,WAAW,EAAE,UAAU,KAAa;QAClC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,GAAM,KAAK,SAAI,SAAW,CAAC;QACpC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;YAC7C,SAAS,IAAI,CAAC,CAAC;YACf,KAAK,GAAM,KAAK,SAAI,SAAW,CAAC;SACjC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,EAAE,UAAU,KAAiB,EAAE,cAAmC;QACpE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,OAAO;SACR;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAE7B,IAAI,IAAI,GAAG,IAAI,EAAE;gBACf,OAAO,CAAC,CAAC,CAAC;aACX;iBAAM,IAAI,IAAI,GAAG,IAAI,EAAE;gBACtB,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,EAAE,UAAU;IAavB,qBAAqB,EAAE,UAAU,SAAiB,EAAE,OAAwB;QAC1E,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;YAC5D,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,WAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,WAAS,IAAI,IAAI,EAAE;gBACrB,OAAO,SAAS,CAAC;aAClB;YACD,IAAI,KAAK,GAAG,WAAS,CAAC,KAAK,CAAC,UAAC,MAAM;gBAGjC,OAAO,MAAM,KAAK,WAAU,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,uDAAuD,CAAC;aAC/D;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SACrD;QAED,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,MAAI,GAAG,MAAG,EAAE,IAAI,CAAC,CAAC;gBACtC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,kBAAkB,EAAE;QAClB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEzC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,IAAI,KAAK,UAAC;YAEV,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAkB,UAAiB,EAAjB,WAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAjB,cAAiB,EAAjB,IAAiB,EAAE;gBAAhC,IAAI,KAAK;gBACZ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC7B;aACF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,yBAAyB,EAAE,UAAS,KAAa,EAAE,YAAmB;QAAnB,kDAAmB;QACpE,IAAI;YACF,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,YAAY,EAAE;gBAChB,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAErD;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,WAAW,CAAC;SACpB;QAAC,OAAO,GAAG,EAAE;YAEZ,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IACD,6BAA6B,EAAE,UAAU,KAAa,EAAE,WAAkB;QAAlB,gDAAkB;QACxE,IAAI,CAAC,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,WAAW,EAAE;YACf,IAAI;gBACF,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;aAEjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;aAC9B;SACF;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,0BAA0B,EAAE,UAAU,GAAW;QAC/C,IAAI,KAAK,GAAG,mCAAmC,CAAC;QAChD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;aAC5C,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC;aAC7C,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,uBAAuB,EAAE,UAAU,cAAmB;QACpD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,OAAO,QAAQ,GAAG,WAAW,CAAC;SAC/B;QACD,IAAI,cAAc,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,YAAY,IAAI,IAAI,EAAE;YAClG,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE;gBAChD,WAAW,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAC/D;iBAAM;gBACL,WAAW,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAC/D;SACF;aAAM,IAAI,cAAc,IAAI,cAAc,CAAC,WAAW,IAAI,IAAI,EAAE;YAC/D,WAAW,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3D;QACD,OAAO,QAAQ,GAAG,WAAW,CAAC;IAChC,CAAC;IAOD,oBAAoB,EAAE,UAAU,UAAkB;QAChD,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;SAC1E;aAAM;YACL,OAAO,UAAU,CAAC;SACnB;IACH,CAAC;IAOD,IAAI,EAAE,UAAU,GAAW,EAAE,QAAuB;QAElD,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,QAAQ,GAAG,EAAE,CAAC;SACf;QAED,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzB,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACjC,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/D,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAC5D,IAAI;YACF,GAAG,CAAC,IAAI,CACN,MAAM,EACN,GAAG,EACH,KAAK,CACN,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACzD;YACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;gBACzB,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;iBAC3B;aACF;YACD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;gBACvB,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC/B,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;iBACzC;aACF;YACD,GAAG,CAAC,kBAAkB,GAAG;gBACvB,IAAI,GAAG,CAAC,UAAU,KAAK,cAAc,CAAC,IAAI,EAAE;oBAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;wBAC5C,IAAI,OAAO,IAAI,IAAI,EAAE;4BACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;4BAC3C,IAAI,CAAC,iBAAiB,EAAE;gCACtB,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;6BAC3D;yBACF;qBACF;yBAAM;wBACL,IAAI,KAAK,IAAI,IAAI,EAAE;4BACjB,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;4BAC3B,IAAI,CAAC,iBAAiB,EAAE;gCACtB,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;6BACzD;yBACF;qBACF;oBACD,IAAI,QAAQ,IAAI,IAAI,EAAE;wBACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;wBAC9B,IAAI,CAAC,iBAAiB,EAAE;4BACtB,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC5D;qBACF;iBACF;YACH,CAAC,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;SACZ;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,iBAAiB,EAAE;gBACtB,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACzD;SACF;IACH,CAAC;IAKD,mBAAmB,EAAE;QACnB,OAAO,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IACD,qBAAqB,EAAE;QACrB,OAAO,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IAYD,4BAA4B,EAAE,UAAU,KAAU;QAChD,IAAI,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,CAAC;QAEd,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE;YAEzB,SAAS,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBACxD,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;aACpD;iBAAM;gBACL,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAID,OAAO,EAAP,UAAQ,KAAiB,EAAE,GAAqB;QAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAiB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;YAAnB,IAAI,IAAI;YACX,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;gBAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5B;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,iBAAiB,EAAjB;QAEE,IAAI,cAAc,GAAG,CACnB,QAAQ,CAAC,QAAQ,EAAE;YACnB,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI;YACxC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,eAAe;YACnD,QAAQ,CAAC,aAAa,CACR,IAAI,IAAI,CAAC;QAEzB,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAgB,CAAC;QACnF,OAAO,cAAc,CAAC;IACxB,CAAC;IAOD,KAAK,EAAL,UAAM,KAAa,EAAE,OAA2B;QAC9C,IAAI,OAAO,GAAiB,OAAO,CAAC,aAAa,CAAC,KAAK,CAAE,CAAC;QAC1D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAID,KAAK,EAAE,UAAS,YAAoB;QAElC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,YAAY,CAAC;IACrB,CAAC;IACD,WAAW,EAAX,UAAY,KAAa,EAAE,SAAiB;QAC1C,OAAO,yBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,qBAAqB,EAArB,UAAsB,KAAoB;QACxC,OAAO,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC;IAC1D,CAAC;IAMD,mBAAmB,EAAnB,UAAoB,MAA0B;QAE5C,IAAI,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAIjD,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACxE,EAAC,IAAI,EAAE,MAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,4CAAqB,CAAC,UAAU,CAAE,EAAC,CAAC,CAAC,CAAC;QAEhG,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;YACxE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAQ,CAAC,yBAAyB,CAAC;cAC3D,GAAG,GAAG,uCAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO,cAAc,CAAC;IACxB,CAAC;IAOD,8BAA8B,EAA9B,UAA+B,MAA0B;QAEvD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACzD,EAAC,IAAI,EAAE,MAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,4CAAqB,CAAC,UAAU,CAAE,EAAC,CAAC,EAC5F,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAQ,CAAC,yBAAyB,CAAC;cAC9F,GAAG,GAAG,uCAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAOD,4BAA4B,EAA5B,UAA6B,MAA0B;QAErD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAEzD,gBAAQ,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;SACjD;aAAM;YAGL,IAAI,cAAc,GAAG,gBAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAE1D,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAEtD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAE1C,cAAc,CAAC,KAAK,EAAE,CAAC;YAEvB,gBAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;IACH,CAAC;IAKD,yBAAyB,EAAE,UAAU;IAErC,eAAe,EAAf,UAAgB,KAAoB;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,GAAG,CAAC;SACZ;QAGD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA6B,KAAO,CAAC,CAAC;SACvD;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,CAAC;QACV,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI;gBACP,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,IAAI;gBAIP,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAsB,KAAO,CAAC,CAAC;SAClD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB,EAAtB,UAAuB,QAAc;QAEnC,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAGD,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACvB,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAG7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC;QAGD,IAAI,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAEnF,IAAI,IAAI,cAAc,CAAC;QACvB,KAAK,IAAI,cAAc,CAAC;QACxB,GAAG,IAAI,aAAa,CAAC;QACrB,MAAM,IAAI,aAAa,CAAC;QAGxB,OAAO,EAAE,IAAI,QAAE,GAAG,OAAE,KAAK,SAAE,MAAM,UAAE,CAAC;IACtC,CAAC;IAED,SAAS,EAAT,UAAU,OAAoB,EAAE,cAAsB;QAAtB,uDAAsB;QACpD,IAAI,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAG3C,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACvF,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAGpF,IAAI,cAAc,EAAE;YAClB,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE;gBAClD,IAAI,UAAU,GAAG,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC5D,IAAI,IAAI,UAAU,CAAC;aACpB;YAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;gBAChD,IAAI,SAAS,GAAG,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1D,GAAG,IAAI,SAAS,CAAC;aAClB;SACF;QAED,OAAO,EAAE,IAAI,QAAE,GAAG,OAAE,CAAC;IACvB,CAAC;IAED,yCAAyC,EAAzC,UAA0C,SAAsB,EAAE,IAAU;QAE1E,IAAI,GAAG,GAAG,gBAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAElB,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;QAGlC,IAAI,eAAe,GAAG,gBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAGpD,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC;QAC7B,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC;QAG3B,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;QAE1B,OAAO,EAAE,IAAI,QAAE,GAAG,OAAE,KAAK,SAAE,MAAM,UAAE,CAAC;IACtC,CAAC;IAED,iCAAiC,EAAjC,UAAkC,SAAsB,EAAE,OAAoB,EAAE,cAAsB;QAAtB,uDAAsB;QAEpG,IAAI,MAAM,GAAG,gBAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAErB,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAChC,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QAGlC,IAAI,cAAc,EAAE;YAClB,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE;gBAClD,IAAI,UAAU,GAAG,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC5D,KAAK,IAAI,UAAU,CAAC;aACrB;YAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;gBAChD,IAAI,SAAS,GAAG,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1D,MAAM,IAAI,SAAS,CAAC;aACrB;YAED,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,EAAE;gBACpD,KAAK,IAAI,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aACtD;YAED,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE;gBACtD,MAAM,IAAI,gBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACxD;SACF;QAGD,IAAI,eAAe,GAAG,gBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAGpD,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC;QAC7B,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC;QAG3B,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;QAE1B,OAAO,EAAE,IAAI,QAAE,GAAG,OAAE,KAAK,SAAE,MAAM,UAAE,CAAC;IACtC,CAAC;IAMD,QAAQ,EAAR,UAAS,OAAoB;QAC3B,IAAI,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAOF,SAAS,gBAAgB,CAAC,SAAiC;IAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;QACrB,OAAO,4CAAqB,CAAC,UAAU,CAAC;KACzC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAMD,SAAS,cAAc,CAAC,UAAsB;IAC5C,IAAI,UAAU,EAAE;QACd,QAAQ,UAAU,CAAC,MAAM,EAAE;YACzB,KAAK,OAAO;gBACV,uBAAuB,EAAE,CAAC;gBAC1B,MAAM;YAER,KAAK,SAAS,CAAC;YACf,KAAK,OAAO,CAAC;YACb,KAAK,UAAU,CAAC;YAChB;gBACE,IAAI,uBAAuB,GAAG,CAAC,EAAE;oBAC/B,uBAAuB,EAAE,CAAC;iBAC3B;gBACD,MAAM;SACT;QACD,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AACH,CAAC;AAID,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;IAChE,OAAO,CAAC,SAAS,CAAC,OAAO;QACjB,OAAO,CAAC,SAAU,CAAC,eAAe;YAClC,OAAO,CAAC,SAAU,CAAC,kBAAkB;YACrC,OAAO,CAAC,SAAU,CAAC,iBAAiB;YACpC,OAAO,CAAC,SAAU,CAAC,gBAAgB;YACnC,OAAO,CAAC,SAAU,CAAC,qBAAqB;YAC9C,UAAU,CAAM;gBACd,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACrE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACrB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;iBAC5C;gBACD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC;CACL;AAGD,IAAI,CAAO,IAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE;IACxC,IAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG;QAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjF,CAAC,CAAC;CACH;;;;;;;;;;;;;;;;;;;;AChnCyC;AACA;AACI;AAE2B;AACb;AACyB;AAKrF;IAA0C,6CAAa;IACrD,iEAAsB,WAAuB;QAA7C,YACE,kBAAM,OACP;QAFqB,iBAAW,GAAX,WAAW,CAAY;;IAE7C,CAAC;IACH,CAAC;AAAD,CAAC,CAJyC,UAAU,GAInD;;AAKD;IAAgC,mCAAa;IAgB3C;QAAA,YACE,IACD;QAZD,eAAS,GAAkB,EAAE,CAAC;QAE9B,YAAM,GAAG,KAAK,CAAC;QAEf,eAAS,GAAG,GAAM;QAElB,cAAQ,GAAG,KAAK,CAAC;QAEjB,iBAAW,GAAQ,GAAK;;IAIxB,CAAC;IAhBD;QACE,OAAO,IAAI,qFAAkB,CAAI,CAAC,CAAC;IACrC,CAAC;IAqBD,EAAgC;QAC9B,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAM;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,OAAY,OAAO,CAAC;IACtB,CAAC;IAED,EAAc;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,IAA0B;SACrC;QACD,CAAqB;YACX,kBAAmB;YAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAG;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAE;gBAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;IACH,CAAC;IAED,EAAc;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,IAA0B;SACrC;QACD,CAAqB;QACrB,IAAI,CAAC,WAAW,GAAG,EAAI;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,sBAAmB;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAG;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,CAA0B;IAC5B,CAAC;IAED;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,IAA0B;SACrC;QACD,CAAsB;QACd,sBAAmB;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAG;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpB;QACD,CAA0B;IAC5B,CAAC;IAED;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAK;IACxB,CAAC;IAGD,EAAuC;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,IAA0B;SACrC;SAAM;YACL,EAAuC;SACxC;IACH,CAAC;IAGD,EAAoC;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,IAA0B;SACrC;SAAyB;YACxB,UAAU,CAAC,KAAK,CAAC,IAAkB;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;SAA0B;YACzB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,EAAM;SAC3B;SAAM;YACL,EAAgC;YAChC,OAAO,IAAI,mBAAmB,CAAC,CAAkB;SAClD;IACH,CAAC;IAED;QACE,IAAM,UAAU,GAAG,IAAI,UAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,+DAAK;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IAzFM,EAAsE;QAC3E,OAAO,IAAI,gBAAgB,CAAI,WAAW,EAAE,IAAQ;IACtD,CAAC;IAwFH,EAAC;CAAA,CA/G+B,UAAU,GA+GzC;gEA/GY,GAAO;AAoHpB;IAAyC,4CAAU;IACjD,gEAAsB,WAAyB,EAAE,KAAsB;QAAvE,YACE,iBAAO,SAER;QAHqB,iBAAW,GAAX,WAAW,CAAc;QAE7C,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;IACvB,CAAC;IAED,CAAa;QACH,kCAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAM;YACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAED,EAAc;QACJ,kCAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAO;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;QACU,kCAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAU;YACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAGD,EAAoC;QAC1B,wBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,EAAkC;SAC1C;SAAM;YACL,EAA0B;SAC3B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CApCwC,OAAO,GAoC/C;;;;;;;;;;;;AClID,kDAAsD;AAE3C,iBAAS,GAAG;IAErB,YAAY,EAAE,EAAE;IAEhB,eAAe,EAAE,UAAU,UAAkB,EAAE,YAAqB;QAClE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;QAC7C,IAAI;YACF,IAAI,YAAY,EAAE;gBAChB,mCAAe,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC;aAC7D;iBAAM;gBACL,mCAAe,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC;aACxD;SACF;QAAC,OAAO,CAAC,EAAE;SAEX;QACD,OAAO,UAAU,GAAG,UAAU,GAAG,eAAe,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,kDAAkD,CAAC;IAC3I,CAAC;IAOD,cAAc,EAAE,UAAU,YAAoB;QAE5C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;YAClC,IAAI,cAAc,GAAG,UAAU,GAAQ;gBAAE,gBAAqB;qBAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;oBAArB,+BAAqB;;gBAC5D,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;oBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;iBACvC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACnD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;aACzC;SACF;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,aAAa,EAAE,UAAS,WAAsD,EAAE,aAAqB;QACnG,OAAO;YACL,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;YACpC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAUD,GAAG,EAAE,UAAU,GAAQ;QAAE,gBAAqB;aAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;YAArB,+BAAqB;;QAC5C,IAAU,IAAI,CAAC,YAAa,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACD,IAAI,EAAJ;QAEE,IAAI;YACF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,cAAc,GAAG,cAAc,CAAC;YACpC,KAAgB,UAAyB,EAAzB,WAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;gBAAtC,IAAI,GAAG;gBACV,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC5B,IAAI,mCAAe,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE;wBAChD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;qBACzC;iBACF;aACF;SACF;QAAC,OAAO,CAAC,EAAE;SAEX;IACH,CAAC;CACF,CAAC;AAGF,iBAAS,CAAC,GAAG,GAAG,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;AAE9C,iBAAS,CAAC,IAAI,EAAE,CAAC;;;;;;;;;AC/HjB;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAOqC;AAmDzE,eAAe,SAAyB;AAC7C,IAAO,SAAS,CAAC,CAAC,CAAC,WAAkC;AACvD,CAAC;AAED,CAAuD;AACrD,IAAO,IAAI,UAAU,CAAQ,iBAA+D;AAC9F,CAAC;;;;;;;;;AChED;AAAA;AAAA;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACM;AAiDG;;;;;;;;;AClDrD;AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,IAA4D;;;;;;;;;ACErG;AAAA,MAAM,sBAAsB,KAAU;AACpC,IAAO,KAAK,IAAI,OAAa,KAAM,CAAC,GAAwB;AAC9D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ2C;AAS5C;IAA6C,qEAAc;IAEzD,2CAAsB,SAAkC,EAClC,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,GAClB;QAHqB,eAAS,GAAT,SAAS,CAAyB;QAClC,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,CAA8E;QAAjB,iCAAiB;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,CAAW;YAC/B,OAAO,GAA2C;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,CAA8B;IAClC,CAAC;IACS,iCAA8E;QAAjB,iCAAiB;MAIb;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAuB;SACT;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,CAAiB;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,CArC4C,WAAW,GAqCvD;;;;;;;;;;;;;AC7CiD;AAElD;IAA6C,2EAAc;IAA3D;;IA2BA,CAAC;IA1BQ,CAA+B;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAU;QAEpB,0BAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,CAAc;QACvB,IAAI,KAAK,GAAW,GAAe;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS;QAEnC,GAAG;YACuD;gBACtD,MAAM;aACP;SACF,IAAuD;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,CAA+C;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,CAAY;SACb;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA3B4C,cAAc,GA2B1D;;;;;AC9BD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACM;AAmCY;;;;;ACpCpC;AAEM;AAGlD;IAA0C,qEAAc;IAOtD,2CAAY,eAA0D,EACnD,CAA4C;QADnD,oDAAsC,GAAoB;QACnD,iCAA4C;QAD/D,YAEE,4CAAM,CACP;QAFkB,CAA4C;QAJxD,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC,CAAC;;IAK1B,CAAC;IAOM,gCAAP;QAEQ,aAA2B,EAA1B,CAA2B;QAClC,IAAI,KAAU,EAAE,MAAyB;QAEzC,OAAO,CAAC,KAAuE;KACrB;gBACtD,MAAM;aACP;SACF;QAED,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAqB;aACtB;SACW;SACb;IACH,CAAC;IAhCgB,iCAA6B;IAiChD,SAAC;CAAA,CAnCyC,cAAc,GAmCvD;SAnCgC;AAyCjC;IAAsC,yCAAc;IAIlD,uBAAsB,KAEoC;0CAApC,GAAoC;AAGzD;sCALqB,MAAS,GAAT,SAAS,CAAsB;kCAC/B,IAAI,CAA+C;QACnD,WAAK,GAAL,KAAK,CAA+B;QAJhD,YAAM,GAAY,IAAI,CAAC;QAM/B,KAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,CAAM;;IACvC,CAAC;IAEM,gCAAqC;QAAjB,kBAAiB;QAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,OAAO,SAA6B;SACrC;QACD,IAAI,CAAC,MAAM,EAAS;KAKwC;QAC5D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,MAAM,CAAC,QAAQ,CAAe;IACvC,CAAC;IAES,KAA2E;QAAjB,eAAiB;QACnF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,CAAqB;QAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,OAAmC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAES,EAA2E;QAAjB,iCAAiB;QACnF,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,KAAgC;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxB,OAAO,iBAAM,IAAuB;SACrC;IACH,CAAC;IAEa,gBAAuD;MAC1C;YACvB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE;gBACvB,OAAO,CAAC,CAAC;aACV;SAA6B;gBAC5B,OAAO,CAAC,CAAC;MACV;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC;aACX;SACF;MAA6B;YAC5B,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,CAAC,CAAC,CAAC;SACX;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,CA1DqC,WA0DrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAOH;AACtC,IAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,WAAmG;AACzH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACI;AAER;AACG;AACQ;AAsKvB;AAEzB,CAAI,cAAc,EAAE;QAClB,IAAI,WAAW,CAAC,CAAiB;YAC/B,0CAAS,CAAG,cAAc,CAAC;SAC5B;SAAM;YAEL,EAAO;gBAAC,cAAc;qBAAd,SAAc;oBAAd,yBAAc;;gBAAK,CAE1B;YAF0B,CAE1B,CAAC;SACH;KACF;IAED,CAAO;QAAqB,cAAc;aAAd,SAAc;YAAd,yBAAc;;QACxC,CAAqB;QACrB,IAAI,OAAwB,CAAC;QAC7B,IAAM,MAAM,EAAG;YACb,OAAO;YACP,OAAO;YACP,YAAY;YACZ,SAAS;SACV,CAAC;QACF,EAAmC;YACjC,IAAI,CAAC,kCAAW;gBACd,IAAI,CAAC,OAAO,CAAE;oBACZ,OAAO,GAAG,CAAsB;oBAChC,IAAM,OAAO,GAAG;wBAAC,mBAAmB;6BAAnB,UAAmB,EAAnB,EAAmB;4BAAnB,8BAAmB;;wBAClC,CAA+D;wBAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,EAAI;wBACF,CAAgD;qBACjD;oBAAC,CAAY;wBACZ,OAAO,CAAC,CAAW;qBACpB;iBACF;gBACD,CAAqC;aACtC;aAAM;gBACL,EAAgC;oBAC9B,IAAI,KAAoB;iBACzB,CAAC;gBACF,EAAgE;aACjE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAeD,CAAqF;IAArF,iBAqBC;IApBC,IAAM,IAAI,GAAG,IAAI,CAAC;IACV,gBAAmC;IACnC,sCAAY,EAAE,wBAAO,EAAE,UAAqB;IAC9C,4BAAO,CAAY;IACzB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,CAAuC;QAEjD,IAAM,OAAO,GAAG;YAAC,mBAAmB;iBAAnB,UAAmB,EAAnB,EAAmB;gBAAnB,8BAAmB;;YAClC,CAA+D;YAC/D,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAe,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,QAAc;QAClF,CAAC,CAAC;QAEF,EAAI;YACF,CAAgD;SACjD;QAAC,CAAY;YACZ,OAAO,CAAC,CAAW;SACpB;KACF;IAED,CAAwC;AAC1C,CAAC;AAOD,CAAiF;IACvE,uBAAK,EAAE,CAAkB;IACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAOD,CAAoF;IAC1E,mBAAG,EAAE,MAAkB;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;;;;ACnRD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACI;AAGR;AACW;AACR;AAuJf;AAGzB,CAAI,cAAc,EAAE;QAClB,IAAI,WAAW,CAAC,CAAiB;YAC/B,0CAAS,CAAG,cAAc,CAAC;SAC5B;SAAM;YAEL,EAAO;gBAAC,cAAc;qBAAd,SAAc;oBAAd,yBAAc;;gBAAK,CAE1B;YAF0B,CAE1B,CAAC;SACH;KACF;IAED,CAAO;QAAoB,cAAc;aAAd,SAAc;YAAd,yBAAc;;QACvC,CAA+B;YAC7B,OAAO,EAAE,CAAS;YAClB,IAAI;YACJ,WAAY;YACZ,SAAS;YACT,OAAO,EAAE,IAAI;SACd,CAAC;QACF,EAAmC;YACzB,kDAAO,CAAY;YACrB,4BAAO,CAAY;YACzB,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,OAAO,CAAE;oBACZ,OAAO,GAAG,CAAuC;oBACjD,IAAM,OAAO,GAAG;wBAAC,mBAAmB;6BAAnB,UAAmB,EAAnB,EAAmB;4BAAnB,8BAAmB;;wBAClC,CAA8B;wBAE9B,IAAI,GAAG,EAAE;4BACP,MAAmB;4BACnB,OAAO;yBACR;wBAED,CAA+D;wBAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,EAAI;wBACF,CAAgD;qBACjD;oBAAC,CAAY;wBACZ,OAAO,CAAC,CAAW;qBACpB;iBACF;gBACD,CAAqC;aACtC;aAAM;gBACL,EAA0F;aAC3F;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAgBD,CAAqF;IAArF,kCA0BC;IAzBS,iBAAsC;IACtC,sCAAY,EAAE,kBAAI,EAAE,sBAAqB;IACjD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,CAAuC;QAEjD,IAAM,OAAO,GAAG;YAAC,mBAAmB;iBAAnB,UAAmB,EAAnB,EAAmB;gBAAnB,8BAAmB;;YAClC,CAA8B;YAC9B,IAAI,GAAG,EAAE;gBACP,KAAI,CAAkF;aACvF;aAAM;gBACL,EAA+D;gBAC/D,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAqB,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,QAAc;aACvF;QACH,CAAC,CAAC;QAEF,EAAI;YACF,CAAgD;SACjD;QAAC,CAAY;YACZ,IAAI,CAAC,GAAG,CAA8E;SACvF;KACF;IAED,CAAwC;AAC1C,CAAC;AAOD,CAAgD;IACtC,sCAAK,EAAE,CAAgB;IAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAOD,CAAkD;IACxC,mCAAG,CAAE,MAAgB;IAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;AChR0C;AAED;AACV;AAC8B;AACT;AAGd;AAqIjC;AACJ,cAAuE;SAAvE,UAAuE;QAAvE,4BAAuE;;IAGvE,CAA6B;IAC7B,IAAI,OAAO,OAAO,CAAqC;QAErD,cAAc,GAAG,OAAO,CAAC,GAAG,EAAc,CAAC;KAC5C;IAID,CAAiD;QAC/C,OAAO,GAAG,OAAO,CAAC,CAAC,CAA8B,CAAC;KACnD;IAED,CAA0B;QACxB,OAAO,KAAK,CAAC;KACd;IAED,CAAoB;QAElB,OAAO,QAAQ,CAAC,CAEd;KACH;IAED,CAAgC;QAC9B,OAAO,gCAAI,YAAkB,CAAC,UAAU,CAAwC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC;AAMD;IAAuC,uDAAqB;IAK1D,yCAAY,WAA0B,EAClB,KAAkC;QADtD,YAEE,kBAAM,WAAW,CAAC,KAanB;QAdmB,aAAO,GAAP,OAAO,CAA2B;QAL9C,eAAS,GAAG,CAAC,CAAC;QAEd,gBAAU,GAAG,CAAE;QAMrB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAO;QAC3B,KAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAM;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAM,iBAAiB,GAA4C;YAEnE,IAAI,iBAAiB,EAAE;gBACrB,KAAI,CAAC,GAAG,CAAC,UAAmB;aAC7B;SACF;;IACH,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;QACrC,IAAI,CAAE,QAAgB,CAAC,SAAS,EAAE;YAC/B,QAAgB,CAAC,SAAS,GAAG,CAAK;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,EAA8C;QACtC,aAA0C,EAAxC,4BAAW,EAAE,kBAA4B;QACjD,IAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAE,QAAgB,CAAC,SAAS,CAAE;YAChC,WAAW,CAAC,QAAQ,EAAG;YACvB,OAAO;SACR;QAED,CAAiB;QAEjB,IAAI,IAAI,CAAC,QAAmB;YAC1B,OAAO;SACR;QAED,CAAwB;YACtB,WAAW,CAAC,IAAI,CAAC,IAAQ;SAC1B;QAED,CAAuB;IACzB,CAAC;IACH,EAAC;AAAD,CAAC,CArDsC,eAAe,GAqDrD;;;;;;;;;;ACtOD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACD;AACM;AAET;AAEc;AAsKrD,sBAAM,cACJ,MAA0B,EAC1B,OAEwC;AAGxC,CAAI,UAAU,CAAC,OAAO,CAAC,EAAE;QAEvB,4CAAc,GAAG,KAAQ;QACzB,OAAO,GAAG,SAAS,CAAC;KACrB;IACD,CAAoB;QAElB,OAAO,SAAS,CAEd;KACH;IAED,CAAmC;QACjC,uCAAiB,CAAI;YACnB,IAAI,SAAS,CAAC,GAAY;gBACxB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAiC;aACxD;aAAM;gBACL,EAAmB;aACpB;QACH,CAAC;QACD,CAA2F;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,CAE4D;IAC1D,IAAI,WAAuB,CAAC;IAC5B,IAAI,YAA0B;QAC5B,IAAM,QAAM,GAAG,SAAS,CAAC;QACzB,SAAS,CAAC,eAA8C;QACxD,WAAW,GAAG,cAAM,eAAM,CAAC,YAAiD;KAC7E;KAAgD;QAC/C,IAAM,QAAM,GAAG,SAAS,CAAC;QACzB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAS;QACjC,WAAW,GAAG,cAAM,KAA+B;KACpD;KAA8C;QAC7C,IAAM,QAAM,GAAG,SAAS,CAAC;QACzB,SAAS,CAAC,WAAW,CAAC,GAAwC;QAC9D,WAAW,GAAG,cAAM,cAA8D;KACnF;KAAkD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAI,SAAiB,CAAC,KAAsB;YAC7D,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAuB;SAC1E;KACF;KAAM;QACL,EAA4C;KAC7C;IAED,CAA4B;AAC9B,CAAC;AAED,CAA+C;IAC7C,OAAO,SAAS,IAAI,OAAO,SAAS,CAAC,IAA6E;AACpH,CAAC;AAED,CAAiD;IAC/C,OAAO,SAAS,IAAI,OAAO,SAAS,CAAC,EAAE,IAAuD;AAChG,CAAC;AAED,CAAqC;IACnC,OAAO,SAAS,IAAI,OAAO,IAAiG;AAC9H,CAAC;;;;AChPD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACD;AACM;AAET;AAuDmC;AAExE,CAAI,cAAc,EAAE;QAElB,OAAO,UAEL;KACH;IAED,CAAyC;QACvC,IAAM,mCAAU;YAAC,WAAS;iBAAT,MAAS;gBAAT,sBAAS;;YAAK,CAA0C;QAA1C,CAA0C,CAAC;QAE1E,EAAkB;QAClB,IAAI;YACF,CAA+B;SAChC;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,CAAgC;YAC9B,yCAAO,KAAS,CAAC;SAClB;QAED,CAA+C;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;;;;ACrFD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEC;AAEM;AA0JM;AAEtD,CAAI,cAAgC,CAAC;IACrC,IAAI,YAAe,CAAC;IAEpB,IAAI,SAAS,CAAC,GAAa;QACzB,IAAM,OAAO,GAAG,UAA+C;QAC/D,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,cAAc,GAAG,OAAO,CAAC,CAA+C;QACxE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAC/B;KAA+F;QAC9F,YAAY,GAAG,qBAA0B,CAAC;QAC1C,cAAc,GAAG,QAA4B,CAAC;QAC9C,SAAS,GAAG,kCAA4C;KACzD;KAAM;QACL,EAA0C;QAC1C,cAAc,GAAG,oBAA+C;KACjE;IAED,CAAmC;QACjC,IAAI,mCAAQ,OAAY,CAAC;QACzB,IAAI,SAAS,EAAE;YACb,OAAO,KAAsD;gBAC3D,UAAU;gBACV,OAAO;gBACP,SAAS;gBACT,cAAc;gBACd,KAAK;aACN,CAAC,CAAC;SACJ;QAED,CAAG;YACc;gBACb,IAAI,QAAyB;gBAC7B,IAAI;oBACF,CAAmC;iBACpC;gBAAC,CAAY;oBACZ,SAAsB;oBACtB,OAAO,SAAS,CAAC;iBAClB;gBACD,CAAsB;oBACpB,UAAU,CAAC,QAAW;oBACtB,MAAM;iBACP;aACF;YACD,CAAa;YACb,IAAI;gBACF,CAA8B;aAC/B;YAAC,CAAY;gBACZ,SAAsB;gBACtB,OAAO,SAAS,CAAC;aAClB;YACD,CAAuB;YACvB,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,MAAM;aACP;YACD,CAAI;gBACF,CAAuB;aACxB;YAAC,CAAY;gBACZ,SAAsB;gBACtB,OAAO,SAAS,CAAC;aAClB;SACF,IAAc;QAEf,OAAO,QAAU;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,CAAgG;IACtF,+BAAgC;IACxC,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,CAAuB;QACrB,IAAI;YACF,CAAyC;SAC1C;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;KACF;KAAM;QACL,EAAyB;KAC1B;IACD,CAAe;QACb,IAAI,QAAyB;QAC7B,IAAI;YACF,CAAyC;SAC1C;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,CAAsB;YACpB,UAAU,CAAC,QAAW;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,CAAuB;YACrB,OAAO,SAAS,CAAC;SAClB;KACF;IACD,CAAa;IACb,IAAI;QACF,CAA0C;KAC3C;IAAC,CAAY;QACZ,SAAsB;QACtB,OAAO,SAAS,CAAC;KAClB;IACD,CAAuB;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,CAAuB;IACvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,CAA4B;AAC9B,CAAC;;;;ACjRD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACA;AA4Fe;AAD7C,4CAA4C;IAC5C,4BAA6C;IAE7C,OAAO,KAAK,CAAM,2BAA8C;AAClE,CAAC;;;;;;;;;;;ACjGD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACA;AAEG;AAwCW;AADhC,gCAAU;IACV,wBAAgC;IACvD,IAAI,CAAC,SAAS,CAAwB;KACzB;KACZ;IAED,IAAI,CAAC,SAAS,kCAAI,CAA0C;KACxC;KACnB;IAED,OAAO,IAAI,IAA6B;KAGpC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+CAA4E;IAClE,iCAAU,EAAE,gCAAO,EAAE,qBAAM,CAAW;IAC9C,UAAU,CAAC,IAAI,CAAC,MAAS;IACzB,GAAoE;AACtE,CAAC;;;;;;;;;;;AChED,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACP;AA6Ba;AAK1C;AACL,IAAO,KAAK,CAAC;AACf,CAAC;;;;;;;ACrCD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEb;AACY;AACV;AAwE1B;AAAkC,cAEqD;SAFrD,UAEqD;QAFrD,4BAEqD;;IAE3F,CAA0B;QACxB,OAAO,KAAK,CAAC;KACd;IAEO,CAAgC;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,0CAAI,EAAO;KACpC;IAED,CAAgC;QAC9B,IAAM,mCAAU,WAAM,aAEpB;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,+BAAI,SAAC,KAAK,IAAI,CAAyB;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;;;;ACrGD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGI;AA+BgB;AAC7D,CAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,EAAkC;YAC3C,IAAM,mCAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAmC;gBAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,UAAqB;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAQ;iBAClC;aACF;YACD,CAAsB;QACxB,CAAC,CAAC,CAAC;KACJ;KAAM;QACL,EAA6C;YAC3C,IAAM,mCAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,KAAe;YACxC,YAAY,CAAC,GAAG,CACd,0CAAkB,CACf,EAAiE;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAGD,CACkJ;AACxI,wBAAI,EAAE,MAA+C;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,IAAQ;YACvB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAa;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAA4D;SAC5F;SAAM;YACL,EAAsB;SACvB;KACF;AACH,CAAC;;;;;;;ACtED,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoCI;AAFzB,8BAAiB;IACjB,uBAAiB;IAErC,OAAO,IAAI,GAA6B;KACxB;QACd,IAAI,OAAO,GAAG,KAAM;QAEpB,IAAI,MAAW;KAC0B;+CAChC,KAAE,KAAK,SAAE,KAAiB;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;eACE;SAChB;cACP;gBAC0B;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,IAAc;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,mBAA+C,EAAU;IACrD,KAA0C;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;OACI;CACf;AACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAQ;QACrB,OAAO;KACR;IAED,CAAwB;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAE;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;;;;;;;;;;;;;;AClFD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEb;AACE;AA+B0E;AACxG,IAAO,IAAI,UAAU,CAAI,oBAAU;QACjC,IAAI,mCAAgC;QAEpC,IAAI;YACF,CAA6B;SAC9B;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,CAAsC;QACtC,IAAI;YACF,CAAqC;SACtC;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,CAA6C;QAC7C,IAAM,YAAY,GAAG,+BAAO,SAAS,CAAC,wBAAY;QAClD,OAAO;YACL,YAAY,CAAC,GAAc;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,EAAc;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;;;;;;;;;;AC7DD;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;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,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAwB;AACiC;AACnB;AAEP;AAGb;AACgB;AACJ;AACF;AAGW;AACG;AACA;AAC2B;AACA;AAC/C;AAGM;AACJ;AAGI;AAGX;AACA;AACQ;AACQ;AAGsB;AAC1B;AAC0B;AACR;AACd;AAGM;AACQ;AACN;AACd;AACF;AACA;AACM;AACR;AACU;AACc;AAChB;AACV;AACU;AACN;AACA;AACN;AAC8B;AACxB;AACF;AACE;AACU;AACV;AACA;AACJ;AAGI;AACA;AAMT;;;;;;;;;;;;;;AC1EA;AAwCqC;AAC9E,IAAO,sBAAsB,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,CAAE;YACjC,MAAM,IAAI,SAAS,CAAC,YAA8D;SACnF;QACD,CAAsD;IACxD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,qBAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,EAA6B;IACrF,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAAkC,yCAAa;IAI7C,6DAAY,WAA0B,EAClB,KACI;QAFxB,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,aAAO,GAAP,OAAO,CAAgC;QAJ3D,WAAK,GAAW,CAAC,CAAC;QAOhB,KAAI,CAAC,OAAO,GAAmB;;IACjC,CAAC;IAIS,CAAc;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,CAA8D;SAC/D;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAA8B;IAChC,CAAC;IACH,EAAC;AAAD,CAAC,CAvBiC,UAAU,GAuB3C;;;;;;;;;ACvFD;AAAA;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEf;AAE7B;IACE,IAAI;QACF,CAA6C;KAC9C;IAAC,CAAU;QACV,OAAkB;QAClB,gEAAO,OAAY;KACpB;AACH,CAAC;AAED,CAAkD;AAChD,WAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV2C;AACM;AACG;AACS;AA6CqB;AACjF,IAAO,8BAAoD;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,MAAmB;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,uBAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,cAA0D;IAC9E,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,EAAwB;IACxF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,iDAAqB;IAMvD,sCAAY,WAA0B,EAClB,KAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,GAAK;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAM,QAAQ,GAAG,GAAuC;YACxD,IAAI,QAAQ,uCAAK,KAAW,EAAE;gBAC5B,IAAI,CAAC,0CAAkB,GAAe;aACvC;aAAM;gBACL,EAA4D;gBAC5D,IAAI,CAAC,iBAAiB,wDAAI,EAAiB,CAAC,MAAM,EAAE;oBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;iBAAM;oBACL,EAA6C;iBAC9C;aACF;SACF;IACH,CAAC;IAED;QACQ,aAAqC,EAAnC,gBAAK,EAAE,kBAA6B;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAY;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,SAAS,CAAC,WAAW,CAAG;SACzB;QACD,CAAc;YACZ,IAAI,CAAC,KAAK,CAAQ;YAClB,IAAI,CAAC,QAAQ,GAAG,EAAM;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAQ;SAC9B;IACH,CAAC;IAED,EAA+E;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACH,EAAC;AAAD,CAAC,CAlDmC,eAAe,GAkDlD;;;;;;;;;;AC5HD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACX;AACY;AAiDmC;AAAhC,yCAAgC;IAC7E,OAAO,KAAK,CAAC,cAAkC;AACjD,CAAC;;;;;;;AClDoD;AAES;AAwCJ;AACxD,IAAO,qCAAqD;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,MAAkB;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,wBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAgC;IACpD,CAAC;IAED,CAA6C;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAAuB;IAClF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAkC,mDAAuB;IAGvD,uCAAY,WAA4B,EAAE,KAAgC;QAA1E,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAQ,EAAE,CAAC;QAIvB,KAAI,CAAC,GAAG,CAAC,QAA0C;;IACrD,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,EAE4C;QAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAc;IAChC,CAAC;IACH,EAAC;AAAD,CAAC,CAnBiC,eAAe,GAmBhD;;;;;;;;ACpF0C;AAqDuC;AAA/B,oDAA+B;IAChF,OAAO,2BAA0D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAsD;IAC/E,CAAE;AACJ,CAAC;AAED;IAGE,EAAwE;CAAlC;QAAU,qBAAgB,GAAhB,gBAAgB,CAAQ;QACtE,IAAI,CAAC,gBAAgB,IAAI,UAAU,KAAK,gBAAkB;YACxD,IAAI,CAAC,eAAe,GAAG,EAAsB;SAC9C;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,kCAA0B;SAClD;IACH,CAAC;IAED,oEAAK,CAAwC;QAC3C,CAAsG;IACxG,CAAC;IACH,0BAAC;AAAD,CAAC;AAOD;IAAuC,2BAAa;IAGlD,CAAoE;qCAClE,aAAM,WAAW,CAAC,SACnB;kCAFiD,GAAU,GAAV,UAAU,CAAQ;QAF5D,YAAM,GAAQ,EAAE,CAAC;;IAIzB,CAAC;IAES,sBAAc;QACtB,IAAM,MAAM,GAAe;KAER;QAEnB,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,IAAa;YAC9B,IAAI,CAAC,MAAM,GAAG,CAAG;SAClB;IACH,CAAC;IAES,yBAAV;QACE,CAA2B;MACJ;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/B;QACD,iBAAM,OAAY;IACpB,CAAC;IACH,KAAC;AAAD,CAAC,CAzBsC,UAAU,GAyBhD;AAOD;IAA2C,6BAAa;kCAItD,GAAsG;yCACpG,SAAM,WAAW,CAAC,SACnB;kCAFiD,GAAU,GAAV,UAAU,CAAQ;QAAU,sBAAgB,GAAhB,gBAAgB,CAAQ;QAH9F,aAAO,GAAe,EAAE,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,oBAAc;QAChB,aAAwD;KAEjD;QACb,IAAI,KAAK,GAAG,gBAAgB,KAAK,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClB;QAED,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAI;YAClC,IAAM,MAAM,GAAG,IAAW;SACP;YACnB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAY;gBAChC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAE;gBACrB,IAAI,CAAC,UAAyB;aAC/B;SACF;IACH,CAAC;IAES,SAAV;QACQ,CAAgC;MAEX;YACzB,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,WAAW,CAAC,IAAI,CAAC,GAAQ;aAC1B;SACF;QACD,iBAAM,SAAS,OAAG;IACpB,CAAC;IAEH,KAAC;AAAD,CAAC,CAtC0C,UAAU,GAsCpD;;;;;;;;;;ACtJ0C;AAEA;AAEO;AA4DE;AAClD,CAAI,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC;IAEtC,IAAI,SAAS,GAAkB,KAAK,CAAC;IACrC,IAAI,WAAW,CAAC,iCAAkC;QAChD,0CAAS,CAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC;KACV;IAED,CAA0C;IAC1C,IAAI,MAAM,IAAI,CAAC,EAAE;QACf,cAAsC;KACvC;IAED,CAAqD;IACrD,IAAI,MAAM,IAAI,CAAC,EAAE;QACf,aAAa,CAAgB;KAC9B;IAED,CAAgE;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAI,MAAmE;IAClH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,4BAAoB,cAAsB,EACtB,KAEwB;QAHxB,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,OAA8B;QAC9B,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,CAA6C;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAC9C,UAAU,EAAE,EACX;IACL,CAAC;IACH,EAAC;AAAD,CAAC;AAED;IAAA;QACE,WAAM,GAAQ,EAAG;IAEnB,CAAC;IAAD,CAAC;AAAD,CAAC;AAmBD;IAAsC,2DAAa;IAIjD,2CAAY,WAA4B,EACpB,KAGwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAYnB;QAhBmB,oBAAc,GAAd,cAAc,CAAQ;QACtB,4BAAsB,GAAtB,OAA8B;QAC9B,mBAAa,GAAb,aAAa,CAAQ;QACrB,eAAS,GAAT,SAAS,CAAe;QAPpC,cAAQ,GAAsB,EAAE,CAAC;QASvC,IAAM,OAAO,GAAG,KAAI,CAAe;QACnC,KAAI,CAAC,YAAY,GAAG,aAA6D;QACjF,IAAI,KAAI,CAAC,YAAY,EAAE;YACrB,IAAM,iBAAkE;YACxE,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,cAAc,EAAE,CAAoB;SACnH;SAAM;YACL,EAAiD;YACjD,IAAM,aAAa,GAAyB,EAAE,cAAc,kBAAE,GAAsD;YACpH,KAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAsB,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YACzH,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAuB,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;SACnH;;IACH,CAAC;IAES,CAAc;QACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,IAAI,mBAA+B,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAO;YAC5B,IAAM,SAAO,GAAG,QAAQ,CAAC,CAAC,CAAE;YAC5B,IAAM,MAAM,GAAG,SAAO,CAAC,KAAO;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,EAAwB;gBACvC,mBAAmB,GAAG,SAAO,CAAC;aAC/B;SACF;QAED,CAAyB;YACvB,IAAI,CAAC,YAAY,CAAC,IAAqB;SACxC;IACH,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,iBAAM,MAAM,EAAM;IACpB,CAAC;IAES,EAAV;QACQ,aAAgC,EAA9B,sBAAQ,EAAE,aAAqB;QACvC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAM,SAAO,GAAG,QAAQ,CAAS;YACjC,WAAW,CAAC,IAAI,CAAC,SAAO,CAAC,MAAQ;SAClC;QACD,CAAkB;IACpB,CAAC;IAGD;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAES,EAAgC;QACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAM,WAAW,GAAG,OAAO,CAAC,CAAY;QACxC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAe;YACrC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAM,cAAc,GAAG,IAAI,CAAC,GAAe;YAC3C,IAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,GAAgC;YACxE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,YAAoC;SACxH;IACH,CAAC;IAED;QACE,IAAM,OAAO,GAAe,IAAI,OAAO,EAAK,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,EAAgC;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAgC;QAC9D,IAAI,WAAW,IAAI,CAAC,EAAE;YACpB,QAAQ,CAAC,MAAM,CAAC,GAA8B;SAC/C;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAzFqC,UAAU,GAyF/C;AAED,qCAA0E;IACxE,IAAM,UAAU,GAA8B,KAAK,CAAC,UAAU,CAAC;IAE/D,IAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;IAClC,IAAI,WAAW,EAAE;QACf,UAAU,CAAC,GAA0B;KACtC;IAED,CAAwB;QACtB,KAAK,CAAC,OAAO,GAAG,KAAyB;QACzC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,QAAsC;KACxE;AACH,CAAC;AAED,CAA2G;IACjG,oCAAwE;IAChF,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,IAAM,MAAM,GAA0C,IAAI,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,EAAQ;QACtB,UAAU,CAAC,GAAG,CAAC,MAA6H;QAC5I,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;KAChD;AACH,CAAC;AAED,CAAwD;IAC9C,+BAA4B;IACpC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;;;;;;;;AChP8C;AACe;AACT;AAiDM;AAEzD,IAAO,sCAAsC,MAAqB;QAChE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAO,MAA4B;IAChF,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,8BAAoB,QAAkC,EAClC,WAAyD;QADzD,aAAQ,GAAR,QAAQ,CAA0B;QAClC,oBAAe,GAAf,EAAyD;IAC7E,CAAC;IAED,CAA6C;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,EAAsC;IACvG,CAAC;IACH,EAAC;AAAD,CAAC;AAYD;IAA2C,+DAAqB;IAG9D,6CAAY,WAA4B,EACpB,KACgE;QAFpF,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,cAAQ,GAAR,QAAQ,CAA0B;QAClC,qBAAe,GAAf,EAAgE;QAJ5E,cAAQ,GAA4B,EAAE,CAAC;QAM7C,KAAI,CAAC,GAAG,CAAC,UAAmC;;IAC9C,CAAC;IAES,CAAc;QACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAK;YAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAO;SAChC;IACH,CAAC;IAES,EAAe;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAM,SAAO,GAAG,QAAQ,CAAS;YACjC,SAAO,CAAC,YAAY,CAAC,UAAc;YACnC,SAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,SAAO,CAAC,YAAY,EAAQ;SAC7B;QACD,CAAqB;QACrB,iBAAM,IAAY;IACpB,CAAC;IAES,EAAV;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAM,SAAO,GAAG,QAAQ,CAAS;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAO,CAAC,CAAQ;YACtC,SAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACnC,SAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,SAAO,CAAC,YAAY,EAAQ;SAC7B;QACD,CAAqB;QACrB,iBAAM,IAAY;IACpB,CAAC;IAED,EAE0C;QACxC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,EAA8C;QAC5C,IAAI,CAAC,WAAW,CAAQ,QAAS,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEO,EAAmB;QACzB,IAAI;YACF,CAA6C;YAC7C,IAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAc;YAC1D,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,YAAY,CAAkB;aACpC;SACF;QAAC,CAAY;YACZ,IAAI,CAAC,IAAY;SAClB;IACH,CAAC;IAEO,EAAqC;QAC3C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,QAAQ,IAAI,OAAO,EAAE;YACf,sBAAiC;YACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAqB;YAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1B,YAAY,CAAC,WAAW,EAAG;SAC5B;IACH,CAAC;IAEO,EAAiC;QACvC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAM,YAAkC;QACxC,IAAM,OAAO,GAAG,EAAE,MAAM,qCAAE,GAAe;QACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAM,iBAAiB,EAA0D;QAEjF,IAAI,CAAC,iBAAiB,wDAAI,EAAiB,CAAC,MAAM,EAAE;YAClD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC3B;SAAM;YACE,EAAqC;YAE5C,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,YAAY,CAAC,GAAG,CAAC,WAAmB;SACrC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAhG0C,eAAe,GAgGzD;;;;;AC/K8C;AACH;AACM;AACG;AAES;AA0CM;AAClE,IAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAyC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,4BAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAe,CAAuB;IAC1D,CAAC;IAED,CAA6C;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,EAAuB;IACtF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAsC,2DAAuB;IAK3D,2CAAY,WAA4B,EAAU,KAAsC;QAAxF,YACE,kBAAM,WAAW,CAAC,SAEnB;QAHiD,qBAAe,GAAf,eAAe,CAAuB;QAHhF,iBAAW,GAAY,KAAK,CAAC;QAKnC,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,EAAV;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAyB;SAC/B;QACD,CAAkB;IACpB,CAAC;IAGD;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAS;IAC3B,CAAC;IAED,EAE4C;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;SAAM;YACL,EAAkB;SACnB;IACH,CAAC;IAED;QAEQ,kDAAmB,CAAU;QAEnC,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,UAAqB;YACjC,mBAAmB,CAAC,WAAW,EAAG;SACnC;QAED,CAA2B;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAyB;SAC/B;QAED,CAAiB;QAEjB,IAAM,aAAmD;QAEzD,IAAI,eAAe,uCAAK,KAAW,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,2CAAe;SAC3B;SAAM;YACL,EAAyC;YACzC,IAAI,CAAC,mBAAmB,sCAAG,GAAoB;YAC/C,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,mBAAmB,CAAC,GAAG,CAA2C;YAClE,IAAI,CAAC,WAAW,GAAG,KAAK,sDAAC;SAC1B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAvEqC,eAAe,GAuEpD;;;;;AC1IkD;AACS;AAwEsC;AAChG,IAAO,2BAAyD;QAC9D,IAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;IAGE,uBAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,EAA6B;IACvF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,sDAAyB;IAC3D,sCAAY,WAA4B,EACpB,KACqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA6D;QACrE,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAOD,CAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAM,QAAM;YAChB,IAAI;gBACF,CAAyC;aAC1C;YAAC,CAAa;gBACb,UAAkB;gBAClB,OAAO;aACR;YACD,CAA8B;YAC9B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAe;SAC3C;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAzBmC,eAAe,GAyBlD;;;;;;;AC9HD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAQG;AACrE,IAAO,UAAC,MAAqB,IAAK,MAAgD;AACpF,CAAC;;;;;;;;;;ACTD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC0B;AAC1B;AAI1B;AAoChB,MAAM;AAA8B,oCAE+C;SAF/C,UAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IACjF,CAAiD;IACjD,IAAI,OAAO,QAAoD;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,CAAyD;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,kCAAM,CAAE,CAAC;KAC7C;IAED,CAAuH;AACzH,CAAC;;;;;;;AC1DD,OAAO,EAAG,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAuB;AA0BzD;AAAuB,yBAA2D;SAA3D,UAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,CAA+F;AACjG,CAAC;;;;;;;;;;AC5BD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsEwD;AAE5F,IAAO,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;;;;ACzED,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkEsD;AAE5F,IAAO,SAAS,CAAC,cAAM,sBAAe,EAAf,CAAe,EAAkB;AAC1D,CAAC;;;;;AClE0C;AAuDqD;AAC9F,IAAO,gBAAC,MAAqB,IAAK,GAAkD;AACtF,CAAC;AAED;IACE,uBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,CAAgD;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,EAA8B;IACxF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAiC,iDAAa;IAI5C,sCAAY,WAA6B,EACrB,KACsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,CAAc;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,YAAqB;SAC3B;SAAM;YACL,EAAa;SACd;IACH,CAAC;IAEO,EAAsB;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,CAA0D;SAC3D;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QAED,CAAY;YACV,IAAI,CAAC,IAAQ;SACd;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,EAAC;AAAD,CAAC,CArCgC,UAAU,GAqC1C;;;;;AC5GoD;AAES;AA+CwB;AACpF,IAAO,UAAC,MAAqB,IAAK,aAAoD;AACxF,CAAC;AAED;IACE,0BAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAwB;IACrF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAuC,uDAAqB;IAK1D,yCAAY,WAA0B,EAClB,KAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;QAC1B,uBAA0C;;IAKlD,CAAC;IAES,CAAc;QACtB,IAAI;YACF,CAAuD;YAEvD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,IAAwB;aAC9B;SACF;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;SAC7B;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAY;IAC9B,CAAC;IAEO,EAAuD;QAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,GAAK;QACrB,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,EAAc;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,CAAiD;QACjD,IAAI,iEAAiB,CAAY,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAc;SACpD;IACH,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAM,KAAK,GAAG,IAAW;YACzB,IAAM,YAAY,GAAG,IAA0B;YAC/C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,UAA4B;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAC3B;YAMD,CAAkB;YAClB,IAAI,CAAC,QAAQ,GAAG,EAAM;YACtB,iBAAM,KAAa;SACpB;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAvEsC,eAAe,GAuErD;;;;;AC9I0C;AAEA;AAoDsC;AAAhC,0CAAgC;IAC/E,OAAO,UAAC,MAAqB,IAA+D;AAC9F,CAAC;AAED;IACE,8BAAoB,OAAe,EAAU,SAAwB;CAAlC;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,2BAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAsE;IAChG,CAAC;IACH,2BAAC;AAAD,CAAC;AAOD;IAAwC,4BAAa;IAKnD,CAE4C;uCAC1C,YAAM,WAAW,CAAC,SACnB;kCAH0B,GAAP,OAAO,CAAQ;QACf,eAAS,GAAT,SAAS,CAAe;QANpC,2BAAqB,GAAiB,IAAI,CAAC;QAC3C,eAAS,GAAM,IAAI,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,2BAAc;QACtB,IAAI,CAAC,QAAgB;KACE;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAmF;IACnG,CAAC;IAES,yBAAV;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;MACO;IAC9B,CAAC;IAED;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;MAEF;YACT,8BAAS,CAAU;YAM3B,IAAI,CAAC,SAAS,GAAQ;YACtB,IAAI,CAAC,QAAQ,GAAS;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAW;SAClC;IACH,CAAC;IAEO,yCAAR;QACE,CAAyD;MAErB;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAK;SACnC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,CAhDuC,OAgDvC;AAED,MAA6D;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC;;;;;;;AC5H0C;AAyCgB;AAAtB,uCAAsB;IACzD,OAAO,UAAC,MAAqB,IAAK,GAA2E;AAC/G,CAAC;AAED;IAEE,gCAAoB,YAAe;CAAA;IACnC,CAAC;IAED,qCAAI,GAAJ,OAA+C;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,KAAyD;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC;AAOD;IAA6C,8BAAa;IAGxD,CAAmE;2CACjE,UAAM,WAAW,CAAC,SACnB;kCAFmD,KAAY,GAAZ,YAAY,CAAG;QAF3D,aAAO,GAAY,IAAI,CAAC;;IAIhC,CAAC;IAES,yBAAc;QACtB,IAAI,CAAC,OAAO,CAAS;KACQ;IAC/B,CAAC;IAES,yBAAV;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;MACyB;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,EAAW;IAC9B,CAAC;IACH,KAAC;AAAD,CAAC,CAlB4C,UAAU,GAkBtD;;;;;;AChFD,MAAM,iBAAiB,KAAU;AAC/B,IAAO,KAAK,YAAY,GAAuB;AACjD,CAAC;;;;;;;;ACF0C;AACH;AAEG;AACI;AAiDU;AAAhC,wCAAgC;IACvD,IAAM,aAAa,GAAG,MAAM,CAAQ;IACpC,IAAM,QAAQ,GAAG,kCAAqE;IACtF,CAAsF;AACxF,CAAC;AAED;IACE,uBAAoB,KAAa,EACb,SAAwB;CADX;QACb,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,uBAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,GAA6D;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC;AAaD;IAAiC,qBAAa;IAwB5C,CAE4C;yBAF5C,CAGE,kBAAM,WAAW,CAAC,MACnB;kCAHwB,CAAL,KAAK,CAAQ;QACb,eAAS,GAAT,SAAS,CAAe;QAzBpC,WAAK,GAA2B,EAAE,CAAC;QACnC,YAAM,GAAY,KAAM;QACxB,aAAO,GAAY,KAAK,CAAC;;IAyBjC,CAAC;IAvBc,wBAAQ,EAA8D;QACnF,IAAM,MAAM,GAAgB;KACD;QAC3B,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAM,WAAW,GAAG,KAAK,CAAC,EAAY;QAEtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAA4C;YACjE,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAqB;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAM,OAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAiB;SAC/B;SAC7B;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;SACG;SACvB;IACH,CAAC;IAQO,8BAAkC;QACxC,CAAmB;MAC8D;YAC/E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAoB;SAClE,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,8CAAoB,GAA5B,UAA6B,YAA6B;QACxD,IAA2B;MAClB;SACR;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,OAAU;QACjC,IAAM,OAAuE;QAC7E,CAAyB;QAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3B;IACH,CAAC;IAES,+BAAK,GAAS;QACtB,CAA0D;IAC5D,CAAC;IAES,gCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;MACJ;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,oBAAV;QACE,IAAI,CAAC,oBAAoB,CAAC,EAA+B;IAC3D,CAAC;IACH,sBAAC;AAAD,CAAC,CAhEgC,UAAU,GAgE1C;AAED;IACE,sBAA4B,CAC6B;kCAD7B,GAAY;QACZ,iBAAY,GAAZ,YAAY,CAAiB;IACzD,CAAC;IACH,mBAAC;AAAD,CAAC;;;;;;;;;;ACrJ0C;AACA;AAEU;AAES;AA4DE;AAC9D,CAAI,iBAAiB,EAAE;QACrB,OAAO,UAAC,GAAqB;YAC3B,WAAI,WAAsD;iBACvD,IAAI,CAAC,sCAAsB,eAAqB,CAAC,CAAC;QADrD,CACqD,CAAC;KACzD;IACD,CAA4F;AAC9F,CAAC;AAED;IACE,2BAAoB,qBAAoD;QAApD,0BAAqB,GAArB,kBAAoD;IACxE,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAA6B;IAC3F,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAwC,yDAAqB;IAI3D,0CAAY,WAA0B,EAClB,KAAoD;QADxE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,2BAAqB,GAArB,qBAAoD;QAJhE,eAAS,GAAY,KAAK,CAAC;QAC3B,wBAAqD;;IAK7D,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,EAAuD;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,EAA8C;QAC5C,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,GAAwB;SAC9B;QACD,CAAmB;IACrB,CAAC;IAES,EAAc;QACtB,IAAI;YACF,CAAwD;YACxD,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAsB;aACrC;SACF;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;SAC7B;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,EAAsD;QAC5D,YAAY,CAAC,WAAW,EAAE,CAAC;QAE3B,IAAM,eAAe,GAAG,IAAI,CAAkD;QAC9E,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,IAAI,CAAC,oBAAsD;SAC5D;QAED,CAA+B;IACjC,CAAC;IAEO,EAAiD;QACvD,IAAM,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAO;QAE3E,IAAI,oBAAoB,yDAAK,KAAoB,CAAC,MAAM,EAAE;YACxD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC/B,IAAI,CAAC,0BAAsD;SAC5D;IACH,CAAC;IAEO,EAAR;QACE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,0BAAyC;YAClE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAtEuC,eAAe,GAsEtD;AAOD;IAA6C,iEAAa;IACxD,kDAAmB,MAAqB,EAAU,UAAkC;QAApF,YACE,iBAAO,SACR;QAFkB,YAAM,GAAN,MAAM,CAAe;QAAU,sBAAkC;;IAEpF,CAAC;IAGD,CAAoC;QAClC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,KAA0B;IAC7F,CAAC;IACH,EAAC;AAAD,CAAC,CAT4C,UAAU,GAStD;AAOD;IAA6C,iEAAa;IAGxD,kDAAoB,MAAqB,EAAU,MAAqB;QAAxE,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAe;QAAU,YAAM,GAAN,MAAM,CAAe;QAFhE,sBAAkC;;IAI1C,CAAC;IAES,CAAiB;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAK;IACzB,CAAC;IAES,EAAV;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,EAAR;QACE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,CAAK;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAuB;SACpC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA3B4C,UAAU,GA2BtD;;;;;AC/M0C;AA+CrC;AACJ,IAAO,sBAA0E;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAA6C;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAmE,iEAAa;IAC9E,8CAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,CAAc;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACH,EAAC;AAAD,CAAC,CARkE,UAAU,GAQ5E;;;;;ACvEoD;AAES;AAwDN;AACtD,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,GAAiD;AAC5F,CAAC;AAED;IACE,0BAAoB,WAA4B,EAAU,OAAwB;QAA9D,gBAAW,GAAX,WAAW,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAiC;IAC9F,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAA8C,uDAAqB;IAGjE,yCAAY,WAA0B,EAAU,KAAsD;QAAtG,YACE,kBAAM,WAAW,CAAC,SAKnB;QAN+C,iBAAW,GAAX,WAAW,CAAiB;QAFpE,YAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,GAAG,CAAmC;SAC5C;;IACH,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,EAAuD;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,EAAc;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,cAAuB;SAC7B;SAAM;YACL,EAAiC;SAClC;IACH,CAAC;IAEO,EAAwB;QAC9B,IAAI,GAAM,CAAC;QACH,QAAqB;QAC7B,IAAI;YACF,CAA8B;SAC/B;QAAC,CAAY;YACZ,SAAuB;YACvB,OAAO;SACR;QACD,CAA+B;IACjC,CAAC;IAEO,EAAgC;QAC9B,wBAAM,CAAU;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAwB;SAC9B;IACH,CAAC;IAEH,EAAC;AAAD,CAAC,CAjD6C,eAAe,GAiD5D;;;;;;AC/H0C;AACC;AACM;AAwDqD;AACrG,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,IAAI,CAAC,IAAI,MAA0D;AAC9G,CAAC;AAED;IACE,sCAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,IAAwB;IAC5C,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,EAAiC;IAC1G,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAmD,+EAAa;IAI9D,qDAAY,WAA0B,EAC1B,KACgC;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAInB;QALmB,iBAAW,GAAX,WAAW,CAAa;QAJpC,YAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,GAAiB;YACjC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;;IACH,CAAC;IAEO,CAAsB;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,EAAc;QAEtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,GAAG,GAAQ,KAAK,CAAC;QAErB,IAAI,WAAW,CAAE;YACf,GAAG,GAAG,QAAkC;YACxC,IAAI,sCAAQ,SAAW,EAAE;gBACvB,OAAO,mCAAK,GAAiC;aAC9C;SACF;QAED,CAAwB;QAExB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,GAAG,KAAsC;YAC/C,IAAI,yCAAW,SAAW,EAAE;gBAC1B,OAAO,IAAI,kCAAC,CAAW,CAAC,CAAqB;aAC9C;SACF;SAAM;YACL,EAAmB;SACpB;QAED,CAA+B;YAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,UAAwB;SAC9B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA7CkD,UAAU,GA6C5D;;;;AC3HD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAwE2B;AACvF,IAAO,oBAAoB,CAAC,UAAC,CAAI,EAAE,CAAI,IAAK,KAAuD;AACrG,CAAC;;;;;;;;ACzE0C;AAsDJ;AACrC,IAAO,gCAAgC,CAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAqB;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAA+B;IAC1F,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAkC,mDAAa;IAI7C,uCAAY,WAA0B,EAClB,KACY;QAFhC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAsC;QAC/C,aAAO,GAAP,OAAO,CAAK;QAJhC,WAAK,GAAW,CAAC,CAAC;;IAMlB,CAAC;IAIS,CAAc;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,CAAgE;SACjE;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAAY;YACV,IAAI,CAAC,IAAwB;SAC9B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAxBiC,UAAU,GAwB3C;;;;;;;;;;;ACnG0C;AAGP;AACY;AAsDJ;AAC1C,IAAO,6BAA6B,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAkC;IACtE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,oBAAoB,cAAsD,EACtD,KACqB;QAFrB,mBAAc,GAAd,cAAc,CAAwC;QACtD,UAAK,GAAL,KAAK,CAAmB;QACxB,aAAQ,GAAR,GAAqB;IACzC,CAAC;IACD,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAiD;IACzG,CAAC;IACH,EAAC;AAAD,CAAC;AAQD;IAA+B,6CAAa;IAS1C,oCAAY,WAA0B,EAC1B,KAEqB;QAHjC,YAII,kBAAM,WAAW,CAAC,SAYnB;QAtBK,cAAQ,GAAyB,IAAI,CAAC;QAEtC,eAAS,sBAAyB,CAAK;QAEvC,kBAAY,oBAAiB,CAAK;QAOtC,KAAI,CAAC,SAAS,GAAG,uBAAK,CAAS;QAC/B,KAAI,CAAC,YAAY,GAAG,0BAAQ,CAAS;QACrC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;YAC9B,wCAAK,IAAQ,GAAG,KAAI,CAAC;YACrB,KAAI,CAAC,QAAQ,GAAG,MAAe;SAChC;SAA0B;YACzB,KAAI,CAAC,QAAQ,GAAG,KAAe;YAC/B,KAAI,CAAC,QAAQ,GAAG,cAAc,CAAc;YAC5C,KAAI,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,sBAAI,CAAK;YAC9C,KAAI,CAAC,YAAY,GAAG,cAAc,CAAC,0BAAQ,CAAS;SACrD;;IACH,CAAC;IAEH,CAAc;QACZ,IAAI;YACF,CAAyC;SAC1C;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAA6B;IAC/B,CAAC;IAED,EAAe;QACb,IAAI;YACF,CAAwC;SACzC;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAA4B;IAC9B,CAAC;IAED;QACE,IAAI;YACF,CAAwC;SACzC;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAAmC;IACrC,CAAC;IACH,EAAC;AAAD,CAAC,CAxD8B,UAAU,GAwDxC;;;;;;;ACzID,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACoB;AA+BK;AAA/C,4CAA+C;IAAK,UAAG,CAAI;QAC7D,QAAQ,EAAE,KAAK;KACiB;QAChC,QAAQ;YACN,IAAI,CAAC,IAAI,CAAC,EAAU;gBAClB,MAAM,YAAY,EAAE,CAAC;aACtB;QACH,CAAC;KACK,CAAC;AAR+C,CAQ/C,CAAC;AAEZ;IACE,GAAwB;AAC1B,CAAC;;;;;;;;;;AC3C0C;AAC+B;AAC9B;AAwCP;AACnC,IAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAG;SAChB;SAAM;YACL,EAA4C;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAE;YAClB,MAAM,IAAI,OAAwB;SACnC;IACH,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,EAAa;IACtE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAgC,+CAAa;IAG3C,qCAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WACP;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAFrD,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,CAAc;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,EAAE,IAAI,CAAC,IAAM;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAa;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,CAAW;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAlB+B,UAAU,GAkBzC;;;;ACtFD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAGxC;AACY;AACI;AACpB;AA+C8B;AAC1D,CAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,EAA0B;KAAE;IACvD,CAA8C;IAC9C,OAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,GAGxB;QACb,CAAC,CAAC,cAAc,CAAC,KAAa;QAC9B,CAAC,CAAC,YAAY,CAAC,cAAM,WAAI,uBAAuB,EAAE,EAA7B,CAA6B,IALpB,CAMjC,CAAC;AACJ,CAAC;;;;;;;;;;;;AChED,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACN;AACF;AACkB;AACZ;AA2C5C;AAAqB,YAAkC;SAAlC,UAAkC;QAAlC,0BAAkC;;IAC3D,CAA6B;QAC3B,IAAI,SAAS,GAAkB,KAAK,CAAmB;QACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;YAC1B,0CAAW,CAAC;SACb;SAAM;YACL,EAAiB;SAClB;QAED,CAAyB;QACzB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAW;YAC3B,OAAO,YAAY,CAAC,MAA+B;SACpD;SAAmB;YAClB,OAAO,QAAyD;SACjE;SAAM;YACL,EAAwD;SACzD;IACH,CAAC,CAAC;AACJ,CAAC;;;;;AChE0C;AAsBL;AACpC,IAAO,UAAC,MAAqB,IAAK,YAA2D;AAC/F,CAAC;AAED;IACE,uBAAoB,SAAsE,EACtE,OAAa,EACb,CAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,CAA+C;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,EAA4C;IACpG,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAiC,iDAAa;IAG5C,sCAAY,WAA8B,EACtB,KAEsB;QAH1C,YAIE,kBAAM,WAAW,CAAC,SAEnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,aAAO,GAAP,OAAO,CAAK;QACZ,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAOxB,KAAI,CAAC,OAAO,GAAmB;;IACjC,CAAC;IAEO,CAAuC;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,EAAc;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,CAA6E;SAC9E;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QAED,CAAa;YACX,IAAI,CAAC,KAAsB;SAC5B;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,EAAC;AAAD,CAAC,CAjCgC,UAAU,GAiC1C;;;;;ACzEoD;AACS;AA+CxD;AACJ,IAAO,UAAC,MAAoE;AAC9E,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAuC,yDAAqB;IAI1D,4CAAY,WAA0B;QAAtC,YACE,kBAAM,WACP;QALO,kBAAY,GAAY,KAAK,CAAC;QAC9B,qBAAe,GAAY,GAAM;;IAIzC,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,CAAK;YAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAc;SAC1C;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAiB;YACzB,IAAI,CAAC,WAAW,CAAC,OAAW;SAC7B;IACH,CAAC;IAED,EAAqC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,EAAS;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,GAAW;SAC7B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA7BsC,eAAe,GA6BrD;;;;;;;;AC5FoD;AAES;AAElC;AACc;AAsDoD;AAE5F,CAAI,cAAc,EAAE;QAElB,OAAO,UAIL;KACH;IACD,CAA6B;QAC3B,aAAM,CAAC,IAAI,CAAC,GAAgC;IAA5C,CAA4C,CAAC;AACjD,CAAC;AAED;IACE,4BAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,EAAe;IAC9E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAyC,2DAAqB;IAK5D,2CAAY,WAA0B,EAClB,KAAwD;QAD5E,YAEE,kBAAM,WAAW,CAAC,OACnB;QAFmB,aAAO,GAAP,OAAO,CAAiD;QALpE,qBAAe,GAAS;QACxB,kBAAY,GAAG,KAAK,CAAC;QACrB,WAAK,GAAG,CAAC,CAAC;;IAKlB,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,EAAgB;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,EAAY;QACrC,IAAI;YACF,CAA0C;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAA6B;SACzD;QAAC,CAAY;YACZ,SAAuB;SACxB;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAiB;YACzB,IAAI,CAAC,WAAW,CAAC,OAAW;SAC7B;IACH,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,EAAoB;QAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,EAAqC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtB,IAAI,CAAC,eAAe,EAAS;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,GAAW;SAC7B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CArDwC,eAAe,GAqDvD;;;;;AC7I2C;AACM;AAEG;AAES;AA2DG;AADpC,uCAAqB,MAAM,CAAC,GAAiB;IAC7C,4BAAoC;IAC/D,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAsC;IAE3E,CAAkG;AACpG,CAAC;AAED;IACE,CAE4C;QAFxB,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAQ;CACM;IAC5C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,GAAW;QACzC,OAAO,MAAM,CAAC,SAA2F;IAC3G,CAAC;IACH,qBAAC;AAAD,CAAC;;AAcD;IAA4C,EAAqB;IAM/D,sBAG4C;KAK3C;AAP2E;2BACxD,IAAU,GAAV,UAAU,CAAQ;kCAClB,EAAS,GAAT,SAAS,CAAe;QARpC,WAAK,GAAW,CAAC,CAAC;QAClB,YAAM,GAAW,CAAC,CAAC;QACnB,kBAAY,GAAY,GAAM;QAQpC,IAAI,UAAU,GAAG,MAAM,CAAC,MAAmB;YACzC,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;;IACH,CAAC;IAEc,yBAAQ,GAAvB,UAA8B,GAAsB;QAC3C,sBAAwC;QAC/C,CAAuD;IACzD,CAAC;IAES,CAAgB;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;MACV;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAY;YACjC,WAAW,CAAC,IAAI,CAAQ;YACxB,IAAI,GAA8C;SACtB;gBAC1B,WAAW,CAAC,KAAqB;aAClC;iBAAM,IAAI,CAAC,IAAI,CAAC,SAAW;gBAC1B,IAAI,CAAC,iDAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAO;aAClD;iBAAM;aACuE;gBAC5E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAA4E;aAC3F;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,KAA0D;QAChE,IAAI,CAAC,CAAS;QACd,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAO,CAA6B;IAChE,CAAC;IAES,EAAV;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,KAAmC;YAC1C,IAAI,CAAC,sDAAY,GAAQ,EAAE,CAAC;MAC7B;IACH,CAAC;IAED,6BAE0C;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,KAAqC;MACR;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;MACmB;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,YAAY,CAAuB;YAC1C,IAAI,CAAC,KAAuB;SAC7B;IACH,CAAC;IACH,KAAC;AAAD,CAAC,CA3E2C,eAAe,GA2E1D;;;;;;;;;;AC1K0C;AACI;AAYC;AAC9C,IAAO,UAAC,MAAqB,IAAK,KAA2C;AAC/E,CAAC;AAED;IACE,yBAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAgB;IAC5E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAmC,sDAAa;IAC9C,wCAAY,WAA0B,EAAE,KAAoB;QAA5D,YACE,kBAAM,WAAW,CAAC,KAEnB;QADC,KAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;;IACvC,CAAC;IACH,CAAC;AAAD,CAAC,CALkC,UAAU,GAK5C;;;;;ACnCwC;AAgDJ;AACnC,CAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,cAA+B;KACpD;IACD,CAAwG;AAC1G,CAAC;AAED;IACE,2BAAoB,SAAsE,EACtE,MAAqB,EACrB,EACa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,GAAmB;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,CAAyC;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,EAA6D;IACzH,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAA4C,oDAAa;IAGvD,0CAAY,WAA0B,EAClB,KAGa;QAJjC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,YAAM,GAAN,MAAM,CAAe;QACrB,gBAAU,GAAV,GAAmB;QACnB,aAAO,GAAP,OAAO,CAAM;QANzB,WAAK,GAAW,CAAC,CAAC;;IAQ1B,CAAC;IAEO,CAAyB;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,EAAc;QAChB,aAA2B,EAA1B,wBAAS,EAAE,WAAgB;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,CAA0E;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,IAAgD;aACtD;SACF;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;SAC7B;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAW;IACxD,CAAC;IACH,EAAC;AAAD,CAAC,CAlC2C,UAAU,GAkCrD;;;;;AC3GD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAwCZ;AACxC,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,EAAiF;AAC5H,CAAC;;;;;;;ACxCD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEd;AACJ;AACoB;AACJ;AACF;AAmE1B;AAEhB,CAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,GAIvC;AACJ,CAAC;;;;;;;;AClF0C;AA2BrC;AACJ,IAAO,uBAA+D;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAA0C,mEAAa;IAAvD;;IAIA,CAAC;IAHW,CAAe;IAEzB,CAAC;IACH,EAAC;AAAD,CAAC,CAJyC,UAAU,GAInD;;;;;ACjD0C;AAIrC;AACJ,IAAO,UAAC,MAA6D;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAAgD;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAgC,qDAAe;IAC7C,wCAAY,WAAgC;eAC1C,kBAAM,WAAW,CAAC;IACpB,CAAC;IAEO,CAA+B;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,EAAoB;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,EAAV;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,EAAC;AAAD,CAAC,CAnB+B,UAAU,GAmBzC;;;;;ACtC0C;AAC+B;AAC9B;AA2CH;AACvC,IAAO,sBAAuD;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAG;SAChB;SAAM;YACL,EAAgD;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,mCAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAE;YAClB,MAAM,IAAI,OAAwB;SACnC;IACH,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAa;IAC1E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,uDAAa;IAI/C,yCAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,GACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAHrD,UAAI,GAAa,IAAI,GAAQ;QAC7B,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,CAAc;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,IAAM;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAG;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;SAAM;YACL,EAA4B;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,EAAV;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAM,KAAK,GAAsD;YACjE,IAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAY;gBAC9B,IAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,CAAuB;IACzB,CAAC;IACH,EAAC;AAAD,CAAC,CArCmC,UAAU,GAqC7C;;;;AC3GD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEd;AACI;AACQ;AACI;AACN;AAoC1B;AAEhB,CAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAE;IAC9C,OAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,GAIvC;AACJ,CAAC;;;;;ACpD0C;AAiCP;AAClC,IAAO,UAAC,MAAqB,GAA2C;AAC1E,CAAC;AAED;IAIE,uBAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,EAAa;IACvE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,iDAAa;IAI/C,sCAAY,WAA0B,EAAE,KAAQ;QAAhD,YACE,kBAAM,WAAW,CAElB;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IAES,CAAU;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,EAAC;AAAD,CAAC,CAZmC,UAAU,GAY7C;;;;;AClE0C;AACI;AAkDzC;AACJ,IAAO,oBAA0D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAAyD;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAuC,6DAAa;IAClD,4CAAY,WAAwC;eAClD,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,EAAe;QACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAkB;QAChD,WAAW,CAAC,yCAAW;IACzB,CAAC;IAES,EAAV;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAkB;QAChD,WAAW,CAAC,yCAAW;IACzB,CAAC;IACH,EAAC;AAAD,CAAC,CApBsC,UAAU,GAoBhD;;;;;ACxF0C;AAiDiD;AAC1F,CAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAa;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,CAA0D;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAA6B;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,sBAAoB,WAAmD,EAAU,IAAY,EAAU,EAAwB;QAAxB,yCAAwB;QAA3G,gBAAW,GAAX,MAAmD;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,CAAwB;IAAG,CAAC;IAEnI,qBAA2C;QACzC,OAAO,MAAM,CAAC,SAAqF;IACrG,CAAC;IACH,mBAAC;AAAD,CAAC;AAOD;IAAmC,oBAAa;IAY9C,CACoC;uBADpC,EAEE,kBAAM,WAAW,CAAC,KACnB;kCAH+C,IAAW,GAAX,WAAW,CAAwC;QAAU,WAAK,GAAL,KAAK,CAAO;QACrG,aAAO,GAAP,OAAO,CAAS;QAZ5B,WAAK,GAAW,CAAC,CAAC;;IAc1B,CAAC;IAZD,oBAAQ;aAAR;KACoB;QACpB,CAAC;aAED,UAAS,GAAY;YACnB,IAAI,CAAC,OAAO,GAAG,GAAK;UACD;QACrB,CAAC;;;OALA;IAYS,qBAAc;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE;OACC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,iCAAQ,GAAS;QACvB,CAA2B;MACX;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAwC;SACvD;QAAC,KAAY;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,CAAO;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,qBAAC;AAAD,CAAC,CArCkC,UAAU,GAqC5C;;;;;;;;;ACpHD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACQ;AACY;AAEd;AAwDuD;AAMzF,CAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,iBAA6D;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAA8B;QAClF,CAAC,CAAC;KACH;IACD,CAA4D;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK;YAC3C,+BAAO,WAAW,CAAI,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;;;;AC7ED,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA0CsB;AACtD,CAAM,GAAG,GAAsB,CAAC,WAAO,QAAQ,CAAgB;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,eAAQ,CAAC,CAAC,CAAgB;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;;;;;;;AChDD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsCrD;AAAsB,wBAAoE;SAApE,UAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC9F,CAAwF;AAC1F,CAAC;;;;;;;ACtCD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiDS;AAA7C,uCAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,GAAiB;QACxC,OAAO,QAAQ,CAAC,cAAM,QAA6C;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,2CAAa,YAAc,CAAC;KAC7B;IACD,OAAO,QAAQ,CAAC,cAAM,WAA6B;AACrD,CAAC;;;;;;;ACxD2C;AACM;AACY;AACT;AA0CwB;AAA7C,uCAAqB,MAAM,CAAC,KAAiB;IAC3E,OAAO,UAAC,MAAqB,IAAK,CAAkE;AACtG,CAAC;AAED;IACE,2BAAoB,WAAqD,EACrD,IAAO,EACP,UAAkB;CAFmC;QACrD,SAAI,GAAJ,IAAI,CAAG;QACP,eAAU,GAAV,UAAU,CAAQ;IACtC,CAAC;IAED,qBAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAEzB;IACL,CAAC;IACH,wBAAC;AAAD,CAAC;;AAOD;IAA+C,CAAqB;AAU5B;iCACpC,eAAM,WAAW,CAAC,SACnB;kCAJmB,IAAW,GAAX,WAAW,CAA0C;QACrD,SAAG,GAAH,GAAG,CAAG;QACN,gBAAU,GAAV,UAAU,CAAQ;QAT9B,cAAQ,GAAY,KAAK,CAAC;QAC1B,gBAA8B;QAC9B,YAAM,GAAsB,EAAE,CAAC;QAC/B,YAAM,GAAW,CAAC,CAAC;QACjB,WAAK,GAAW,CAAC,CAAC;;IAO5B,CAAC;IAES,oBAAgB;QACxB,IAAI,IAAI,CAAC,IAA0B;KACN;YAC3B,IAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAO;YACxD,IAAM,WAAW,GAAG,IAAI,CAAC,SAAY;YACrC,IAAI,GAAG,KAAK,WAAW,EAAE;gBACvB,0CAAY,GAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,MAAM,EAAE,CAAC;aACoB;aACnC;SACF;aAAM;YACL,CAAwB;SACzB;IACH,CAAC;IAEO,gCAA2C;QACjD,CAA2D;IAC7D,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,0DAAoB;MAC0B;YACjD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAC3B,IAAI,CAAC,WAAW,CAAgB;aACjC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,oCAE0C;QAChC,CAAqB;MACP;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,yBAAqC;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;MACL;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAU;SAC5B;aAAM,IAAI,IAAI,CAAC,MAAM,IAA6B;YACjD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAO;SACK;aACjC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,CAlE8C,OAkE9C;;;;;;;ACzID,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAyCsB;AACtD,CAAM,GAAG,GAAsB,CAAC,WAAO,QAAQ,CAAgB;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,eAAQ,CAAC,CAAC,CAAgB;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;;;;;;;AC1CD,OAAO,EAAyB,+BAA+B,EAAE,MAAM,4BAAsC;AA+B1B;AACjF,IAAO,mCAAmC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,QAAwC;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;SAAM;YACL,EAAiB;gBACf,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,CAAoC;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,UAA6C;SACrE;QAED,CAAgF;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,EAAkB;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,cAAgC,EAChC,KAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,CAA2C;QACjC,4BAAQ,CAAU;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,UAAiB;QACtC,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAwB;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,EAAC;AAAD,CAAC;;;;;;;;;ACpEyC;AAGA;AACW;AAES;AA+ExD;AAAkC,kBAE8C;SAF9C,UAE8C,EAF9C,IAE8C;QAF9C,gCAE8C;;IACpF,CAAyD;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,kCAAC;KACtD;IAED,CAAgG;AAClG,CAAC;AAaD,CAAM;AAAwC,kBAE+C;SAF/C,UAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IAC3F,CAAwC;IAExC,IAAI,WAAW,CAAC,EAAyC;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,kCAAC;KAC3D;IACD,CAA6B;IAE7B,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAuD;AACnF,CAAC;AAED;IACE,mCAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,EAAmB;IACzF,CAAC;IACH,EAAC;AAAD,CAAC;AAED;IAAgD,yEAAqB;IACnE,kDAAsB,WAA0B,EAC5B,KAAwC;QAD5D,YAEE,kBAAM,WAAW,CAAC,SACnB;QAHqB,iBAAW,GAAX,WAAW,CAAe;QAC5B,iBAAW,GAAX,WAAW,CAA6B;;IAE5D,CAAC;IAED,CAAyD;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,EAAgD;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,EAAV;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,EAAR;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,EAAmC;SACzC;SAAM;YACL,EAA4B;SAC7B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA9B+C,eAAe,GA8B9D;;;;;AC7J0C;AA2CrC;AACJ,IAAO,UAAC,MAAqB,CAAyC;AACxE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAAgD;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,uDAAa;IAI/C,yCAAY,WAA+B;QAA3C,YACE,kBAAM,QACP;QAJO,aAAO,GAAY,KAAK,CAAC;;IAIjC,CAAC;IAED,CAAc;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,UAAqC;SAC3C;SAAM;YACL,EAAoB;SACrB;QAED,CAAkB;IACpB,CAAC;IACH,EAAC;AAAD,CAAC,CAjBmC,UAAU,GAiB7C;;;;AC7ED,MAAM,cAAc,IAAc,EAAE,OAAY;AAC9C;QACE,OAAO,CAAC,CAAQ,OAAyD;IAC3E,CAAC;IACM,CAAqB;IACrB,OAAQ,CAAC,OAAO,GAAG,EAAQ;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;;;;ACPD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACA;AAiDQ;AACxC,IAAO,UAAC,MAAqB,IAAK;QAChC,MAAM,CAAC,SAAS,EAAE,IAAgB;QAClC,MAAM,CAAC,CAAuC;KACb,EAHD,CAGC,CAAC;AACtC,CAAC;;;;;;ACtDD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAgCtB;AAAsB,iBAAuB;SAAvB,UAAuB,EAAvB,GAAuB;QAAvB,+BAAuB;;IACjD,CAAiC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAA6C;KACxD;IACD,CAAkF;AACpF,CAAC;AAED,CAAgD;IAC9C,IAAM,MAAM,GAAG,UAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAgB;YAC/B,IAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC;aACjB;aAAM;gBACL,EAAiB;aAClB;SACF;QACD,CAAmB;IACrB,CAAC,CAAC;IAEF,EAAc;AAChB,CAAC;;;;;;;ACvDD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACG;AAuBuB;AAC7D,IAAO,QAAQ,CAAC,CAAC;QACf,SAAS,CAAC,GAAmC;QAC7C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC;;;;;;;AC5BD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACb;AAUG;AACzC,IAAO,UAAC,MAAqB,IAAK,SAA6E;AACjH,CAAC;;;;;;;ACbD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACP;AA2DlC;AACJ,IAAO,UAAC,MAAqB,IAA8C;AAC7E,CAAC;;;;;;;AC9DD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACT;AAaqB;AAE3D,CAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,CAA6F;IAC7F,IAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,UAAC,uCAA0B,YAAS,CAAC,cAAM,SAAuD;AAC3G,CAAC;;;;;;;ACxBD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEc;AAsBlD;AAAkB,sBAA2D;SAA3D,UAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACjF,CAA0D;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,EAAiB;YACvD,WAAW,GAAyB,WAAW,CAAC,CAAC,CAAC,kCAAC;SACpD;QAED,CAA+D;IACjE,CAAC,CAAC;AACJ,CAAC;;;;;AClC0C;AAEC;AAeA;AAAlB,wBAAkB;IAC1C,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,EAAQ;KACA;SAChB;aAAM,IAAI,KAAK,GAAG,CAAG;YACpB,OAAO,+BAAM,CAAC,CAAqC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,EAAS;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,EACyC;CADR;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,uBAA2C;QACzC,OAAO,MAAM,CAAC,OAAqE;IACrF,CAAC;IACH,qBAAC;AAAD,CAAC;AAOD;IAAkC,sBAAa;IAC7C,CAEyC;2BACvC,kBAAM,WAAW,CAAC,OACnB;kCAHwB,CAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD;QACE,IAAI,CAAC,IAAI,CAAC,GAAW;KACY;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,OAAiB;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAI;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAA2B;SACjD;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,CAjBiC,OAiBjC;;;;;;;AC1DoC;AAEO;AACM;AAEG;AAES;AAkB6B;AACzF,IAAO,UAAC,MAAqB,IAAK,OAA8C;AAClF,CAAC;AAED;IACE,4BAAsB,QAA6D;QAA7D,aAAQ,GAAR,QAAQ,CAAqD;IACnF,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,EAAwB;IACvF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAyC,2DAAqB;IAO5D,2CAAY,WAA0B,EAClB,KACqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAAqD;QAC7D,YAAM,GAAN,MAAM,CAAe;QAJjC,sBAA0C;;IAMlD,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,EAA8C;QAC5C,IAAI,IAAI,CAAC,yBAAyB,KAAK,KAAK,EAAE;YAC5C,OAAO,iBAAM,QAAQ,WAAG;SACzB;IACH,CAAC;IAED;QACE,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE;gBACjB,IAAI,CAAC,WAAqB;aAC3B;YACD,CAAkE;gBAChE,OAAO,iBAAM,QAAQ,WAAE,CAAC;aACzB;YAED,CAA8B;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3B;IACH,CAAC;IAGD;QACQ,aAA6C,EAA3C,gCAAa,EAAE,MAA6B;QACpD,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,EAAc;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QACD,CAAyB;YACvB,mBAAmB,CAAC,EAAc;YAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;QACD,CAAoB;IACtB,CAAC;IAGD;QACU,oCAAY,CAAU;QAE9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,iBAAM,QAAyB;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,EAAR;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QACnC,IAAM,OAAO,GAAG,QAAQ,CAAC,4BAAK,GAA8B;QAC5D,IAAI,OAAO,uCAAK,KAAW,EAAE;YAC3B,OAAO,wCAAM,EAAW;SACzB;QACD,CAAuB;QACvB,IAAI,CAAC,kBAAuD;IAC9D,CAAC;IACH,EAAC;AAAD,CAAC,CA5EwC,eAAe,GA4EvD;;;;;ACzH0C;AAqBA;AAAlB,uBAAkB;IACzC,OAAO,UAAC,MAAwE;AAClF,CAAC;AAED;IACE,uBAAoB,KAAa,EACb,MAAqB;CADR;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,uBAA2C;QACzC,OAAO,MAAM,CAAC,OAAoE;IACpF,CAAC;IACH,oBAAC;AAAD,CAAC;AAOD;IAAiC,qBAAa;IAC5C,CAEyC;yBAFzC,CAGE,kBAAM,WAAW,CAAC,MACnB;kCAHwB,CAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,0BAAc;QACZ,IAAI,CAAC,IAAI,CAAC,GAAW;KACY;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,OAAiB;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAI;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAA2B;SACjD;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,CAjBgC,OAiBhC;;;;;;;ACvDoC;AAEO;AACM;AAEG;AAES;AAkBqB;AACjF,IAAO,UAAC,MAAqB,IAAK,MAAqD;AACzF,CAAC;AAED;IACE,2BAAsB,QAAsD,EACtD,MAAqB;QADrB,aAAQ,GAAR,QAAQ,CAA8C;QACtD,WAAM,GAAN,MAAM,CAAe;IAC3C,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAA6B;IAC3F,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAwC,yDAAqB;IAM3D,0CAAY,WAA0B,EAClB,KACqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA8C;QACtD,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAED,CAAc;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAEnB,IAAI,MAAM,GAAG,IAAI,CAAQ;YACzB,IAAI,OAAO,GAAQ,IAAI,CAAC,MAAQ;YAChC,IAAI,mBAAmB,GAAG,CAAyB;YAEnD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,GAAG,EAAc;gBACvB,OAAO,GAAG,6BAAU,GAAsB;gBAC1C,IAAI,0CAAY,SAAW,EAAE;oBAC3B,OAAO,wCAAM,EAAqB;iBACnC;gBACD,CAAuD;aACxD;aAAM;gBACL,EAAmB;gBACnB,IAAI,CAAC,cAA2B;aACjC;YAED,CAA8B;YAE9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,MAAQ;YACvB,IAAI,CAAC,kBAA0C;YAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;IAGD;QACQ,aAAsC,EAApC,kBAAM,EAAE,mBAA6B;QAC7C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,EAAc;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,CAAyB;YACvB,mBAAmB,CAAC,EAAc;YAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;QACD,CAAoB;IACtB,CAAC;IAED,EAE0C;QAChC,oCAAY,CAAU;QAE9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAyB;QAC9B,IAAI,CAAC,YAAY,GAAG,UAAa;QAEjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACH,EAAC;AAAD,CAAC,CAlEuC,eAAe,GAkEtD;;;;;;;;AC9GoD;AAES;AAyCX;AACjD,IAAO,UAAC,MAAqB,IAAK,GAA0C;AAC9E,CAAC;AAED;IACE,+BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,CAA2C;QACzC,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,YAAY,GAAG,MAAM,CAAC,wBAAU,SAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAgB;QACrE,OAAO,gEAAa;IACtB,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAqC,mDAAqB;IAA1D;QAAA,yBAyBC;QAvBS,cAAQ,GAAY,KAAK,CAAC;;IAuBpC,CAAC;IArBW,CAAc;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,GAAK;IACvB,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAS;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAa;SACnC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAzBoC,eAAe,GAyBnD;;;;;AC1F0C;AACA;AA0CmC;AAAhC,wCAAgC;IAC5E,OAAO,UAAC,MAAqB,IAA4D;AAC3F,CAAC;AAED;IACE,4BAAoB,MAAc,EACd,SAAwB;CADV;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,yBAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAmE;IAC7F,CAAC;IACH,yBAAC;AAAD,CAAC;AAOD;IAAsC,0BAAa;IAIjD,CAE4C;mCAC1C,cAAM,WAAW,CAAC,SAEnB;kCAJyB,EAAN,MAAM,CAAQ;QACd,eAAS,GAAT,SAAS,CAAe;QAJ5C,cAAQ,GAAY,KAAK,CAAC;QAMxB,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAsE;;IAC3F,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAkB;KACF;IACvB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;MACK;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,CAtBqC,OAsBrC;AAED,MAAuE;IAC/D,4BAA6B;kCACnC,EAAU,CAAc;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;;;;;;;AC1F0C;AACC;AACM;AA2DiB;AACjE,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,IAAI,CAAC,EAAgD;AAChG,CAAC;AAED;IACE,+BAAoB,SAAwB,EACxB,QAAiC;QADjC,cAAS,GAAT,SAAS,CAAe;QACxB,aAAQ,GAAR,QAAQ,CAAyB;IACrD,CAAC;IAED,CAAiD;QAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,EAAE,EAAgC;IAClG,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAAmD,iEAAa;IAK9D,8CAAY,WAAwB,EAChB,KACiC;QAFrD,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,eAAS,GAAT,SAAS,CAAe;QACxB,cAAQ,GAAR,QAAQ,CAAyB;QAN7C,QAAE,GAAQ,EAAE,CAAC;QACb,QAAE,GAAQ,EAAE,CAAC;QACb,cAAqB;QAM3B,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAoE;;IACzF,CAAC;IAES,CAAc;QACtB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;SAAM;YACL,EAAoB;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAEM,EAAP;QACE,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAsC;SACzD;SAAM;YACL,EAAyB;SAC1B;IACH,CAAC;IAED;QACQ,aAA2B,EAAzB,UAAE,EAAE,UAAE,EAAE,kBAAkB;QAClC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,QAAQ,GAAG,IAAM;YACrB,IAAI,QAAQ,EAAE;gBACZ,QAAQ,GAA4B;gBACpC,IAAI,2CAAa,SAAW,EAAE;oBAC5B,IAAI,CAAC,0CAAkB,GAAe;iBACvC;aACF;aAAM;gBACL,EAAmB;aACpB;YACD,CAAe;gBACb,IAAI,CAAC,IAAI,CAAC,EAAO;aAClB;SACF;IACH,CAAC;IAED,EAAmB;QACT,kCAAW,CAAU;QAC7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,EAAc;QACZ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;SAAM;YACL,EAAoB;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA/DkD,UAAU,GA+D5D;;AAED;IAAqD,0EAAa;IAChE,uDAAY,WAAwB,EAAU,KAAqC;QAAnF,YACE,kBAAM,WAAW,CAAC,SACnB;QAF6C,YAAM,GAAN,MAAM,CAA+B;;IAEnF,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAES,EAAV;QACE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IACH,EAAC;AAAD,CAAC,CAhBoD,UAAU,GAgB9D;;;;AClKD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACF;AACD;AAIrC;IACE,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAcD,CAAM;AACJ,IAAO,UAAC,IAA8F;AACxG,CAAC;;;;ACxBD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASiD;AAChG,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,IAAI,CAAC,cAAwD;AACxG,CAAC;AAED,CAAmG;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAa;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,EAAM;IACrB,IAAI,UAAU,GAAG,IAAM;IAEvB,OAAO,gBAAwE;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,MAAqB;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,GAAoD;YAClE,YAAY,wCAAU,IAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,IAAsB;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,EAAK;gBACrB,CAAC;gBACD,EAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAG;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,CAAyC;QAEzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,EAAc;YACvB,IAAI,YAAY,IAAI,GAA8B;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;;;;;AC/C0C;AACK;AAqBiD;AAC/F,IAAO,UAAC,MAAqB,IAAK,IAAmD;AACvF,CAAC;AAED;IACE,wBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAA8B;IACzF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAkC,mDAAa;IAK7C,uCAAY,WAAwB,EAChB,KACsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QANlC,eAAS,GAAY,IAAM;QAE3B,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAEO,CAAyB;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAkD;SACnE;SAAM;YACL,EAAsB;YACtB,IAAI,CAAC,WAAW,GAAG,GAAM;SAC1B;IACH,CAAC;IAES,EAAc;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAc;SAC5B;SAAM;YACL,EAA6B;SAC9B;IACH,CAAC;IAEO,EAA+B;QACrC,IAAI;YACF,CAA+C;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;SAC7B;IACH,CAAC;IAES,EAAV;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAgD;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;SAAM;YACL,EAAkC;SACnC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAlDiC,UAAU,GAkD3C;;;;;AC5F0C;AAeN;AACnC,IAAO,UAAC,MAAqB,EAA0C;AACzE,CAAC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,EAAa;IACtE,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAgC,+CAAa;IAG3C,qCAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WACP;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAF7D,WAAK,GAAW,CAAC,CAAC;;IAIlB,CAAC;IAES,CAAU;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAZ+B,UAAU,GAYzC;;;;;AC7C0C;AAC+B;AAuCjC;AACvC,IAAO,UAAC,MAAqB,IAAK,EAAyC;AAC7E,CAAC;AAED;IACE,mCAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,YAAwB;SACnC;IACH,CAAC;IAED,CAA2C;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAA6B;SACrD;SAAM;YACL,EAA6E;SAC9E;IACH,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAoC,uDAAa;IAI/C,yCAAY,WAA0B,EAAU,KAAkB;QAAlE,YACE,kBAAM,WAAW,CAAC,QAEnB;QAH+C,gBAAU,GAAV,UAAU,CAAQ;QAF1D,YAAM,GAAW,CAAC,CAAC;QAIzB,KAAI,CAAC,KAAK,GAAG,GAAyB;;IACxC,CAAC;IAES,CAAc;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAS;SAC3B;SAAM;YACL,EAAuC;YACvC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,EAAc;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAU;SACjC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAxBmC,UAAU,GAwB7C;;;;;ACzFoD;AAES;AAgBR;AACpD,IAAO,UAAC,MAAqB,IAAK,MAA6C;AACjF,CAAC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,CAA4C;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,EAAgB;IAC/E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAwC,yDAAqB;IAK3D,0CAAY,WAA0B,EAAE,KAA8B;QAAtE,YACE,kBAAM,WAAW,CAAC,OAEnB;QANO,cAAQ,GAAY,KAAK,CAAC;QAKhC,KAAI,CAAC,GAAG,CAAC,KAAI,CAAC,OAAuD;;IACvE,CAAC;IAES,CAAc;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,gBAAmB;SACpB;IACH,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,YAAmB;YAC1B,IAAI,CAAC,iBAAiB,CAAC,EAAc;SACtC;IACH,CAAC;IAED;IAEA,CAAC;IACH,EAAC;AAAD,CAAC,CA5BuC,eAAe,GA4BtD;;;;;ACjE0C;AAeiC;AAC1E,IAAO,UAAC,MAAqB,IAAK,OAA8C;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAAiB;IAC/E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAqC,yDAAa;IAIhD,0CAAY,WAA0B,EAClB,KAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,QACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAJ3D,cAAQ,GAAY,IAAI,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,CAAc;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,WAAwB;SAC9B;QAED,CAAoB;YAClB,WAAW,CAAC,IAAI,CAAQ;SACzB;IACH,CAAC;IAEO,EAAyB;QAC/B,IAAI;YACF,CAAmD;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;SAC7B;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA5BoC,UAAU,GA4B9C;;;;AC9DD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACN;AACF;AACkB;AACZ;AA6C5C;AAAuB,YAAkC;SAAlC,UAAkC;QAAlC,0BAAkC;;IAC7D,CAA6B;QAC3B,IAAI,SAAS,GAAkB,KAAK,CAAmB;QACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;YAC1B,0CAAW,CAAC;SACb;SAAM;YACL,EAAiB;SAClB;QAED,CAAyB;QACzB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAW;YAC3B,OAAO,YAAY,CAAC,MAA+B;SACpD;SAAmB;YAClB,OAAO,QAAyD;SACjE;SAAM;YACL,EAAwD;SACzD;IACH,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;ACjE0C;AACF;AACK;AAY9C;IAA8C,uEAAa;IAYzD,4CAAmB,MAAqB,EACpB,SAAqB,CACU;QAD/B,yCAAqB;QACrB,2BAA+B;QAFnD,YAGE,MAOD;QAVkB,CAAqB;QACpB,eAAS,GAAT,SAAqB;QACrB,eAAS,qBAAT,CAA+B;QAEjD,CAA4C;YAC1C,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,GAAmC;YAC1D,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;;IACH,CAAC;IApBM,4BAAM,GAAb,UAAiB,MAAqB,EAAE,KAAiB,EAAE,SAA+B;QAAlD,2CAAiB;QAAE,CAA+B;QACxF,OAAO,IAAI,EAAgD;IAC7D,CAAC;IAGM,8BAAQ,GAAf,UAA6C,GAAmB;QACtD,uBAA2B;QACnC,OAAO,IAAI,CAAC,EAAkC;IAChD,CAAC;IAeD,+BAAoC;QAClC,IAAM,KAAK,GAAG,IAAI,oBAAC,CAAU;QAC7B,CAA2B;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;MAEkD;YACjF,MAAM,UAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IACH,EAAC;AAAD,CAAC,CAlC6C,UAAU,GAkCvD;;;;;;;;;;;;;AChDD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAcF;AAAjB,8BAAiB;IACxE,OAAO,gBAA0D;QAC/D,OAAO,GAA0D;IACnE,CAAE;AACJ,CAAC;AAED;IACE,EACiC;CADW;mCACxB,GAAK,CAAQ;IACjC,CAAC;IACD,+BAA2C;QACzC,OAAO,IAAI,QAEa;IAC1B,CAAC;IACH,0BAAC;AAAD,CAAC;;;;;;;AC5BoD;AAES;AAElC;AACc;AAsDoD;AAE5F,CAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,UAAC,MAAqB,IAAK,YAIhC;KACH;IACD,CAA8E;AAChF,CAAC;AAED;IACE,2BAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAAe;IAC7E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAwC,yDAAqB;IAI3D,0CAAY,WAA0B,EAClB,KAAwD;QAD5E,YAEE,kBAAM,WAAW,CAAC,MACnB;QAFmB,aAAO,GAAP,OAAO,CAAiD;QAJpE,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,CAAc;QACtB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,EAAgB;QAC3B,IAAI;YACF,CAAoC;SACrC;QAAC,CAAc;YACd,IAAI,CAAC,MAAyB;YAC9B,OAAO;SACR;QACD,CAAqC;IACvC,CAAC;IAEO,EAA6D;QACnE,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,EAAc;SACjC;QACD,CAAiF;IACnF,CAAC;IAES,EAAV;QACS,8CAAiB,CAAS;QACjC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,GAAQ;YAClD,iBAAM,SAAS,WAAE,CAAC;SACnB;IACH,CAAC;IAES,EAAV;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,EAAqC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAyB;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,iBAAkB;SACnB;IACH,CAAC;IAED,EAE0C;QACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACH,EAAC;AAAD,CAAC,CArDuC,eAAe,GAqDtD;;;;AC7ID,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACI;AAKtC;AACJ,IAAO,SAAS,CAAC,QAAU;AAC7B,CAAC;;;;ACDD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiDsD;AAE5F,IAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,UAAoE;AAC9G,CAAC;;;;;ACxDoD;AAES;AAyCR;AACpD,IAAO,UAAC,MAAqB,IAAK,MAA6C;AACjF,CAAC;AAED;IACE,qCAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,CAA2C;QACzC,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAM,oBAAoB,GAAG,gCAAkB,aAAoC;QACnF,IAAI,oBAAoB,yDAAK,KAAoB,CAAC,MAAM,EAAE;YACxD,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,CAA2B;IAC7B,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAwC,yDAAqB;IAE3D,0CAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;IAEA,CAAC;IACH,EAAC;AAAD,CAAC,CAfuC,eAAe,GAetD;;;;;ACpF0C;AA0CiC;AAC1E,IAAO,UAAC,MAAqB,IAAK,OAA8C;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,EAAiB;IAC/E,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAqC,yDAAa;IAGhD,0CAAY,WAA0B,EAClB,KAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,QACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAH3D,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,CAAc;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,CAA6C;SAC9C;QAAC,CAAY;YACZ,SAAuB;YACvB,OAAO;SACR;QACD,CAAmC;IACrC,CAAC;IAEO,EAAiD;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;SAAM;YACL,EAAuB;SACxB;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA5BoC,UAAU,GA4B9C;;;;;ACrFoD;AAES;AAST;AACnD,IAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAK;CAChB,CAAC;AA6CF,EAC0E;AAA9C,6CAA8C;IACxE,OAAO,UAAC,MAAqB,CAA0F;AACzH,CAAC;AAED;IACE,0BAAoB,gBAA0D,EAC1D,OAAgB,EAChB,QAAiB;CAFyC;QAC1D,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAS;IACrC,CAAC;IAED,2BAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CACrB,CACA;IACJ,CAAC;IACH,uBAAC;AAAD,CAAC;AAOD;IAAuC,wBAAqB;IAK1D,CAGsC;+BACpC,gBAAM,WAAW,CAAC,SACnB;kCALqB,IAAW,GAAX,WAAW,CAAe;QAC5B,sBAAgB,GAAhB,gBAAgB,CAA6C;QAC7D,cAAQ,GAAR,QAAQ,CAAS;QACjB,eAAS,GAAT,SAAS,CAAS;QAL9B,eAAS,GAAG,KAAK,CAAC;;IAO1B,CAAC;IAES,4BAAc;QACtB,IAAI,CAAC,QAAiB;KACE;QAExB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,IAAI,CAAC,QAAQ,CAAE;gBACjB,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,OAAgB;aACtB;SACF;IACH,CAAC;IAEO,SAAR;QACQ,CAAiC;MACxB;YACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,2BAAiB;QACvB,IAAM,QAAQ,GAAG,IAAI,CAAC,GAA2B;MACnC;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAa;SAC/D;IACH,CAAC;IAEO,yFAAR,SAA4B,KAAQ;QAClC,CAAI;MACkC;SACrC;QAAC,KAAY;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChB;SACb;IACH,CAAC;IAEO,oBAAR;QACQ,CAAiC;MACvB;YACd,UAAU,CAAC,WAAW,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,UAAU,EAAQ;QAEvB,IAAI,SAAS,EAAE;SACD;SACb;IACH,CAAC;IAED,oBAE0C;QACxC,CAAsB;IACxB,CAAC;IAED,2CAAc,GAAd;QACE,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACH,yBAAC;AAAD,CAAC,CAxEsC,eAAe,GAwErD;;;;;;;AC9J0C;AAEA;AAEwB;AAiDW;AAD9C,0CAAgC;IAChC,2BAA8C;IAC5E,OAAO,yCAAC,CAAsH;AAChI,CAAC;AAED;IACE,kCAAoB,CAGiB;KAHD;QAChB,cAAS,GAAT,SAAS,CAAe;CACR;QAChB,aAAQ,GAAR,QAAQ,CAAS;IACrC,CAAC;IAED,6BAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CACrB,GACA;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC;AAOD;IAAwC,mEAAa;IAKnD,EAIqC;QAJrC,YAKE,YACD;KALmC;uCAChB,SAAS,CAAe;kCACjB,GAAP,OAAO,CAAS;QAChB,cAAQ,GAAR,QAAQ,CAAS;QAP7B,uBAAiB,GAAY,KAAK,CAAC;QACnC,oBAAc,GAAM,GAAK;;IAQjC,CAAC;IAES,8BAAc;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAwB;KACE;aAC/B;SACF;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAuF;YACtH,IAAI,IAAI,CAAC,OAAO,EAAE;aACa;SAC9B;SACF;IACH,CAAC;IAES,2BAAV;QACE,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,CAA2C;SACf;MAC7B;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAW;SAC7B;IACH,CAAC;IAED;QACE,IAAM,EAA2B;QACjC,IAAI,SAAS,EAAE;SACgC;MACA;gBAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAS;aAChC;YACD,SAAS,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,CAjDuC,UAAU,GAiDjD;AAMD,sBAAyB,GAAmB;IAClC,KAAmB;IAC3B,EAA2B;AAC7B,CAAC;;;;;;;;;;;ACrID,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEb;AACc;AAChB;AAEoC;AAAhC,kCAAgC;IAC9D,OAAO,UAAC,MAAqB,IAAW;QACtC,OAAO,qCAAO,CAGS;KAAT;YAAc,QAAC,EAAE,KAAK,GAA4C;QAApD,CAAoD,EAC5E,EAAE,gCAAO,EAAE,SAAS,CAAC,EAE4B;gBAAtB,oBAAO,EAAE,cAAI,EAAE,IAAK;YAAO,WAAI,YAAY,CAAC,KAAsB;QAAvC,CAAuC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,EATgC,CAShC,CAAC;AACL,CAAC;AAED;IACE,YAAoD;QAAjC,GAAQ;MAAyB;CAAI;IAC1D,mBAAC;AAAD,CAAC;;;;;;;;;;;;;ACrB0C;AAEH;AACa;AACS;AA2DI;AAAhC,0CAAgC;IAChE,OAAO,UAAC,MAAqB;QAC3B,IAAI,yCAA8B;KAC+C;QACjF,OAAO,MAAM,CAAC,IAAI,CAAC,GAA8E;IACnG,CAAC,CAAC;AACJ,CAAC;AAED;IACE,EAG4C;CAHT;QACf,oBAAe,GAAf,eAAe,CAAS;QACxB,mBAAc,GAAd,cAAc,CAAsB;QACpC,cAAS,GAAT,MAAwB;IAC5C,CAAC;IAED,kCAAI,GAAJ,IAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,GAErB;IACL,CAAC;IACH,0BAAC;AAAD,CAAC;AAOD;IAA0C,2BAAqB;IAI7D,CAI4C;qCAC1C,aAAM,WAAW,CAAC,SAEnB;kCANmB,QAAe,GAAf,eAAe,CAAS;QACxB,aAAO,GAAP,OAAO,CAAQ;QACf,oBAAc,GAAd,cAAc,CAAsB;QACpC,eAAS,GAAT,SAAS,CAAe;QANpC,YAAM,GAAiD,IAAI,CAAC;QAQlE,KAAI,CAAC,eAAe,EAAE,CAAC;;IACzB,CAAC;IAEc,4BAA6D;QAClE,aAA8B;KACM;QAC5C,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAiB;IAChE,CAAC;IAEO,wCAAR;QACU,qEAAgB;MACZ;YAMV,IAAI,CAAC,MAAM,GAAmD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAE,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAmD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC5F,GACE;SACL;IACH,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,CAA2B;MACF;SACxB;QACD,iBAAM,KAAK,MAAQ;IACrB,CAAC;IAGD;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;MACG;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,CAhDyC,eAAe,GAgDxD;;;;;;;;;AC5ID,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAKS;AAER;AACU;AA2EK;AAAhC,kCAAgC;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,GAA2C;AACrE,CAAC;;;;;;ACpFD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEf;AAQiC;AAAhC,+BAAgC;IAC3D,OAAO,GAAG,CAAC,UAAC,KAAQ,CAA4C;AAElE,CAAC;AAED;IACE,0CAAmB,KAAQ,EAAS,SAAiB;CAA1B;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;IACH,gBAAC;AAAD,CAAC;;;;;;;ACnBD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGyB;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,CAAe;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAED,CAAM;AACJ,IAAO,MAAM,CAAC,SAAgD;AAChE,CAAC;;;;;ACXoC;AAEgB;AAES;AA2CH;AACzD,IAAO,sCAAqD;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAmB;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,+BAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,eAAiC;IACrD,CAAC;IAED,CAAuD;QACrD,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,kBAAkB,GAAG,yBAAiB,aAAkB;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,QAA4D;SAClF;QACD,CAA0B;IAC5B,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAkC,mDAAuB;IAIvD,uCAAY,WAAsC;QAAlD,YACE,kBAAM,MAEP;QALO,YAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,4BAAK,GAAQ;;IAChC,CAAC;IAED,CAE4C;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,EAAyD;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,EAAgD;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,EAAc;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAM;IAC9B,CAAC;IAES,EAAV;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,MAAW;IAC9B,CAAC;IAGD;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,EAAR;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,EAAW;SACvB;QACD,CAAqC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAa;QACjD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IACH,EAAC;AAAD,CAAC,CAnDiC,eAAe,GAmDhD;;;;;AC7H0C;AAEN;AA6DsB;AAA5B,oDAA4B;IACzD,OAAO,2BAA0D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,EAA0D;IAC/E,CAAE;AACJ,CAAC;AAED;IAEE,EAC4C;CADN;QAClB,qBAAgB,GAAhB,gBAAgB,CAAQ;IAC5C,CAAC;IAED,iCAAuD;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAA2E;IACzG,CAAC;IACH,0BAAC;AAAD,CAAC;AAOD;IAAuC,2BAAa;IAIlD,CAE4C;qCAC1C,aAAM,WAAW,CAAC,SAEnB;kCALqB,IAAW,GAAX,WAAW,CAA2B;QACxC,gBAAU,GAAV,UAAU,CAAQ;QAClB,sBAAgB,GAAhB,gBAAgB,CAAQ;QALpC,aAAO,GAAiB,CAAE,IAAI,OAAO,EAAK,CAAE,CAAC;QAC7C,WAAK,GAAW,CAAC,CAAC;QAMxB,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;IACpC,CAAC;IAES,qCAAK,EAAS;QACtB,IAAM,SAAyF;KAC1D;QACrC,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAc;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAwC;SAC7B;SAC5B;QACD,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzD,IAAM,QAAM,GAAG,IAAI,OAAO,CAAM;SACX;YACrB,WAAW,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;SAC1B;IACH,CAAC;IAES,mCAAe;QACvB,CAA6B;MAChB;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAW;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,KAAV;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;MAChB;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAW;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,KAAV;QACE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;MACK;IACtB,CAAC;IACH,mBAAC;AAAD,CAAC,CAxDsC,UAAU,GAwDhD;;;;;;;AC9IoC;AAEM;AACA;AAGG;AACI;AAsFE;AAClD,CAAI,6BAAiC;IACrC,IAAI,6CAAsC;IAC1C,IAAI,aAAa,GAAW,MAAM,CAAC,OAAkB;IAErD,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,0CAAS,CAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,CAA+B;QAC7B,0CAAS,CAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;KAAmC;QAClC,2CAAa,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,CAA+B;QAC7B,0CAAS,CAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;KAAmC;QAClC,mDAAsB,GAAG,MAAa;KACvC;IAED,CAAgE;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAI,MAAmE;IAClH,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,4BAAoB,cAAsB,EACtB,KAEwB;QAHxB,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,OAAqC;QACrC,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,CAAuD;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAC9C,UAAU,EAAE,EACX;IACL,CAAC;IACH,EAAC;AAAD,CAAC;AA0BD;IAAgC,qDAAU;IAA1C;QAAA,uBAWC;QAVS,2BAAqB,GAAW,CAAC,CAAC;;IAU5C,CAAC;IARC,CAAc;QACZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,iBAAM,IAAI,QAAQ;IACpB,CAAC;IAED,EAAwB;aAAxB;YACE,OAAO,IAAI,CAAC,EAAsB;QACpC,CAAC;;;OAAA;IACH,GAAC;AAAD,CAAC,CAX+B,OAAO,GAWtC;AAOD;IAAsC,2DAAa;IAGjD,2CAAsB,WAAsC,EACxC,KAGwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAYnB;QAjBqB,iBAAW,GAAX,WAAW,CAA2B;QACxC,oBAAc,GAAd,SAAsB;QACtB,4BAAsB,GAAtB,OAAqC;QACrC,mBAAa,GAAb,aAAa,CAAQ;QACrB,eAAS,GAAT,SAAS,CAAe;QANpC,aAAO,GAAwB,EAAE,CAAC;QASxC,IAAM,MAAM,GAAG,KAAI,CAAc;QACjC,IAAI,sBAAsB,KAAK,CAAqC;YAClE,IAAM,UAAU,GAAkB,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,UAAE,OAAO,EAAO,EAAO;YACnF,IAAM,aAAa,GAAqB,EAAE,cAAc,kBAAE,gBAAsD;YAChH,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7F,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAmB,sBAAsB,EAAE,sBAAsB,EAAE,EAAgB;SAC/G;SAAM;YACL,EAA6F;YAC7F,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAuB,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;SACnH;;IACH,CAAC;IAES,CAAc;QACtB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAO;YAC5B,IAAM,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAM,CAAC,MAAM,EAAE;gBAClB,QAAM,CAAC,IAAI,CAAC,KAAO;gBACnB,IAAI,QAAM,CAAC,QAA4C;oBACrD,IAAI,CAAC,WAAW,CAAC,QAAM,CAAC,CAAC;iBAC1B;aACF;SACF;IACH,CAAC;IAES,EAAe;QACvB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAK;SAC5B;QACD,CAA4B;IAC9B,CAAC;IAES,EAAV;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAM,QAAM,GAAG,OAAO,CAAC,CAAQ;YAC/B,IAAI,CAAC,QAAM,CAAC,MAAM,EAAE;gBAClB,QAAM,CAAC,QAAQ,EAAG;aACnB;SACF;QACD,CAA4B;IAC9B,CAAC;IAEM,EAAP;QACE,IAAM,MAAM,GAAG,IAAI,cAAc,EAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,yBAAS;QAC1B,IAAM,WAAW,GAAG,IAAI,CAAC,GAAY;QACrC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,EAAqC;QAC1C,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAM,OAAO,GAAG,IAAa;QAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAoB;IAC7C,CAAC;IACH,EAAC;AAAD,CAAC,CApEqC,UAAU,GAoE/C;AAED,qCAA+G;IACrG,iCAAU,EAAE,KAAiC;IACrD,IAAI,MAAM,EAAE;QACV,SAA+B;KAChC;IACD,CAAuC;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,CAAmG;IACzF,oCAAwE;IAChF,IAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACvC,IAAM,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,GAA0B,EAAE,EAAkC;IACzE,IAAM,aAAa,GAAkB,EAAE,UAAU,cAAE,MAAM,CAAY;IACrE,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,EAAe;IAC7G,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAwB;AACjD,CAAC;AAED,CAAoD;IAC1C,iCAAsC;IAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC7C;IACD,CAA+B;AACjC,CAAC;;;;;AC7QoC;AACU;AACH;AACM;AACG;AAES;AAiDuB;AACnF,IAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,IAAI,CAAC,IAAI,GAAuD;AAC3G,CAAC;AAED;IAEE,8BAAoB,QAAuB,EACvB,WAAkD;QADlD,aAAQ,GAAR,QAAQ,CAAe;QACvB,oBAAe,GAAf,EAAkD;IACtE,CAAC;IAED,CAAuD;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAChD,UAAU,EAAE,EACX;IACL,CAAC;IACH,EAAC;AAAD,CAAC;AAYD;IAA2C,+DAAuB;IAIhE,6CAAY,WAAsC,EAC9B,KACkD;QAFtE,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,cAAQ,GAAR,QAAQ,CAAe;QACvB,qBAAe,GAAf,EAAkD;QAL9D,cAAQ,GAAuB,EAAE,CAAC;QAOxC,KAAI,CAAC,GAAG,CAAC,KAAI,CAAC,IAAuE;;IACvF,CAAC;IAES,CAAc;QACd,4BAAQ,CAAU;QAC1B,IAAI,QAAQ,EAAE;YACZ,IAAM,GAAG,GAAG,CAAgB;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAK;gBAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAO;aAChC;SACF;IACH,CAAC;IAES,EAAe;QAEf,4BAAQ,CAAU;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,QAAQ,EAAE;YACZ,IAAM,GAAG,GAAG,CAAgB;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YAEf,OAAO,EAAE,KAAK,CAAQ;gBACpB,IAAM,SAAO,GAAG,GAAgB;gBAChC,SAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,SAAO,CAAC,YAAY,CAAC,KAAc;aACpC;SACF;QAED,CAAkB;IACpB,CAAC;IAES,EAAV;QACU,4BAAQ,CAAU;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,QAAQ,EAAE;YACZ,IAAM,GAAG,GAAG,CAAgB;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,KAAK,CAAQ;gBACpB,IAAM,SAAO,GAAG,GAAgB;gBAChC,SAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1B,SAAO,CAAC,YAAY,CAAC,KAAc;aACpC;SACF;QACD,CAAkB;IACpB,CAAC;IAGD;QACU,4BAAQ,CAAU;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,QAAQ,EAAE;YACZ,IAAM,GAAG,GAAG,CAAgB;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,KAAK,CAAQ;gBACpB,IAAM,SAAO,GAAG,GAAgB;gBAChC,SAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC7B,SAAO,CAAC,YAAY,CAAC,QAAc;aACpC;SACF;IACH,CAAC;IAED,EAE4C;QAE1C,IAAI,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;YAExB,+BAAyB;YACjC,IAAM,eAAe,GAAG,QAAQ,CAAC,YAA6B;YAE9D,IAAI,eAAe,uCAAK,KAAW,EAAE;gBACnC,OAAO,IAAI,CAAC,KAAK,CAAC,oCAAa,CAAC,CAAC;aAClC;aAAM;gBACL,EAAgC;gBAChC,IAAM,YAAY,GAAG,0BAAI,GAAe;gBACxC,IAAM,SAAO,GAAG,EAAE,yCAAM,CAAE,EAAe;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAO,CAAC,CAAC;gBAC5B,IAAM,iBAAiB,GAAG,MAAyD;gBAEnF,IAAI,iBAAiB,CAAC,wDAAQ;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAqB;iBAC5C;iBAAM;oBACE,EAAqC;oBAC5C,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;iBACrC;gBAED,CAA8B;aAE/B;SACF;SAAM;YACL,EAAoD;SACrD;IACH,CAAC;IAED,EAAoB;QAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,EAAkC;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgC;SAChE;IACH,CAAC;IAEO,EAAyB;QAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO;SACR;QAEO,CAAkB;QAC1B,IAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE;QACxB,2BAAM,EAAE,CAAyB;QACzC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,YAAY,CAAC,KAAc;IAC7B,CAAC;IACH,EAAC;AAAD,CAAC,CA7H0C,eAAe,GA6HzD;;;;;AC/MoC;AAEO;AACM;AACG;AAES;AA6CM;AAClE,IAAO,kCAAyD;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,UAAkB;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,mCAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAsC;IAC1D,CAAC;IAED,CAAuD;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAAuB;IAClF,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAkC,uDAAuB;IAIvD,uCAAsB,WAAsC,EACxC,KAAsC;QAD1D,YAEE,kBAAM,WAAW,CAAC,SAEnB;QAJqB,iBAAW,GAAX,WAAW,CAA2B;QACxC,qBAAe,GAAf,QAAsC;QAExD,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAED,CAE4C;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,EAAyD;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,EAAgD;QAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAES,EAAc;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAM;QAC5B,IAAI,CAAC,uBAAiC;IACxC,CAAC;IAES,EAAV;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,MAAW;QAC5B,IAAI,CAAC,uBAAiC;IACxC,CAAC;IAEO,EAAR;QACE,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,EAAc;SACxC;IACH,CAAC;IAEO,EAAmD;QAAxC,0CAAwC;QACzD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,IAAU;SACC;SACxB;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,IAAO;QAC/B,IAAI,UAAU,EAAE;SACQ;SACvB;QAED,IAAM,MAAM,GAAG,IAA+B;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAQ;QAE9B,CAAyD;QACzD,IAAI,eAAe,KAAK,iCAAa;YACnC,IAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,qCAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAK;SACxB;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAgE;SAC/E;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,CArEiC,OAqEjC;;;;;;;AC5IoD;AAES;AA6DxD;AAA+B,WAAqE;SAArE,SAAqE;QAArE,yBAAqE;;IACxG,CAA6B;QAC3B,IAAI,OAAY,CAAC;QACjB,IAAI,OAAO,CAAsC;YAC/C,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACtB;QACD,CAA4C;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAkD;IACvE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,gCAAoB,WAA8B,EAC9B,OAA6C;QAD7C,gBAAW,GAAX,WAAW,CAAmB;QAC9B,YAAO,GAAP,OAAO,CAAsC;IACjE,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,EAAiC;IACpG,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAA6C,mEAAqB;IAIhE,+CAAY,WAA0B,EAClB,KAC6C;QAFjE,YAGE,kBAAM,WAAW,CAAC,SAYnB;QAdmB,iBAAW,GAAX,WAAW,CAAmB;QAC9B,aAAO,GAAP,OAAO,CAAsC;QAJzD,eAAS,GAAa,EAAE,CAAC;QAM/B,IAAM,GAAG,GAAG,WAAmB;QAC/B,KAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,CAAE;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxB;QAED,CAA8B;YAC5B,IAAI,UAAU,GAAG,UAAe;YAChC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAO,IAAuC;SACzE;;IACH,CAAC;IAED,CAE0C;QACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAM,KAAK,GAAG,SAAS,CAAC,CAAoB;YAC5C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,SAAS,CAAC,KAAiB;aAC5B;SACF;IACH,CAAC;IAED;IAEA,CAAC;IAES,EAAc;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAM,IAAI,IAAI,KAAK,SAAK,IAAa;YACrC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,UAAkB;aACxB;aAAM;gBACL,EAA4B;aAC7B;SACF;IACH,CAAC;IAEO,EAAuB;QAC7B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,CAAwC;SACzC;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAA8B;IAChC,CAAC;IACH,EAAC;AAAD,CAAC,CA3D4C,eAAe,GA2D3D;;;;;;;ACvJD,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsC/C;AAAoB,oBAA4E;SAA5E,UAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,CAAyD;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,QAA6B;IAChE,CAAC,CAAC;AACJ,CAAC;;;;AC1CD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASmB;AACjE,IAAO,UAAC,MAAqB,IAAK,EAAsC;AAC1E,CAAC;;;;ACTD;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAA8B;AACQ;AACN;AACU;AACF;AACI;AACJ;AACA;AACA;AACM;AACd;AACM;AACA;AACI;AACZ;AACM;AACQ;AACI;AAClB;AACQ;AACQ;AACV;AACwB;AACM;AAC5B;AACJ;AACJ;AACI;AACM;AACR;AACA;AACI;AACR;AACU;AACR;AACI;AACc;AACd;AACN;AACF;AACI;AACY;AAChB;AACI;AACM;AACA;AACW;AACP;AACF;AACZ;AACY;AACA;AACgB;AAClB;AACE;AACR;AACI;AACgB;AACR;AACI;AAClB;AACI;AACA;AACQ;AACV;AACQ;AACF;AACJ;AACQ;AACZ;AACkB;AAChB;AACY;AACV;AACJ;AACQ;AACE;AACA;AACA;AACI;AACJ;AACA;AACI;AACd;AACQ;AACE;AACA;AACZ;AACU;AACQ;AACA;AACA;AACV;AACQ;AACJ;AACJ;AACF;AACU;AACF;AACI;AACJ;AACQ;AACtB;AACM;;;;;;;;;;;;;;;;;;;;;;;ACxGtD,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,aAAuB;AAGzB;AAC5C,IAAO,KAAK,IAAI,OAAO,KAAK,CAAC,WAAkC;AACjE,CAAC;;;;;;;ACND,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,eAAqB;AAG5B;AACnC,IAAO,KAAK,IAAI,OAAO,KAAK,CAAC,EAAgC;AAC/D,CAAC;;;;;;;;;;;;;ACLD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEI;AACiB;AAEe;AAC7E,CAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,EAAyC;KACrD;KAAM;QACL,EAAmC;YACjC,IAAM,GAAG,gCAAO,SAAY,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,0CAAkB,CAAC,EACpB;gBACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,aAA8B;gBAC3D,CAAC,CAAC,CAAC,CAAC;YACN,CAAC,EACD,aAAG;gBACD,GAAG,CAAC,GAAG,CAAkD;YAC3D,CAAC,CACF,EAVgC,CAUhC,CAAC,CAAC,CAAC;YACJ,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;;;ACzBD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEI;AACkB;AACC;AAEU;AAC1E,CAAI,CAAC,KAAK,EAAE;QACV,MAAM,GAAqC;KAC5C;IACD,CAAgB;QACd,OAAO,IAAI,EAA0C;KACtD;KAAM;QACL,EAAmC;YACjC,IAAM,GAAG,gCAAO,SAAY,EAAE,CAAC;YAC/B,IAAI,QAAqB,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC;gBAEN,IAAI,QAAQ,IAAI,CAAuC;oBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;YACH,GAA2B;gBACzB,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC,SAAS,mCAAU;oBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;wBACrB,OAAO;qBACR;oBACD,CAAa;oBACb,IAAI,IAAa,CAAC;oBAClB,IAAI;wBACF,CAA+B;wBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;wBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;qBACpB;oBAAC,CAAY;wBACZ,SAAsB;wBACtB,OAAO;qBACR;oBACD,CAAU;wBACR,OAAsB;qBACvB;qBAAM;wBACL,EAAuB;wBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CAAC,CAAC;YACJ,IAAW;QACb,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;ACjDD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACI;AACwB;AACD;AAGiB;AACrF,CAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,EAA4C;KACxD;KAAM;QACL,EAAmC;YACjC,IAAM,GAAG,gCAAO,SAAY,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,0CAAkB,CAAC;gBACzB,IAAM,UAAU,GAAoB,KAAK,CAAC,aAAqB;gBAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,2CAAU;oBAC3B,IAAI,YAAC,KAAK,IAAI,CAA4D;oBAC1E,KAAK,YAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,iBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,gBAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,iBAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzE,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CAAC,CAAC;YACJ,IAAW;QACb,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;ACvBD;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACG;AACI;AACgB;AAClB;AACR;AACI;AACE;AACI;AACA;AAK0B;AAC1E,CAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,IAAwB;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,CAA6C;KAC9C;IAED,CAAmB;QACjB,IAAI,YAA4B;YAC9B,mBAAO,EAAc,CAAC,KAAK,EAAa;SACzC;SAA4B;YAC3B,2CAAO,IAAW,CAAC,KAAkB;SACtC;SAA8B;YAC7B,+CAAgB,CAAC,KAAK,EAAE,EAAW;SACpC;SAA2D;YAC1D,eAAO,IAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACvC;KACF;IAED,CAAsF;AACxF,CAAC;;;;;;;;;ACnCD;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEI;AACa;AAEe;AACzE,CAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,EAAuC;KACnD;KAAM;QACL,EAAmC;YACjC,IAAM,GAAG,8DAAO,SAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,GAAG,CAAC,GAAG,CAAC,EAAmB;gBACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;oBACtB,UAAU,CAAC,QAAQ,EAAG;oBACtB,OAAO;iBACR;gBACD,CAA4B;gBAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;oBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAY;iBAC1B;YACH,CAAC,CAAC,CAAC,CAAC;YACJ,IAAW;QACb,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;;;ACzBD;AAAA,IAAI,uCAA4D;AAMhE,MAAM,CAAC,IAAM,MAAM,GAAG;AAKpB,IAAO,EAAE,QAAmC;IAU5C,IAAI,eAAoD;QACtD,IAAI,KAAK,EAAE;YACT,IAAM,IAAoB;YAC1B,OAAO,CAAC,IAAI,CAAC,yBAA+G;SAC7H;SAA+D;YAC9D,OAAO,CAAC,GAAG,CAAC,+CAAwD;SACrE;QACD,CAA4D;IAC9D,CAAC;IAED,EAAyC;QACvC,OAAO,kCAAoD;IAC7D,CAAC;CACF,CAAC;;;;;;;;;ACjCF;AAAA,MAAM,mBAAmB,CAAC;;;;;;;;;ACD1B;AAAA,MAAM,mBAAsB,CAAI;AAC9B,IAAO,CAAC,CAAC;AACX,CAAC;;;;;;;;;ACAD;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACN;AACgB;AAgBrD;IAGE,sBAAmB,IAAY,EAAS,KAAS,EAAS,KAAW;QAAlD,SAAI,GAAJ,IAAI,CAAQ;QAAS,UAAK,GAAL,IAAS;QAAS,UAAK,GAAL,KAAK,CAAM;QACnE,IAAI,CAAC,QAAQ,GAAG,GAAa;IAC/B,CAAC;IAOD,CAAoC;QAClC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,GAAG;gBACN,KAAkD;YACpD,KAAK,GAAG;gBACN,KAAoD;YACtD,KAAK,GAAG;gBACN,KAAgD;SACnD;IACH,CAAC;IAUD,EAA8E;QAC5E,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,KAAgC;YAClC,KAAK,GAAG;gBACN,KAAkC;YACpC,KAAK,GAAG;gBACN,KAA8B;SACjC;IACH,CAAC;IAWD,EAAmH;QACjH,IAAI,cAAc,IAAI,OAA4B,cAAe,CAAC,IAAI,KAAK,UAAU,EAAE;YACrF,OAAO,IAAI,CAAC,OAAO,CAAqB,cAAc,CAAC,CAAC;SACzD;SAAM;YACL,EAAoE;SACrE;IACH,CAAC;IAOD;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,KAAsB;YACxB,KAAK,GAAG;gBACN,KAA8B;YAChC,KAAK,GAAG;gBACN,KAAe;SAClB;QACD,CAAsD;IACxD,CAAC;IAaM,EAAsB;QAC3B,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,EAAO;SACrC;QACD,CAA+C;IACjD,CAAC;IAUM,EAAwB;QAC7B,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,SAAS,CAAO;IAC/C,CAAC;IAOM,EAAP;QACE,OAAO,YAAY,CAAC,mBAAqB;IAC3C,CAAC;IArCc,EAAgE;IAChE,uCAA0B,GAAsB,IAAI,YAA6B;IAqClG,mBAAC;CAAA;KApHwB;;;;;;;;;ACpBzB;AAAA;AAAA;AAAA,MAAM;AACJ,CAAI,OAAO,MAAM,KAAK,UAAU,CAAsB;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,CAAuB;AACzB,CAAC;AAED,CAA4C;AAKrC,IAAM,UAAU,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACbnC,0CAAuC;AAEvC,4DAAyE;AACzE,wCAAqC;AACrC,yCAAuC;AACvC,2CAAyC;AAEzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC,CAAC;AAGlG,4BAAoB,GAAG,yNAAyN,CAAC;AAC5P,IAAM,MAAM,GAAG,CAAC,CAAC;AAOjB;IAAqD,0CAAS;IAA9D;QAAA,qEA+YC;QAzVC,kCAA4B,GAAG,KAAK,CAAC;;IAyVvC,CAAC;IA7UC,iDAAgB,GAAhB;QAEE,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,sCAAK,GAAL;QAAA,iBA+BC;QA9BC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,iBAAM,KAAK,WAAE,CAAC;QAId,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,CAAC,YAAY,GAAgB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAK7B,UAAU,CAAC;YACT,IAAI,CAAC,KAAI,CAAC,4BAA4B,IAAI,CAAC,KAAI,CAAC,aAAa,IAAI,IAAI,IAAI,KAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBACzG,OAAO,CAAC,KAAK,CAAC,oEAAoE,EAAE,KAAI,CAAC,CAAC;aAC3F;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,8CAAa,GAAb;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,4CAAW,GAAX;QACE,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,IAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAOD,0CAAS,GAAT,UAAU,KAAU;QAClB,GAAG,CAAC,YAAY,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAUD,iDAAgB,GAAhB,UAAiB,WAAoB;QACnC,GAAG,CAAC,sBAAoB,WAAW,qCAAgC,IAAI,CAAC,YAAc,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,OAAO;SACR;QAGD,oBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;IACpD,CAAC;IAED,sBAAI,yCAAK;aAAT;YACE,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,IAAI,MAAM,IAAK,IAAI,EAAE;gBACnB,GAAG,CAAC,iCAA+B,MAAM,CAAC,KAAO,CAAC,CAAC;gBACnD,OAAO,MAAM,CAAC,KAAK,CAAC;aACrB;YACD,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAC1D,CAAC;aAED,UAAU,KAAK;YACb,GAAG,CAAC,eAAa,KAAK,aAAU,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;;;OANA;IAQD,sBAAI,8CAAU;aAAd;YACE,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAElC,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,GAAG,CAAC,sCAAoC,MAAM,CAAC,UAAY,CAAC,CAAC;gBAE7D,OAAO,MAAM,CAAC,UAAU,CAAC;aAC1B;YAED,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAC/D,CAAC;aAED,UAAe,KAAK;YAClB,GAAG,CAAC,oBAAkB,KAAK,MAAG,CAAC,CAAC;YAChC,IAAI,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,iBAAiB,EAAE;gBAErB,IAAI,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACxD,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;;;OAXA;IAkBD,sDAAqB,GAArB;QACE,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAYD,+CAAc,GAAd,UAAe,oBAA8B,EAAE,QAAkB;QAC/D,GAAG,CAAC,oBAAkB,oBAAoB,UAAK,QAAQ,cAAW,CAAC,CAAC;QAEpE,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,QAAQ,GAAG,KAAK,CAAC;SAClB;QAED,IAAI,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACxC,IAAI,oBAAoB,KAAK,IAAI,IAAI,QAAQ,EAAE;YAC7C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC;YAChD,IAAI,gBAAgB,CAAC,WAAW,KAAK,YAAY,EAAE;gBACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACnB;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;aAC9C;SACF;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAIlB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAG9B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAElD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;aAC1C;YAED,IAAI,oBAAoB,IAAI,IAAI,EAAE;gBAChC,iBAAiB,GAAG,IAAI,CAAC,4BAA4B,CAAC;aACvD;iBAAM;gBACL,iBAAiB,GAAG,oBAAoB,CAAC;aAC1C;SACF;QAID,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKS,oDAAmB,GAA7B;QACE,OAAO,sDAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,yCAAQ,GAAR,UAAS,QAAQ;QACf,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;IACH,CAAC;IAQD,yCAAQ,GAAR;QACE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,IAAI,SAAS,GAAS,IAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,IAAI,EAAE;YACf,IAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACxB;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,gDAAe,GAAf;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACrD,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YAC3D,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,OAAO;aACR;YAED,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;gBAClC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;aACpC;iBAAM;gBACL,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;aAC5B;SACF;IACH,CAAC;IAED,2CAAU,GAAV;QACE,GAAG,CAAC,iCAAiC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,EAAE;YAEnB,IAAI,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gCAAgC,KAAK,MAAM;mBAC7E,IAAI,CAAC,WAAW,KAAK,YAAY,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;YACzE,IAAI,qBAAqB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC;mBAC5D,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC;YAC9E,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;YAGhD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YAGlC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;mBACvD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;gBACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;aAC7C;YAGD,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;gBAClC,IAAI,CAAC,aAAa,GAAG,kBAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;aAC7D;iBAAM,IAAI,CAAC,qBAAqB,EAAE;gBACjC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;aAC7B;iBAAM,IAAI,qBAAqB,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;aAC7C;YAGD,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,EAAE;gBAC9D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SACF;IACH,CAAC;IAOD,sDAAqB,GAArB;QACE,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACtC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,0CAAS,GAAT,UAAU,aAAqB,EAAE,aAAqB;QACpD,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,KAAK,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,8CAAa,GAAb,UAAc,iBAAyB;QACrC,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,+CAAc,GAAd,UAAe,cAAsB;QACnC,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IAGD,iDAAgB,GAAhB,UAAiB,iBAAyB,EAAE,kBAA2B;QACrE,OAAO,iBAAiB,KAAK,MAAM,IAAI,kBAAkB,CAAC;IAC5D,CAAC;IAED,wDAAuB,GAAvB,UAAwB,iBAAyB,EAAE,kBAA2B;QAC5E,OAAO,iBAAiB,KAAK,SAAS,IAAI,kBAAkB,CAAC;IAC/D,CAAC;IAED,yDAAwB,GAAxB,UAAyB,KAAY;QACnC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAGD,mDAAkB,GAAlB,UAAmB,YAAyB;QAC1C,IAAI,UAAU,GAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,2CAAU,GAAV;QACE,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,CAAC;IAED,0DAAyB,GAAzB,UAA0B,QAAwC;QAChE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,OAAO,kBAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;SACtD;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,CA/YoD,sBAAS,GA+Y7D;AA/YqB,wDAAsB;;;;;;;;;;;AClB5C,6CAAmD;AACnD,yCAAqC;AACrC,wCAAmC;AAEnC,IAAI,iCAAiC,GAAG,oBAAQ,CAAC,4BAA4B,CAAC,oCAAqB,CAAC,CAAC;AACrG,iCAAiC,CAAC,OAAO,CAAC,kBAAO,CAAC,CAAC;AAExC,gCAAwB,GAAG,iCAAiC,CAAC;;;;;;;;;ACKxE;AAAA,MAAM,CAAC,IAAM,UAAU,GAAG,OAAO,MAAM,KAAK,CAAkD;;;;;;;;;;;;ACH9F;IAA6C,mDAAK;IAIhD;QAAA,YACE,kBAAM,EAEP;QALe,UAAI,GAAG,yBAAyB,CAAC;QAI9C,MAAc,CAAC,cAAc,CAAC,KAAI,EAAE,UAAmC;;IAC1E,CAAC;IACH,CAAC;AAAD,CAAC,CAR4C,KAAK,GAQjD;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxB;AACI;AACqB;AA8G7C;AAAuB,kBAA2D;SAA3D,UAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,CAA2F;QACzF,OAAO,IAAI,CAAM,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAClC;IACD,CAA0C;AAC5C,CAAC;;;;;;;;;;ACvHD,wCAAyB,GAAuB,CAAC;AACjD;;;;GAIG;AAEH,IAAI,mBAAmB,GAAG;IACxB,QAAQ,EAAE,OAAO;IACjB,kBAAkB,EAAE;QAClB,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;QACnI,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QAClG,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,YAAY;QAC9B,eAAe,EAAE,UAAU;QAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACrB,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;QAChE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;QACrF,WAAW,EAAE,QAAQ;KACtB;IACD,oBAAoB,EAAE,kBAAkB;IACxC,gBAAgB,EAAE;QAChB,aAAa,EAAE,GAAG;QAClB,cAAc,EAAE,6EAA6E;QAC7F,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,CAAC;gBACX,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,GAAG;gBACb,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,EAAE;aACb,CAAC;QACF,eAAe,EAAE,iBAAiB;KACnC;CACF,CAAC;AAEF,IAAM,UAAU,GAAG,YAAY,CAAC;AAChC,IAAM,gBAAgB,GAAG,uDAAuD,CAAC;AACjF,IAAM,2BAA2B,GAAG,6CAA6C,CAAC;AAElF;IAAA;QACS,kBAAa,GAAW,SAAS,CAAC;QACzC,4JAA4J;QACrJ,gBAAW,GAAW;YAC3B,qEAAqE,EAAE,0DAA0D;YACjI,kEAAkE,EAAE,uDAAuD;YAC3H,sDAAsD,EAAE,2CAA2C;YACnG,yDAAyD,EAAE,8CAA8C;YACzG,iDAAiD,EAAE,mCAAmC;YACtF,uEAAuE,EAAE,0DAA0D;YACnI,8DAA8D,EAAE,oDAAoD;YACpH,8DAA8D,EAAE,oDAAoD;YACpH,sDAAsD,EAAE,0CAA0C;YAClG,uDAAuD,EAAE,2CAA2C;YACpG,gEAAgE,EAAE,sDAAsD;YACxH,gEAAgE,EAAE,sDAAsD;YACxH,4DAA4D,EAAE,qDAAqD;YACnH,uDAAuD,EAAE,2CAA2C;YACpG,sDAAsD,EAAE,0CAA0C;YAClG,8DAA8D,EAAE,yCAAyC;YACzG,cAAc,EAAE,OAAO;YACvB,iBAAiB,EAAE,UAAU;YAC7B,kBAAkB,EAAE,WAAW;YAC/B,wBAAwB,EAAE,4BAA4B;SACvD,CAAC;QAEK,WAAM,GAAQ,mBAAmB,CAAC;IA+vB3C,CAAC;IA5vBC,mCAAgB,GAAhB,UAAiB,wBAAwB;QACvC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAED,iCAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,gCAAa,GAAb;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,8BAAW,GAAX;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,0BAAO,GAAP,UAAQ,GAAS,EAAE,MAAyD;QAC1E,2EAA2E;QAC3E,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;YAChB,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;YAChB,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC7B,OAAO,MAAM,KAAK,SAAS;gBAC3B,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,GAAG,CAAC,CAAU,UAAmB,EAAnB,WAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,CAAC;oBAA7B,IAAI,CAAC;oBACR,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;oBACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,sCAAmB,GAAnB,UAAoB,GAAW;QAC7B,IAAI,MAAM,GAA2B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,yBAAM,GAAN;QACE,oFAAoF;QACpF,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,qCAAkB,GAAlB,UAAmB,IAAU,EAAE,oBAA2B;QAA3B,oCAA2B,GAA3B,2BAA2B;QACxD,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,GAAG,GAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAE/E,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YAChC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;YAClC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YACrC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;YACvC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YACtC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;YACxC,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC/E,IAAI,SAAS,GAAW,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC/D,IAAI,OAAO,GAAW,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,OAAO,GAAY,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,IAAI,GAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,GAAG;gBACN,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;oBACpB,OAAO;oBACP,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;oBAC/B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACZ,UAAU,IAAI,GAAG,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,QAAQ;oBACR,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACZ,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;oBAC/C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACH,KAAK,CAAC;YACN,QAAQ;YACR,KAAK,GAAG;gBACN,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;oBACpB,QAAQ;oBACR,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC/B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACZ,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,QAAQ;oBACR,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACZ,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;oBAC/C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACH,KAAK,CAAC;YACN,KAAK,GAAG;gBACN,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACZ,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;wBACpB,QAAQ;wBACR,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;oBAC/C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,OAAO;wBACP,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;wBACpB,KAAK;wBACL,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;oBACjC,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,KAAK;wBACL,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACH,KAAK,CAAC;QACR,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAED,+BAAY,GAAZ,UAAa,CAAO,EAAE,GAAwB;QAC5C,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,gBAAgB,GAAkB,EAAE,CAAC;QAEzC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAK,GAAG;oBACN,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnC,KAAK,CAAC;gBACR,KAAK,IAAI;oBACP,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnC,KAAK,CAAC;gBACR,KAAK,GAAG;oBACN,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;oBACxC,KAAK,CAAC;gBACR,KAAK,IAAI;oBACP,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;oBACxC,KAAK,CAAC;gBACR,KAAK,IAAI;oBACP,EAAE,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;wBACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,KAAK,CAAC;gBACR,KAAK,MAAM;oBACT,EAAE,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC;wBACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,KAAK,CAAC;gBACR;oBACE,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,iCAAc,GAAd,UAAe,mBAA2B;QACxC,EAAE,CAAC,CAAC,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC;QACT,CAAC;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3D,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,UAAC;YACR,IAAI,KAAK,UAAC;YACV,IAAI,IAAI,UAAC;YACT,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzB,KAAK,GAAG,CAAC;oBACT,KAAK,IAAI;wBACP,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBACzB,KAAK,CAAC;oBACR,KAAK,GAAG,CAAC;oBACT,KAAK,IAAI;wBACP,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBAC3B,KAAK,CAAC;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,MAAM;wBACT,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;wBAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAClC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gCACxB,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;4BACrB,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACN,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;4BACrB,CAAC;wBACH,CAAC;wBACD,KAAK,CAAC;oBACR;wBACE,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,QAAQ;YACR,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC;gBAC5C,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAClC,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC;YACT,CAAC;YACD,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oCAAiB,GAAjB,UAAkB,CAAkB;QAClC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,iDAAiD;QAC/E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,8BAAW,GAAX,UAAY,aAAqB;QAC/B,EAAE,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,UAAU,GAAqB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,gCAAa,GAAb,UAAc,gBAAwB,EAAE,iBAA2B;QACjE,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC;QACT,CAAC;QACD,uEAAuE;QACvE,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,wBAAwB;YACxB,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC3B,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtB,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3B,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;YAEH,CAAC;QACH,CAAC;QACD,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACT,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,8BAAW,GAAX,UAAY,oBAA0B,EAAE,iBAA2B;QACjE,EAAE,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC;QACT,CAAC;QAED,IAAI,gBAAgB,GAAG,oBAAoB,CAAC,WAAW,EAAE,GAAG,GAAG;YAC9D,IAAI,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG;YAC7D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAElD,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACtB,gBAAgB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;gBAChF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;gBACzD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,8CAA2B,GAA3B,UAA4B,gBAAwB;QAClD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAChD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,wCAAqB,GAArB,UAAsB,IAAU;QAC9B,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjF,CAAC;IAED,gCAAa,GAAb,UAAc,IAAI,EAAE,OAAO;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,wCAAqB,GAArB,UAAsB,IAAI;QACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,mCAAgB,GAAhB;QAOE,+IAA+I;QAC/I,MAAM,CAAC;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa;YAChD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;YAClD,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS;YACxC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW;YAC1C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY;SAC/C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,+BAAY,GAAZ,UAAa,IAA6B,EAAE,WAAkB,EAAE,OAAe;QAAnC,2BAAkB,GAAlB,kBAAkB;QAAE,uBAAe,GAAf,eAAe;QAC7E,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACnD,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC;QACrE,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,WAAmB,CAAC;QACxB,IAAI,UAAkB,CAAC;QAEvB,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAChB,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,EAAE,CAAC,CAAC,WAAW,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACd,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtG,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnH,CAAC;IAEH,CAAC;IAED,iCAAc,GAAd,UAAe,IAAY;QACzB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,OAAe,CAAC;QAEpB,IAAI,UAAmC,CAAC;QACxC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,YAAY;YACZ,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC;YACT,CAAC;YAED,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;oBACf,KAAK,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;oBACjB,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,cAAc;YACd,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,IAAI,wBAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,kCAAe,GAAf,UAAgB,IAAY;QAC1B,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC;QACT,CAAC;QACD,MAAM,CAAC,IAAI,wBAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,8BAAW,GAAX,UAAY,aAAqB;QAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC;QACrE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,iCAAc,GAAd,UAAe,MAAc,EAAE,aAAsB,EAAE,cAAwB;QAC7E,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnD,yDAAyD;YACzD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,UAAU,IAAI,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;QACxD,CAAC;QAED,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;QAEzE,EAAE,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,oFAAoF;YACpF,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC7E,IAAI,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAClF,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/C,CAAC;YACD,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC;YAC7E,CAAC;YACD,eAAe,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,CAAC,eAAe,CAAC;IACzB,CAAC;IAED,mCAAgB,GAAhB,UAAiB,MAAc;QAC7B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,2CAAwB,GAAxB,UAAyB,MAAc;QACrC,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC;QACT,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,qCAAkB,GAAlB,UAAmB,MAAW,EAAE,MAAW;QACzC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC;QACT,CAAC;QAED,iFAAiF;QACjF,gFAAgF;QAChF,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;QAC/E,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,gEAAgE;QAChE,IAAI,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QAC3C,IAAI,WAAW,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC/C,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,mDAAmD;YAC/F,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,gCAAa,GAAb,UAAc,QAAgB;QAC5B,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC;YACpB,IAAI,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC;YACtE,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,wCAAqB,GAArB,UAAsB,MAAc,EAAE,GAAW;QAC/C,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,0CAAuB,GAAvB,UAAwB,MAAc,EAAE,GAAW;QACjD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,kCAAe,GAAf,UAAgB,IAAU,EAAE,WAAkB;QAAlB,2BAAkB,GAAlB,kBAAkB;QAC5C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,sBAAsB;IACtB;;;;;;OAMG;IACH,qCAAkB,GAAlB,UAAmB,IAAU,EAAE,IAAU;QACvC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,IAAI,GAAG,IAAI,wBAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,sBAAsB;IACtB;;;;OAIG;IACH,8BAAW,GAAX,UAAY,IAAU;QACpB,MAAM,CAAC,IAAI,wBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,6BAAU,GAAV,UAAW,IAAU,EAAE,UAAsD;QAC3E,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACnB,QAAQ;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,KAAK,gBAAgB;gBACnB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,cAAc;gBACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,6BAAU,GAAV,UAAW,IAAU,EAAE,UAAkG;QACvH,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACnB,KAAK,WAAW;gBACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBAC5C,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBAChC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;iBACjC,CAAC,CAAC;YACL,KAAK,cAAc;gBACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBAC5C,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;oBAC7C,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;iBACxC,CAAC,CAAC;YACL,KAAK,kBAAkB;gBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;oBAC5C,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBACtC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;iBACxC,CAAC,CAAC;YACL,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,SAAS;gBACZ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,KAAK,aAAa,CAAC;YACnB;gBACE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,+BAAY,GAApB,UAAqB,MAAM,EAAE,MAAc;QACzC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,oBAAoB;QACxC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,uCAAuC;QACvC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC;YACT,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,2BAAQ,GAAhB,UAAiB,MAAc,EAAE,OAAe;QAC9C,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACzE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC;YACT,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,YAAY,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBACrC,YAAY,GAAG,GAAG,GAAG,YAAY,CAAC;YACpC,CAAC;YAED,MAAM,CAAC,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACH,eAAC;AAAD,CAAC;AAzxBY,gBAAQ,WAyxBpB;AAEU,YAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;;;;;;;;;;;;;;;;;;AC10B6B;AACT;AAGzB;AACc;AAkEK;AAA7C,uCAAqB,MAAM,CAAC,UAAiB;IAE7C,IAAI,OAAO,cAAc,GAAiB;QAExC,OAAO,UAAC,MAAqB,IAAK,WAIhC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAU;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,UAAC,MAAqB,IAAK,aAAM,CAAC,IAAI,CAA4C;AAC3F,CAAC;AAED;IACE,0BAAoB,OAAwD,EACxD,UAA6C;CAAA;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,+BAAI,GAAJ,UAAK,EAAoC;QACvC,CAEG;IACL,CAAC;IACH,uBAAC;AAAD,CAAC;;AAOD;IAA8C,EAAqB;IAMjE,wBAEiE;KAAA;AAEhE;QAHmB,aAAO,GAAP,OAAO,CAAiD;2DACxD,GAAU,GAAV,UAAU,CAAmC;QAPzD,kBAAY,GAAY,KAAK,CAAC;QAC9B,YAAM,GAAQ,EAAE,CAAC;QACjB,YAAM,GAAW,CAAC,CAAC;QACjB,CAAkB;;IAM5B,CAAC;IAES,kCAAc;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAY;YACjC,IAAI,CAAC,QAAQ,CAAQ;SACtB;aAAM;YACL,IAAI,CAAC,IAAmB;KACzB;IACH,CAAC;IAES,qCAAQ,GAAS;QACzB,IAAI,MAA0B,CAAC;QAC/B,CAA2B;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAc;SACrC;MAAa;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAU;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,iBAA0D;QAChE,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAO,IAAI,CAAsB;IAC7D,CAAC;IAES,KAAV;QACE,IAAI,CAAC,SAAoB;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAe;MACrB;SAC7B;IACH,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,2CAAc,GAAd,UAAqC;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAsB;MACR;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;MAC5B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,IAAW;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,CA5D6C,eAAe,GA4D5D;;;;;;;;;;;;;;;;;;;AC7JD;IAA6C,mDAAK;IAIhD;QAAA,YACE,kBAAM,EAEP;QALe,UAAI,GAAG,yBAAyB,CAAC;QAI9C,MAAc,CAAC,cAAc,CAAC,KAAI,EAAE,UAAmC;;IAC1E,CAAC;IACH,CAAC;AAAD,CAAC,CAR4C,KAAK,GAQjD;;;;;;;;;;AClBD;AAAA,MAAM,qBAAqB,CAAM;AAC/B,IAAO,OAAO,CAAC,KAAK,OAAW;AACjC,CAAC;;;;;;;;ACFD,iBAAiB,mBAAO,CAAC,GAAc,E;;;;;;;;;;ACUvC;IAAgC,sCAAK;IAInC;QAAA,YACE,OAED;QALe,UAAI,GAAG,YAAY,CAAC;QAIjC,MAAc,CAAC,cAAc,CAAC,IAA4B;;IAC7D,CAAC;IACH,CAAC;AAAD,CAAC,CAR+B,KAAK,GAQpC;;;;;;;;;;;;;;AClBwC;AAMzC;IAAoC,0CAAS;IAmB3C,8DAAY,eAA8B,EAC9B,CAAiC;QAAjC,4BAAoB,SAAS,CAAC,GAAG;QAD7C,YAEE,SAAuB;YACrB,IAAI,iEAAc,CAAC,CAA8C;SAC1B;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,QACH;QA1BM,aAAO,GAA4B,EAAE,CAAC;QAOtC,KAAwB;QAQxB,WAA2B;;IAWlC,CAAC;IAEM,gCAA6F;QAA5B,aAAiB;KACtB;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAE;SAC7D;aAAM;SACqC;SAC3C;IACH,CAAC;IAEM,KAA8B;QAE5B,MAAgB;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;SACM;MACd;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAK;QAEnB,GAAG;YACD,IAAI,GAAoD;SAChD;aACP;SACF,QAAQ,MAAM,GAAG,CAAiB;QAEnC,IAAoB;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,GAA0B;aACV;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,CAjEmC,SAAS,EAiE5C;;;;;;;;;;;;;;;;;;;ACvEmC;AAEU;AAK9C;IAAqC,wCAAU;IAA/C;QAAA,qBAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,GAAM;QACzB,kBAAY,GAAY,CAAM;;IAmCxC,CAAC;IAhCC,CAAsC;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAwB;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;SAA6C;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,EAAM;SAC3B;QACD,CAAoC;IACtC,CAAC;IAED,EAAa;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAK;SACrB;IACH,CAAC;IAED,EAAgB;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,IAAa;SACpB;IACH,CAAC;IAED;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,eAAuB;SACxB;QACD,CAAiB;IACnB,CAAC;IACH,EAAC;AAAD,CAAC,CAtCoC,OAAO,GAsC3C;;;;;;;;;;;;;;;;;;;AC5C8C;AAiB/C;IAA+B,yCAAY;IACzC,8BAAa,QAAmB,EAAE,IAAmD;eACnF,iBAAO;IACT,CAAC;IAWM,CAAqC;QAAjB,iCAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACH,KAAC;AAAD,CAAC,CAjB8B,YAAY,GAiB1C;;;;;;;;;ACnCiC;AAUlC;IAAoC,mDAAS;IAO3C,kCAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,KACP;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;QAH/D,aAAO,GAAY,EAAM;;IAKnC,CAAC;IAEM,CAAqC;QAAjB,iCAAiB;QAE1C,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,GAAK;SACb;QAGD,IAAI,CAAC,KAAK,GAAG,KAAM;QAEnB,IAAM,EAAE,GAAG,IAAI,CAAC,EAAG;QACnB,CAAiC;QAuBjC,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,IAAI,CAAC,EAAE,GAAG,GAA0C;SACrD;QAID,IAAI,CAAC,OAAO,GAAG,EAAK;QAEpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,CAAoE;QAEpE,OAAO,IAAI,CAAC;IACd,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,YAAiB;MACZ;IACnE,CAAC;IAES,2BAAoE;QAAjB,cAAiB;QAE5E,CAAsE;YACpE,OAAO,EAAE,CAAC;MACX;QAGD,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,SAAS,IAAI,SAAS,CAAC;IACrD,CAAC;IAMM,kBAA+B;QAEpC,CAAiB;YACf,OAAO,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SAClD;QAED,CAAqB;QACrB,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;MAC/B;YACT,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE;SAcS;SAC9D;IACH,CAAC;IAES,gBAAgC;QACxC,IAAI,OAAO,GAAY,GAAM;QAC7B,CAAgC;QAChC,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;MAAW;YACV,OAAO,GAAG,IAAI,CAAC;YACf,UAAU,GAAG,CAAC,CAAC,CAAuB;SACvC;QACD,IAAI,CAAS;YACX,IAAI,CAAC,WAAW,CAAG;SACD;SACnB;IACH,CAAC;IAGD,kCAAY,GAAZ;QAEE,CAAmB;QACnB,IAAM,SAAS,CAAkB;QACjC,IAAM,OAAO,GAAG,SAAkB;QAClC,IAAM,KAAK,GAAG,OAAO,CAAC,EAAc;QAEpC,CAAkB;MACA;QAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAQ;QAEtB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,IAAI,CAAC,EAAE,GAAG,IAAyC;SACpD;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IACH,kBAAC;AAAD,CAAC,CAhJmC,MAAM,CAgJzC;;;;;;;;;;;;;;;;AC1JD;AAAA;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEF;AAKhC,IAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAgC;AAC3D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACPD,4CAAwC;AAExC,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAI;IACJ,6EAAY;IACZ,yEAAU;AACZ,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AACD;IAAkD,uCAAS;IA6BzD,6BAAY,EAAU,EAAE,YAAwC,EAAE,KAAa,EAAE,SAAkB;QAAnG,YACE,kBAAM,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,SAK/B;QA3BD,yBAAmB,GAAG,KAAK,CAAC;QAK5B,qBAAe,GAAQ,EAAE,CAAC;QAO1B,yBAAmB,GAAG,KAAK,CAAC;QAW1B,IAAI,KAAI,CAAC,EAAE,IAAI,IAAI,IAAI,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzE,MAAM,wDAAwD,CAAC;SAChE;QACD,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC;;IAC3B,CAAC;IAED,sCAAQ,GAAR;QACE,OAAO,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,gDAAkB,GAAlB,UAAmB,eAAuB;QACxC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,oDAAsB,GAAtB;QACE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAID,8CAAgB,GAAhB,UAAiB,MAAsD;QAAtD,kCAA8B,mBAAmB,CAAC,IAAI;QACrE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC/B,CAAC;IAKD,2CAAa,GAAb;QACE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAYD,gDAAkB,GAAlB,UAAmB,KAAU;QAC3B,MAAM,gEAAgE,CAAC;IACzE,CAAC;IACH,0BAAC;AAAD,CAAC,CA3EiD,sBAAS,GA2E1D;AA3EqB,kDAAmB;;;;;;;;;ACHzC;AAAA,MAAM,0BAA0B,GAAQ;AACtC,OAAU,CAAC,cAAQ,MAAM,GAAQ;AACnC,CAAC;;;;;;;;;ACPD;AAAA;AAAA,MAAM,CAAC,IAAM,YAAY,GACvB,CAAC,OAAO,MAAM,GAAoD;AAC9D,KAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC,CAAC,gBAAgB,CAAC;AAKvB,MAAM,CAAC,IAAM,YAA8B;;;;;;;;;;;ACR3C,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,cAAc,GAAG,UAAU,GAAW;IACxC,OAAO,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAI,UAAU,SAAI,GAAK,CAAC;AAC1D,CAAC,CAAC;AAES,uBAAe,GAAG;IAEzB,UAAU,EAAE,EAAE;IAId,OAAO,EAAP,UAAQ,GAAW;QACjB,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IAChD,CAAC;IAKD,mBAAmB,EAAE,UAAU,GAAW,EAAE,aAAqB;QAArB,qDAAqB;QAC/D,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,aAAa,CAAC;SACtB;QAED,OAAO,IAAI,KAAK,MAAM,CAAC;IACzB,CAAC;IAKD,UAAU,EAAV,UAAW,GAAW;QACpB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAKD,OAAO,EAAP,UAAQ,GAAW,EAAE,KAAa;QAEhC,IAAI;YACF,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAMD,WAAW,EAAX,UAAY,GAAW;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB,EAAvB,UAAyB,GAAW,EAAE,aAAqB;QAArB,qDAAqB;QACzD,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,cAAc,EAAd,UAAe,GAAW;QACxB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,EAAX,UAAY,GAAW,EAAE,KAAa;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAEJ,MAAM,CAAC,cAAc,CAAC,uBAAe,EAAE,YAAY,EAAE;IACnD,GAAG,EAAE;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,GAAG,EAAE,UAAS,KAAa;QACzB,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;CACF,CAAC,CAAC;;;;;;;;;;;AC5EH,yCAAqC;AAErC,qCAAgC;AAEhC,kDAAsD;AAU3C,oBAAY,GAAG;IAExB,GAAG,EAAH,UAAI,GAAW,EAAE,eAA+B,EAAE,OAAmB,EAAE,iBAA2B;QAChG,IAAI,WAAW,GAAG;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,EAAJ,UAAK,GAAW,EAAE,IAAS,EAAE,eAA+B,EAAE,OAAuB,EAAE,iBAA2B;QAApD,sCAAuB;QACnF,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;YACnC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;SAC9C;QACD,IAAI,WAAW,GAAiB;YAC9B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,eAAe,EAAf,UAAgB,OAAmB;QAC3B,OAAQ,CAAC,aAAa,GAAG,YAAU,mCAAe,CAAC,OAAO,CAAC,YAAY,CAAG,CAAC;QACjF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAIF,SAAS,OAAO,CAAC,GAAW,EAAE,QAA2B,EAAE,eAA+B;IAA5D,wCAA2B;IACvD,IAAI,eAAe,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtE,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;KAE5C;IAED,OAAO,iBAAU,CAAC,MAAM,CAAC,UAAC,QAAQ;QAChC,QAAQ,CAAC,OAAO,GAAG,UAAC,IAAS,EAAE,GAAmB,EAAE,MAAc;YAChE,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC;YAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,QAAQ,CAAC,KAAK,GAAG,UAAC,GAAmB,EAAE,MAAc;YACnD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;YAC/D,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,oBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,eAA+B;IAClE,IAAI,eAAe,IAAI,IAAI,EAAE;QAC3B,IAAI,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,GAAG,IAAI,GAAG,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,eAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,GAAG,IAAI,GAAG,CAAC;aACZ;SACF;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;AC7ED;IAME,sBAAY,KAAa,EAAE,UAAkB,EAAE,KAAU,EAAE,aAAsB;QAC/E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;SACpC;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;IAC3D,CAAC;IACH,mBAAC;AAAD,CAAC;AApBY,oCAAY;;;;;;;;;;;ACDzB,oDAA4E;AAM5E;IAAA;QAcE,yBAAoB,GAAG,IAAI,CAAC;QAM5B,aAAQ,GAAG,SAAS,CAAC;IA+IvB,CAAC;IA7IC,sBAAW,oCAAkB;aAA7B;YACE,OAAO,CAAC,CAAC;QACX,CAAC;;;OAAA;IAED,sBAAW,6CAA2B;aAAtC;YACE,OAAO,GAAG,CAAC;QACb,CAAC;;;OAAA;IAED,sBAAW,sCAAoB;aAA/B;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,4CAA0B;aAArC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,gDAA8B;aAAzC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,oCAAkB;aAA7B;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,0CAAwB;aAAnC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,wCAAsB;aAAjC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,8CAA4B;aAAvC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAED,sBAAW,wCAAsB;aAAjC;YACE,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAaD,+CAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,gDAAuB,GAAvB,UAAwB,KAAK;QAC3B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IAOD,oCAAW,GAAX;IACA,CAAC;IAKD,0CAAiB,GAAjB;IACA,CAAC;IAMD,gCAAO,GAAP;QAAA,iBAgDC;QA/CC,IAAI,SAAS,GAAG,UAAC,MAAkB,EAAE,aAAa;YAChD,IAAI,SAAS,GAAG,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,kBAAkB,GAAG,KAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YACzG,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,SAAS,IAAI,eAAe,CAAC;aAC9B;iBAAM;gBACL,SAAS,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;aACjD;YACD,SAAS,IAAI,QAAQ,CAAC;YAEtB,qCAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;QAGF,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YACjC,IAAI,MAAM,GAAwC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACrF,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM,GAAG,EAAE,CAAC;aACb;YAED,IAAI,MAAM,YAAY,KAAK,EAAE;gBAC3B,IAAI,CAAC,MAAM,GAAe,MAAM,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;iBAAM;gBAEL,IAAI,iBAAe,GAA8B,MAAO,CAAC,SAAS,CAAC,UAAC,QAAoB;oBAItF,iBAAe,CAAC,WAAW,EAAE,CAAC;oBAE9B,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACvB,SAAS,CAAC,KAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC9B,KAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,EAAE,UAAC,KAAK;oBACP,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,KAAI,CAAC,IAAI,CAAC,CAAC;oBAC9D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrB,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,KAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAKD,6CAAoB,GAApB;QACE,OAAO;IACT,CAAC;IAED,qDAA4B,GAA5B,UAA6B,KAAa,IAAU,CAAC;IAE7C,oCAAW,GAAnB;QACE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;IACH,CAAC;IACH,qBAAC;AAAD,CAAC;AAnKqB,wCAAc;;;;;;;;;;;ACEpC;IAME,0BAAY,SAA8B;QACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAiBD,2CAAgB,GAAhB;QAEE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAeD,uCAAY,GAAZ,UAAa,OAAO;QAApB,iBAmBC;QAlBC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,eAAe,YAAY,KAAK,EAAE;YACpC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAGhC,OAAO,KAAK,CAAC;aACd;YAED,OAAoB,eAAgB,CAAC,IAAI,CAAC,UAAC,QAAQ;gBAC/C,OAAO,KAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC,CAAC,IAAI,IAAI,CAAC;SACd;aAAM;YACL,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;SACnD;IACH,CAAC;IAWD,oDAAyB,GAAzB,UAA0B,cAAgC;IAC1D,CAAC;IAyBH,uBAAC;AAAD,CAAC;AAnGqB,4CAAgB;;;;;;;;;ACVtC;AAAA;AAAA;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgBxB;AAAqB,UAAkC;SAAlC,QAAkC;QAAlC,wBAAkC;;IAC3D,CAA0B;AAC5B,CAAC;AAGD,CAAmE;AACjE,CAAI,CAAC,GAAG,EAAE;QACR,OAAuC;KACxC;IAED,CAAsB;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,CAA8B;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,QAAgE;IACpF,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;AC7BD;IAAyC,+CAAK;IAI5C,mEAAmB,MAAa;QAAhC,YACE,kBAAM,IAAQ;YACT,MAAM,CAAC,MAAM,qBAGnB;QALkB,YAAM,GAAN,MAAM,CAAO;QAFhB,UAAI,GAAG,SAAsB;QAM1C,MAAc,CAAC,cAAc,CAAC,KAAI,EAAE,MAA+B;;IACtE,CAAC;IACH,CAAC;AAAD,CAAC,CAVwC,KAAK,GAU7C;;;;;;;;;;;;ACdD,qDAAwD;AACxD,gDAA+C;AAC/C,iDAAiD;AACjD;IAAA;IA8BA,CAAC;IAvBC,+CAAoB,GAApB;QACE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,iBAAiB,GAAG,IAAI,uCAAiB,EAAE,CAAC;SAClD;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,4CAAiB,GAAjB;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,2CAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACH,uBAAC;AAAD,CAAC;AAEU,wBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;;;;;;;;;;;ACnCvE;IAQE,oBAAY,MAAyC;QAJ9C,UAAK,GAAmC,EAAE,CAAC;QAE1C,QAAG,GAA6C,EAAE,CAAC;QAGzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,wBAAG,GAAH,UAAI,GAAW,EAAE,KAAQ,EAAE,KAAc;QACvC,IAAI,IAAI,CAAC;QAET,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErB,IAAI,IAAI,IAAI,IAAI,EAAE;YAEhB,IAAI,GAAG;gBACL,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,KAAK;aACb,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAErB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;iBAAM;gBACL,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,KAAK,GAAG,CAAC,CAAC;iBACX;gBAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aACnC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBAG/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;aACnC;SACF;IACH,CAAC;IAED,2BAAM,GAAN,UAAO,MAAyC;QAAhD,iBAMC;QALC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,UAAC,KAAgC;gBAC9C,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAKD,wBAAG,GAAH,UAAI,GAAW;QACb,IAAI,IAAI,GAA4B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,KAAK,GAAM,IAAI,CAAC,KAAK,CAAC;YAC1B,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAOD,2BAAM,GAAN,UAAO,GAAW;QAKhB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;IAKD,0BAAK,GAAL;QAEE,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;IAKD,sBAAI,8BAAM;aAAV;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;;;OAAA;IAKD,2BAAM,GAAN;QACE,IAAI,GAAG,GAAuB,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAKD,2BAAM,GAAN;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,yBAAI,GAAJ;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YACzB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,4BAAO,GAAP,UAAQ,QAAuD;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YAC7B,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,yBAAI,GAAJ,UAAK,QAAyD;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,KAAK;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,kCAAa,GAAb;QACE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC5B;IACH,CAAC;IAOD,gCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;SAC1B;IACH,CAAC;IAOD,+BAAU,GAAV,UAAW,KAAa;QACtB,IAAI,KAAK,GAA0C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,KAAK,CAAC,KAAK,CAAC;SACpB;IACH,CAAC;IAOD,4BAAO,GAAP,UAAQ,KAAQ;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;gBACjC,OAAO,CAAC,CAAC;aACV;SACF;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACH,iBAAC;AAAD,CAAC;AApMY,gCAAU;;;;;;;;;;;;;ACCoB;AAMrC;AACJ,IAAO,iBAAkE;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAS;IACnD,CAAgC,CAAC;AACnC,CAAC;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,CAA2C;QAEjC,kCAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,GAA4C;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAmC;SACvD;QAED,CAAoB;IACtB,CAAC;IACH,EAAC;AAAD,CAAC;AAED;IAAoC,8CAAa;IAI/C,kEAAY,WAA0B,EAClB,KAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,CAAV;QAEU,kCAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAkB;YACvB,OAAO;SACR;QAED,CAAwB;QACxB,IAAM,QAAQ,GAAU,SAAuB;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,CAAQ;YACvB,OAAO;SACR;QAEM,CAAsC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAkB;YACvB,OAAO;SACR;QA0BO,CAAoB;QAC5B,IAAM,gBAAgB,GAAU,UAAyB;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,GAAsD;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA9DmC,UAAU,GA8D7C;;;;;;;;;;;;;;;;;;AC9FmC;AAEM;AAEI;AACc;AACa;AACb;AAI5D;IAAsC,yCAAU;IAM9C,6DAAY,UAA6C,EAC7C,MACiC;QAFjC,0CAAqB,MAAM,CAAC,MAAiB;QAC7C,4BAA6C;QADzD,YAGE,iBAAO,SAUR;QAXmB,CAAyB;QAPrC,aAAO,GAA2B,EAAE,CAAC;QAGrC,yBAAmB,GAAY,KAAK,CAAC;QAM3C,CAAmD;QACnD,KAAI,CAAC,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAe;QAEnD,IAAI,UAAU,KAAK,MAAM,CAAC,EAAmB;YAC3C,KAAI,CAAC,SAA2B;YAChC,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,WAAuB;SACzC;aAAM;YACL,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,cAAc,CAAC;SACjC;;IACH,CAAC;IAEO,UAA+B;QACrC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAoB;QAGpB,IAAI,OAAO,CAAC,CAA2B;KACrB;SACjB;QAED,iBAAM,IAAI,MAAQ;IACpB,CAAC;IAEO,sCAAc,GAAtB,GAA+B;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAwC;QAC1D,CAAgC;QAEhC,iBAAM,IAAI,YAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAGD,kCAAU,GAAV,UAAW,UAAyB;QAElC,IAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAM,OAAO,GAAG,kBAAqE;QACrF,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;MACN;QAC3B,IAAI,YAA0B,CAAC;QAE/B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAmB;YAC1C,YAAY,CAAsB;SACnC;aAAM;SAC2B;YAChC,YAAY,GAAG,IAAI,mBAAmB,CAAmB;SAC1D;QAED,CAAe;YACb,EAA+E;SAChF;QAED,IAAI,mBAAmB,gFAAE;SAC6B;gBAClD,QAA+B;aAChC;SACF;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,UAAU,CAAC,IAAI,CAAkB,OAAO,CAAC,CAAC,CAAE,CAAC,CAAO;aACrD;SACF;QAED,IAAI,EAAe;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC;aAA0B;SACH;SACvB;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;QACE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAiB;IACzC,CAAC;IAEO,wBAAR;MAC6B;QAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,oEAAW,CAAC;MACU;QAE/C,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,WAAW,GAAG,CAAC,CAAC;QAKpB,OAAO,WAAW,GAAG,WAAW,EAAE;YAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAuB;gBACnD,MAAM;aACP;YACD,WAAW,EAAE,CAAC;SACf;QAED,IAAI,WAAW,GAAG,WAAW,EAAE;YAC7B,UAA+D;SAChE;QAED,IAAI,WAAW,GAAM;SACY;SAChC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEH,oBAAC;AAAD,CAAC,CAnHqC,OAAO,GAmH5C;;AAED;IACE,EAAgD;QAA7B,SAAI,GAAJ,IAAI,CAAQ;0DAAS,GAAQ;AAC/C;IACH,kBAAC;AAAD,CAAC;;;;;;;;;;;;;AClID;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACV;AACR;AACE;AAsE5B;AAAgB,WAAiC;SAAjC,SAAiC;QAAjC,yBAAiC;;IACrD,CAAuD;IACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,6EAAW;KACZ;KAAM;QACL,EAAsB;KACvB;IACD,CAAqB;QACnB,KAAK,CAAC;YACJ,GAAwB;QAC1B,KAAK,CAAC;YACJ,GAA4E;QAC9E;YACE,IAAyC;KAC5C;AACH,CAAC;;;;;;;;;ACzFD;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoDqB;AAC9D,CAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,EAAkD;KAC9D;KAAM;QACL,EAA4F;KAC7F;AACH,CAAC;AAOD,CAAoD;QAAhC,eAAiB;IACnC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;;;;;;;;;;;;;;;;;;;ACjEkD;AACR;AAEU;AAGS;AACtB;AAExB;AAmJhB,MAAM;AAA8B,kBAG8B;SAH9B,UAG8B,EAH9B,IAG8B;QAH9B,gCAG8B;;IAChE,CAAyD;IACzD,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,IAAI,WAAW,CAAC,KAAsC;QACpD,6EAAS,CAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;KAC9C;IAED,CAA+D;QAC7D,cAAc,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAClE;IAID,CAAyD;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,qEAAC;KACtD;IAED,CAA+F;AACjG,CAAC;AAED;IACE,+BAAoB,cAA6C;QAA7C,mBAAc,GAAd,cAAc,CAA+B;IACjE,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,EAAE,EAAsB;IACxF,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAAmD,mDAAqB;IAMtE,uEAAY,WAA0B,EAAU,KAA6C;QAA7F,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,oBAAc,GAAd,cAAc,CAA+B;QALrF,YAAM,GAAW,CAAC,CAAC;QACnB,YAAM,GAAU,EAAG;QACnB,iBAAW,CAAa;;IAKhC,CAAC;IAES,CAAqB;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAY;IACpC,CAAC;IAES,EAAV;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAC/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,OAAuB;SAC7B;SAAM;YACL,EAAkB;YAClB,IAAI,CAAC,SAAS,GAAG,CAAI;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAU;gBAC5B,IAAM,UAAU,GAAG,UAAe;gBAClC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAA8B;aAC9D;SACF;IACH,CAAC;IAED,EAAoC;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAG;SAC7B;IACH,CAAC;IAED,EAE0C;QACxC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,MAAM,GAAG,MAAM,CAAC,KAAY;QAClC,IAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;YAC/B,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAoD;QACxD,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;QAEhC,IAAI,SAAS,KAAK,CAAC,EAAE;YACnB,IAAI,IAAI,CAAC,SAAgB;gBACvB,IAAI,CAAC,iBAA2B;aACjC;aAAM;gBACL,EAAsC;aACvC;SACF;IACH,CAAC;IAEO,EAAgC;QACtC,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,CAAiD;SAClD;QAAC,CAAY;YACZ,IAAI,CAAC,IAAuB;YAC5B,OAAO;SACR;QACD,CAA8B;IAChC,CAAC;IACH,EAAC;AAAD,CAAC,CAjEkD,eAAe,GAiEjE;;;;;;;;;;ACpQD;AAAA;AAAA;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACM;AAyD6B;AAA7C,+BAA6C;IACvE,OAAO,QAAQ,CAAO,QAA2D,EAAE,EAAY;AACjG,CAAC;;;;;;;;;;;AC7DD;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEb;AACE;AAiDiD;AAC/E,IAAO,IAAI,UAAU,CAAC,gBAAU;QAC9B,IAAI,iEAAuC;QAC3C,IAAI;YACF,CAA4B;SAC7B;QAAC,CAAY;YACZ,SAAsB;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,CAA6C;QAC7C,OAAO,MAAM,CAAC,iEAAU,SAAU,CAAC,4DAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;;;AC/DuC;AACE;AAGC;AACU;AAES;AACe;AAgEvE;AAAoB,gBAA4E;SAA5E,UAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,CAAwF;IACxF,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,WAAW,CAAC,GAAG,EAAE,CAAC;KACnB;IACD,CAA+E;AACjF,CAAC;AAED;IAIE,qBAAY,cAA6C;QACvD,IAAI,CAAC,cAAc,GAAG,YAAe;IACvC,CAAC;IAED,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,EAAsB;IAC9E,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAAyC,yCAAa;IAMpD,6DAAY,WAA0B,EAC1B,KACiC;QAAjC,kCAAc,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAF7C,YAGE,YAGD;QATO,eAAS,GAA6B,EAAE,CAAC;QACzC,CAAW;QAMjB,KAAI,CAAC,cAAc,GAAG,CAAC,OAAO,cAAc,KAAK,CAAoC;QACrF,KAAI,CAAC,MAAM,GAAG,MAAO;;IACvB,CAAC;IAES,0BAAgB;QACxB,IAAM,SAA2B;KACb;YAClB,SAAS,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,GAAQ;SAChD;iFAAU,KAAO,KAAuC;YACvD,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,OAAqB;SAC9D;aAAM;YACL,SAAS,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,6EAAkB,IAAI,EAAU;SACtE;IACH,CAAC;IAES,iCAAS,GAAnB;QACE,CAAiC;MACJ;QAE7B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAG;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,KAAK,IAAI,CAAC,CAAoB;SACkC;YAC9D,IAAI,QAAQ,CAAC,CAAmB;gBAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAwB;aAC3C;iBAAM;gBACL,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF;IACH,CAAC;IAED;QACE,CAAc;MACS;YACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED;QACE,CAAiC;MACJ;QAC7B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAGrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,QAAQ,GAAG,QAAa;YAC5B,IAAI,OAAO,QAAQ,CAAC,QAAQ,GAAyC;gBACnE,OAAO;aACR;SACF;QAED,IAAI,WAAuB;QAC3B,IAAM,CAAiB;QACvB,CAA8B;YAC5B,IAAI,QAAQ,GAAG,QAAa;YAC5B,IAAI,MAAyB;YAI7B,IAAI,QAAQ,CAAC,YAAY,EAAI;gBAC3B,cAAc,GAAG,IAAI,CAAC;aACvB;YAED,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,WAAW,CAAC,QAAQ,EAAG;aAChB;aACR;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,IAAI,CAAqB;YACvB,IAAI,CAAC,kBAAkB,CAAO;SAC/B;aAAM;YACL,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;QAED,IAAI,EAAgB;YAClB,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IAES,+BAA8B;QACtC,CAAgB;MACZ;YACF,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAChD;QAAC,KAAY;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACrB;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,KAAC;AAAD,CAAC,CA1GwC,UAAU,GA0GlD;;AAOD;gEAGE,GAAyC;AAAA;QACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAED;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAAI,GAAJ;QACE,IAAM,MAAM,EAAmB;MACQ;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qCAAY,GAAZ;QACE,IAAM,UAA6B;MACE;IACvC,CAAC;IACH,qBAAC;AAAD,CAAC;AAED;IAIE,sBAA8B;KAAA;QAHtB,UAAK,GAAG,CAAC,CAAC;QACV,WAAM,GAAG,CAAC,CAAC;QAGjB,IAAI,CAAC,MAAM,GAAG,KAAa;IAC7B,CAAC;IAED;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0GAAK,KAAW;QACd,IAAM,CAAC,GAAG,IAAa;MACE;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAsC;IAC1F,CAAC;IAED;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,0CAAY,GAAZ;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAM;IAC1C,CAAC;IACH,0BAAC;AAAD,CAAC;AAOD;IAAsC,2BAAqB;IAKzD,CAE6C;QAF7C,YAGE,kBAAM,WAAW,CAAC,QACnB;2DAHyB,EAAN,MAAM,CAAqB;QAC3B,gBAAU,GAAV,UAAU,CAAe;QAN7C,uBAAiB,GAAG,IAAI,CAAC;QACzB,YAAM,GAAQ,EAAE,CAAC;QACjB,gBAAU,GAAG,KAAK,CAAC;;IAMnB,CAAC;IAED,4BAAC,CAAD;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAID;QACE,IAAM,MAAM,EAAe;MACiB;YAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpC;aAAM;YACL,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,GAAc;SAC/C;IACH,CAAC;IAED,oCAAQ,GAAR;QACE,CAA8B;IAChC,CAAC;IAED,wCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAA0B;IACrD,CAAC;IAED,0CAAc,GAAd;QACE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;MACH;YACvB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,oCAE0C;QACxC,CAA6B;MACA;IAC/B,CAAC;IAED,iCAAmC;QACjC,OAAO,iBAAiB,CAAW,IAAoC;IACzE,CAAC;IACH,wBAAC;AAAD,CAAC,CArDqC,sGAqDrC;;;;;;;;;;;AChUD;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAET;AAChC,CAAM,MAAM,GAAG,IAAI,UAAwB;QACzC,UAAU,CAAC,gEAAY;QACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,GAAwB;IACvB,MAAc,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;;;;;;;;;;;;;;ACVD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,IAAM,aAAa,EAAwC;AAE3D,sBAAsB,CAAc;IAClC,IAAM,EAAE,GAAG,aAAa,CAAC,IAAQ;IACjC,IAAI,EAAE,EAAE;QACN,EAAE,EAAE,CAAC;KACN;AACH,CAAC;AAED,CAAyB;AACvB,SAAY,EAAZ,MAA2B;QACzB,IAAM,MAAM,GAAG,UAAU,EAAG;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,EAAG;QAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAA4B;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,EAA6B;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC;;;;;;;;ACtB4C;AACF;AAQ5C;IAAmC,iDAAc;IAE/C,iCAAsB,SAAwB,EACxB,IAAmD;QADzE,YAEE,kBAAM,IACP;QAHqB,eAAS,GAAT,SAAS,CAAe;QACxB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,CAAoE;QAAjB,iCAAiB;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,CAAW;YAC/B,OAAO,GAA2C;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAExE;IACL,CAAC;IACS,iCAAoE;QAAjB,iCAAiB;MAIH;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAW;SACnD;QAID,IAAI,SAAS,CAAuB;SACL;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,CAAiB;IACnB,CAAC;IACH,iBAAC;AAAD,CAAC,CAtCkC,WAAW,GAsC7C;;;;;;;;;;;;;AC9CiD;AAElD;IAAmC,uDAAc;IAAjD;;IA2BA,CAAC;IA1BQ,CAA+B;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAU;QAEpB,0BAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,CAAc;QACvB,IAAI,KAAK,GAAW,GAAe;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS;QAEnC,GAAG;YACuD;gBACtD,MAAM;aACP;SACF,IAAuD;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,CAA+C;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,CAAY;SACb;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA3BkC,cAAc,GA2BhD;;;;;AC9BD;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACM;AAsCE;;;;;;;;;ACtClD;AAAA;AAAA;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACuB;AAErB;AAClC,GAAM,EAAE,IAAI;IACZ,IAAI,EAAJ,OAAoC;IACpC,KAAK,EAAL,UAAM,GAAQ;QACZ,IAAI,MAAM,CAAC,QAAuC;YAChD,sDAAM,GAAG,CAAC;SACX;SAAM;YACL,EAAqB;SACtB;IACH,CAAC;IACD,EAA6B;CAC9B,CAAC;;;;;;;;;;;ACfF;IAQE,0BAAmB,IAAY,EAAS,MAAc,EAAS,MAAc,EAAY,cAAmB,EAAS,OAAgB;QAA7F,uCAAc;QAAS,uCAAc;QAAY,oDAAmB;QAAzF,SAAI,GAAJ,IAAI,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAY,mBAAc,GAAd,cAAc,CAAK;QAAS,YAAO,GAAP,OAAO,CAAS;QAFrI,wBAAmB,GAAG,IAAI,CAAC;IAG3B,CAAC;IAED,sCAAW,GAAX;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wCAAa,GAAb;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAS,GAAT;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,sCAAW,GAAX;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAW,GAAX;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAU,GAAV;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAqB,GAArB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAY,GAAZ;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,4CAAiB,GAAjB;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,4CAAiB,GAAjB;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChD,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,sBAAI,uCAAS;aAAb;YACE,OAAO,EAAE,CAAC;QACZ,CAAC;;;OAAA;IACH,uBAAC;AAAD,CAAC;AAzEqB,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACAtC,0CAAuC;AAGvC,0EAAiG;AACjG,0DAAkE;AAElE,wCAAmC;AAQnC;IAAkD,uCAAS;IAA3D;QAAA,qEA0IC;QArIC,2BAAqB,GAAG,KAAK,CAAC;QAE9B,sBAAgB,GAAG,KAAK,CAAC;;IAmI3B,CAAC;IAjIC,sCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAKD,2CAAa,GAAb;QAAA,iBAoCC;QAnCC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAEhC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAG9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,IAAI,EAAE;YACvD,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACpD,IAAI,CAAC,8BAA8B,GAAG,gFAAqC,CAAC,yCAAyC,EAAE,CAAC;YACxH,IAAI,CAAC,cAAc,GAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,qBAAqB,GAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,cAAQ,KAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClF,IAAI,CAAC,8BAA8B,CAAC,qDAAqD,EAAE,CAAC;YAE5F,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;aAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;YAG/F,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAClE,IAAI,YAAY,IAAI,IAAI,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC;gBAC9D,OAAO;aACR;YACD,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAC,KAAK;gBAChD,KAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACtC,KAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;IAKD,gDAAkB,GAAlB;QAAA,iBAWC;QAVC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACxC,IAAI,aAAa,GAAG,iDAAsB,CAAC,qBAAqB,CAC9D,KAAK,EACL,IAAI,CAAC,mBAAmB,EAAE,EAC1B,IAAI,EACJ,UAAU,GAAG,IAAI,CAAC,EAAE,EACpB,IAAI,CAAC,qBAAqB,EAC1B,UAAC,QAAuB,IAAO,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAChE,UAAC,QAAuB,IAAO,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,iDAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IAKD,yCAAW,GAAX;QACE,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC7B;IACH,CAAC;IAQD,iDAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAMD,6CAAe,GAAf,UAAgB,qBAAoC;QAClD,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAMD,4CAAc,GAAd,UAAe,qBAAoC;QACjD,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClF,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IAyBH,0BAAC;AAAD,CAAC,CA1IiD,sBAAS,GA0I1D;AA1IqB,kDAAmB;;;;;;;;;;;ACdzC,qCAA+B;AAK/B;IAKE,6BAAY,KAAU;QAJtB,uBAAkB,GAAiC,IAAI,cAAO,EAAoB,CAAC;IAMnF,CAAC;IAUH,0BAAC;AAAD,CAAC;AAjBqB,kDAAmB;;;;;;;;;ACkBzC;AAAA;IASE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,qBAAiC;QADzB,oBAAe,GAAf,CAA8B;QAEhD,CAAe;IACjB,CAAC;IA6BM,mBAA6F;KAAX;QACvF,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAc;IACxE,CAAC;IApCa,aAAG,GAAiB,EAAiB;IAqCrD,KAAC;CAAA;MA5CqB;;;;;;;;;;;;;ACvBtB,IAAiB,QAAQ,CA6BxB;AA7BD,WAAiB,QAAQ,EAAC,CAAC;IACzB,sBAA6B,KAAW,EAAE,KAAW;QACnD,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAPe,qBAAY,eAO3B;IAED,kBAAyB,KAAW,EAAE,KAAW;QAC/C,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAFe,iBAAQ,WAEvB;IAED,iBAAwB,KAAW,EAAE,KAAW;QAC9C,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAFe,gBAAO,UAEtB;IAED;;;;;;;OAOG;IACH,8BAAqC,SAAe,EAAE,OAAa,EAAE,cAAoB,EAAE,YAAkB;QAC3G,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAClG,CAAC;IAFe,6BAAoB,uBAEnC;AACH,CAAC,EA7BgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA6BxB;;;;;;;;;;AC7BD,IAAiB,UAAU,CA0B1B;AA1BD,WAAiB,UAAU,EAAC,CAAC;IAC3B,wBAA+B,OAAe,EAAE,OAAe;QAC7D,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAPe,yBAAc,iBAO7B;IAED,kBAAyB,GAAW;QAClC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAFe,mBAAQ,WAEvB;IAED,eAAsB,GAAW,EAAE,aAAqB;QACtD,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC;QAED,yDAAyD;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAM,CAAC,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC;IACrF,CAAC;IAPe,gBAAK,QAOpB;IAED,0BAAiC,KAAa,EAAE,WAAmB,EAAE,YAAoB,EAAE,MAAe;QACxG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;IAC3D,CAAC;IAFe,2BAAgB,mBAE/B;AACH,CAAC,EA1BgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QA0B1B;;;;;;;;;;AC1BD,IAAiB,UAAU,CAyB1B;AAzBD,WAAiB,UAAU,EAAC,CAAC;IAC3B,uBAA8B,KAAa;QACzC,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;IACpC,CAAC;IAFe,wBAAa,gBAE5B;IAED,wBAA+B,OAAe,EAAE,OAAe;QAC7D,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IATe,yBAAc,iBAS7B;IAED,kCAAyC,OAAe,EAAE,OAAe;QACvE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAFe,mCAAwB,2BAEvC;IAEU,qCAA0B,GAAW,eAAe,CAAC;IAEhE,gCAAuC,KAAa;QAClD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC;IAFe,iCAAsB,yBAErC;AACH,CAAC,EAzBgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAyB1B;;;;;;;;;;;ACxBD,wCAAoC;AAEpC,IAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ;IAyCE,+BAAmB,IAAY,EAAS,cAAsB,EAAS,mBAAmB,EAAS,MAAa,EAAS,MAAa;QAAnC,sCAAa;QAAS,sCAAa;QAAnH,SAAI,GAAJ,IAAI,CAAQ;QAAS,mBAAc,GAAd,cAAc,CAAQ;QAAS,wBAAmB,GAAnB,mBAAmB;QAAS,WAAM,GAAN,MAAM,CAAO;QAAS,WAAM,GAAN,MAAM,CAAO;QArCtI,kBAAa,GAA4B,EAAE,CAAC;QAE5C,4BAAuB,GAAG,CAAC,CAAC;QAE5B,4BAAuB,GAAG,CAAC,CAAC;QAkC1B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAfM,6BAAO,GAAd,UAAe,IAA2B,EAAE,IAA2B;QACrE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACtE,OAAO,CAAC,CAAC,CAAC;SACX;aAAM,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YAC7E,OAAO,CAAC,CAAC;SACV;aAAM,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YAC7E,OAAO,CAAC,CAAC;SACV;aAAM;YAEL,OAAQ,IAAI,CAAC,kBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAmB,CAAC,OAAO,EAAE,CAAC;SACjF;IACH,CAAC;IAMD,+CAAe,GAAf,UAAgB,YAA8B;QAC5C,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;YACjE,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC;SAC5B;QAED,IAAI,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;SAC5B;QAED,IAAI,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QAED,IAAI,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;SAC9C;QAED,IAAI,QAAQ,GAAgB,YAAY,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YACrH,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;YAE3B,IAAI,CAAC,gBAAgB,GAAG,kBAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;SAC1E;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;SAChD;QAGD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAChF,CAAC;IAED,0CAAU,GAAV;QACE,KAAyB,UAAkB,EAAlB,SAAI,CAAC,aAAa,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;YAAxC,IAAI,YAAY;YACnB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,0CAAU,GAAV;QACE,KAAyB,UAAkB,EAAlB,SAAI,CAAC,aAAa,EAAlB,cAAkB,EAAlB,IAAkB,EAAE;YAAxC,IAAI,YAAY;YACnB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,sDAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,sBAAY,IAAI,QAAC,YAAY,CAAC,MAAM,EAApB,CAAoB,CAAC,CAAC;IACzE,CAAC;IAED,sBAAI,4CAAS;aAAb;YACE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACxC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;;;OAAA;IAED,6CAAa,GAAb,UAAc,cAAmD;QAC/D,IAAI,mBAAmB,GAA4B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7F,KAAyB,UAAmB,EAAnB,2CAAmB,EAAnB,iCAAmB,EAAnB,IAAmB,EAAE;YAAzC,IAAI,YAAY;YACnB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC;SACnC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,4BAAC;AAAD,CAAC;AAxIY,sDAAqB;;;;;;;;;;;;;;;;;ACNS;AACI;AACJ;AAEN;AA8F8B;AACjE,IAAO,UAAC,MAAqB;QAC3B,aAAM,CAAC,IAAI,CAAC,GAAqF;IAAjG,CAAiG,CAAC;AACtG,CAAC;AASD;IACE,yBAAoB,WAA4B,EAC5B,QAEkC;QAHlC,gBAAW,GAAX,WAAW,CAAiB;QAC5B,oBAAe,GAAf,QAA0C;QAC1C,qBAAgB,GAAhB,eAAwE;QACxE,oBAAe,GAAf,eAAe,CAAmB;IACtD,CAAC;IAED,CAAiE;QAC/D,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAC3C,UAAU,EAAE,EACX;IACL,CAAC;IACH,EAAC;AAAD,CAAC;AAOD;IAAyC,6CAAa;IAKpD,iEAAY,WAAgD,EACxC,KAGkC;QAJtD,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,iBAAW,GAAX,WAAW,CAAiB;QAC5B,qBAAe,GAAf,QAA0C;QAC1C,sBAAgB,GAAhB,eAAwE;QACxE,qBAAe,GAAf,eAAe,CAAmB;QAR9C,YAAM,GAA2B,IAAI,CAAC;QACvC,oBAAwC;QACxC,WAAK,GAAW,CAAC,CAAC;;IAQzB,CAAC;IAES,CAAc;QACtB,IAAI,GAAM,CAAC;QACX,IAAI;YACF,CAA8B;SAC/B;QAAC,CAAY;YACZ,IAAI,CAAC,IAAW;YAChB,OAAO;SACR;QAED,CAAwB;IAC1B,CAAC;IAEO,EAAuB;QAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,CAA2C;SACrD;QAED,CAA4B;QAE5B,IAAI,OAAU,CAAC;QACf,IAAI,IAAI,CAAC,GAAiB;YACxB,IAAI;gBACF,CAAsC;aACvC;YAAC,CAAY;gBACZ,IAAI,CAAC,IAAW;aACjB;SACF;SAAM;YACL,EAAqB;SACtB;QAED,CAAY;YACV,KAAK,GAAG,CAAqF;YAC7F,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,IAAM,iBAAiB,EAA2C;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,QAAQ,SAAK,CAAC;gBAClB,IAAI;oBACF,CAAsF;iBACvF;gBAAC,CAAY;oBACZ,IAAI,CAAC,IAAW;oBAChB,OAAO;iBACR;gBACD,CAA4E;aAC7E;SACF;QAED,CAAmB;YACjB,KAAK,CAAC,IAAI,CAAC,KAAS;SACrB;IACH,CAAC;IAES,EAAe;QACvB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,EAAmB;gBACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,GAAe;SAChB;QACD,CAA4B;IAC9B,CAAC;IAES,EAAV;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,EAAmB;gBACxB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,GAAe;SAChB;QACD,CAA4B;IAC9B,CAAC;IAED,EAAkB;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;QACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,UAA8B;YACnC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBACpB,iBAAM,EAAc;aACrB;SACF;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAvGwC,UAAU,GAuGlD;AAOD;IAA4C,mDAAa;IACvD,uEAAoB,GAAM,EACN,KAAiB,EACjB,MAA0C;QAF9D,YAGE,kBAAM,KAAK,CAAC,SACb;QAJmB,SAAG,GAAH,GAAG,CAAG;QACN,WAAK,GAAL,EAAiB;QACjB,YAAM,GAAN,KAA0C;;IAE9D,CAAC;IAES,CAAc;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAGD;QACQ,aAAsB,EAApB,kBAAM,EAAE,YAAG,CAAU;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,EAAiB;SACzB;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAnB2C,UAAU,GAmBrD;AAUD;IAA6C,6CAAa;IAExD,iEAAmB,GAAM,EACL,YAAwB,CACmB;QAF/D,YAGE,iBAAO,SACR;QAJkB,SAAG,GAAH,GAAG,CAAG;QACL,gBAAwB;QACxB,0BAAoB,GAApB,KAA2C;;IAE/D,CAAC;IAGD,CAAoC;QAClC,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,aAA6C,EAA3C,6EAA4C;QACpD,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;YACxD,YAAY,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC,QAAuB;SACvE;QACD,CAAqD;QACrD,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,EAAC;AAAD,CAAC,CAlB4C,UAAU,GAkBtD;;AAOD;IAAwC,qDAAY;IAClD,yEAAoB,MAA4B;QAAhD,YACE,iBAAO,SAER;QAHmB,YAAM,GAAN,MAAM,CAAsB;QAE9C,MAAM,CAAC,KAAK,EAAE,CAAC;;IACjB,CAAC;IAED;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAa;YAClC,iBAAM,WAAW,KAAG;YACpB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAClB,IAAI,MAAM,CAAC,KAAK,EAAyC;gBACvD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;SACF;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CAhBuC,YAAY,GAgBnD;;;;;;;;;;;;;;;;;;;;;;;;ACrTD,kDAAuD;AAEvD,yCAAwC;AAaxC;IAAkD,gDAAgB;IAWhE,sCAAY,MAAe,EAAE,MAAe,EAAE,OAAwC;QAAtF,YACE,kBAAM,4BAA4B,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,SAOtE;QANC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,KAAI,CAAC,EAAE,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAClC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;SACrC,CAAC,CAAC;;IACL,CAAC;IAZM,8CAAiB,GAAxB,UAAyB,UAAkB;QACzC,OAAO,CAAC,UAAU,EAAE,4BAA4B,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAYD,oDAAa,GAAb;QACE,OAAO,oBAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,gDAAS,GAAT;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzC,CAAC;IAED,+CAAQ,GAAR;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;YACvC,IAAI,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACnE,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC7G,OAAO,MAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAgB,CAAC;SAC7G;QACD,OAAO,KAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAgB,CAAC;IAClD,CAAC;IAED,kDAAW,GAAX;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvE,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;YACvC,OAAU,OAAO,CAAC,SAAS,SAAI,OAAO,CAAC,QAAU,CAAC;QACpD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,iDAAU,GAAV;QACE,OAAU,IAAI,CAAC,OAAO,CAAC,kBAAkB,UAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,SAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAgB,CAAC;IAC/H,CAAC;IAED,kDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,mDAAY,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,sBAAI,mDAAS;aAAb;YACE,OAAO,4BAA4B,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClF,CAAC;;;OAAA;IA3DM,8CAAiB,GAAG,4BAA4B,CAAC;IA4D1D,mCAAC;CAAA,CA9DiD,oCAAgB,GA8DjE;AA9DY,oEAA4B;;;;;;;;;;;ACbzC,IAAM,uBAAuB,GAAG,iDAAiD,CAAC;AAClF,IAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,IAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAKrD;IAOE,6BAAY,SAAiB;QAA7B,iBAqBC;QA1BD,WAAM,GAA+C,EAAE,CAAC;QAMtD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5C,MAAM,2BAA2B,GAAG,SAAS,CAAC;SAC/C;QAED,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,SAAiB;YAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACnC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;aACJ;iBAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC9C,IAAI,MAAM,GAA2B,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzE,IAAI,MAAM,IAAI,IAAI,EAAE;oBAClB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;wBACf,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IASD,qCAAO,GAAP,UAAQ,MAAW;QACjB,IAAI,CAAC,GAAQ,MAAM,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAA0C;YAC1D,IAAI,CAAC,IAAI,IAAI,EAAE;gBAEb,OAAO,IAAI,CAAC;aACb;YAED,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAGvB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;iBAAM;gBACL,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACnB;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC;IACX,CAAC;IACH,0BAAC;AAAD,CAAC;AA1DY,kDAAmB;;;;;;;;;;;ACRhC,0DAAiE;AAEtD,qBAAa,GAAG;IACzB,GAAG,EAAE,SAAS;IACd,0BAA0B,EAAE,EAAE;IAS9B,gBAAgB,EAAE,UAAU,OAAoB,EAAE,QAAe;QAAf,0CAAe;QAC/D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,mBAAmB,GAAG,IAAI,CAAC;QAE/B,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,gDAAoB,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAK5C,mBAAmB,GAAS,YAAY,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;SAC1F;QAED,IAAI,CAAC,mBAAmB,IAAI,QAAQ,EAAE;YACpC,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;SAC7C;QACD,OAAO,mBAAmB,CAAC;IAE7B,CAAC;IASD,sBAAsB,EAAE,UAAS,YAAoB,EAAE,eAAmG;QACxJ,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE,IAAI,eAAe,IAAI,IAAI,EAAE;YAC1E,OAAO;SACR;QACD,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC;IAClE,CAAC;IAOD,iBAAiB,EAAE,UAAS,YAAoB;QAC9C,OAAO,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAQD,qBAAqB,EAArB,UAAsB,aAA0B;QAC9C,IAAI,iBAAiB,GAAG,IAAI,KAAK,EAAe,CAAC;QACjD,IAAI,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,gDAAoB,CAAC,CAAC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,IAAI,CAAO,uBAAuB,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC3D,iBAAiB,CAAC,IAAI,CAAc,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;aACjE;SACF;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAQD,sBAAsB,EAAtB,UAAuB,aAA0B;QAC/C,IAAI,qBAAqB,CAAC;QAC1B,IAAI,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,CAAC,gDAAoB,CAAC,CAAC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,IAAI,CAAO,uBAAuB,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBAC3D,qBAAqB,GAAgB,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBAChE,OAAO,qBAAqB,CAAC;aAC9B;SACF;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAMD,6BAA6B,EAA7B,UAA8B,aAA0B;QACtD,IAAI,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,qBAAqB,IAAI,IAAI,EAAE;YACjC,qBAAqB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrD,qBAAqB,CAAC,KAAK,EAAE,CAAC;SAC/B;IACH,CAAC;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC1GF,mDAAsD;AAEtD,yCAAkD;AAClD,8CAA6C;AAE7C;IAAkC,gCAAgB;IAAlD;;IA2EA,CAAC;IA/DC,8BAAO,GAAP;QACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC;IACnF,CAAC;IAED,2CAAoB,GAApB,UAAqB,eAAoB;QACvC,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,CAAC;IAC9C,CAAC;IAED,sCAAe,GAAf;IACA,CAAC;IAED,iCAAU,GAAV;QACE,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,0CAAmB,GAAnB,UAAoB,IAAY;QAAhC,iBAmBC;QAlBC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;YAEjB,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,GAAG;gBAC7D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC/E,KAAK,GAAG,IAAI,CAAC;oBAIb,IAAI,KAAI,CAAC,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE;wBACtE,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC1B;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,EAAE,CAAC;SACX;QAED,OAAO;YACL,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,iCAAU,GAAV;QAAA,iBAQC;QAPC,IAAI,MAAM,GAAiB,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,GAAG;YACvE,OAAO,KAAI,CAAC,WAAW,KAAK,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,2CAAoB,GAApB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,mDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,CAAC,WAAW,GAAW,KAAK,CAAC;IACnC,CAAC;IAxEM,wBAAW,GAAG;QACnB,QAAQ,EAAR;YACE,OAAO,cAAc,CAAC;QACxB,CAAC;KACF,CAAC;IAqEJ,mBAAC;CAAA,CA3EiC,qCAAgB,GA2EjD;AA3EY,oCAAY;;;;;;;;;;;ACHzB,qCAAsD;AACtD,2CAAwC;AAExC,0CAAuC;AACvC,0DAAmE;AAEnE,IAAI,OAAO,GAAG,sBAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAE/C,IAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC;IAME,8BAAoB,MAAW,EAAU,SAAiB,EAAU,QAAgB,EAAE,KAAa,EAAU,kBAA0B;QAA1B,+DAA0B;QAAnH,WAAM,GAAN,MAAM,CAAK;QAAU,cAAS,GAAT,SAAS,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAQ;QAAyB,uBAAkB,GAAlB,kBAAkB,CAAQ;QAH/H,4BAAuB,GAAe,EAAE,CAAC;QAI/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAGD,8CAAe,GAAf;QAAA,iBA+CC;QA9CC,OAAO,iBAAU,CAAC,MAAM,CAAC,UAAC,QAAQ;YAEhC,IAAI,yBAAyB,GAAG;gBAC9B,KAAI,CAAC,KAAK,CAAC,4BAA4B,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC;YAEF,IAAI,wBAAwB,GAAG,UAAC,IAAI;gBAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qFAAqF,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3H,CAAC,CAAC;YAEF,IAAI,uBAAuB,GAAG,UAAC,IAAI;gBAEjC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,gDAAqB,CAAC,eAAe,CAAC,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,qDAAqD,CAAC,CAAC;oBACtH,KAAwB,UAAQ,EAAR,SAAI,CAAC,GAAG,EAAR,cAAQ,EAAR,IAAQ,EAAE;wBAA7B,IAAI,WAAW;wBAClB,QAAQ,CAAC,IAAI,CAAC;4BACZ,WAAW,EAAE,WAAW;yBACzB,CAAC,CAAC;qBACJ;iBACF;gBAGD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,gDAAqB,CAAC,eAAe,CAAC,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,yDAAyD,CAAC,CAAC;oBAC1H,KAA4B,UAAY,EAAZ,SAAI,CAAC,OAAO,EAAZ,cAAY,EAAZ,IAAY,EAAE;wBAArC,IAAI,eAAe;wBACtB,QAAQ,CAAC,IAAI,CAAC;4BACZ,eAAe,EAAE;gCACf,EAAE,EAAE,eAAe;gCAGnB,IAAI,EAAE,IAAI,CAAC,IAAI;6BAChB;yBACF,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,CAAC;YAGF,IAAI,YAAY,GAAG,KAAI,CAAC,UAAU,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YAGtE,KAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhD,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kDAAmB,GAAnB;QACE,KAAyB,UAA4B,EAA5B,SAAI,CAAC,uBAAuB,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;YAAlD,IAAI,YAAY;YACnB,YAAY,CAAC,MAAM,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,wCAAS,GAAT;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,0CAAW,GAAX;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC1D,CAAC;IAED,sBAAI,mDAAiB;aAArB;YACE,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;QACpC,CAAC;;;OAAA;IAED,oDAAqB,GAArB,UAAsB,KAAkC;QAAxD,iBAqCC;QArCqB,0DAAkC;QACtD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,MAAM,mDAAmD,CAAC;SAC3D;QAED,IAAI,iBAAiB,GAAG,UAAC,OAA0C;YACjE,OAAO,WAAI,CAIT,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAC/B,UAAC,GAAyE;gBACxE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,KAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACzD;qBAAM;oBACL,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B;gBACD,OAAO,GAAG,CAAC,OAAO,CAAC;YACrB,CAAC,CACF,CAAC,KAAK,CAAC,UAAC,GAAQ;gBACf,KAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAG7B,OAAO,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,UAAU,GAAG,gDAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrF,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,UAAU,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjD,gDAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,UAAU,CAAC,CAAC;aACjI;YACD,OAAO,UAAU,CAAC;SACnB;IACH,CAAC;IAED,+CAAgB,GAAhB,UAAiB,KAAW;QAAX,mCAAW;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,oDAAoD,CAAC;SAC5D;QAED,IAAI,UAAU,GAAG,gDAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,UAAU,GAAG,WAAI,CAIf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CACxC,UAAC,GAAqF,IAAK,UAAG,CAAC,OAAO,EAAX,CAAW,CACvG,CACF,CAAC;YACF,gDAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,uCAAuC,EAAE,UAAU,CAAC,CAAC;SAC5H;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oDAAqB,GAArB,UAAsB,iBAAgC;QACpD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,wDAAwD,CAAC;SAChE;QAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,OAAO,SAAE,CAAC,IAAI,CAAC,CAAC;SACjB;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,GAA2B,EAAE,CAAC;QAOrC,gDAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;QAE7G,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,eAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,0CAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,oCAAK,GAAb,UAAc,GAAW;QAAE,gBAAqB;aAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;YAArB,+BAAqB;;QAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAEO,uCAAQ,GAAhB;QACE,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/C,CAAC;IACH,2BAAC;AAAD,CAAC;AAjLY,oDAAoB;;;;;;;;;;;;;;;;;;;;;;;;ACZjC,uDAA6D;AAE7D,8CAA6C;AAE7C,sDAAgE;AAChE,4CAA0C;AAC1C;IAAiC,+BAAmB;IAkClD,qBAAY,IAAY,EACZ,YAAwC,EACxC,KAAa,EACb,aAA8B,EAC9B,SAAe;QAJ3B,YAKE,kBAAM,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,SAG5C;QADC,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;;IACrC,CAAC;IA7BM,8BAAkB,GAAzB,UAA0B,QAAoB,EAAE,eAAuB;QACrE,IAAI,MAAM,GAAkB,IAAI,2CAAmB,CAAC,eAAe,CAAC,CAAC;QACrE,IAAI,UAAU,GAAoB,IAAI,wBAAU,EAAE,CAAC;QACnD,IAAI,GAAG,GAA4B,EAAE,CAAC;QACtC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAI;YACpB,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,EAAE,EAAE;gBAC3C,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC;aACpD;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,cAAc,CAAC,IAAI,EAAE,CAAC;QAEtB,cAAc,CAAC,OAAO,CAAC,UAAC,eAAe;YACrC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAYD,uCAAiB,GAAjB;QACE,OAAO,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,qCAAe,GAAf,UAAgB,OAAY;QAC1B,IAAI,SAAS,GAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,UAA8B,CAAC;QACnC,KAAoB,UAAyB,EAAzB,SAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAA1C,IAAI,OAAO;YACd,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;gBACjD,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,UAAU,GAAG,OAAO,CAAC;iBACtB;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,sDAAsD,GAAG,SAAS,CAAC,CAAC;iBACnF;aACF;SACF;QAED,OAAO,UAAU,IAAI,EAAE,CAAC;IAC1B,CAAC;IACH,kBAAC;AAAD,CAAC,CA/DgC,4CAAmB,GA+DnD;AA/DY,kCAAW;;;;;;;;;;;;;;;;;;ACNgC;AAEb;AACA;AACI;AAEyB;AAKxE;IAA8C,iDAAa;IAQzD,qEAAmB,MAAqB,EAClB,UAAgC;QADtD,YAEE,iBAAO,SACR;QAHkB,YAAM,GAAN,MAAM,CAAe;QAClB,oBAAc,EAAkB;QAN5C,eAAS,GAAW,CAAC,CAAC;QAGhC,iBAAW,GAAS;;IAKpB,CAAC;IAGD,CAAoC;QAClC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAES,EAAV;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAW;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAiB;SACvC;QACD,CAAqB;IACvB,CAAC;IAED;QACE,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,SAAoB;YACzB,UAAU,GAAG,IAAI,CAAC,OAAiC;YACnD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;iBACvB,SAAS,CAAC,IAAI,OAAiD;YAClE,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,CAAK;gBACxB,UAAU,GAAG,WAAmB;aACjC;aAAM;gBACL,EAA8B;aAC/B;SACF;QACD,CAAkB;IACpB,CAAC;IAED;QACE,OAAO,mBAAmB,EAAE,CAAC,IAAI,CAAkB,CAAC;IACtD,CAAC;IACH,EAAC;AAAD,CAAC,CA9C6C,UAAU,GA8CvD;;AAE6D;AAE9D,MAAM,CAAC,IAAM,+BAA+B,GAA0B;AACpE,KAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACzB,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAgB;IACvC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAE;IACzC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAM;IAC5C,UAAU,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAY;IAClD,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAkB;IACpE,UAAU,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE;IAClD,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAE;CAC/C,CAAC;AAEF;IAAuC,iDAAoB;IACzD,qEAAY,WAAuB,EACf,KAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IACS,CAAe;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,iBAAM,GAAY;IACpB,CAAC;IACS,EAAV;QACE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,iBAAM,GAAY;IACpB,CAAC;IACS,EAAV;QACE,IAAM,WAAW,GAAQ,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,SAAmB;YACxB,IAAM,UAAU,GAAG,OAAwB;YAC3C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,GAAK;YAC5B,WAAW,CAAC,WAAW,GAAG,EAAK;YAC/B,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,EAAc;aAC1B;SACF;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA3BsC,iBAAiB,GA2BvD;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,CAA2C;QAEjC,kCAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,GAA4C;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAmC;SACvD;QAED,CAAoB;IACtB,CAAC;IACH,EAAC;AAAD,CAAC;AAED;IAAoC,8CAAa;IAI/C,kEAAY,WAA0B,EAClB,KAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,CAAV;QAEU,kCAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAkB;YACvB,OAAO;SACR;QAED,CAAwB;QACxB,IAAM,QAAQ,GAAU,SAAuB;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,CAAQ;YACvB,OAAO;SACR;QAEM,CAAsC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAkB;YACvB,OAAO;SACR;QAyBO,CAAoB;QAC5B,IAAM,gBAAgB,GAAU,UAAyB;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,GAAsD;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA7DmC,UAAU,GA6D7C;;;;;;;;;;;;;;ACtLmC;AAIqC;AAKzE;IAAwC,2CAAU;IAEhD,+DAAoB,MAAS;QAA7B,YACE,iBAAO,CACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,CAAS;aAAT;YACE,OAAO,IAAI,CAAC,EAAW;QACzB,CAAC;;;OAAA;IAGD,GAAoC;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAa;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,CAAoB;IACtB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,KAAY;SACxB;SAAuB;YACtB,MAAM,IAAI,SAA0B;SACrC;SAAM;YACL,EAAmB;SACpB;IACH,CAAC;IAED,EAAa;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAU;IAClC,CAAC;IACH,EAAC;AAAD,CAAC,CAhCuC,OAAO,GAgC9C;;;;;;;;;;;;;;;;;;ACvC0C;AACI;AAoDyB;AAAjB,8BAAiB;IACtE,OAAO,gBAAwD;QAC7D,OAAO,GAAqD;IAC9D,CAAE;AACJ,CAAC;AAED;IACE,EAAuE;CAAA;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,kBAA2C;QACzC,CAAyF;IAC3F,CAAC;IACH,uBAAC;AAAD,CAAC;;AAOD;IAA4C,EAAa;IAQvD,yBAEqC;KAAA;AAEpC;QAHmB,eAAS,GAAT,SAAS,CAAe;2DACnB,CAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,kBAAuE;QACpE,CAAkC;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,iBAA+C;KAKlD;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAoB;IACvD,CAAC;IAES,EAAe;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,EAAV;QACE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;IACH,EAAC;AAAD,CAAC,CAjC2C,UAAU,GAiCrD;;AAED;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,mEAA+B;MACE;IACpD,CAAC;gEACH,GAAC;AAAA;;;;;;;;;;;;;;;;;;;AC3GD;IAAkC,wCAAK;IAIrC;QAAA,YACE,SAED;QALe,UAAI,GAAG,cAAc,CAAC;QAInC,MAAc,CAAC,cAAc,CAAC,KAAI,CAA0B;;IAC/D,CAAC;IACH,CAAC;AAAD,CAAC,CARiC,KAAK,GAQtC;;;;;;;;;;ACdD;AAAA;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6DhC;AACJ,IAAO,QAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC;;;;;;;;;AChED;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEO;AACD;AACT;AAmFlC;AAAsB,kBAAoE;SAApE,UAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC/F,CAA0C;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,UAAoC;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,6EAAS,CAAkB,QAAkB;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAA6D;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;KAAoC;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,CAA4F;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,CAAuE;AACzE,CAAC;;;;;;;;;;;;;;;;;;ACxGyC;AACF;AAKa;AAES;AA+BxD;AAAkB,iBAA+D;SAA/D,UAA+D,EAA/D,IAA+D;QAA/D,gCAA+D;;IAGrF,CAA8B;QAC5B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAG;YAC3B,yEAAW,GAA2B,WAAW,CAAI;SACtD;SAAM;YACL,EAAuC;SACxC;KACF;IAED,CAAqE;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,CAA2C;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IACH,EAAC;AAAD,CAAC;;AAOD;IAAuC,0CAAqB;IAK1D,8DAAY,WAA0B;QAAtC,YACE,kBAAM,IACP;QANO,cAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAW,GAAsB,EAAE,CAAC;QACpC,mBAAa,GAAmB,CAAG;;IAI3C,CAAC;IAES,CAAqB;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,EAAV;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,OAAuB;SAC7B;SAAM;YACL,EAAgD;gBAC9C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,YAAY,GAAG,aAA0D;gBAE7E,IAAI,IAAI,CAAC,mGAAe;oBACtB,IAAI,CAAC,aAAa,CAAC,EAAmB;iBACvC;gBACD,CAAuB;aACxB;YACD,CAAwB;SACzB;IACH,CAAC;IAED,EAE0C;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,CAAK;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAgC;gBAClD,IAAI,CAAC,KAAK,UAAU,EAAE;oBACpB,IAAI,YAAY,GAAyB;oBAEzC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF;YAED,CAA0B;SAC3B;QAED,CAAkC;IACpC,CAAC;IACH,EAAC;AAAD,CAAC,CArDsC,eAAe,GAqDrD;;;;;;;;;;ACtHD;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEA;AACG;AACI;AAmDH;AAFzB,kCAA0B;IAG9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,EAAoB;KACyC;KAC1E;iFAAU,OAAW,CAAC,cAAoB;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,iFAAY,MAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,kFAAW,KAAU,CAAC,QAAU;QAC9B,IAAM,GAAG,GAAG,iEAAkB;KACP;YACrB,CAAC,CAAC,CAAC,8DAAQ,CAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,4EAAU,MAAQ,CAAC,EAAe;YACvC,KAAK,EAAE,CAAC,CAAoB;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,WAAsE;IAC5D,GAAoC;CACrB;IAEvB,IAAI,UAAU,CAAC,MAAM,CAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAA6B;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;;;;;;;;;;;;;;;;;;;;AChG2C;AAU5C;IAAoC,mDAAc;IAEhD,kCAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,KACP;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAEM,CAAqC;QAAjB,iCAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,GAA6B;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,GAAM;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,CAA2B;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAO,EAAwB;QACpC,OAAO,CAAC,IAA2B;MACJ;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,CAA6B;QAAjB,gCAAiB;MAIJ;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,CAAS;SACnD;QAED,OAAO,OAAsB;IAC/B,CAAC;IACH,kBAAC;AAAD,CAAC,CAjCmC,WAAW,GAiC9C;;;;;;;;;;;;;AC3CiD;AAElD;IAAoC,yDAAc;IAAlD;;IACA,CAAC;IAAD,CAAC;AAAD,CAAC,CADmC,cAAc,GACjD;;;;;ACHD;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACM;AAiEG;;;;;;;;;AClErD;AAAA,MAAM,mBAAmB,CAAM;AAC7B,IAAO,CAAC,IAAI,IAAI,IAAI,KAAsB;AAC5C,CAAC;;;;;;;;;;;;;ACA6C;AAO9C;IAA4C,+CAAY;IAGtD,mEAAmB,OAAmB,EAAS,SAAuB;QAAtE,YACE,iBAAO,SACR;QAFkB,aAAO,GAAP,OAAO,CAAY;QAAS,gBAAU,GAAV,KAAuB;QAFtE,YAAM,GAAY,KAAK,CAAC;;IAIxB,CAAC;IAED;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,CAAmB;QAEnB,IAAM,OAAO,GAAG,IAAI,CAAS;QAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,GAAU;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,EAA+D;YAC/E,OAAO;SACR;QAED,CAA2D;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,QAAoB;SACtC;IACH,CAAC;IACH,EAAC;AAAD,CAAC,CA7B2C,YAAY,GA6BvD;;;;;;;;;;AChCD;AAAA,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAI,GAAkD;AACpF,EAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAA6B;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,CAAsB;KACvB;AACH,CAAC,EAP2D,CAO3D,CAAC;;;;;;;;;;;ACbF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEW;AACI;AACE;AACI;AACpB;AACJ;AACF;AAC2B;AACM;AAGd;AACvD,CAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,UAAC,+DAAyB;YAC7B,IAAI,MAAM,CAAC,SAAS,EAAE;gBACtB,UAAU,CAAC,IAAI,CAAE,GAAsB;gBACvC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC;aAClB;aAAM;gBACL,EAAoC;aACrC;QACH,CAAC,CAAC;KACH;KAAqE;QACpE,OAAO,qBAAqB,CAAC,qEAAe;KAC7C;KAA+B;QAC9B,6EAAO,OAAgB,CAAC,GAAQ;KACjC;KAA6B;QAC5B,yEAAO,WAA2C;KACnD;KAAmE;QAClE,OAAO,mBAAmB,CAAC,mEAAe;KAC3C;KAAM;QACL,EAAqE;QACrE,IAAM,GAAG,GAAG,4EAAgB,KAAK,kCAA+B;cAC5D,6DAA+D;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC;;;;;;;;;ACrCF;AAAA;AAAA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,aAAuB;AAOS;AAC9E,CAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,CAAY;QAEvC,MAAM,IAAI,yEAAU,IAAkE;KACvF;SAAM;QACL,CAAiC;KAClC;AACH,CAAC,EARqD,CAQrD,CAAC;;;;;;;;;;;AChBF;AAAA,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,UAAI,CAAM,IAAwB,EAA8D;;;;;;;;;ACA5H;AAAA,MAAM,oBAAoB,KAAU;AAClC,IAAO,KAAK,IAAI,OAAa,KAAM,CAAC,CAAsE;AAC5G,CAAC;;;;;;;;;ACDD;AAAA;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEwC;AAC1F,IAAO,CAAC,IAAI,CACV,UAAC,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,UAAC,GAAQ,IAAK,cACf;SACA,IAA4B;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,EAZiE,CAYjE,CAAC;;;;;;;;;;;ACdF;AAAA;AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,eAAqB;AAE0B;AACzF,CAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7C,GAAG;QACD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,iEAAG;QAC7B,IAAe;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,GAAiB;QAC5B,IAAI,CAAmB;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,KAAuC;QACzC,UAAU,CAAC,GAAG,CAAC;YACb,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,IAAW;AACpB,CAAC,EAxBgE,CAwBhE,CAAC;;;;;;;;;;;;;ACzBW,0BAAkB,GAAG;IAChC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;IACrF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;IACnF,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;IACtF,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;IACtF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;CAClE,CAAC;AACW,gCAAwB,GAAG;IACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAChF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa;IAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;CAAC,CAAC;AAExD,kBAAU,GAAG,EAAE,CAAC;AAC7B,0BAAkB,CAAC,OAAO,CAAC,UAAC,GAAG;IAC7B,kBAAU,CAAC,GAAG,CAAC,GAAG,gCAAwB,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAI,kBAAkB,GAAG;IACvB,SAAS,EAAE,kBAAU;CACtB,CAAC;AAEF,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAC/C,CAAC;AAFD,gDAEC;;;;;;;;;;;;;;;;;;;;;;;;ACxBD,wCAAsC;AACtC,kDAAuD;AAUvD;IAAqD,mDAAgB;IAQnE,yCAAY,MAAc,EAAE,MAAc,EAAU,OAA+C;QAAvF,uCAAc;QAAE,uCAAc;QAA1C,YACE,kBAAM,+BAA+B,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,+BAA+B,CAAC,oBAAoB,CAAC,SAO1I;QARmD,aAAO,GAAP,OAAO,CAAwC;QAGjG,KAAI,CAAC,EAAE,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAI,CAAC,EAAE,CAAC;QAEjD,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,aAAa,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa;SACnD,CAAC,CAAC;;IACL,CAAC;IAZM,iDAAiB,GAAxB,UAAyB,aAAqB;QAC5C,OAAO,CAAC,aAAa,EAAE,+BAA+B,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IAYD,kDAAQ,GAAR;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,qDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,qDAAW,GAAX;QACE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAK,GAAG,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,qDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,oDAAU,GAAV;QACE,OAAO,kBAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IACzE,CAAC;IAED,sDAAY,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,uDAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,wDAAc,GAAd;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,uDAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvD,CAAC;IAED,sBAAI,sDAAS;aAAb;YACE,OAAO,+BAA+B,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAChG,CAAC;;;OAAA;IAED,sBAAI,2DAAc;aAAlB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACrC,CAAC;;;OAAA;IAED,sBAAI,6DAAgB;aAApB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACvC,CAAC;;;OAAA;IA/DM,iDAAiB,GAAG,yBAAyB,CAAC;IAC9C,oDAAoB,GAAG,oCAAoC,CAAC;IA+DrE,sCAAC;CAAA,CAjEoD,oCAAgB,GAiEpE;AAjEY,0EAA+B;;;;;;;;;;;;;;;;;;;;;;;;ACZ5C,kDAAuD;AACvD,wCAAsC;AAatC;IAAwD,sDAAgB;IAQtE,4CACU,OAAkD;QAD5D,YAGE,kBAAM,kCAAkC,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,kCAAkC,CAAC,oBAAoB,CAAC,SAShM;QAXS,aAAO,GAAP,OAAO,CAA2C;QAI1D,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEjC,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,qBAAqB;YACzD,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,UAAU;YACnC,aAAa,EAAE,KAAI,CAAC,OAAO,CAAC,aAAa;SAC1C,CAAC,CAAC;;IACL,CAAC;IAhBM,oDAAiB,GAAxB,UAAyB,OAAkD;QACzE,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7H,CAAC;IAgBD,qDAAQ,GAAR;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACrC,CAAC;IAED,wDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,wDAAW,GAAX;QACE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,uDAAU,GAAV;QACE,OAAO,kBAAO,CAAC,OAAO,CAAC,yCAAyC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,8DAAiB,GAAjB;QACE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACzE,CAAC;IAED,sBAAI,yDAAS;aAAb;YACE,OAAO,kCAAkC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;;;OAAA;IA3CM,oDAAiB,GAAG,yBAAyB,CAAC;IAC9C,uDAAoB,GAAG,kCAAkC,CAAC;IA2CnE,yCAAC;CAAA,CA7CuD,oCAAgB,GA6CvE;AA7CY,gFAAkC;;;;;;;;;;;;;;;;;;;;;;;;ACd/C,kDAAuD;AAEvD,wCAAsC;AAUtC;IAAmD,iDAAgB;IAejE,uCAAY,MAAc,EAAE,MAAc,EAAU,OAA6C;QAArF,uCAAc;QAAE,uCAAc;QAA1C,YACE,kBAAM,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,SAyBvE;QA1BmD,aAAO,GAAP,OAAO,CAAsC;QAG/F,KAAI,CAAC,EAAE,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAI,CAAC,EAAE,CAAC;QAEjD,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEjC,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACxC,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc;SACrD,CAAC,CAAC;QAEH,KAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,WAAW,GAAgB,IAAI,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAElG,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;;SAExD;QAED,KAAoB,UAAgC,EAAhC,UAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAhC,cAAgC,EAAhC,IAAgC,EAAE;YAAjD,IAAI,OAAO;YACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjC,SAAS;aACV;YACD,KAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACnD;;IACH,CAAC;IApCM,+CAAiB,GAAxB,UAAyB,SAAiB;QACxC,OAAO,UAAC,YAA2C;YACjD,OAAO,YAAY,CAAC,YAAY,EAAE,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3E,CAAC,CAAC;IACJ,CAAC;IAEM,+CAAiB,GAAxB,UAAyB,QAAgB,EAAE,cAAsB;QAC/D,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,6BAA6B,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC;IA8BD,gDAAQ,GAAR;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YACnC,OAAO,4BAA4B,CAAC;SACrC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IACpF,CAAC;IAED,mDAAW,GAAX;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,mDAAW,GAAX;QACE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;IACzD,CAAC;IAED,qDAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,mDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,mDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,0DAAkB,GAAlB;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,kDAAU,GAAV;QACE,OAAO,kBAAO,CAAC,OAAO,CAAC,yCAAyC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,oDAAY,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,sBAAI,oDAAS;aAAb;YACE,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/H,CAAC;;;OAAA;IAED,sBAAI,kDAAO;aAAX;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,CAAC;;;OAAA;IAED,sBAAI,oDAAS;aAAb;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,CAAC;;;OAAA;IAED,sBAAI,yDAAc;aAAlB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACrC,CAAC;;;OAAA;IAED,sBAAI,2DAAgB;aAApB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACvC,CAAC;;;OAAA;IAtGM,+CAAiB,GAAG,4BAA4B,CAAC;IAuG1D,oCAAC;CAAA,CAxGkD,oCAAgB,GAwGlE;AAxGY,sEAA6B;;;;;;;;;;;ACX1C,qCAAsC;AACtC,0CAA2D;AAE3D,+CAAiD;AAEjD;IAAA;IAmCA,CAAC;IAlCC,mDAAuB,GAAvB,UAAwB,OAAe,EAAE,UAAkB;QACzD,OAAO,6BAAY,CAAC,GAAG,CAAC,OAAO,IAAG,4BAA0B,UAAU,aAAU,GAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC1H,eAAG,CAAC,UAAC,QAAsB;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAC,MAAM,IAAO,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,4CAAgB,GAAhB,UAAiB,OAAe,EAAE,MAAW;QAA7C,iBAmBC;QAlBC,IAAI,WAAW,GAAG;YAChB,UAAU,EAAE,MAAM,CAAC,QAAS;YAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YACvC,UAAU,EAAE,MAAM,CAAC,QAAQ;SAC5B,CAAC;QACF,OAAO,6BAAY,CAAC,GAAG,CAAC,OAAO,GAAG,gCAAgC,EAAE,WAAW,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACrH,oBAAQ,CAAC,UAAC,QAAsB;YAC9B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAChD;YACD,OAAO,SAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,EACF,sBAAU,CAAC,UAAC,GAAG,EAAE,SAAS;YACxB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtB,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAChD;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,6CAAiB,GAAzB,UAA0B,OAAe,EAAE,MAAW;QACpD,OAAO,6BAAY,CAAC,IAAI,CAAC,OAAO,GAAG,0BAA0B,EAAE,MAAM,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/G,eAAG,CAAC,UAAC,QAAsB;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACH,wBAAC;AAAD,CAAC;AAnCY,8CAAiB;;;;;;;;;;;ACN9B,sDAGgE;AAIrD,8BAAsB,GAAG;IAUlC,qBAAqB,EAAE,UACrB,gBAAiC,EACjC,aAAqB,EACrB,aAA0B,EAC1B,oBAA4B,EAC5B,gBAA6C;QAA7C,uDAAsC,GAAG,EAAE,CAAC,CAAC;QAE7C,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,gBAAgB,GAA6B,MAAM,CAAC;QACxD,IAAI,aAAa,GAAG;YAClB,SAAS,EAAE;gBACT,eAAe,EAAE;oBACf,OAAO,EAAE,IAAI;iBACd;gBACD,YAAY,EAAE;oBACZ,eAAe,EAAE,KAAK;iBACvB;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,KAAK;iBACf;gBACD,eAAe,EAAE,IAAI;aACtB;SACF,CAAC;QACF,IAAI,mBAAmB,GAAG,UAAC,QAAa;YACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC9D,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAClC,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,cAAc,IAAI,IAAI,EAAE;oBAC9D,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;iBACnC;aACF;QACH,CAAC,CAAC;QAEF,OAAO,0CAAmB,CAAC,sBAAsB,CAAC;YAChD,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,QAAQ;YAClB,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,WAAW;YACxB,kBAAkB,EAAE,gBAAgB;YACpC,oBAAoB,EAAE,oBAAoB;YAC1C,aAAa,EAAE,aAAa;YAC5B,eAAe,EAAE,aAAa;YAC9B,MAAM,EAAE,MAAM;YACd,kBAAkB,EAAE,gBAAgB;YACpC,mBAAmB,EAAE,mBAAmB;SACzC,CAAC,CAAC;IACL,CAAC;IAcD,qBAAqB,EAAE,UACrB,SAAkB,EAClB,gBAAiC,EACjC,MAAc,EACd,oBAA4B,EAC5B,aAA0B,EAC1B,gBAAyC,EACzC,eAAwC,EACxC,qBAAmC;QACjC,IAAI,qBAAqB,IAAI,IAAI,EAAE;YACjC,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAClD;QACD,IAAI,QAAQ,GAAG,qBAAqB,CAAC;QACrC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,SAAS,GAAG,UAAU,CAAC;QAC3B,IAAI,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,gBAAgB,GAA6B,cAAc,CAAC;QAChE,IAAI,aAAa,GAAG;YACpB,SAAS,EAAE;gBACT,eAAe,EAAE;oBACf,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;oBAC3B,iBAAiB,EAAE,QAAQ,CAAC,IAAI;iBACjC;gBACD,YAAY,EAAE;oBACZ,eAAe,EAAE,KAAK;iBACvB;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC;QAEA,OAAO,0CAAmB,CAAC,sBAAsB,CAAC;YAClD,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,QAAQ;YAClB,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,WAAW;YACxB,kBAAkB,EAAE,SAAS;YAC7B,kBAAkB,EAAE,gBAAgB;YACpC,oBAAoB,EAAE,oBAAoB;YAC1C,aAAa,EAAE,aAAa;YAC5B,eAAe,EAAE,aAAa;YAC9B,MAAM,EAAE,MAAM;YAGd,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,gBAAgB;SACnC,CAAC,CAAC;IAEL,CAAC;IAQD,uBAAuB,EAAE,UAAS,OAA6B,EAAE,MAA6B,EAAE,UAAmB;QACjH,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAClC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,aAAa,GAA8B,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1E,IAAI,aAAa,IAAI,IAAI;gBACrB,aAAa,CAAC,MAAM,IAAI,IAAI;gBAC5B,UAAU,IAAI,IAAI;gBAClB,aAAa,CAAC,MAAM,CAAC,UAAU,YAAY,WAAW,EAAE;gBAC1D,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,aAAa,CAAC,MAAM,CAAC,UAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC1E;YACD,OAAO,aAAa,CAAC;SACtB;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,2GAA2G,CAAC,CAAC;SAC5H;IACH,CAAC;IAED,iBAAiB,EAAE;QACjB,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAI,gBAAgB,EAAE;YACpB,OAAO,gBAAgB,CAAC;SACzB;QACD,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACvC,OAAO,WAAW,CAAC;IACrB,CAAC;CAEF,CAAC;;;;;;;;;;;AC5KF,IAAI,OAAO,GAAG,yCAAyC,CAAC;AAExD,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,qCAAqC,GAAG,OAAO,CAAC;AAEnG,uBAAe,GAAG;IAC3B,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,YAAY;CAC3B,CAAC;;;;;;;;;;;ACJW,kBAAU,GAAwB;IAC7C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,UAAC,MAAyB,EAAE,KAA0B,EAAE,OAA2B;QACxF,cAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAA/G,CAA+G;CAClH,CAAC;;;;;;;;;;;ACPF,2CAAwC;AAOxC,IAAI,iBAAiB,GAAG,sBAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AASrE,IAAI,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AACvD,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,IAAI,gBAAgB,GAAG,MAAM,CAAC;AAC9B,iBAAiB,CAAC,qCAAqC,GAAG,gBAAgB,GAAG,WAAW,CAAC,CAAC;AAK1F;IAAA;IA6CA,CAAC;IA5CQ,mCAAa,GAApB,UAAqB,OAAe,EAAE,KAAa;QACjD,IAAI,aAAa,EAAE;YACjB,IAAI,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,SAAS,EAAE;gBACb,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,EAAE;oBAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACrB,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,gBAAgB,EAAE;wBAChD,iBAAiB,CAAC,iBAAiB,GAAG,cAAc,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC1H,OAAO,SAAS,CAAC,UAAU,CAAC;qBAC7B;iBACF;gBACD,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IAEM,qCAAe,GAAtB,UAAuB,OAAe,EAAE,KAAa,EAAE,gBAAwB,EAAE,UAA2B;QAC1G,IAAI,aAAa,EAAE;YACjB,iBAAiB,CAAC,iBAAiB,GAAG,cAAc,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;YACtH,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE;gBAC1B,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,WAAW,EAAE,gBAAgB;gBAC7B,UAAU,EAAE,UAAU;aACvB,CAAC,CAAC;SACJ;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,qCAAe,GAAtB,UAAuB,OAAe,EAAE,gBAAwB;QAC9D,IAAI,aAAa,EAAE;YACjB,IAAI,MAAM,GAAG,iBAAiB,GAAG,cAAc,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,gBAAgB,CAAC;YACzF,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC/B,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/B,iBAAiB,CAAC,MAAM,GAAG,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;aACrE;iBAAM;gBACL,iBAAiB,CAAC,MAAM,GAAG,4BAA4B,GAAG,gBAAgB,CAAC,CAAC;aAC7E;SACF;IACH,CAAC;IAEM,2BAAK,GAAZ;QACE,cAAc,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC;AA7CY,sDAAqB;AAmDlC;IAAA;IA0BA,CAAC;IAzBC,sBAAW,4CAAa;aAAxB;YACE,OAAO,aAAa,CAAC;QACvB,CAAC;aAED,UAAyB,KAAc;YACrC,aAAa,GAAG,KAAK,CAAC;YACtB,iBAAiB,CAAC,2CAA2C,GAAG,aAAa,CAAC,CAAC;QACjF,CAAC;;;OALA;IAOD,sBAAW,+CAAgB;aAA3B;YACE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;aAED,UAA4B,KAAa;YACvC,gBAAgB,GAAG,KAAK,CAAC;YACzB,iBAAiB,CAAC,8CAA8C,GAAG,gBAAgB,CAAC,CAAC;QACvF,CAAC;;;OALA;IAWM,gCAAI,GAAX;QACE,iBAAiB,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;IACH,kCAAC;AAAD,CAAC;AA1BY,kEAA2B;;;;;;;;;;;;;;;;;;;;;;;;AC7ExC,mDAAsD;AAEtD,8CAA6C;AAC7C,yCAA2C;AAE3C;IAAuC,qCAAgB;IAAvD;QAAA,qEAwHC;QArHC,kBAAY,GAA6B,EAAE,CAAC;;IAqH9C,CAAC;IAjHC,mCAAO,GAAP;QAAA,iBAUC;QATC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;QAED,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,GAAW;YAC1D,OAAO,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,IAAI,IAAI,CAAC;QAEb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gDAAoB,GAApB,UAAqB,eAAe;QAApC,iBA+BC;QA9BC,IAAI,iBAAiB,GAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAC,aAAa;YACjD,IAAI,WAAW,GAAG,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,WAAW,EAAE;gBAEf,IAAI,cAAc,GAAiB,KAAI,CAAC,SAAU,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAIpF,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;oBAWxC,OAAO,cAAc,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;iBACjD;qBAAM,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;oBACpF,OAAO,eAAe,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;iBACvE;qBAAM;oBACL,OAAO,eAAe,KAAK,cAAc,CAAC;iBAC3C;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAED,2CAAe,GAAf;IACA,CAAC;IAED,sCAAU,GAAV;QACE,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,+CAAmB,GAAnB,UAAoB,IAAwB;QAA5C,iBAkBC;QAjBC,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;YAG/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAEf,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,GAAW;gBACrE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC/E,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC9B,KAAK,GAAG,IAAI,CAAC;iBACd;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4CAAgB,GAAhB;QACE,IAAI,IAAI,GAAwB,EAAE,CAAC;QAGnC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;YACjC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAgB,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC3G;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAU,GAAV;QACE,IAAI,IAAI,GAAkB,EAAE,CAAC;QAG7B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;YACjC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChB;SACF;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,gDAAoB,GAApB;QACE,IAAI,KAAK,GAAG;YACV,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,KAAK,GAAQ,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAC/C,CAAC;IACH,wBAAC;AAAD,CAAC,CAxHsC,qCAAgB,GAwHtD;AAxHY,8CAAiB;;;;;;;;;;ACL9B;IAAA;IAKA,CAAC;IAAD,cAAC;AAAD,CAAC;AALqB,eAAO,UAK5B;;;;;;;;;;ACLD,sCAAmB,EAAoB,CAAC;AAExC;;;;GAIG;AACH;IAKE,oBAAY,KAAsB,EAAE,OAAgB;QAClD,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,gBAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,iCAAY,GAAZ;QACE,IAAI,KAAK,GAAoB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAoB,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjD,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YACf,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;YACjB,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,6BAAQ,GAAR;QACE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,+BAAU,GAAV;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,6BAAQ,GAAR,UAAS,KAAa;QACpB,IAAI,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;QACrB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,uCAAuC;YACvC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;QACxB,CAAC;IACH,CAAC;IAED,+BAAU,GAAV,UAAW,OAAe;QACxB,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;QACvB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACrB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,uCAAuC;YACvC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;QAC1B,CAAC;IAEH,CAAC;IAED,4BAAO,GAAP;QACE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC;IACvD,CAAC;IAED,wBAAG,GAAH,UAAI,IAAU;QACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACrC,CAAC;IACH,iBAAC;AAAD,CAAC;AAzEY,kBAAU,aAyEtB;;;;;;;;;;AC/ED,yEAAyE;AACzE,IAAM,iBAAiB,GAAG,wJAAwJ,CAAC;AACnL,2EAA2E;AAC3E,iDAAiD;AACjD,IAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD,IAAiB,SAAS,CAUzB;AAVD,WAAiB,SAAS,EAAC,CAAC;IACxB,yEAAyE;IACzE,uBAA8B,KAAa;QAEvC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC;IAPe,uBAAa,gBAO5B;AACL,CAAC,EAVgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAUzB;;;;;;;;;;AChBD,8CAAsC,GAAwC,CAAC;AAE/E,wCAA2B,EAAe,CAAC;AAE3C,IAAO,gBAAgB,GAAG,wBAAU,CAAC,gBAAgB,CAAC;AACtD,sCAAyB,EAAa,CAAC;AAEvC,IAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,IAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,IAAiB,cAAc,CA8hC9B;AA9hCD,WAAiB,cAAc,EAAC,CAAC;IAG/B,qCAA4C,QAAkC;QAC5E,MAAM,CAAC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAFe,0CAA2B,8BAE1C;IAED,4CAAmD,QAAkC;QACnF,MAAM,CAA6B,4BAA4B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;IAFe,iDAAkC,qCAEjD;IAED,sCAAsC,QAAkC,EAAE,cAAuB;QAC/F,IAAI,qBAAqB,GAAoD,IAAI,GAAG,EAAE,CAAC;QACvF,IAAI,qBAAqB,GAAmE,IAAI,GAAG,EAAE,CAAC;QAEtG,GAAG,CAAC,CAAgB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,CAAC;YAAxB,IAAI,OAAO;YACd,IAAI,WAAW,GAAW,OAAO,CAAC,aAAa,CAAC;YAEhD,+BAA+B;YAC/B,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,KAAK,GAAiB;oBACxB,GAAG,EAAE,OAAO,CAAC,aAAa;oBAC1B,IAAI,EAAE,OAAO,CAAC,cAAc;oBAC5B,WAAW,EAAE,OAAO,CAAC,qBAAqB;oBAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;oBACtC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;oBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;oBAChD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;oBAClD,eAAe,EAAE,EAAE;iBACpB,CAAC;gBACF,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;YAED,oCAAoC;YACpC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC5C,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,WAAW,GAAG,cAAc,GAAG,4BAA4B,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC1G,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;gBACxB,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACtE,CAAC;SACF;QAED,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,KAAmB;YAC9E,KAAK,CAAC,eAAe,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,+BAAsC,OAA0B;QAC9D,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC;gBACL,GAAG,EAAE,OAAO,CAAC,iBAAiB;gBAC9B,IAAI,EAAE,OAAO,CAAC,kBAAmB;gBACjC,WAAW,EAAE,OAAO,CAAC,yBAAyB;gBAC9C,KAAK,EAAE,OAAO,CAAC,mBAAmB;gBAClC,aAAa,EAAE,OAAO,CAAC,2BAA4B;gBACnD,gBAAgB,EAAE,OAAO,CAAC,8BAA+B;gBACzD,YAAY,EAAE,OAAO,CAAC,0BAA2B;gBACjD,YAAY,EAAE,OAAO,CAAC,0BAA2B;gBACjD,YAAY,EAAE,OAAO,CAAC,0BAA0B,KAAK,CAAC;gBACtD,eAAe,EAAE,OAAO,CAAC,6BAA6B;aACvD,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAhBe,oCAAqB,wBAgBpC;IAED,sCAA6C,OAA0B;QACrE,IAAI,IAAI,GAAiC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;YACtD,IAAI,WAAW,GAAqD,IAAI,CAAC;YACzE,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,sBAAsB,KAAK,CAAC,CAAC;YAC5D,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,yBAAyB,KAAK,CAAC,CAAC;YAClE,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,sBAAsB,KAAK,CAAC,CAAC;YAC5D,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,0BAA0B,KAAK,CAAC,CAAC;YACpE,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,oBAAoB,KAAK,CAAC,CAAC;YACxD,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,uBAAuB,KAAK,CAAC,CAAC;YAC9D,WAAW,CAAC,wBAAwB,GAAG,OAAO,CAAC,sCAAsC,KAAK,CAAC,CAAC;YAC5F,WAAW,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,KAAK,IAAI,OAAO,CAAC,kBAAkB,KAAK,KAAK,IAAI,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC,GAA6B,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,GAAG,SAAU,CAAC;YACtO,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,mBAAoB,CAAC;YACxD,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,mBAAoB,CAAC;YACxD,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,6BAA6B,CAAC;YACpE,MAAM,CAAC,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAlBe,2CAA4B,+BAkB3C;IAED,sDAAsD;IACtD,6BAAgE,UAAoB;QAClF,UAAU,CAAC,IAAI,CAAC,UAAC,CAAI,EAAE,CAAI;YACzB,wFAAwF;YAExF,mDAAmD;YACnD,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC;YACjD,CAAC;YAED,oHAAoH;YACpH,IAAI,WAAW,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC;YACzC,IAAI,WAAW,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACnC,CAAC;YAED,sDAAsD;YACtD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAElE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IArBe,kCAAmB,sBAqBlC;IAED,kDAAkD;IAClD,yBAAwD,MAAgB;QACtE,MAAM,CAAC,IAAI,CAAC,UAAC,CAAI,EAAE,CAAI;YACrB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IALe,8BAAe,kBAK9B;IAED,mCAA0C,UAAwB;QAChE,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,eAAe,IAAI,IAAI,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACxG,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,8EAA8E;QAC9E,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IANe,wCAAyB,4BAMxC;IAED;;;OAGG;IACH,4CAAmD,uBAA2C,EAC5F,UAAwB,EACxB,SAA8B,EAC9B,YAAqB,EACrB,gBAAiD,EACjD,cAAuB;QADvB,gCAAiD,GAAjD,+BAAiD;QAGjD,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QAED,IAAI,KAAkC,CAAC;QAEvC,EAAE,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC;YAC/B,4DAA4D;YAC5D,MAAM,CAAC,uBAAuB,CAAC;QACjC,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClB,KAAK,QAAQ;oBACX,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC;oBACT,CAAC;oBACD,KAAK,GAAG,oCAAoC,CAAC,uBAAuB,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;oBAClI,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG,qCAAqC,CAAC,uBAAuB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;oBACjG,KAAK,CAAC;gBACR,KAAK,gBAAgB;oBACnB,KAAK,CAAC;gBACR;oBACE,KAAK,CAAC;YACV,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,uCAAuC;YACvC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClB,KAAK,QAAQ;oBACX,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC;oBACT,CAAC;oBACD,KAAK,GAAG,6BAA6B,CAAC,uBAAuB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;oBACzG,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG,8BAA8B,CAAC,uBAAuB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;oBAC1F,KAAK,CAAC;gBACR,KAAK,gBAAgB;oBACnB,KAAK,CAAC;gBACR;oBACE,KAAK,CAAC;YACV,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IA1De,iDAAkC,qCA0DjD;IAED;;;OAGG;IACH,4CAAmD,UAA8B,EAC/E,UAAwB,EACxB,WAAgC,EAChC,YAAqB,EACrB,gBAAiD,EACjD,cAAuB;QADvB,gCAAiD,GAAjD,+BAAiD;QAGjD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;QAED,yEAAyE;QACzE,IAAI,qBAAqB,GAAwC,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/H,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC;YAClC,IAAI,YAAY,GAAgC,8BAA8B,CAAC,qBAAqB,EAClG,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAChB,cAAc,CAAC,CAAC;YAClB,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC;YACT,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC;YACjC,4DAA4D;YAC5D,MAAM,CAAC,UAAU,CAAC;QACpB,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpB,KAAK,QAAQ;oBACX,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC;oBACT,CAAC;oBACD,MAAM,CAAC,oCAAoC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBAC9H,KAAK,SAAS;oBACZ,MAAM,CAAC,qCAAqC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;gBAC7F,KAAK,gBAAgB;oBACnB,KAAK,CAAC;gBACR;oBACE,KAAK,CAAC;YACV,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,uCAAuC;YACvC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpB,KAAK,QAAQ;oBACX,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC;oBACT,CAAC;oBACD,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACvF,KAAK,SAAS;oBACZ,MAAM,CAAC,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxE,KAAK,gBAAgB;oBACnB,KAAK,CAAC;gBACR;oBACE,KAAK,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IA9De,iDAAkC,qCA8DjD;IAED;;OAEG;IACH,2BAAkC,oBAAwC,EAAE,UAAoC;QAC9G,EAAE,CAAC,CAAC,oBAAoB,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC;QACT,CAAC;QAED,IAAI,6BAA6B,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAEvE,GAAG,CAAC,CAAuB,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;YAAjD,IAAI,cAAc;YACrB,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,6BAA6B,CAAC,CAAC,CAAC;gBACxE,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;SACF;IACH,CAAC;IAZe,gCAAiB,oBAYhC;IAED,2CAAkD,YAAgC,EAAE,UAAwB;QAC1G,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC;QACT,CAAC;QAED,GAAG,CAAC,CAAuB,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;YAAjD,IAAI,cAAc;YACrB,EAAE,CAAC,CAAC,cAAc,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC;YACrC,CAAC;SACF;IACH,CAAC;IAVe,gDAAiC,oCAUhD;IAED,+BAAsC,SAA8B,EAClE,YAAgC,EAChC,iBAA+B,EAC/B,gBAAkC,EAClC,YAAqB,EACrB,cAAuB;QACvB,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;YACjI,MAAM,CAAC,wBAAU,CAAC,KAAK,CAAC,YAAY,EAAU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;QACjI,CAAC;QAED,EAAE,CAAC,CAAC,iBAAiB,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,MAAM,CAAC;QACT,CAAC;QAED,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAChJ,KAAK,YAAY;gBACf,IAAI,cAAc,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,cAAgC;oBAC3F,MAAM,CAAC,cAAc,CAAC,aAAa,IAAI,YAAY,CAAC;gBACtD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC3B,MAAM,CAAC;gBACT,CAAC;gBAED,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC7B,CAAC;YACH,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;IACH,CAAC;IAvCe,oCAAqB,wBAuCpC;IAED,oDAA2D,cAAkC,EAAE,UAAwB;QACrH,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC;QACT,CAAC;QACD,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,cAAc,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,IAAI,GAAiC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACvF,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAZe,yDAA0C,6CAYzD;IAED;;;OAGG;IACH,kCAAyC,oBAAwC,EAAE,UAAwB;QACzG,EAAE,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC;QACT,CAAC;QAED,IAAI,cAAc,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QACzE,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC;QAED,EAAE,CAAC,CAAC,oBAAoB,KAAK,EAAE;YAC7B,oBAAoB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YACtD,oBAAoB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAEzD,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC1E,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,YAAY,GAAW,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAExD,EAAE,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;gBACtE,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IA3Be,uCAAwB,2BA2BvC;IAED,yFAAyF;IACzF,sCAAsC;IACtC,wCAA+C,uBAA2C,EAAE,UAAwB,EAAE,WAAoB;QACxI,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QACD,IAAI,cAAc,GAAiC,iBAAiB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAC1G,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IARe,6CAA8B,iCAQ7C;IAED,+CAAsD,uBAA2C,EAAE,UAAwB,EAAE,WAAoB;QAC/I,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QACD,IAAI,cAAc,GAAiC,wBAAwB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QACjH,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;QAED,mDAAmD;QACnD,MAAM,CAAC,iDAAiD,CAAC,uBAAuB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7G,CAAC;IAXe,oDAAqC,wCAWpD;IAED,uCAA8C,uBAA2C,EAAE,UAAwB,EAAE,cAAsB,EAAE,WAAoB;QAC/J,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QACD,IAAI,OAAO,GAAG,8BAA8B,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACzF,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC;QACT,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,GAAG,GAAG,GAAG,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IATe,4CAA6B,gCAS5C;IAED;;OAEG;IACH,8CAAqD,uBAA2C,EAC9F,UAAwB,EACxB,gBAAkC,EAClC,cAAsB,EACtB,WAAoB;QACpB,EAAE,CAAC,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC;YAClC,IAAI,sBAAsB,SAAoB,CAAC;YAC/C,IAAI,cAAc,GAAiC,wBAAwB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAEjH,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3B,sBAAsB,GAAG,cAAc,CAAC,YAAY,CAAC;YACvD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBAChD,sBAAsB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;YAC3D,CAAC;YAED,EAAE,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnC,EAAE,CAAC,CAAC,sBAAsB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnD,sBAAsB,GAAW,UAAU,CAAC,UAAU,CAAC;gBACzD,CAAC;gBAED,EAAE,CAAC,CAAC,sBAAsB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnD,sBAAsB,GAAW,UAAU,CAAC,UAAU,CAAC;gBACzD,CAAC;gBAED,MAAM,CAAC,gBAAgB,CAAC,cAAc,GAAG,sBAAsB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YACtH,CAAC;YACD,MAAM,CAAC,CAAC,mEAAmE;QAC7E,CAAC;QAED,sEAAsE;QACtE,IAAI,OAAO,GAAuB,qCAAqC,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACpH,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,gBAAgB,CAAC,OAAO,GAAG,GAAG,GAAG,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAtCe,mDAAoC,uCAsCnD;IAED,uCAA8C,MAA0B,EAAE,cAAsB,EAAE,UAAwB;QACxH,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC;QACT,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,CAAC,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IARe,4CAA6B,gCAQ5C;IAED,4BAA4B;IAC5B,wCAA+C,OAA2B,EAAE,UAAwB;QAClG,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC;QACT,CAAC;QAED,GAAG,CAAC,CAAuB,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;YAAjD,IAAI,cAAc;YACrB,EAAE,CAAC,CAAC,cAAc,CAAC,gBAAgB,IAAI,OAAO,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,CAAC;SACF;IACH,CAAC;IAVe,6CAA8B,iCAU7C;IAED,2BAA2B;IAC3B,+CAAsD,OAA2B,EAAE,UAAwB,EAAE,WAAoB;QAC/H,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,gDAAgD,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAVe,oDAAqC,wCAUpD;IAED,8CAAqD,MAA0B,EAC7E,cAAsB,EACtB,UAAwB,EACxB,gBAAkC,EAClC,WAAoB;QACpB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,6BAA6B,GAAG,wBAAU,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,SAAS,CAAC,CAAC;QAEzF,EAAE,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC;YAClC,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnF,wCAAwC;gBACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,EAAE,CAAC,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACzE,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;gBACxC,CAAC;gBACD,sCAAsC;gBACtC,IAAI,YAAY,GAAW,wBAAU,CAAC,gBAAgB,CAAC,6BAA6B,GAAG,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBAEhJ,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC1E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC;gBAED,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC1E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,CAAC,+BAA+B,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACnE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,kEAAkE;gBAClE,GAAG,CAAC,CAAuB,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;oBAAjD,IAAI,cAAc;oBACrB,yBAAyB;oBACzB,IAAI,OAAO,UAAC;oBACZ,EAAE,CAAC,CAAC,KAAK,CAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBAC7F,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBAC7F,CAAC;oBAED,EAAE,CAAC,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAC,CAAC;wBAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC7B,CAAC;iBACF;gBACD,oEAAoE;gBACpE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YAEN,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnF,sCAAsC;gBACtC,uCAAuC;gBACvC,MAAM,CAAC,gDAAgD,CAAC,6BAA6B,GAAG,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACxH,CAAC;YAAC,IAAI,CAAC,CAAC;gBAEN,MAAM,CAAC,6BAA6B,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IA3De,mDAAoC,uCA2DnD;IAED,0DAAiE,OAA2B,EAAE,UAAwB,EAAE,WAAoB;QAC1I,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QAAC,CAAC;QAEhC,IAAI,aAAa,GAAuB,0DAA0D,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAErI,MAAM,CAAC,+BAA+B,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IANe,+DAAgD,mDAM/D;IAED,yCAAyC,YAAgC,EAAE,UAAwB;QACjG,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC;QACT,CAAC;QACD,yCAAyC;QACzC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAChC,iDAAiD;YACjD,GAAG,CAAC,CAAuB,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;gBAAjD,IAAI,cAAc;gBACrB,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,YAAY;oBACtD,CAAC,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;oBACrD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC7B,CAAC;aACF;QACH,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,2BAA2B;IAC3B,oEAA2E,OAA2B,EAAE,UAAwB,EAAE,WAAoB;QACpJ,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC;QAAC,CAAC;QAChC,IAAI,gBAAgB,GAAW,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;QAC3F,IAAI,SAAS,GAAiC,SAAS,CAAC;QACxD,IAAI,QAAQ,GAAiC,SAAS,CAAC;QAEvD,IAAI,MAAM,GAA4B,UAAU,CAAC,eAAe,CAAC;QACjE,GAAG,CAAC,CAAc,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,CAAC;YAApB,IAAI,KAAK;YACZ,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5B,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACrC,QAAQ,GAAG,KAAK,CAAC;gBACjB,KAAK,CAAC;YACR,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;SACF;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACjH,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3F,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,IAAI,IAAI,GAAW,SAAS,CAAC,YAAY,CAAC;YAC1C,IAAI,GAAG,GAAW,QAAQ,CAAC,YAAY,CAAC;YAExC,oFAAoF;YACpF,IAAI,WAAW,GAAW,SAAS,CAAC,gBAAgB,CAAC;YACrD,IAAI,UAAU,GAAW,QAAQ,CAAC,gBAAgB,CAAC;YAEnD,2EAA2E;YAC3E,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACxI,CAAC;IACH,CAAC;IA3Ce,yEAA0D,6DA2CzE;IAED,eAAe;IACf,2DAAkE,qBAAyC,EAAE,UAAwB,EAAE,WAAoB;QACzJ,EAAE,CAAC,CAAC,KAAK,CAAM,qBAAqB,CAAC,IAAI,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC;QACT,CAAC;QAED,IAAI,SAAS,GAAiC,SAAS,CAAC;QACxD,IAAI,QAAQ,GAAiC,SAAS,CAAC;QACvD,IAAI,sBAAsB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE3D,GAAG,CAAC,CAAc,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;YAAxC,IAAI,KAAK;YACZ,EAAE,CAAC,CAAC,qBAAqB,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5B,CAAC;YAED,EAAE,CAAC,CAAC,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAChD,QAAQ,GAAG,KAAK,CAAC;gBACjB,KAAK,CAAC;YACR,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;SACF;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7E,CAAC;QAED,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1C,IAAI,IAAI,GAAW,SAAS,CAAC,YAAY,CAAC;YAC1C,IAAI,GAAG,GAAW,QAAQ,CAAC,YAAY,CAAC;YAExC,oFAAoF;YACpF,IAAI,WAAW,GAAW,SAAS,CAAC,YAAY,CAAC;YACjD,IAAI,UAAU,GAAW,QAAQ,CAAC,YAAY,CAAC;YAE/C,2EAA2E;YAC3E,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACxI,CAAC;IACH,CAAC;IA7Ce,gEAAiD,oDA6ChE;IAED,gCAAuC,OAAe,EAAE,KAAmB;QACzE,kDAAkD;QAClD,MAAM,CAAS,KAAK,CAAC,UAAU,CAAC;IAClC,CAAC;IAHe,qCAAsB,yBAGrC;IAED;;;;;;;;;;OAUG;IACH,+BAAsC,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QAC7F,IAAI,CAAS,CAAC;QACd,IAAI,CAAC;YACH,CAAC,GAAG,wBAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,CAAE;QAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACX,MAAM,yEAAyE,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAClI,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,iFAAiF,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAC1I,CAAC;QAED,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAbe,oCAAqB,wBAapC;IAED;;;;;;OAMG;IACH,4BAAmC,SAA8B,EAAE,UAAwB,EAAE,SAAkB,EAAE,gBAAwC;QACvJ,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;YAC7B,gBAAgB,GAAG,IAAI,yCAAqB,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,UAA4B,CAAC;QAEjC,IAAI,0BAAiD,CAAC;QACtD,EAAE,CAAC,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,cAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC;YAChD,0BAA0B,GAAG;gBAC3B,OAAO,EAAE,mCAAmC,KAAa,EAAE,SAAc,EAAE,OAA+B;oBACxG,IAAI,0BAA0B,GAAG,KAAK,CAAC;oBACvC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;wBAClB,IAAI,gBAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;wBACzC,0BAA0B,GAAG,cAAY,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,IAAsB;4BACpF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,gBAAc,CAAC;wBACpD,CAAC,CAAC,IAAI,IAAI,CAAC;oBACb,CAAC;oBACD,MAAM,CAAC;wBACL,OAAO,EAAE,IAAI;wBACb,0BAA0B,EAAE,0BAA0B;qBACvD,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,QAAQ;gBACX,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;oBAClD,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,SAAS;oBACnB,WAAW,EAAE,CAAC;iBACf,CAAC,CAAC;gBAEH,EAAE,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC,CAAC;oBACvC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBACjD,CAAC;gBAED,sEAAsE;gBACtE,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,UAAU,CAAC,OAAO,CAAC;wBACjB,OAAO,EAAE,2BAA2B,KAAa,EAAE,SAAc,EAAE,OAA+B;4BAChG,MAAM,CAAC;gCACL,OAAO,EAAE,KAAK;gCACd,0BAA0B,EAAE,IAAI;gCAChC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mEAAmE,CAAC;6BACrG,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,CAAC,UAAU,CAAC;YAEpB,KAAK,SAAS;gBACZ,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;oBAClD,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,GAAG;oBACb,WAAW,EAAE,CAAC;iBACf,CAAC,CAAC;gBAEH,EAAE,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC,CAAC;oBACvC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,CAAC,UAAU,CAAC;YAEpB,KAAK,YAAY;gBACf,IAAI,eAAe,GAAoB,EAAE,CAAC;gBAC1C,IAAI,YAAY,SAAuB,CAAC;gBACxC,IAAI,aAAa,SAAuB,CAAC;gBACzC,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC5C,eAAe,GAAG;wBAChB,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,UAAU,CAAC,UAAU;wBAC/B,QAAQ,EAAE,UAAU,CAAC,UAAU;qBAChC,CAAC;oBAEF,EAAE,CAAC,CAAC,UAAU,CAAC,eAAe,IAAI,IAAI,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACzE,eAAe,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;oBAC3D,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC;wBACxD,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;oBAClC,CAAC;oBAED,IAAI,0BAAwB,GAAkB,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,cAAgC;wBAC5G,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACrC,uHAAuH;4BACvH,IAAI,YAAY,GAEA,gBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAS,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC3F,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;gCACzB,MAAM,CAAC,YAAY,CAAC;4BACtB,CAAC;wBACH,CAAC;wBACD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBAEH,YAAY,GAAG;wBACb,OAAO,EAAE,kCAAkC,KAAa,EAAE,SAAc,EAAE,OAA+B;4BACvG,IAAI,gBAAgB,GAAqB;gCACvC,OAAO,EAAE,IAAI;6BACd,CAAC;4BAEF,EAAE,CAAC,CAAC,0BAAwB,CAAC,IAAI,CAAC,UAAC,kBAA0B;gCAC3D,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC;4BACtC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gCACX,8DAA8D;gCAC9D,gBAAgB,CAAC,0BAA0B,GAAG,IAAI,CAAC;4BACrD,CAAC;4BAED,MAAM,CAAC,gBAAgB,CAAC;wBAC1B,CAAC;qBACF,CAAC;oBAEF,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC;wBAChF,aAAa,GAAG;4BACd,OAAO,EAAE,mCAAmC,KAAa,EAAE,SAAc,EAAE,OAA+B;gCACxG,gHAAgH;gCAChH,wEAAwE;gCACxE,gHAAgH;gCAChH,kFAAkF;gCAClF,IAAI,gBAAgB,GAAqB;oCACvC,OAAO,EAAE,KAAK;oCACd,YAAY,EAAE,gBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC;iCAC5E,CAAC;gCAEF,MAAM,CAAC,gBAAgB,CAAC;4BAC1B,CAAC;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,4CAA4C;oBAC5C,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC9B,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;oBAC9B,YAAY,GAAG;wBACb,OAAO,EAAE,gCAAgC,KAAa,EAAE,SAAc,EAAE,OAA+B;4BACrG,IAAI,cAAkC,CAAC;4BACvC,IAAI,OAAO,GAAG,KAAK,CAAC;4BACpB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gCAClB,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gCACrC,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,cAAgC;oCACzE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC;gCAC9D,CAAC,CAAC,IAAI,IAAI,CAAC;4BACb,CAAC;4BAED,IAAI,gBAAgB,GAAqB;gCACvC,OAAO,EAAE,OAAO;6BACjB,CAAC;4BAEF,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC9B,gBAAgB,CAAC,YAAY,GAAG,gBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;4BAChG,CAAC;4BAED,MAAM,CAAC,gBAAgB,CAAC;wBAC1B,CAAC;qBACF,CAAC;gBACJ,CAAC;gBAED,yBAAyB;gBACzB,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;gBAErE,6CAA6C;gBAC7C,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACnC,CAAC;gBAED,4GAA4G;gBAC5G,EAAE,CAAC,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC,CAAC;oBACvC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;gBACjD,CAAC;gBAED,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,UAAU,CAAC;YAEpB,KAAK,gBAAgB;gBACnB,UAAU,GAAG,CAAC;wBACZ,OAAO,EAAE,4BAA4B,KAAa,EAAE,SAAc,EAAE,OAA+B;4BACjG,IAAI,gBAAgB,GAAqB;gCACvC,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC;6BAC3B,CAAC;4BAEF,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;gCAC9B,gBAAgB,CAAC,YAAY,GAAG,gBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;4BACzI,CAAC;4BAED,MAAM,CAAC,gBAAgB,CAAC;wBAC1B,CAAC;qBACF,CAAC,CAAC;gBACH,MAAM,CAAC,UAAU,CAAC;YAEpB;gBACE,MAAM,CAAC,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAlMe,iCAAkB,qBAkMjC;IAED,uBAA8B,eAAuB,EAAE,UAAwB;QAC7E,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC;QACT,CAAC;QAED,IAAI,cAA4C,CAAC;QAEjD,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC;YAC1C,cAAc,GAAG,iBAAiB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,cAAc,GAAG,wBAAwB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAEvE,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,KAAK,CAAM,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,YAAY,GAAW,MAAM,CAAC,eAAe,CAAC,CAAC;gBACnD,GAAG,CAAC,CAAY,UAA0B,EAA1B,eAAU,CAAC,eAAe,EAA1B,cAA0B,EAA1B,IAA0B,CAAC;oBAAtC,IAAI,GAAG;oBACV,EAAE,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;wBACtC,cAAc,GAAG,GAAG,CAAC;wBACrB,KAAK,CAAC;oBACR,CAAC;iBACF;YACH,CAAC;QACH,CAAC;QAED,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IA1Be,4BAAa,gBA0B5B;IAED;;;OAGG;IACH,kCAAyC,UAA8B,EACrE,UAAwB,EACxB,SAA8B;QAC9B,IAAI,WAAW,GAA6E,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACxJ,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC;QACT,CAAC;QAED,mFAAmF;QACnF,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,kFAAkF;gBAClF,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,CAAC;gBACT,CAAC;gBACD,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,EAAE,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtD,MAAM,CAAC;gBACT,CAAC;gBAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,KAAK,CAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,KAAK,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3J,IAAI,YAAY,GAAW,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC9C,EAAE,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,UAAU;wBACvC,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;wBACxC,8GAA8G;wBAC9G,MAAM,CAAC;oBACT,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC;YACR,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;QAED,MAAM,CAAC,WAAW,CAAC;IACrB,CAAC;IAnCe,uCAAwB,2BAmCvC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,sFAAsF;IACtF,oFAAoF;IACpF,wCAA+C,qBAA8C,EAC3F,UAAwB,EACxB,SAA8B,EAC9B,YAAqB,EACrB,gBAAkC,EAClC,cAAuB;QACvB,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,6CAA6C;YAC7C,MAAM,CAAC;QACT,CAAC;QAED,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,KAAK,QAAQ;gBACX,MAAM,CAAC,wBAAU,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,YAAY,GAAG,GAAG,GAAG,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC5H,KAAK,SAAS;gBACZ,MAAM,CAAC,wBAAU,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACrG,KAAK,YAAY;gBACf,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC;oBAC1C,MAAM,CAAC,8BAA8B,CAAC,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;gBACxF,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,EAAE,CAAC,CAAC,qBAAqB,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC;wBAChD,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC/B,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC;wBACvD,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC/B,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBACrH,CAAC;gBACH,CAAC;YACH,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;IACH,CAAC;IA9Be,6CAA8B,iCA8B7C;IAED,4BAAmC,UAAwB;QACzD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;IACxC,CAAC;IALe,iCAAkB,qBAKjC;IAED,mCAA0C,UAAwB,EAAE,QAAmB;QACrF,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,QAAQ,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAC5B,CAAC;QACD,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjC,KAAK,kBAAkB;oBACrB,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBACnD,KAAK,CAAC;gBACR,KAAK,gBAAgB;oBACnB,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBACnD,KAAK,CAAC;gBACR,KAAK,cAAc;oBACjB,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;oBAClD,KAAK,CAAC;gBACR,KAAK,WAAW;oBACd,MAAM,GAAG,MAAM,CAAC;oBAChB,KAAK,CAAC;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,QAAQ,CAAC;oBAClB,KAAK,CAAC;gBACR,QAAQ;YACV,CAAC;YACD,IAAI,QAAQ,GAAG,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;YAC3E,IAAI,GAAG,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YAC5D,IAAI,GAAG,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;YAC5D,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACtI,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IA/Be,wCAAyB,4BA+BxC;AACH,CAAC,EA9hCgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA8hC9B;;;;;;;;;;ACziCD,oDAAsC,GAA2B,CAAC;AAClE,kDAAoC,GAAyB,CAAC;AAC9D,kDAAoC,GAAyB,CAAC;AAC9D,kDAAoC,GAAyB,CAAC;AAK9D,wCAA2B,EAAsB,CAAC;AAClD,sCAA+B,EAAoB,CAAC;AAIpD,iFAAiF;AACjF,IAAI,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,2FAA2F;AAC3F,2CAA2C;AAC3C,2BAA2B;AAC3B,wDAAwD;AACxD,IAAI,WAAW,GAAG,UAAS,QAAgB,EAAE,KAAa,EAAE,IAAkB;IAAlB,oBAAkB,GAAlB,aAAkB;IAC5E,IAAI,WAAW,CAAC;IAChB,2BAA2B;IAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC;IACT,CAAC;IAED,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;QACrB,8DAA8D;QAC9D,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC;IACjC,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;QAC3B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC;IACT,CAAC;IAED,EAAE,CAAC,CAAC,WAAW,YAAY,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC/B,CAAC,CAAC;AACF;;;;;;GAMG;AACH;IAAA;QACE,SAAI,GAAG,gBAAI,CAAC;IA6Rd,CAAC;IA5RC,sGAAsG;IACtG,uCAAO,GAAP,UAAQ,UAAU;QAChB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,+CAAqB,CAAC,IAAI,GAAG,UAAU,CAAC;QACxC,2CAAmB,CAAC,IAAI,GAAG,UAAU,CAAC;QACtC,2CAAmB,CAAC,IAAI,GAAG,UAAU,CAAC;QACtC,2CAAmB,CAAC,IAAI,GAAG,UAAU,CAAC;IACxC,CAAC;IAED,2CAA2C;IAC3C;;;;OAIG;IACH,qDAAqB,GAArB,UAAsB,KAAsB;QAC1C,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAED,wCAAQ,GAAR,UAAS,KAAa,EAAE,UAA4B;QAClD,8CAA8C;QAC9C,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,8EAA8E;QAC9E,yBAAyB;QACzB,EAAE,CAAC,CACD,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,mBAAmB;YAClD,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,CAChC,CAAC,CAAC,CAAC;YACD,UAAU;YACV,MAAM,CAAC;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,GAAG,CAAC,CAAkB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,CAAC;YAA5B,IAAI,SAAS;YAChB,iEAAiE;YACjE,IAAI,MAAM,GAAqB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAEjG,EAAE,CAAC,CAAC,MAAM,CAAC,0BAA0B,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,MAAM,CAAC;YAChB,CAAC;SACF;QAED,iCAAiC;QACjC,MAAM,CAAC;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,iDAAiB,GAAjB,UAAkB,KAAa,EAAE,KAAsB;QACrD,IAAI,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,yDAAyD;QACzD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,uDAAuB,GAAvB;QACE,MAAM,CAAC;YACL,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;IAED,yCAAyC;IACjC,mDAAmB,GAA3B,UAA4B,KAAa,EAAE,SAAc,EAAE,OAAY;QACrE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC9C,WAAW,EAAE,YAAY;aAC1B,CAAC;QACJ,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,iDAAiD;IACzC,oDAAoB,GAA5B,UAA6B,KAAsB;QACjD,2CAA2C;QAC3C,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,mBAAmB;aAClC,CAAC,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,+CAAqB,CAAC,gBAAgB;SAChD,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,iBAAiB;aACjD,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,sBAAsB;gBACrD,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,sBAAsB;gBACrD,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACnF,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,+BAA+B;gBAC9D,SAAS,EAAE,KAAK,CAAC,iBAAiB;aACnC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACnF,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,+BAA+B;gBAC9D,SAAS,EAAE,KAAK,CAAC,iBAAiB;aACnC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,uBAAuB;gBACtD,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,uBAAuB;gBACtD,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,+CAAqB,CAAC,mBAAmB;gBAClD,SAAS,EAAE,KAAK,CAAC,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAEO,kDAAkB,GAA1B,UAA2B,KAAsB;QAC/C,yCAAyC;QACzC,IAAI,UAAU,GAAqB,EAAE,CAAC;QAEtC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,mBAAmB;aAClC,CAAC,CAAC;QACL,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,2CAAmB,CAAC,cAAc;SAC5C,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,YAAY,IAAI,CAAC,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,eAAe;gBAC5C,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,YAAY,IAAI,CAAC,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,eAAe;gBAC5C,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAEO,kDAAkB,GAA1B,UAA2B,KAAsB;QAC/C,yCAAyC;QACzC,IAAI,UAAU,GAAqB,EAAE,CAAC;QAEtC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,mBAAmB;aAClC,CAAC,CAAC;QACL,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,2CAAmB,CAAC,cAAc;SAC5C,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAa,KAAK,CAAC,QAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAa,KAAK,CAAC,QAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;YAC7I,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,eAAe;gBAC5C,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAa,KAAK,CAAC,QAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAa,KAAK,CAAC,QAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;YAC7I,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,eAAe;gBAC5C,SAAS,EAAE,KAAK,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IAEO,kDAAkB,GAA1B,UAA2B,KAAsB;QAC/C,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,mBAAmB;aAClC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,qBAAqB;gBAClD,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,qBAAqB;gBAClD,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YAC/B,sDAAsD;YACtD,uGAAuG;YACvG,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAU,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;YAE7F,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,oBAAoB;gBACjD,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI,MAAM,CAAC,MAAI,YAAY,MAAG,EAAE,GAAG,CAAC;oBAC7C,YAAY,EAAE,KAAK,CAAC,YAAY;iBACjC;aACF,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,aAAa;gBAC1C,SAAS,EAAE,KAAK,CAAC,KAAK;aACvB,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,oBAAoB;gBACjD,SAAS,EAAE,KAAK,CAAC,YAAY;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,2CAAmB,CAAC,aAAa;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IACH,4BAAC;AAAD,CAAC;AA9RY,6BAAqB,wBA8RjC;;;;;;;;;;ACnVD,sCAAyB,EAAa,CAAC;AACvC,wCAA2B,EAAe,CAAC;AAE3C,IAAiB,QAAQ,CA+FxB;AA/FD,WAAiB,QAAQ,EAAC,CAAC;IACzB,WAAY,YAAY;QACtB,yDAAS;QACT,2DAAU;QACV,6DAAW,EAAC,sBAAsB;IACpC,CAAC,EAJW,qBAAY,KAAZ,qBAAY,QAIvB;IAJD,IAAY,YAAY,GAAZ,qBAIX;IAED,6BAAoC,QAAuB,EAAE,QAA+C;QAA/C,wBAA+C,GAA/C,WAAyB,YAAY,CAAC,SAAS;QAC1G,IAAI,WAA0B,CAAC;QAC/B,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjB,KAAK,YAAY,CAAC,WAAW;gBAC3B,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC3C,KAAK,CAAC;YACR,KAAK,YAAY,CAAC,UAAU;gBAC1B,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAC1C,KAAK,CAAC;YACR,KAAK,YAAY,CAAC,SAAS;gBACzB,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzC,KAAK,CAAC;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,WAAW,CAAC;IACrB,CAAC;IAhBe,4BAAmB,sBAgBlC;IAED,0BAA0B,QAAuB;QAC/C,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B,QAAuB,EAAE,QAAuB;QAC1E,GAAG,CAAC,CAAe,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,CAAC;YAAvB,IAAI,QAAM;YACb,QAAQ,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;YACtB,IAAI,QAAQ,GAA8B,QAAM,CAAC,WAAW,EAAE,CAAC;YAC/D,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5C,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;SACF;QAED,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED,2BAA2B,QAAuB;QAChD,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,6BAA6B,QAAuB,EAAE,QAAuB;QAC3E,GAAG,CAAC,CAAe,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,CAAC;YAAvB,IAAI,QAAM;YACb,IAAI,QAAQ,GAAG,QAAM,CAAC,WAAW,EAAE,CAAC;YACpC,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5C,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;SACvB;QAED,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED,4BAA4B,QAAuB;QACjD,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,8BAA8B,QAAuB,EAAE,QAAwB;QAC7E,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,GAAG,CAAC,CAAe,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,CAAC;YAAvB,IAAI,QAAM;YACb,QAAQ,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;SACvB;QAED,GAAG,CAAC,CAAe,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,CAAC;YAAvB,IAAI,QAAM;YACb,oBAAoB,CAAC,QAAQ,EAAE,QAAM,CAAC,WAAW,EAAE,CAAC,CAAC;SACtD;QAED,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED,4BAAmC,KAAoB;QACrD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,EAAU,EAAE,EAAU;YACvC,IAAI,CAAC,GAAW,oBAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;YACxE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACZ,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAED,CAAC,GAAG,oBAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACZ,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAED,MAAM,CAAC,wBAAU,CAAC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;IAde,2BAAkB,qBAcjC;AACH,CAAC,EA/FgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA+FxB;;;;;;;;;;ACjGD,sCAAqB,EAAoB,CAAC;AAE1C;IAOE,uBAAY,aAA8B;QACxC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;QACzD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACvC,CAAC;IAED,8BAAM,GAAN;QACE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,4CAAoB,GAApB;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,4CAAoB,GAApB;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,oCAAY,GAAZ;QACE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,gBAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC;QAC7C,CAAC;QACD,MAAM,CAAO,IAAI,CAAC,SAAS,CAAC;IAE9B,CAAC;IAED,kCAAU,GAAV;QACE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,gBAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;QAC3C,CAAC;QACD,MAAM,CAAO,IAAI,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,+BAAO,GAAP;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC;AA7CY,qBAAa,gBA6CzB;;;;;;;;;;AC9CD;IASE,8BAAY,IAAY,EAAE,QAAsC;QAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,qCAAM,GAAN;QACE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,mDAAoB,GAApB;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,sCAAO,GAAP;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,mDAAoB,GAApB;QACE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,2CAAY,GAAZ;QACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,2CAAY,GAAZ,UAAa,SAAe;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,yCAAU,GAAV;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,yCAAU,GAAV,UAAW,OAAa;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,wCAAS,GAAT,UAAU,MAA4B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,qCAAM,GAAN;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,uCAAQ,GAAR,UAAS,KAA2B;QAClC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,0CAAW,GAAX;QACE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACH,2BAAC;AAAD,CAAC;AArEY,4BAAoB,uBAqEhC;;;;;;;;;;;ACpED,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,8CAAqB;IACrB,kDAAyB;AAE3B,CAAC,EAJW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAIhC;AAKD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,sCAAe;IACf,4CAAqB;AAEvB,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAKY,wBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;AACzE,wBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5D,wBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACxB9D,mEAAuF;AACvF,wDAAkE;AAElE,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ;IAAqD,mDAAqB;IAQxE,yCAAmB,IAAY,EAAS,cAAsB,EAAS,mBAAmB,EAAS,OAAgB,EAAS,MAAa,EAAS,MAAa;QAAnC,sCAAa;QAAS,sCAAa;QAA/J,YACE,kBAAM,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,SAEjE;QAHkB,UAAI,GAAJ,IAAI,CAAQ;QAAS,oBAAc,GAAd,cAAc,CAAQ;QAAS,yBAAmB,GAAnB,mBAAmB;QAAS,aAAO,GAAP,OAAO,CAAS;QAAS,YAAM,GAAN,MAAM,CAAO;QAAS,YAAM,GAAN,MAAM,CAAO;QAN/J,mBAAa,GAAqC,EAAE,CAAC;QACrD,oBAAc,GAAwB,IAAI,GAAG,EAAkB,CAAC;QAO9D,KAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;;IAC1B,CAAC;IAED,yDAAe,GAAf,UAAgB,YAA6C;QAC3D,iBAAM,eAAe,YAAC,YAAY,CAAC,CAAC;QACpC,IAAI,YAAY,CAAC,OAAO,KAAK,oEAA+B,CAAC,oBAAoB,EAAE;YACjF,IAAI,UAAU,GAAW,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;YAC3D,IAAI,WAAW,GAAW,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;aAC9C;YACD,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9D,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,YAAY,KAAK,CAAC,EAAE;gBACtB,MAAM,GAAG,UAAQ,YAAY,WAAQ,CAAC;aACvC;iBAAM,IAAI,YAAY,GAAG,CAAC,EAAE;gBAC3B,MAAM,GAAG,UAAQ,YAAY,YAAS,CAAC;aACxC;YACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;YACrC,IAAI,CAAC,OAAO,GAAS,MAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;SAC5C;IACH,CAAC;IAED,oDAAU,GAAV;QACE,IAAI,IAAI,CAAC,OAAO,KAAK,oEAA+B,CAAC,oBAAoB,EAAE;YACzE,iBAAM,UAAU,WAAE,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;SACjD;IACH,CAAC;IAED,wDAAc,GAAd;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,6DAAmB,GAA3B,UAA4B,UAAU,EAAE,WAAW;QACjD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,aAAa,GAAM,IAAI,CAAC,cAAc,CAAC,IAAI,cAAW,CAAC;SAC7D;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SACzB;IACH,CAAC;IACH,sCAAC;AAAD,CAAC,CA5DoD,+CAAqB,GA4DzE;AA5DY,0EAA+B;;;;;;;;;;;;;;;;;;;;;;;;ACF5C,wCAAsC;AACtC,kDAAuD;AAUvD;IAAiD,+CAAgB;IAQ/D,qCAAY,MAAc,EAAE,MAAc,EAAU,OAA2C;QAAnF,uCAAc;QAAE,uCAAc;QAA1C,YACE,kBAAM,2BAA2B,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,2BAA2B,CAAC,oBAAoB,CAAC,SAOlI;QARmD,aAAO,GAAP,OAAO,CAAoC;QAG7F,KAAI,CAAC,EAAE,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAI,CAAC,EAAE,CAAC;QAEjD,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,aAAa,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa;SACnD,CAAC,CAAC;;IACL,CAAC;IAZM,6CAAiB,GAAxB,UAAyB,aAAqB;QAC5C,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC;IAYD,8CAAQ,GAAR;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,iDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,iDAAW,GAAX;QACE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,iDAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,gDAAU,GAAV;QACE,OAAO,kBAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IACzE,CAAC;IAED,kDAAY,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,mDAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1C,CAAC;IAED,oDAAc,GAAd;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,mDAAa,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvD,CAAC;IAED,sBAAI,kDAAS;aAAb;YACE,OAAO,2BAA2B,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5F,CAAC;;;OAAA;IAED,sBAAI,uDAAc;aAAlB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACrC,CAAC;;;OAAA;IAED,sBAAI,yDAAgB;aAApB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACvC,CAAC;;;OAAA;IA/DM,6CAAiB,GAAG,yBAAyB,CAAC;IAC9C,gDAAoB,GAAG,oCAAoC,CAAC;IA+DrE,kCAAC;CAAA,CAjEgD,oCAAgB,GAiEhE;AAjEY,kEAA2B;;;;;;;;;;;ACbxC,sDAA8D;AAwB9D,IAAI,QAAQ,GAAG,UAAU,KAAU;IAGjC,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAE7B,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;QAID,OAAO,IAAI,CAAC;KACb;IAGD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAE7B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;KAChC;IAGD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAE7B,IAAI,QAAQ,IAAI,KAAK,EAAE;YACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACzB;QAED,IAAI,KAAK,YAAY,WAAW,EAAE;YAChC,OAAO,QAAQ,CAAO,KAAM,CAAC,KAAK,CAAC,CAAC;SACrC;QAGD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAiBF,IAAI,cAAc,GAAG,UAAU,CAAM,EAAE,CAAM;IAC3C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;QACpB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjB;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;IACnC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACnC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,CAAC;IACN,IAAI,KAAK,CAAC;IACV,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,UAAC,GAAG,EAAE,GAAG,EAAE,IAAK;QAC5B,IAAI,IAAI,EAAE;YACR,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,GAAI;gBAC9D,EAAE,CAAC,CAAC;aACL;YACD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5C;QACD,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;YACpH,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;gBACd,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;oBACpB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;4BACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gCACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oCACrB,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;wCACrB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAC9B,CAAC,CAAC;IACF,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,IAAI,CAAC,WAAW,EAAE;QACpB,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,aAAa,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,aAAa,IAAI,aAAa,EAAE;QAC5D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACtE,MAAM,GAAG,CAAC,CAAC;SACZ;aAAM,IAAI,CAAC,KAAK,SAAS,EAAE;YAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACT,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,CAAC;SACH;aAAM,IAAI,CAAC,KAAK,SAAS,EAAE;YAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACT,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,CAAC;SACH;aAAM,IAAI,aAAa,IAAI,aAAa,EAAE;YACzC,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC7B;aAAM,IAAI,CAAC,KAAK,IAAI,IAAI,aAAa,EAAE;YACtC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClB,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACrB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;SACH;aAAM;YACL,MAAM,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;SACH;QACD,OAAO,MAAM,CAAC;KACf;IAGD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;QAC1C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;KACjB;SAAM;QAEL,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAEhB,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;oBAC7D,CAAC,GAAG,IAAI,CAAC;iBACV;aACF;SACF;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAEhB,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;oBAC7D,CAAC,GAAG,IAAI,CAAC;iBACV;aACF;SACF;KACF;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,CAAC,CAAC,CAAC;SACd;QACD,OAAO,MAAM,CAAC;KACf;SAAM;QAEL,CAAC,IAAI,EAAE,CAAC;QACR,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,UAAU,EAAE;gBACd,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACrB;YACD,OAAQ,KAAK,GAAI;gBACf,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3B,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3B,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE;oBACxD,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/B,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;oBACnC,IAAI,GAAG,CAAC,CAAC;iBACV;gBACD,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,MAAM,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,WAAW,EAAE;wBAChB,MAAM,IAAI,CAAC,CAAC,CAAC;qBACd;oBACD,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,CAAC,CAAC;KACV;AACH,CAAC,CAAC;AAgBF;IAeE;QATA,uBAAkB,GAAG,+DAA+D,CAAC;QAErF,aAAQ,GAAkB,IAAI,CAAC;QAC/B,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAG,IAAI,CAAC;QACnB,iBAAY,GAAG,KAAK,CAAC;QACrB,QAAG,GAAkB,IAAI,CAAC;QAC1B,UAAK,GAAG,KAAK,CAAC;QAGZ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,iCAAQ,GAAR;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,oCAAW,GAAX,UAAY,GAAW;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,qCAAY,GAAZ,UAAa,KAAc;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,uCAAc,GAAd,UAAe,KAAc;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sCAAa,GAAb,UAAc,KAAc;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,+BAAM,GAAN,UAAO,KAAa;QAClB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;SAChE;IACH,CAAC;IAED,iCAAQ,GAAR,UAAS,KAAK;QACZ,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC9C,KAAK,GAAG,KAAK,CAAC;SACf;QACD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,kCAAS,GAAT;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,mCAAU,GAAV;QACE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,mCAAU,GAAV;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,iCAAQ,GAAR;QACE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,kCAAS,GAAT;QACE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,mCAAU,GAAV;QACE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,kCAAS,GAAT;QACE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,gCAAO,GAAP;QACE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,8BAAK,GAAL;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAWD,oCAAW,GAAX,UAAY,GAAe,EAAE,GAAY;QACvC,IAAI,MAAM,CAAC;QACX,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,IAAI,WAAS,GAAG,KAAK,CAAC;YACtB,IAAI,cAAY,GAAG,KAAK,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,UAAC,CAAC;gBACZ,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACtC,WAAS,GAAG,IAAI,CAAC;iBAClB;qBAAM;oBACL,cAAY,GAAG,IAAI,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAS,IAAI,CAAC,cAAY,EAAE;gBAC9B,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,MAAM,yDAAyD,CAAC;iBACjE;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACxC;iBAAM,IAAI,CAAC,WAAS,IAAI,cAAY,EAAE;gBAErC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAChD;iBAAM,IAAI,CAAC,WAAS,IAAI,CAAC,cAAY,EAAE;gBACtC,MAAM,GAAG,GAAG,CAAC;aACd;iBAAM;gBACL,MAAM,iEAAiE,CAAC;aACzE;SACF;aAAM;YACL,MAAM,GAAG,GAAG,CAAC;SACd;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAUD,4CAAmB,GAAnB,UAAoB,KAAiB,EAAG,WAA2F,EAAE,WAAmB;QAAxJ,iBAqHC;QArHoI,iDAAmB;QACtJ,IAAI,WAAW,GAAe,EAAE,CAAC;QAGjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;aACjF;SACF;QACD,IAAI,uBAAuB,GAAsE,EAAE,CAAC;QAEpG,KAAqC,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAA7C,IAAI,wBAAwB;YAC/B,IAAI,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC;YAC3D,IAAI,SAAS,UAAC;YACd,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,SAAS,GAAG,aAAa,CAAC;aAC3B;iBAAM,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;gBAC5C,IAAI,QAAQ,GAAG,IAAI,2CAAmB,CAAC,aAAa,CAAC,CAAC;gBACtD,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7C;YAED,IAAI,sBAAsB,GAAG;gBAC3B,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,IAAI;aACjB,CAAC;YAEF,QAAQ,wBAAwB,CAAC,aAAa,EAAE;gBAC9C,KAAK,IAAI;oBACP,sBAAsB,CAAC,UAAU,GAAG,WAAW,CAAC;oBAChD,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,MAAM;gBACR,KAAK,IAAI;oBACP,sBAAsB,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC;oBACjD,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,IAAI;oBACP,sBAAsB,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC;oBAEjD,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,MAAM;gBACR,KAAK,IAAI,CAAC;gBACV,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACT,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,MAAM;gBACR,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACT,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,MAAM;gBACR,KAAK,IAAI,CAAC;gBACV,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACT,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,MAAM;gBACR,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM;oBACT,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,sBAAsB,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC1C,MAAM;gBACR,KAAK,KAAK;oBACR,sBAAsB,CAAC,UAAU,GAAG,WAAW,CAAC;oBAChD,sBAAsB,CAAC,UAAU,GAAG,CAAC,sBAAsB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChG,MAAM;gBACR,KAAK,KAAK;oBACR,sBAAsB,CAAC,UAAU,GAAG,WAAW,CAAC;oBAChD,sBAAsB,CAAC,UAAU,GAAG,CAAC,sBAAsB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAChG,MAAM;gBACR,KAAK,KAAK;oBACR,sBAAsB,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC;oBACjD,sBAAsB,CAAC,UAAU,GAAG,CAAC,sBAAsB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChG,MAAM;gBACR,KAAK,KAAK;oBACR,sBAAsB,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC;oBACjD,sBAAsB,CAAC,UAAU,GAAG,CAAC,sBAAsB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBAChG,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI,CAAC;gBACV;oBACE,sBAAsB,CAAC,UAAU,GAAG,WAAW,CAAC;oBAChD,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,MAAM;aACT;YAED,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SACtD;QAED,IAAI,UAAU,GAAG,UAAC,CAAC,EAAE,CAAC;YACpB,KAAuC,UAAuB,EAAvB,mDAAuB,EAAvB,qCAAuB,EAAvB,IAAuB,EAAE;gBAA3D,IAAI,0BAA0B;gBACjC,IAAI,OAAO,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,OAAO,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,0BAA0B,CAAC,UAAU,EAAE;oBACzC,KAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;qBAAM;oBACL,KAAI,CAAC,SAAS,EAAE,CAAC;iBAClB;gBACD,IAAI,MAAM,GAAG,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEnD,IAAI,MAAM,KAAK,CAAC,EAAE;oBAChB,IAAI,0BAA0B,CAAC,UAAU,EAAE;wBACzC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC9B;yBAAM;wBACL,OAAO,MAAM,CAAC;qBACf;iBACF;aACF;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,WAAW,CAAC;IACrB,CAAC;IAQD,uCAAc,GAAd,UAAe,KAA2C,EAAE,WAAmB;QAA/E,iBAwBC;QAxB2D,iDAAmB;QAC7E,IAAI,WAAW,GAAe,EAAE,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;aACjF;SACF;QACD,IAAI,UAAU,GAAG,UAAC,CAAC,EAAE,CAAC;YACpB,IAAI,MAAM,GAAG,KAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,MAAM,GAAG,CAAC,EAAE;gBACd,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,CAAC;aACV;iBAAM,IAAI,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;QACH,CAAC,CAAC;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAWD,oCAAW,GAAX,UAAY,KAAiB,EAAE,WAAmC,EAAE,WAAmB;QAAnB,iDAAmB;QACrF,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,WAAW,GAAG,CAAU,WAAW,CAAE,CAAC;SACvC;QAED,IAAI,aAAa,CAAC;QAClB,IAAI,sBAAsB,GAAgF,EAAE,CAAC;QAC7G,KAAqC,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAA7C,IAAI,wBAAwB;YAC/B,IAAI,6BAA6B,GAAG,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;YAC7F,sBAAsB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;SAC5D;QACD,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;QACrF,OAAO,aAAa,CAAC;IACvB,CAAC;IASD,kDAAyB,GAAzB,UAA0B,oBAA4B;QACpD,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACrE,IAAI,eAAe,CAAC;QACpB,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,eAAe,GAAG;gBAChB,aAAa,EAAE,WAAY,CAAC,CAAC,CAAC;gBAC9B,aAAa,EAAE,WAAY,CAAC,CAAC,CAAC;aAC/B,CAAC;SACH;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IACH,qBAAC;AAAD,CAAC;AAnVY,wCAAc;;;;;;;;;;;ACnP3B,+CAA+C;AAG/C,kDAAuD;AACvD,0CAAmC;AAEnC,IAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAC3D;IAAA;IAoBA,CAAC;IAlBG,qCAAW,GAAX,UAAY,WAAmB,EAAE,QAAkB,EAAE,QAAgC,EAAE,OAAe;QAClG,IAAI,UAAU,GAAG,OAAO,GAAG,kBAAkB,CAAC;QAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzB;QACD,IAAI,UAAU,GAAG;YACb,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACtC,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,WAAW;SAC7B,CAAC;QACF,IAAI,OAAO,GAAG;YACV,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,YAAU,mCAAe,CAAC,OAAO,CAAC,YAAY,CAAG;SACnE,CAAC;QACF,OAAO,6BAAY,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,eAAG,CAAC,UAAC,YAAiB;YAClF,OAAgC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACL,sBAAC;AAAD,CAAC;AApBY,0CAAe;;;;;;;;;;;ACP5B,kEAAkF;AAEvE,6CAAqC,GAAG;IAEjD,yCAAyC,EAAzC;QACE,OAAO,IAAI,iEAA8B,EAAE,CAAC;IAC9C,CAAC;CAEF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACRF,0CAAwD;AAGxD,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAM,MAAM,GAAG,CAAC,CAAC;AACjB,IAAM,QAAQ,GAAG,EAAE,CAAC;AACpB;IAA+B,6BAAS;IAAxC;QAAA,qEAiPC;QAhPC,QAAE,GAAG,YAAY,CAAC;QAKlB,gBAAU,GAAG,EAAE,CAAC;QAGhB,UAAI,GAAG,EAAE,CAAC;QAIV,sBAAgB,GAAG,OAAO,CAAC;QAG3B,gBAAU,GAAG;YACX,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;;IAgNJ,CAAC;IA9MC,yBAAK,GAAL;QAAA,iBAWC;QAVC,iBAAM,KAAK,WAAE,CAAC;QAKd,IAAI,CAAC,SAAS,GAAG,UAAC,KAAoB;YACpC,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACzB;QACH,CAAC,CAAC;IACJ,CAAC;IAcD,4BAAQ,GAAR;QAAA,iBAiFC;QA9EC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE;YACpC,IAAI,YAAY,GAA6B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC9E,IAAI,YAAY,IAAI,IAAI,EAAE;gBACxB,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC/C;SACF;QAED,UAAU,CAAC;YACT,iBAAM,QAAQ,YAAE,CAAC;YACjB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC;YAEnD,IAAI,OAAO,GAAiB,KAAI,CAAC,aAAa,CAAC,YAAY,CAAE,CAAC;YAC9D,IAAI,mBAAmB,CAAC;YACxB,IAAI,aAAa,CAAC;YAElB,IAAI,eAAe,GAAgB,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,cAAc,GAAgB,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,gBAAgB,GAAgB,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,QAAQ,GAAgB,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAKzD,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC1B,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAChD,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC7C,KAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC;gBAC3C,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;aAC7C;YAMD,IAAI,gBAAgB,IAAI,IAAI,EAAE;gBAC5B,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACjD,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;aACvC;YAMD,IAAI,QAAQ,IAAI,IAAI,EAAE;gBACpB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC3C,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC9B,IAAI,QAAQ,CAAC,iBAAiB,IAAI,CAAC,EAAE;oBACnC,aAAa,GAAG,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBACvD;aACF;YAED,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,aAAa,GAAG,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACrD,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;aAC7C;YAKD,IAAI,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,EAAE;gBACrD,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;aAC1D;YAID,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAEvC,IAAI,2BAA2B,GAAG,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;YACzF,IAAI,2BAA2B,IAAI,IAAI,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjF,mBAAmB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;gBACvC,mBAAoB,CAAC,KAAK,EAAE,CAAC;aAC5C;YACD,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;QAEjF,CAAC,CAAC,CAAC;IACL,CAAC;IAYD,+BAAW,GAAX,UAAY,OAAoB,EAAE,eAA4B,EAAE,cAA2B,EAAE,aAA0B;QAAvH,iBA6BC;QAzBC,IAAI,kBAAkB,GAAG,cAAc,CAAC;QACxC,IAAI,iBAAiB,GAAG,aAAa,CAAC;QAEtC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,KAAK;YACxC,iBAAiB,GAAG,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACzD,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE;oBACzD,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;iBAExB;qBAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,EAAE;oBAC1G,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;iBACxB;aACF;YAID,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IASD,4BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5E,IAAI,cAAc,GAAgB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/E,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC1B,cAAc,CAAC,KAAK,EAAE,CAAC;aACxB;iBAAM,IAAiB,QAAQ,CAAC,aAAa,IAAI,IAAI,EAAE;gBACxC,QAAQ,CAAC,aAAc,CAAC,KAAK,EAAE,CAAC;aAC/C;YACD,OAAO;SACR;aAAM,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE;YAC3C,IAAI,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,IAAI,cAAc,YAAY,WAAW,EAAE;gBACzC,cAAc,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;aACR;iBAAM,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrE,IAAI,kBAAkB,GAAgB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC7E,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC3B,OAAO;iBACR;aACF;SACF;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,IAAI,EAAE;YACzD,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC1D,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO;aACR;SACF;QACD,OAAO,CAAC,KAAK,CAAC,0UAA0U,CAAC,CAAC;IAC5V,CAAC;IAYD,+BAAW,GAAX,UAAY,KAAW;QACrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,sCAAkB,GAAlB;IAEA,CAAC;IACH,gBAAC;AAAD,CAAC,CAjP8B,sBAAS,GAiPvC;AAjPY,8BAAS;;;;;;;;;;;ACNtB,sDAAqE;AAGrE,qCAA0G;AAC1G,0CAAyF;AAGzF,yCAAwC;AACxC,wCAAsC;AACtC,iEAAyF;AAEzF,IAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,IAAM,gBAAgB,GAAG,OAAW;AAEpC,SAAS,yBAAyB,CAAC,OAAe;IAEhD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,OAAO,iBAAU,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;IAAA;IA0FA,CAAC;IAvFC,sBAAY,uCAAS;aAArB;YACE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACxD,CAAC;;;OAAA;IAUD,sBAAI,0CAAY;aAAhB;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC9D,CAAC;;;OAAA;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,OAAO,yBAAyB,CAAC,oDAAoD,CAAC,CAAC;SACxF;QAGD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAEpD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,uBAAW,EAAE,CAAC,CAAC;SAC7E;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,uCAAY,GAAZ;QACE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,OAAO,yBAAyB,CAAC,iDAAiD,CAAC,CAAC;SACrF;QAGD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAEhC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,uBAAW,EAAE,CAAC,CAAC;SACzE;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAID,4CAAiB,GAAjB,UAAkB,kBAAgE,EAAE,gBAA8D;QAAlJ,iBAgCC;QA9BC,IAAI,qBAAqB,GAAG,YAAK,CAAC;YAChC,IAAI,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAEnC,IAAI,mBAAY,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC;aAChB;YAED,OAAO,WAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,qBAAqB;aAC5C,IAAI,CAAC,eAAG,CAAC;YAER,KAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,mBAAmB,GAAG,YAAK,CAAC;YAC9B,IAAI,OAAO,GAAG,gBAAgB,EAAE,CAAC;YAEjC,IAAI,mBAAY,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC;aAChB;iBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBACtC,OAAO,SAAE,CAAC,OAAO,CAAC,CAAC;aACpB;YAED,OAAO,WAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;IAC9C,CAAC;IAED,qCAAU,GAAV;QACE,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IACH,uBAAC;AAAD,CAAC;AAEY,uCAA+B,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAEtE;IAOE,gCAAa,OAA6B;QAJlC,kBAAa,GAAG,kCAAW,CAAC;QAE5B,4BAAuB,GAAG,gBAAgB,CAAC;QAGjD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,sCAAK,GAAL,UAAM,MAA6B;QAAnC,iBAsFC;QArFC,IAAI,SAAS,GAAG,eAAQ,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EACtB,uCAA+B,CAAC,cAAc,EAAE,EAChD,uCAA+B,CAAC,YAAY,EAAE,CAAC;aAC9C,IAAI,CAAC,mBAAO,CAAC,UAAC,EAAmE;gBAAlE,cAAM,EAAE,aAAK,EAAE,iBAAS;YACtC,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,OAAO,yBAAyB,CAAC,6EAA6E,CAAC,CAAC;aACjH;YAED,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,yBAAyB,CAAC,+CAA+C,CAAC,CAAC;aACnF;YAED,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO,yBAAyB,CAAC,4CAA4C,CAAC,CAAC;aAChF;YAED,IAAI,UAAU,GAAgC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAS;gBACzE,OAAO;oBACL,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,MAAM,CAAC,eAAe;oBAC5B,QAAQ,EAAE,YAAY;iBACvB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,SAAS,GAA2B;gBACtC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,UAAU;aACnB,CAAC;YAGF,IAAI,eAA2C,CAAC;YAChD,IAAI,eAAe,GAAG,IAAI,iBAAU,CAAiB,UAAC,UAAsC;gBAC1F,eAAe,GAAG,UAAU,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,GAA2B;gBACpC,QAAQ,EAAE,qBAAqB;gBAC/B,MAAM,EAAE,MAAM,CAAC,UAAU;gBAEzB,MAAM,EAAE,cAAM,sBAAe,CAAC,QAAQ,EAAE,EAA1B,CAA0B;aACzC,CAAC;YAEF,OAAO,WAAI,CAAC,KAAI,CAAC,aAAa,CAC5B,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,CAAC,CAAC;iBAER,IAAI,CAAC,iBAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;aACF,IAAI,CAAC,sBAAU,CAAC,UAAC,KAA2C;YAE3D,IAAI,KAAK,YAAY,8DAA4B,EAAE;gBAEjD,4BAAK,EAAE,CAAC;gBAGR,OAAO,YAAK,EAAE,CAAC;aAChB;YAGD,OAAO,iBAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;aAEF,IAAI,CAAC,gBAAI,CAAiB,CAAC,CAAC,CAAC;aAE7B,IAAI,CAAC,uBAAW,EAAE,CAAC,CAAC;QAGvB,SAAS,CAAC,SAAS,CACjB,SAAS,EACT,UAAC,KAA2C;YAE1C,4BAAK,EAAE,CAAC;YAGR,KAAI,CAAC,iBAAiB,EAAE,CAAC;YAGzB,OAAO,iBAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAGL,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oDAAmB,GAAnB,UAAoB,SAAiB;QACnC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAC3C,CAAC;IAED,kDAAiB,GAAjB;QACE,IAAI,OAAgC,CAAC;QAErC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ,EAAE;YAC/C,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAgB,CAAC;SAC1E;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACnC;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,oBAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAO,CAAC,OAAO,CAAC,+HAA+H,CAAC,EAAE,OAAO,CAAC,CAAC;SAC/L;IACH,CAAC;IAEO,2CAAU,GAAlB,UAAmB,MAA6B;QAAhD,iBAmDC;QAlDC,IAAI,OAAO,GAAkB,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,IAAI,UAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;YAEtC,OAAO,YAAK,CAAC;gBACX,IAAI,OAAO,GAAkG,UAAQ,EAAE,CAAC;gBAGxH,IAAI,UAAU,GAAG,mBAAY,CAAC,OAAO,CAAC;oBAClC,CAAC,CAAC,OAAO;oBAET,CAAC,CAAC,WAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAErC,OAAO,UAAU;qBAEd,IAAI,CAAC,eAAG,CAAC,UAAC,MAAyB,IAAK,cAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAA9C,CAA8C,CAAC,CAAC;qBAExF,IAAI,CAAC,eAAG,CAAC,UAAC,MAAgB,IAAK,aAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAA1E,CAA0E,CAAC,CAAC;qBAE3G,IAAI,CAAC,mBAAO,CAAC,UAAC,MAA6B,IAAK,YAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE;YAC9B,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;SAC/B;aAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACzB,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC5B;aAAM,IAAI,MAAM,CAAC,eAAe,EAAE;YACjC,IAAI,cAAc,GAAuB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YAEvG,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzD,OAAO,yBAAyB,CAAC,0CAAwC,MAAM,CAAC,eAAe,OAAI,CAAC,CAAC;aACtG;YAED,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAC,EAAe,IAAK,SAAE,CAAC,SAAS,EAAZ,CAAY,CAAC,CAAC;SACjE;QAGD,IAAI,SAAS,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,uBAAuB,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,EAAE;YAC3C,OAAO,GAAG,OAAO;iBAEd,MAAM,CAAC,UAAC,MAAqB,EAAE,WAAmB,IAAK,aAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,EAArC,CAAqC,EAAE,EAAE,CAAC;iBAEjG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACnD,OAAO,yBAAyB,CAAC,sGAAsG,CAAC,CAAC;SAC1I;QAED,OAAO,SAAE,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEO,yCAAQ,GAAhB,UAAiB,MAA6B;QAC5C,IAAI,MAAM,CAAC,aAAa,EAAE;YACxB,IAAI,UAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;YACpC,OAAO,YAAK,CAAC;gBACX,IAAI,OAAO,GAAkD,UAAQ,EAAE,CAAC;gBAExE,IAAI,UAAU,GAAG,mBAAY,CAAC,OAAO,CAAC;oBACpC,CAAC,CAAC,OAAO;oBAET,CAAC,CAAC,WAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEnC,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,aAAa,EAAE;YACxB,IAAI,aAAa,GAAuB,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAErF,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,OAAO,yBAAyB,CAAC,0CAAwC,MAAM,CAAC,aAAa,OAAI,CAAC,CAAC;aACpG;YAED,OAAO,SAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACpC;QAED,OAAO,yBAAyB,CAAC,oEAAoE,CAAC,CAAC;IACzG,CAAC;IAEO,0CAAS,GAAjB,UAAkB,MAA6B;QAC7C,IAAI,CAAC,uCAA+B,CAAC,YAAY,EAAE;YACjD,OAAO,yBAAyB,CAAC,kEAAkE,CAAC,CAAC;SACtG;QAED,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,eAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;aAChD,IAAI,CAAC,eAAG,CAAC,UAAC,EAAoC;gBAAnC,aAAK,EAAE,eAAO;YACxB,OAAO,EAAE,OAAO,WAAE,KAAK,SAAE,CAAC;QAC5B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACH,6BAAC;AAAD,CAAC;AAvNY,wDAAsB;;;;;;;;;;;AClHnC;IAAA;IAA4C,CAAC;IAAD,mCAAC;AAAD,CAAC;AAAhC,oEAA4B;;;;;;;;;;;;;;;;;;;;;;;;ACDzC,0CAAwD;AAIxD,2CAAyC;AACzC,8DAA8G;AAC9G,oDAA2F;AAG3F,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAOjH;IAA0C,wCAAS;IAAnD;QAAA,qEAqNC;QAhNC,eAAS,GAAkB,OAAO,CAAC;QACnC,iBAAW,GAAkB,OAAO,CAAC;QACrC,0BAAoB,GAAkC,OAAO,CAAC;QAK9D,4BAAsB,GAAG,CAAC,CAAC;QAC3B,2BAAqB,GAAG,CAAC,CAAC;QAI1B,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,aAAa;aACxB;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,aAAa;aACxB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,IAAI;aAEZ;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;QAEF,oBAAc,GAA8B,EAAE,CAAC;;IAkKjD,CAAC;IAzJC,oCAAK,GAAL;QAAA,iBAaC;QAZC,iBAAM,KAAK,WAAE,CAAC;QAEd,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAGxB,IAAI,CAAC,MAAM,GAAG,IAAI,wDAAyB,CAAC,CAAC,wDAAyB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;QAG3G,IAAI,CAAC,aAAa,GAAG,cAAM,YAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,CAAC;IACnD,CAAC;IAED,uCAAQ,GAAR;QAAA,iBAaC;QAZC,iBAAM,QAAQ,WAAE,CAAC;QAGjB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAGtD,IAAI,CAAC,WAAW,EAAE,CAAC;QAKnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,cAAM,YAAI,CAAC,WAAW,EAAE,EAAlB,CAAkB,CAAC,CAAC;IAChG,CAAC;IAED,uCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QAEjB,IAAI,CAAC,OAAO,EAAE,CAAC;QAGf,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAIzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAGrE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,qCAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;QAGD,IAAI,YAAY,GAAkC,IAAI,CAAC,oBAAqD,CAAC;QAC7G,IAAI,qCAAgB,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,4BAA0B,YAAc,CAAC,CAAC;SAC3D;QAGD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;QAG1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CACrC,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,sBAAsB,EAC3B,qCAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,GAAG,CAAI,IAAI,CAAC,cAAc,CAAC,MAAM,qBAAkB,CAAC,CAAC;QAGrD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,sCAAO,GAAP;QAEE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAG3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,0CAAW,GAAX;QAEE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAGD,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAED,6CAAc,GAAd,UAAe,KAA4F;QAGzG,IAAI,CAAC,GAAG,CAAC,oBAAkB,KAAK,CAAC,KAAK,CAAC,YAAY,aAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,4CAAa,GAAb,UAAc,KAA4F;QAGxG,IAAI,CAAC,GAAG,CAAC,oBAAkB,KAAK,CAAC,KAAK,CAAC,YAAY,aAAU,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,6CAAc,GAAd,UAAe,KAAgD;QAG7D,IAAI,CAAC,GAAG,CAAC,oBAAkB,KAAK,CAAC,KAAK,CAAC,YAAY,cAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAG/F,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnD,CAAC;IAGD,8CAAe,GAAf;QACE,OAAO,IAAI,CAAC,cAAc;aAEvB,MAAM,CAAC,UAAC,OAA2B,IAAc,cAAO,CAAC,QAAQ,EAAhB,CAAgB,CAAC;aAElE,GAAG,CAAC,UAAC,OAA2B,IAAoB,cAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC;aAEtE,MAAM,CAAC,UAAC,OAAsB,EAAE,IAAmB,IAAoB,cAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAApB,CAAoB,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,6CAAc,GAAd;QAEE,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAGzB,IAAI,CAAC,YAAY,EAAE,CAAC;QAGpB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;QAC5D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;QAG1D,KAAoB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;YAA/B,IAAI,OAAO;YACd,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAC9E;QAGD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,GAAG,CAAC,iBAAe,IAAI,CAAC,EAAE,sBAAmB,CAAC,CAAC;IACjD,CAAC;IACH,2BAAC;AAAD,CAAC,CArNyC,sBAAS,GAqNlD;AArNY,oDAAoB;;;;;;;;;;;AChBjC,yCAA2C;AAI3C,sDAA4D;AAG5D,qCAA2D;AAC3D,mDAAsF;AACtF,sCAA6D;AAC7D,oDAAuF;AACvF,8CAA4E;AAC5E,qDAAyF;AAGzF,4CAAkE;AAClE,2CAA+D;AAC/D,6CAAmE;AACnE,gDAAyE;AACzE,6CAAmE;AACnE,oDAAwD;AAExD,IAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAC9C,IAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAGzD,IAAM,kBAAkB,GAAG,UAAC,IAAU;IAEpC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;QACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAClC,IAAI,CAAC,UAAU,YAAY,WAAW,EAAE;QAC1C,OAAO,UAAU,CAAC,aAAa,CAAC;KACjC;IAED,OAAO,UAAU,CAAC,WAAW,CAAC;AAChC,CAAC,CAAC;AAGF,IAAM,UAAU,GAAe,kBAAyB,CAAC;AACzD,UAAU,CAAC,UAAU,GAAG,kBAAyB,CAAC;AAElD;IAqKE,mCAAoB,UAAuC;QAAvC,eAAU,GAAV,UAAU,CAA6B;IAAG,CAAC;IA9IxD,4CAAkB,GAAzB,UAA0B,UAAuC,EAAE,cAAmC,EAAE,cAAmC;QACzI,OAAO,UAAU;aAEd,MAAM,CAAC,UAAC,SAA+B,IAAK,gBAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,EAAlD,CAAkD,CAAC;aAE/F,GAAG,CAAC,UAAC,SAA+B,IAAK,gBAAS,CAAC,MAAM,EAAhB,CAAgB,CAAC,CAAC;IAChE,CAAC;IAGM,4CAAkB,GAAzB,UAA0B,UAAsC,EAAE,MAAyB,EAAE,KAA0B,EAAE,OAA2B;QAClJ,OAAO,UAAU;aAEd,MAAM,CAAC,UAAC,aAAkC,EAAE,QAA6B;YACxE,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAE5E,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtD;iBAAM;gBAEL,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;aACvE;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAGM,sDAA4B,GAAnC,UAAoC,IAAwB,EAAE,QAAmC,EAAE,KAAkB;QAEnH,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,+BAA+B,GAAG,KAAK,CAAC;QAG5C,KAAoB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAAzB,IAAI,OAAO;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,+BAA+B,EAAE,CAAC,EAAE,EAAE;gBAEjF,IAAI,eAAe,GAAuB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,WAAW;oBAC/E,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAgB;oBACjC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAyB,CAAC;gBAE/C,OAAO,CAAC,+BAA+B,IAAI,eAAe,IAAI,eAAe,KAAK,KAAK,EAAE;oBACvF,+BAA+B,GAAG,eAAe,KAAK,IAAI,CAAC;oBAC3D,eAAe,GAAG,eAAe,CAAC,aAAa,CAAC;iBACjD;aACF;YAGD,IAAI,+BAA+B,EAAE;gBACnC,MAAM;aACP;SACF;QAED,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAGM,8CAAoB,GAA3B,UAA4B,IAAU,EAAE,QAAmC,EAAE,KAAkB;QAC7F,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAG7B,IAAI,QAAQ,GAAuB,IAAI,CAAC,UAAgC,CAAC;;YAGvE,IAAI,MAAM,GAAgB,QAAQ,CAAC;YAEnC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAC,OAA2B,IAAK,cAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAA/B,CAA+B,CAAC,CAAC;YAEnG,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;QACpC,CAAC;QAPD,OAAO,CAAC,gBAAgB,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK;;SAOzD;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAKM,mCAAS,GAAhB,UAAiB,QAAc,EAAE,YAA8B,EAAE,KAAkB;QAAnF,iBAyBC;QAvBC,IAAI,aAAa,GAAG,UAAC,YAA8B;YACjD,QAAQ,YAAY,EAAE;gBACpB,KAAK,qCAAgB,CAAC,KAAK;oBAEzB,OAAO,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,qCAAgB,CAAC,OAAO,CAAC,CAAC;gBACzF,KAAK,qCAAgB,CAAC,OAAO;oBAE3B,OAAO,QAAQ,CAAC,UAAgC,IAAI,aAAa,CAAC,qCAAgB,CAAC,IAAI,CAAC,CAAC;gBAC3F,KAAK,qCAAgB,CAAC,IAAI,CAAC;gBAC3B;oBAEE,OAAO,QAAQ,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,IAAI,IAAI,GAAuB,aAAa,CAAC,YAAY,CAAC,CAAC;QAG3D,IAAI,OAAO,GAAG,IAAI,YAAY,WAAW;YACvC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,UAAgC,IAAI,KAAK,CAAC;QAEnD,OAAO,EAAE,IAAI,QAAE,OAAO,WAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IAGM,wCAAc,GAArB,UAAsB,IAAU,EAAE,KAAkB;QAClD,IAAI,OAAO,GAAG,IAAI,CAAC,UAAgC,CAAC;QACpD,OAAO,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;YACnC,IAAI,CAAC,oBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC/B,MAAM;aACP;YAED,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;SACjC;QAGD,IAAI,OAAO,KAAK,KAAK,IAAI,oBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACnD,OAAO,GAAG,IAAI,CAAC;SAChB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAgBM,mCAAS,GAAhB,UAAiB,OAAoB,EAAE,KAA0B;QAC/D,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC;IAC9H,CAAC;IAMD,yCAAK,GAAL,UAAM,SAAsB,EAAE,QAAgB,EAAE,SAAiB,EAAE,YAA8B;QAC/F,IAAI,cAAc,GAA8B,EAAE,CAAC;QAGnD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,WAAW,GAAG,IAAI,yCAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC/F,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,CAAC,WAAW,CAAC,CAAC;SACtB;QAGD,IAAI,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAGhD,IAAI,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE3F,IAAI,OAAuC,CAAC;QAC5C,IAAI,yBAA0D,CAAC;QAE/D,IAAI,QAAqB,CAAC;QAC1B,OAAO,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE;YAEnC,IAAI,MAAM,GAAsB,yBAAyB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAEvG,IAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAG/C,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC/D,SAAS;aACV;YAGD,IAAI,OAAO,IAAI,IAAI,IAAI,yBAAyB,IAAI,IAAI,EAAE;gBACxD,OAAO,GAAG,IAAI,yCAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACxF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,yBAAyB,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7G,SAAS;aACV;YAGD,IAAI,yBAAyB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;gBACvF,SAAS;aACV;YAGD,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,OAAO,gBAAgB,GAAG,qCAAgB,CAAC,IAAI,IAAI,yBAAyB,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;gBACjJ,gBAAgB,EAAE,CAAC;gBACnB,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;aACrF;YAGD,IAAI,wBAAwB,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAGhH,IAAI,YAAY,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;YACtI,IAAI,YAAY,CAAC,MAAM,EAAE;gBAEvB,OAAO,GAAG,IAAI,yCAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC/E,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC9B;YAGD,yBAAyB,GAAG,wBAAwB,CAAC;YAGrD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAGD,2DAAuB,GAAvB;QACE,OAAO,IAAI,CAAC,UAAU;aAEnB,GAAG,CAAC,UAAC,SAA+B,IAAK,gBAAS,CAAC,UAAU,EAApB,CAAoB,CAAC;aAE9D,MAAM,CAAC,UAAC,gBAA4C,EAAE,UAAsC;YAE3F,IAAI,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,QAA6B,IAAK,QAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAApC,CAAoC,CAAC,CAAC;YAG/G,OAAO,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IA7PM,gDAAsB,GAAG;QAC9B,UAAU;QACV,uBAAuB;QACvB,WAAW;QACX,uBAAuB;QACvB,kBAAkB;QAClB,wBAAwB;KACzB,CAAC;IAGK,gDAAsB,GAAG;QAC9B,UAAU;QACV,QAAQ;QACR,UAAU;QACV,aAAa;QACb,UAAU;KACX,CAAC;IAEK,0CAAgB,GAA4B,qCAAgB,CAAC;IA4OtE,gCAAC;CAAA;AAhQY,8DAAyB;;;;;;;;;;;ACrCtC,IAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAIpC,kBAAU,GAAwB;IAC7C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,UAAC,MAAyB,EAAE,KAA0B;QAC3D,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EAAE;YACpE,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,eAAe,KAAK,qBAAqB,EAAE;gBACzE,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC;aACpC;YAED,OAAO,GAAG,OAAO,CAAC,aAA4B,CAAC;YAC/C,IAAI,OAAO,EAAE;gBACX,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACnC;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC;;;;;;;;;;;ACxBW,kBAAU,GAAwB;IAC7C,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,YAAY;CACpB,CAAC;;;;;;;;;;;ACLF,yCAA8C;AAIjC,gBAAQ,GAAwB;IAC3C,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAC,MAAyB,EAAE,KAA0B;QAC3D,OAAO,oBAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;;;;;;;;;;;ACTF,yCAA8C;AAIjC,qBAAa,GAAwB;IAChD,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,UAAC,MAAyB,IAAK,2BAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAiC,EAA5E,CAA4E;CACnH,CAAC;;;;;;;;;;;ACRF,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uDAAI;IACJ,6DAAO;IACP,yDAAK;AACP,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;;;;;;;;;;;ACJD,wCAAwC;AACxC;IAAA;QAEE,cAAS,GAA2B,EAAE,CAAC;IASzC,CAAC;IAPC,iCAAS,GAAT,UAAU,QAAgB;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACH,oBAAC;AAAD,CAAC;AAXY,sCAAa;;;;;;;;;;;ACD1B,4CAAyC;AAEzC,qCAAwF;AACxF,0CAAsC;AACtC,2CAA0C;AAC1C,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;AAEnF;IAyBE,gBAAY,EAAU;QArBtB,UAAK,GAA2B,IAAI,wBAAU,EAAc,CAAC;QAG7D,iBAAY,GAA+B,IAAI,cAAO,EAAqB,CAAC;QAI5E,iBAAY,GAAG,IAAI,CAAC;QAelB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,8BAA8B,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,yBAAQ,GAAR,UAAS,KAAwB,EAAE,YAAsB;QACvD,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClC;QAED,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC,UAAU,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAEnB,KAAiB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;gBAAnB,IAAI,IAAI;gBAEX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;gBAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;gBAE3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAE9B,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;qBAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;oBACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;aAEF;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAChC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;qBAC5B;iBACF;aACF;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAC5C;IACH,CAAC;IAMD,iCAAgB,GAAhB,UAAiB,aAAgC;QAC/C,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;YACtC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,gCAAe,GAAf,UAAgB,KAAc;QAA9B,iBA2BC;QA1BC,GAAG,CAAC,qBAAmB,KAAK,aAAU,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,QAA8B,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAgB,EAAE,GAAW,EAAE,KAAa;gBAC9D,IAAI,QAAM,IAAI,IAAI,EAAE;oBAElB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;qBAAM;oBAEL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;gBAED,IAAI,IAAI,KAAK,KAAI,CAAC,UAAU,EAAE;oBAC5B,QAAM,GAAG,IAAI,CAAC;oBACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAgB,EAAE,GAAW,EAAE,KAAa;gBAC9D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,8BAAa,GAAb,UAAc,IAAqC;QAAnD,iBAoEC;QAnEC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,MAAM,GAAmB,IAAI,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,MAAM,YAAY,GAAG,MAAM,GAAG,0CAA0C,GAAG,IAAI,CAAC,EAAE,CAAC;aACpF;SACF;aAAM,IAAI,IAAI,IAAI,IAAI,EAAE;YACvB,OAAO,SAAE,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,IAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACxD,MAAM,+CAA+C,CAAC;SACvD;QAGD,IAAI,aAAa,GAA2B,IAAI,CAAC;QACjD,IAAI,kBAAkB,GAAe,IAAI,CAAC,aAAa,EAAE,CAAC;QAE1D,IAAI,uBAAuB,GAAG;YAC5B,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC;YACpC,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC;YACrC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;YAEjC,KAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAChC,KAAI,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;QAIF,IAAI,OAAO,GAA2B,IAAI,oBAAa,CAAU,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YACvC,IAAI,kBAAkB,GAAkC,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAEvH,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE;gBAC3C,IAAI,kBAAkB,KAAK,IAAI,EAAE;oBAC/B,uBAAuB,EAAE,CAAC;iBAC3B;qBAAM;oBACL,GAAG,CAAC,sBAAsB,CAAC,CAAC;iBAC7B;gBACD,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,OAAO,CAAC,QAAQ,EAAE,CAAC;aACpB;iBAAM;gBAGL,kBAAkB,CAAC,IAAI,CACrB,gBAAI,CAAC,CAAC,CAAC,CACR,CAAC,SAAS,CAAC,UAAC,eAAwB;oBAEnC,IAAI,eAAe,EAAE;wBACnB,uBAAuB,EAAE,CAAC;qBAC3B;yBAAM;wBACL,GAAG,CAAC,sBAAsB,CAAC,CAAC;qBAC7B;oBACD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;SAEF;aAAM;YACL,uBAAuB,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,CAAC,QAAQ,EAAE,CAAC;SACpB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8BAAa,GAAb;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC7C;iBAAM;gBACL,MAAM,+DAA+D,CAAC;aACvE;SACF;QAED,OAAmB,IAAI,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,yBAAQ,GAAR;QACE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEzB,IAAI,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACpE,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,SAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,6BAAY,GAAZ;QACE,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAE7B,IAAI,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACpE,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,SAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACH,aAAC;AAAD,CAAC;AAtNY,wBAAM;;;;;;;;;;;ACFR,sBAAc,GAAG;IAC1B,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,IAAI;IAIjB,GAAG,EAAE,UAAS,OAAO;QACnB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE;YACvD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,oBAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,sBAAsB,EAAE,UAAS,MAAc;QAC7C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YACjD,KAAkB,UAAuB,EAAvB,SAAI,CAAC,WAAW,CAAC,MAAM,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;gBAAtC,IAAI,KAAK;gBACZ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE;oBAEtE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACzC;aACF;SACF;IACH,CAAC;IAED,oBAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;IAED,iBAAiB,EAAE;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,CAAC;IAED,oBAAoB,EAAE;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,CAAC;IAED,kBAAkB,EAAE;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,CAAC;IAED,KAAK,EAAE;QACL,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF,CAAC;;;;;;;;;;;ACtDF,qCAA6B;AAC7B;IAKE,qBAAY,eAAuC;QAFnD,oBAAe,GAA6B,IAAI,cAAO,EAAmB,CAAC;QAGzE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IACH,kBAAC;AAAD,CAAC;AARY,kCAAW;;;;;;;;;;;ACFxB,2CAA6C;AAC7C,IAAI,GAAG,GAAG,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAEtC,wBAAgB,GAAG;IAC5B,GAAG,EAAH,UAAI,OAAO,EAAE,KAAK;QAChB,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;SACxC;aAAM;YACL,GAAG,CAAC,OAAO,CAAC,CAAC;SACd;IACH,CAAC;CACF,CAAC;;;;;;;;;;;ACRF;IAsCE,yBAAY,qBAA2D,EAAE,cAAuB;QAFhG,0BAAqB,GAA6C,EAAE,CAAC;QAGnE,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAInD,IAAI,cAAc,IAAI,IAAI,IAAI,qBAAqB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAE;YAC3E,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D;QAED,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAEjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;IACtC,CAAC;IAvCD,sBAAI,4CAAe;aAAnB;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,CAAC;aAID,UAAoB,KAAa;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAEnD,IAAI,SAAS,GAAqB,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;YACrE,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAE1B,CAAC;;;OAXA;IA6CD,gCAAM,GAAN;QACE,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QAEpC,OAAO,aAAa,CAAC;IACvB,CAAC;IASD,sCAAY,GAAZ,UAAa,OAAO;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAsBD,kCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3B,CAAC;IACH,sBAAC;AAAD,CAAC;AApGY,0CAAe;;;;;;;;;;;ACF5B,sDAA+D;AAE/D;IAoBE,mBAAY,EAAU,EAAE,YAAwC,EAAE,KAAa;QAF/E,gCAA2B,GAAG,IAAI,CAAC;QAGjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,eAAe,GAAQ,YAAY,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpE;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC;YAC/C,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC;SAC1C;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAGnB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACtC,MAAM,MAAM,GAAG,EAAE,GAAG,iEAAiE,CAAC;SACvF;IACH,CAAC;IAED,2BAAO,GAAP,UAAQ,OAAY;QAClB,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;YACrC,IAAI;gBAEF,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACxD;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,IAAI,CAAC,2BAA2B,EAAE;oBACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACtB;gBACD,OAAO;aACR;SACF;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAGH,gBAAC;AAAD,CAAC;AA5DqB,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACH/B,6CAA2C;AAE3C,6DAAuE;AAEvE,uDAA6D;AAC7D,oDAAsD;AACtD;IAA6C,2CAAW;IAQtD,iCAAY,IAAY,EACZ,YAAwC,EACxC,KAAa,EACb,aAA8B,EAC9B,SAAe;QAJ3B,YAKE,kBAAM,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,SAK3D;QAZD,oBAAc,GAAG,CAAC,CAAC;QAWjB,KAAI,CAAC,cAAc,GAAG,4CAAmB,CAAC,UAAU,CAAC;;IACvD,CAAC;IAED,mDAAiB,GAAjB;QACE,OAAO,IAAI,sDAAwB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,iDAAe,GAAf,UAAgB,OAAY;QAC1B,OAAO,qCAAgB,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC;IACH,8BAAC;AAAD,CAAC,CA3B4C,0BAAW,GA2BvD;AA3BY,0DAAuB;;;;;;;;;;;;;;;;;;;;;;;;ACNpC,6CAA2C;AAE3C,qDAAwD;AAExD;IAAsC,oCAAW;IAAjD;QAAA,qEA4CC;QAtCC,oBAAc,GAAG,CAAC,CAAC;;IAsCrB,CAAC;IA9BQ,2CAA0B,GAAjC,UAAkC,SAAc,EAAE,aAA8B;QAE9E,IAAI,UAA8B,CAAC;QACnC,KAAoB,UAAoB,EAApB,kBAAa,CAAC,IAAI,EAAE,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAArC,IAAI,OAAO;YACd,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,UAAU,EAAE;gBACpD,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;aAC/C;iBAAM;gBACL,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;aAClD;YAED,IAAI,KAAK,EAAE;gBACT,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,UAAU,GAAG,OAAO,CAAC;iBACtB;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,sDAAsD,GAAG,SAAS,CAAC,CAAC;iBACnF;aACF;SACF;QAED,OAAO,UAAU,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,4CAAiB,GAAjB;QACE,OAAO,IAAI,uCAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,0CAAe,GAAf,UAAgB,OAAY;QAC1B,OAAO,gBAAgB,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC;IACH,uBAAC;AAAD,CAAC,CA5CqC,0BAAW,GA4ChD;AA5CY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACJ7B,uDAA6D;AAG7D,oDAAsD;AAOtD;IAAgC,8BAAmB;IAQjD,oBAAY,EAAU,EAAE,KAAa,EAAE,UAA2C,EAAE,SAAkB;QAAtG,YACE,kBAAM,EAAE,EAAE,UAAS,CAAS,IAAS,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,SAKpE;QARD,qBAAe,GAAG,EAAE,CAAC;QAInB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAG7B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;;IAClC,CAAC;IAED,sCAAiB,GAAjB;QACE,OAAO,IAAI,qCAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,uCAAkB,GAAlB,UAAmB,KAAgC;QACjD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,oCAAe,GAAf,UAAgB,OAAY;QAC1B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,iBAAC;AAAD,CAAC,CA5B+B,4CAAmB,GA4BlD;AA5BY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACVvB,mDAAsD;AAEtD,uDAAkF;AAElF,yCAA2C;AAE3C;IAAsC,oCAAgB;IAQpD,0BAAY,SAAqB;QAAjC,YACE,kBAAM,SAAS,CAAC,SACjB;QAJD,qBAAe,GAA4B,EAAE,CAAC;;IAI9C,CAAC;IAED,qCAAU,GAAV;QACE,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,kCAAO,GAAP;QAEE,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC;QAClE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+CAAoB,GAApB,UAAqB,eAAoB;QAGvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAY,GAAZ,UAAa,OAAO;QAKlB,IAAI,kBAAkB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACnE,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,WAA6B;gBACnE,IAAI,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAM7C,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,kBAAkB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;SACvC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,0CAAe,GAAf;QAAA,iBAuBC;QAtBC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,SAA8B;YAG/D,IAAI,SAAS,KAAK,KAAI,CAAC,SAAS;gBAC5B,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,UAAU;gBAC3D,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,IAAI,EAAE;gBAEzD,IAAI,eAAe,GAAqB,SAAS,CAAC,iBAAiB,EAAE,CAAC;gBACtE,IAAI,gBAAgB,GAAG,eAAe,CAAC,mBAAmB,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC;gBAC7E,IAAI,gBAAgB,EAAE;oBAMpB,eAAe,CAAC,eAAe,EAAE,CAAC;oBAClC,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC5C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAmB,GAAnB,UAAoB,IAAY;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAAgB,GAAhB;QAGE,IAAI,KAAK,GAA+B,EAAE,CAAC;QAC3C,KAAe,UAAoB,EAApB,SAAI,CAAC,eAAe,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAAhC,IAAI,EAAE;YACT,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACnC;QACD,OAAO,oBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,qCAAU,GAAV;QACE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,+CAAoB,GAApB;QACE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,uDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,CAAC,WAAW,GAAW,KAAK,CAAC;IACnC,CAAC;IACH,uBAAC;AAAD,CAAC,CArGqC,qCAAgB,GAqGrD;AArGY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACN7B,mDAAyE;AACzE,8CAA6C;AAE7C,yCAA2C;AAC3C,wCAAyC;AAEzC;IAAgC,8BAAgB;IAAhD;QAAA,qEAgIC;QA9HC,iBAAW,GAAG,EAAE,CAAC;QAIjB,gBAAU,GAA4B,UAAU,CAAC;;IA0HnD,CAAC;IAxHC,+BAAU,GAAV;QACE,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAKD,oCAAe,GAAf;QACE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,gBAAgB,GAAG,IAAI,MAAM,CAAC,oBAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;SACrF;IACH,CAAC;IAED,4BAAO,GAAP;QACE,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,UAAU;gBAEb,OAAO,KAAK,CAAC;YACf,KAAK,UAAU,CAAC;YAChB;gBACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC;SAC9D;IACH,CAAC;IAED,yCAAoB,GAApB,UAAqB,eAAe;QAClC,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,UAAU;gBACb,OAAO,eAAe,IAAI,IAAI,IAAI,CAAC,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YACjH,KAAK,UAAU,CAAC;YAChB;gBAEE,IAAI,eAAe,IAAI,IAAI,EAAE;oBAC3B,OAAO,KAAK,CAAC;iBACd;gBAED,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;gBAE1C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBACpF,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;iBAC9D;qBAAM;oBACL,OAAO,IAAI,CAAC;iBACb;SACJ;IACH,CAAC;IAED,wCAAmB,GAAnB,UAAoB,IAAY;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,qCAAgB,GAAhB;QACE,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,UAAU;gBAEb,OAAO,CAAC,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,KAAK,UAAU,CAAC;YAChB;gBACE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;oBAElB,OAAO,EAAE,CAAC;iBACX;gBACD,OAAO,CAAC,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SACvE;IACH,CAAC;IAED,mCAAc,GAAd,UAAe,cAAgC;QAC7C,IAAI,cAAc,YAAY,UAAU,EAAE;YACxC,IAAI,OAAO,GAA2B,cAAc,CAAC;YACrD,QAAQ,OAAO,CAAC,UAAU,EAAE;gBAC1B,KAAK,UAAU;oBACb,IAAI,iBAAiB,GAA8C,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACtH,IAAI,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,SAAS,EAAE;wBAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;wBAC7B,OAAO;qBACR;gBACH,KAAK,UAAU,CAAC;gBAChB;oBACE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;aAC1C;SACF;IACH,CAAC;IAED,+BAAU,GAAV;QACE,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,UAAU;gBACb,OAAO,kBAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACrD,KAAK,UAAU,CAAC;YAChB;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC;SAC3B;IACH,CAAC;IAED,yCAAoB,GAApB;QACE,IAAI,KAAK,GAAQ;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SACpE,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAE7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAW,KAAK,CAAC;SAClC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,IAAI,KAAK,GAAQ,KAAK,CAAC;YACvB,IAAI,OAAO,GAA8C,IAAI,CAAC,SAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAElH,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;gBACxC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAC9B;YAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;SACtC;IACH,CAAC;IACH,iBAAC;AAAD,CAAC,CAhI+B,qCAAgB,GAgI/C;AAhIY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACNvB,mDAAsD;AACtD,wCAAgD;AAChD,8CAA6C;AAC7C;IAAgC,8BAAgB;IAAhD;QAAA,qEAkJC;QAjJC,gBAAU,GAAG,GAAG,CAAC;;IAiJnB,CAAC;IA1IC,+BAAU,GAAV;QACE,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,oCAAe,GAAf;IACA,CAAC;IAED,4BAAO,GAAP;QACE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5E,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAC7E;QAGD,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,yCAAoB,GAApB,UAAqB,eAAe;QAClC,IAAI,eAAe,CAAC;QAEpB,IAAI,eAAe,IAAI,IAAI,IAAI,CAAC,CAAC,eAAe,YAAY,IAAI,CAAC,EAAE;YACjE,OAAO,KAAK,CAAC;SACd;QAED,IAAI,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;QAG5D,eAAe,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACjH,IAAI,eAAe,CAAC,iBAAiB,EAAE,KAAK,iBAAiB,EAAE;YAC7D,OAAO,CAAC,KAAK,CAAC,2HAA2H,CAAC,CAAC;SAC5I;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAG/D,OAAO,IAAI,CAAC;SACb;QAED,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,eAAe,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE,CAAC;YACvE,KAAK,GAAG;gBACN,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE,CAAC;YACrE,KAAK,IAAI;gBACP,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE,CAAC;YACtE,KAAK,GAAG;gBACN,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE,CAAC;YACrE,KAAK,IAAI;gBACP,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE,CAAC;YACtE,KAAK,OAAO;gBACV,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClJ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrJ,OAAO,IAAI,IAAI,IAAI,CAAC;YACtB;gBACE,MAAM,mEAAmE,GAAG,IAAI,CAAC,UAAU,CAAC;SAC/F;IACH,CAAC;IAED,wCAAmB,GAAnB,UAAoB,IAAY;QAC9B,IAAI,CAAC,eAAe,GAAG,kBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5D,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,kBAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE;gBACxE,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;aACzF;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,kBAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,EAAE;gBAClF,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;aAC7F;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,kBAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAAE;gBACnF,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;aAC7F;SACF;QAED,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,qCAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,IAAI,QAAQ,GAAwB,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,eAAe,YAAY,IAAI,EAAE;gBACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,EACjB,IAAI,EACJ,IAAI,CAAC,eAAe,EACpB,kBAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CACpD,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,gBAAgB,YAAY,IAAI,EAAE;gBACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,EACjB,IAAI,EACJ,IAAI,CAAC,gBAAgB,EACrB,kBAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACrD,CAAC,CAAC;aACJ;YAED,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,OAAO;gBACL,IAAI,4BAAY,CACd,IAAI,CAAC,SAAS,CAAC,EAAE,EACjB,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAC/C,IAAI,CAAC,eAAe,EACpB,kBAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CACpD;aACF,CAAC;SACH;IACH,CAAC;IAED,+BAAU,GAAV;QACE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,OAAO,kBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,GAAG,kBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACzG;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,kBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC3E;IACH,CAAC;IAED,yCAAoB,GAApB;QACE,IAAI,KAAK,GAAG;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,kBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;YAC1D,gBAAgB,EAAE,kBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;SAC7D,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,KAAK,GAAQ,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,kBAAO,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,kBAAO,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxE,CAAC;IACH,iBAAC;AAAD,CAAC,CAlJ+B,qCAAgB,GAkJ/C;AAlJY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,8CAA6C;AAE7C;IAAsC,oCAAY;IAAlD;;IAIA,CAAC;IAHC,qCAAU,GAAV;QACE,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACH,uBAAC;AAAD,CAAC,CAJqC,4BAAY,GAIjD;AAJY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACF7B,mDAAwD;AACxD,wCAAgD;AAGhD,8CAA+C;AAE/C;IAAkC,gCAAgB;IAgBhD,sBAAY,SAA8B;QAA1C,YACE,kBAAM,SAAS,CAAC,SAOjB;QAtBD,gBAAU,GAAG,GAAG,CAAC;QAiBf,IAAI,QAAQ,GAAiB,KAAI,CAAC,SAAU,CAAC,QAAQ,CAAC;QACtD,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YACvD,KAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;SACzD;;IACH,CAAC;IAED,iCAAU,GAAV;QACE,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,sCAAe,GAAf;QAEE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YAC9C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAClF;QAGD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE;YAC/C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;SACrF;IACH,CAAC;IAED,8BAAO,GAAP;QACE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;SACjE;QAGD,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,2CAAoB,GAApB,UAAqB,eAAe;QAElC,IAAI,eAAe,CAAC;QAEpB,IAAI,eAAe,IAAI,IAAI,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;YAClE,OAAO,KAAK,CAAC;SACd;QAED,QAAQ,IAAI,CAAC,UAAU,EAAE;YACvB,KAAK,GAAG;gBACN,OAAO,eAAe,KAAK,IAAI,CAAC,uBAAuB,CAAC;YAC1D,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAChG,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI,CAAC,uBAAuB,CAAC;YACjG,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAChG,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI,CAAC,uBAAuB,CAAC;YACjG,KAAK,GAAG;gBACN,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC;YACnF,KAAK,OAAO;gBACV,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC5I,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC/I,OAAO,IAAI;oBACT,IAAI,CAAC;YACT;gBACE,MAAM,oEAAoE,GAAG,IAAI,CAAC,UAAU,CAAC;SAChG;IACH,CAAC;IAED,0CAAmB,GAAnB,UAAoB,IAAY;QAC9B,IAAI,CAAC,cAAc,GAAG,kBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,uCAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,IAAI,QAAQ,GAAwB,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE;gBAChF,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;aACxF;YAED,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE;gBAClF,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;aACzF;YAED,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,OAAO;gBACL,IAAI,4BAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC;aACnF,CAAC;SACH;IACH,CAAC;IAED,iCAAU,GAAV;QACE,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;YAC/B,OAAO,kBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,GAAG,kBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC3G;aAAM;YACL,OAAO,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,kBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5E;IACH,CAAC;IAED,2CAAoB,GAApB;QACE,IAAI,KAAK,GAAG;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;SACtD,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,KAAK,GAAQ,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC;QAC3D,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC;IAC/D,CAAC;IACH,mBAAC;AAAD,CAAC,CAnJiC,qCAAgB,GAmJjD;AAnJY,oCAAY;;;;;;;;;;;ACNzB,6CAAwG;AA+OtG,6BA/OO,iCAAkB,CA+OP;AAFlB,4BA7O2B,gCAAiB,CA6O3B;AAHjB,qBA1O2D,yBAAU,CA0O3D;AAIV,mBA9OuE,uBAAQ,CA8OvE;AA7OV,mEAAkG;AAiOhG,0CAjOO,mEAA+B,CAiOP;AAhOjC,gEAAwF;AAmOtF,uCAnOO,8DAA4B,CAmOP;AAlO9B,mEAA8F;AAqO5F,0CArOO,oEAA+B,CAqOP;AApOjC,gEAAsF;AAqOpF,sCArOO,4DAA2B,CAqOP;AApO7B,uEAAoG;AAkOlG,6CAlOO,0EAAkC,CAkOP;AAjOpC,iEAAyF;AAgOvF,wCAhOO,+DAA6B,CAgOP;AA/N/B,mDAAuD;AACvD,wCAAqC;AACrC,kDAAsD;AACtD,2CAAyC;AACzC,kDAAoD;AAgOlD,yBAhOO,iCAAc,CAgOP;AA/NhB,yCAAuC;AACvC,+CAAiD;AACjD,4DAAyE;AACzE,+CAA+C;AAC/C,0DAAkF;AA8MhF,sCA9MO,sDAA2B,CA8MP;AA7M7B,oEAAgG;AAuM9F,0CAvMO,oEAA+B,CAuMP;AAtMjC,iEAA2F;AAqMzF,wCArMO,+DAA6B,CAqMP;AApM/B,uEAAsG;AAsMpG,6CAtMO,0EAAkC,CAsMP;AArMpC,mEAA8F;AAsM5F,yCAtMO,kEAA8B,CAsMP;AArMhC,0EAA4G;AA0M1G,gDA1MO,gFAAqC,CA0MP;AAzMvC,oEAAiG;AAsM/F,2CAtMO,qEAAgC,CAsMP;AArMlC,qDAAmE;AAoMjE,4BApMO,uCAAiB,CAoMP;AAnMnB,wDAA0E;AAqMxE,+BArMO,8CAAoB,CAqMP;AApMtB,mDAA+D;AAuM7D,0BAvMO,mCAAe,CAuMP;AAtMjB,sDAA8D;AAkN5D,8BAlNO,2CAAmB,CAkNP;AAjNrB,0DAAkE;AAwMhE,iCAxMM,iDAAsB,CAwMN;AAvMxB,iDAAmD;AACnD,0EAAmG;AAuMjG,gDAvMO,gFAAqC,CAuMP;AAtMvC,0DAA8G;AAmM5G,iCAnMwC,iDAAsB,CAmMxC;AAlMxB,iEAAwF;AAiNtF,uCAjNO,8DAA4B,CAiNP;AAhN9B,8DAA8G;AAiN5G,oCAjNO,wDAAyB,CAiNP;AAhN3B,6CAAgF;AAiN9E,qBAjNO,wBAAU,CAiNP;AAsBV,2BAvOmB,8BAAgB,CAuOnB;AAtOlB,iDAAuE;AAwOrE,yBAxOO,iCAAc,CAwOP;AAvOhB,8CAAgE;AAwO9D,sBAxOO,0BAAW,CAwOP;AAvOb,mDAA2E;AAyOzE,2BAzOO,qCAAgB,CAyOP;AAxOlB,4CAA0D;AAuNxD,oBAvNM,sBAAS,CAuNN;AAtNX,6CAA4D;AAuN1D,qBAvNM,wBAAU,CAuNN;AAtNZ,4CAA0D;AAuNxD,oBAvNM,sBAAS,CAuNN;AAtNX,6CAA4D;AAkN1D,qBAlNM,wBAAU,CAkNN;AAjNZ,uDAAqG;AAgNnG,8BAhNM,4CAAmB,CAgNN;AAmBnB,8BAnO2B,4CAAmB,CAmO3B;AAlOrB,oDAAyE;AAiNvE,2BAjNM,qCAAgB,CAiNN;AAhNlB,6CAA8D;AAuN5D,sBAvNM,0BAAW,CAuNN;AAtNb,mDAAuE;AA0NrE,0BA1NM,mCAAe,CA0NN;AAzNjB,oDAAyE;AA0NvE,2BA1NM,qCAAgB,CA0NN;AAzNlB,oDAAyF;AAqMvF,4BArMM,sCAAiB,CAqMN;AACjB,wBAtMyB,kCAAa,CAsMzB;AArMf,oDAAyE;AAqNvE,2BArNM,qCAAgB,CAqNN;AApNlB,qDAA2E;AAqNzE,4BArNM,uCAAiB,CAqNN;AApNnB,8CAAgE;AAkN9D,uBAlNM,4BAAY,CAkNN;AAjNd,8CAAkD;AAmMhD,sBAnMM,0BAAW,CAmMN;AAlMb,4CAAgD;AAmM9C,qBAnMM,wBAAU,CAmMN;AAjMZ,8CAAgE;AA2M9D,sBA3MO,0BAAW,CA2MP;AA1Mb,4DAA0F;AAmNxF,kCAnNO,oDAAuB,CAmNP;AAlNzB,+CAAkE;AA0MhE,uBA1MO,4BAAY,CA0MP;AAzMd,8CAAkE;AA+LhE,uBA/LO,4BAAY,CA+LP;AA9Ld,kDAAwE;AA+LtE,0BA/LO,kCAAe,CA+LP;AA9LjB,6CAA8D;AAqM5D,qBArMO,wBAAU,CAqMP;AAnMZ,4CAAgD;AAkN9C,oBAlNO,sBAAS,CAkNP;AAjNX,mDAAsD;AACtD,kDAA8D;AAC9D,wCAAyC;AAiNvC,iBAjNO,eAAM,CAiNP;AAhNR,gDAA0D;AA+MxD,wBA/MO,8BAAa,CA+MP;AA3Mf,IAAI,WAAW,CAAC;AAChB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,WAAW,GAAG,MAAM,CAAC;CACtB;KAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACxC,WAAW,GAAG,MAAM,CAAC;CACtB;AAED,IAAU,WAAY,CAAC,8BAA8B,IAAI,IAAI,EAAE;IAC7D,IAAI,KAAG,GAAG;QACR,IAAI,EAAE,kBAAO;QACb,UAAU,EAAE,8BAAa;QACzB,KAAK,EAAE,oBAAQ;QACf,aAAa,EAAE,oCAAgB;QAC/B,YAAY,EAAE,mCAAe;QAC7B,MAAM,EAAE,sBAAS;QACjB,GAAG,EAAE,sBAAS,CAAC,GAAG;QAClB,WAAW,EAAE,IAAI,iCAAc;QAC/B,sBAAsB,EAAE,iCAAc;QACtC,gBAAgB,EAAE,sDAAwB;QAC1C,iBAAiB,EAAE,gCAAiB;QACpC,eAAe,EAAE,uBAAQ;QAGzB,SAAS,EAAE;YACT,sBAAsB;YACtB,qCAAqC;SACtC;QAED,WAAW,EAAE;YACX,+BAA+B;SAChC;QACD,MAAM,EAAE;YACN,+BAA+B;SAChC;QAED,QAAQ,EAAE;YACR,6BAA6B;YAC7B,+BAA+B;YAC/B,kCAAkC;YAClC,8BAA8B;YAC9B,iBAAiB;YACjB,gCAAgC;YAChC,oBAAoB;YACpB,2BAA2B;YAC3B,qCAAqC;YACrC,eAAe;SAChB;QAGD,gBAAgB,EAAE,oCAAgB;QAElC,MAAM,EAAE;YACN,4BAA4B;YAC5B,6BAA6B;YAC7B,kCAAkC;YAClC,+BAA+B;YAC/B,2BAA2B;YAC3B,4BAA4B;YAC5B,UAAU;YACV,SAAS;YACT,SAAS;YACT,WAAW;YACX,WAAW;YACX,iBAAiB;YACjB,gBAAgB;YAChB,iBAAiB;YACjB,WAAW;YACX,eAAe;YACf,uBAAuB;YACvB,UAAU;YACV,cAAc;SACf;QACD,YAAY,EAAE,4BAAY;QAC1B,WAAW,EAAE,0BAAW;QACxB,WAAW,EAAE;YACX,gBAAgB,EAAE,SAAS;YAC3B,IAAI,EAAE,EAAE;YAER,cAAc,EAAd;gBACE,OAAO,KAAG,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;YAC3C,CAAC;SACF;QACD,oBAAoB,EAAE,UAAU,iBAAsB;YACpD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAClC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAC3C,IAAI,mCAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;oBAChD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;iBACxC;aACF;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,gJAAgJ,CAAC,CAAC;aACjK;QACH,CAAC;QACD,aAAa,EAAE,EAAE;QAEjB,KAAK,EAAE;YACL,IAAI,EAAE,yBAAU;YAChB,cAAc,EAAE,iCAAc;YAC9B,aAAa,EAAE,2CAAmB;YAClC,iBAAiB,EAAE,gCAAiB;YACpC,QAAQ,EAAE,uBAAQ;YAClB,kBAAkB,EAAE,iCAAkB;YACtC,aAAa;YACb,gBAAgB;SACjB;QACD,cAAc,EAAE,gCAAc;QAC9B,yBAAyB,EAAE,wDAAyB;KACrD,CAAC;IAGF,MAAM,CAAC,cAAc,CAAC,KAAG,EAAE,SAAS,EAAE;QACpC,GAAG,EAAE;YACH,OAAO,mCAAe,CAAC,OAAO,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,KAAG,EAAE,cAAc,EAAE;QACzC,GAAG,EAAE;YACH,OAAO,mCAAe,CAAC,YAAY,CAAC;QACtC,CAAC;QACD,GAAG,EAAE,UAAS,KAAa;YACzB,mCAAe,CAAC,YAAY,GAAG,KAAK,CAAC;QACvC,CAAC;KACF,CAAC,CAAC;IAEH,KAAG,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAG7B,KAAK,IAAI,IAAI,IAAI,KAAG,EAAE;QACpB,IAAI,IAAI,KAAK,cAAc;YACvB,IAAI,KAAK,eAAe;YACxB,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,cAAc,EAAE;YAC3B,KAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,KAAG,CAAC;SACrB;KACF;IAED,4BAAY,CAAC,2BAA2B,CAAC,KAAG,CAAC,CAAC;IAGxC,WAAY,CAAC,8BAA8B,GAAG,KAAG,CAAC;CAEzD;AAED,kBAAqB,WAAY,CAAC,8BAA8B,CAAC;AA+FjE,sDAAmH;AAAtF,4EAAqB;AAAE,wEAAmB;AAMvE,yDAAiE;AAAxD,6EAAoB;;;;;;;;;ACxT7B;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA,6CAAwF,GAAoB,CAAC;AAA/D,mDAAU;AAAE,6CAAmD;AAC7G,6BAAc,GAAe,CAAC;AAC9B,6BAAc,GAAoB,CAAC;AACnC,6BAAc,GAAgB,CAAC;AAC/B,6BAAc,GAA2B,CAAC;AACrB;;;;;;;;;;;;ACLrB,yCAA0C,GAA2B,CAAC;AAwBtE,6BAAc,GAAoB,CAAC;AAExB,kBAAU,GAAG;IAEtB,cAAc,EAAE,UAAU,eAAiD,EAAE,MAAuB,EAAE,OAA4B;QAAxG,+BAAiD,GAAjD,gCAAiD;QACzE,EAAE,CAAC,CAAC,eAAe,KAAK,cAAc,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,wCAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CAEF,CAAC;;;;;;;;;;AClCF,wCAA2B,GAA2B,CAAC;AAEvD,mCAA0C,MAAuB,EAAE,OAA4B;IAC7F,IAAI,KAAK,GAAY,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;IAClE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,GAAmB,MAAM,CAAC,MAAM,CAAC,UAAC,KAAc;QAChE,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,EAAE,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAAC,CAAC;QACjF,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,qBAAqB,GAAG,eAAe,CAAC;IAC5C,IAAI,mBAAmB,GAAsB,cAAc,CAAC,GAAG,CAAa,UAAC,KAAc;QACzF,IAAI,UAAU,GAAe,IAAI,wBAAU,CAAC,KAAK,CAAC,CAAC;QACnD,EAAE,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACnC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAAC,CAAC;YAC5D,qBAAqB,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAI,aAAa,GAAG,CAAC,EACnB,cAAc,GAAG,CAAC,CAAC;IACrB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;QAClD,aAAa,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;QAC1I,cAAc,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;IAChJ,CAAC;IACD,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,qBAAqB,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3G,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,mGAAmG,CAAC,CAAC;QAAC,CAAC;QAChI,aAAa,GAAG,CAAC,CAAC;QAClB,cAAc,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,aAAyC,CAAC;IAC9C,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,aAAa,GAAY,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,KAAK,IAAI,CAAC;QACxH,IAAI,QAAQ,GAAoE,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QACvK,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,KAAiB;YAC3D,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,aAAW,aAAa,CAAC,MAAM,mBAAc,IAAI,CAAC,SAAS,CAAC,aAAa,CAAG,CAAC,CAAC;QAAC,CAAC;IAC3G,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,WAAS,mBAAmB,CAAC,MAAM,kCAA+B,CAAC,CAAC;IAAC,CAAC;IAE/F,IAAI,WAAW,GAAkB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACnF,WAAW,CAAC,aAAa,GAAG,aAAa,CAAC;IAC1C,MAAM,CAAC,WAAW,CAAC;AACrB,CAAC;AAvDe,iCAAyB,4BAuDxC;AAED,+BAA+B,KAAc,EAAE,MAAyB;IACtE,IAAI,MAAM,GAAG,CAAC,EACZ,WAAW,GAAG,CAAC,EACf,cAAc,GAAG,CAAC,EAClB,mBAAmB,GAAG,CAAC,CAAC;IAE1B,MAAM,CAAC,OAAO,CAAC,UAAC,KAAiB;QAC/B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,4BAA0B,MAAM,uBAAkB,WAAW,0BAAqB,cAAc,+BAA0B,mBAAmB,wBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAG,CAAC,CAAC;QAAC,CAAC;QACpN,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5B,WAAW,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACtC,cAAc,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACxD,mBAAmB,IAAI,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,oBAAkB,MAAM,uBAAkB,WAAW,0BAAqB,cAAc,+BAA0B,mBAAqB,CAAC,CAAC;IAAC,CAAC;IAEpK,MAAM,CAAC;QACL,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,cAAc;QAC9B,mBAAmB,EAAE,mBAAmB;KACzC,CAAC;AACJ,CAAC;AAED,sBAAsB,KAAc,EAAE,mBAAsC,EAAE,aAAqB,EAAE,cAAsB,EAAE,aAAsB;IACjJ,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;QAC3B,mBAAmB,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,mBAAmB,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzE,CAAC;IAED,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,kCAAgC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAG,CAAC,CAAC;IAAC,CAAC;IAElG,IAAI,aAAa,GAAsB,EAAE,CAAC;IAC1C,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,IAAI,OAAlB,aAAa,EAAS,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,EAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,aAAa,CAAC,IAAI,OAAlB,aAAa,EAAS,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,MAAM,CAAC;QACL,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,GAAG,cAAc,GAAG,CAAC,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,sDAAsD,EAAc,EAAE,EAAc;IAClF,aAAa;IACb,IAAI,QAAQ,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/B,EAAE,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAED,sBAAsB;IACtB,IAAI,uBAAuB,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC;IAC7D,IAAI,uBAAuB,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC;IAC7D,EAAE,CAAC,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,mDAAmD,EAAc,EAAE,EAAc;IAC/E,kCAAkC;IAClC,IAAI,cAAc,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC;IACnD,IAAI,cAAc,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC;IAEnD,EAAE,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,CAAC,CAAC;IACX,CAAC;AACH,CAAC;;;;;;;;;;AC3ID;IAQE,oBAAY,QAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,8BAAS,GAAT;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,mCAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,+BAAU,GAAV;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,CAAC;IAED,8BAAS,GAAT;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,sCAAiB,GAAjB;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,8CAAyB,GAAzB;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,6CAAwB,GAAxB;QACE,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACxD,CAAC;IAED,mCAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEH,iBAAC;AAAD,CAAC;AA/CY,kBAAU,aA+CtB;;;;;;;;;;;;;ACjDD,6BAAc,GAAgB,CAAC;AAC/B,6BAAc,GAAY,CAAC;;;;;;;;;;;;;;;ACD3B,qCAAwB,GAAY,CAAC;AAErC;IAAiC,+BAAO;IAEtC,qBAAoB,MAAc,EAAU,WAAmB,EAAU,MAAe;QACtF,iBAAO,CAAC;QADU,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAS;IAExF,CAAC;IAED,+BAAS,GAAT;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,+BAAS,GAAT;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,oCAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,gCAAU,GAAV;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,CAAC;IAEH,kBAAC;AAAD,CAAC,CAtBgC,kBAAO,GAsBvC;AAtBY,mBAAW,cAsBvB;;;;;;;;;;ACxBD,sCAAuB,EAAa,CAAC;AAA7B,wCAA6B;AACrC,wCAAyB,EAAe,CAAC;AAAjC,8CAAiC;AACzC,yCAA0B,GAAgB,CAAC;AAAnC,iDAAmC;AAC3C,wCAAyB,EAAe,CAAC;AAAjC,8CAAiC;AACzC,uCAAwB,GAAc,CAAC;AAA/B,2CAA+B;AACvC,6CAA6B,GAAoB,CAAC;AAA1C,2DAA0C;AAClD,sCAA6B,EAAa,CAAC;AAAnC,wCAAQ;AAAE,gCAAyB;AAC3C,sCAAuB,GAAa,CAAC;AAA7B,wCAA6B;AACrC,gDAAgC,GAAuB,CAAC;AAAhD,oEAAgD;AACxD,wCAAyB,GAAe,CAAC;AAAjC,8CAAiC;AACzC,mDAAmC,GAA0B,CAAC;AAAtD,6EAAsD;AAC9D,uCAAwB,GAAc,CAAC;AAA/B,2CAA+B;AACvC,4CAA4B,GAAmB,CAAC;AAAxC,wDAAwC;;;;;;;;;;ACXhD,wCAAyB,EAAe,CAAC;AACzC,sCAAuB,EAAa,CAAC;AACrC,wCAAyB,EAAe,CAAC;AAEzC,sCAAmB,EAAa,CAAC;AAEjC,IAAiB,WAAW,CAmP3B;AAnPD,WAAiB,WAAW,EAAC,CAAC;IAM5B,uBAAuB;IACvB,gCAAgC,OAAsC;QACpE,MAAM,CAAC,UAAC,EAAmB,EAAE,EAAmB;YAC9C,IAAI,KAAmC,CAAC;YACxC,IAAI,KAAmC,CAAC;YAExC,6BAA6B;YAC7B,IAAI,cAAc,GAAG,wBAAU,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAC7E,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;YACD,0BAA0B;YAC1B,cAAc,GAAG,wBAAU,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YACvE,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;YAED,qCAAqC;YACrC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;gBAChC,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;gBAChC,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,cAAc,GAAG,wBAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC3G,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,cAAc,CAAC;gBACxB,CAAC;gBAED,cAAc,GAAG,wBAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/G,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzB,MAAM,CAAC,cAAc,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,cAAc,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;YAED,8BAA8B;YAC9B,KAAK,GAAG,EAAE,CAAC,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACnF,KAAK,GAAG,EAAE,CAAC,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACnF,kBAAkB;YAClB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;YAED,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,YAAY,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,gBAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC;YACzG,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,YAAY,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,gBAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC;YAEzG,cAAc,GAAG,oBAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7D,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;YAED,SAAS,GAAG,KAAK,CAAC,OAAO,YAAY,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC;YAC/F,SAAS,GAAG,KAAK,CAAC,OAAO,YAAY,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC;YAC/F,cAAc,GAAG,oBAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7D,EAAE,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,cAAc,CAAC;YACxB,CAAC;YAED,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED;QACE,MAAM,CAAC,UAAC,EAAmB,EAAE,EAAmB;YAC9C,IAAI,SAAS,GAAW,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,SAAS,CAAC;YACnB,CAAC;YAED,SAAS,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED;QACE,MAAM,CAAC,UAAC,EAAmB,EAAE,EAAmB;YAC9C,IAAI,OAAO,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC;YACjB,CAAC;YAED,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,6BAA6B,OAAwB;QACnD,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;QAC3E,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7C,OAAO,CAAC,sBAAsB,GAAG,cAAc,CAAC;IAClD,CAAC;IAED,mCAAmC,OAAwB;QACzD,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,sBAAsB,GAAG,2BAA2B,CAAC;QAC7D,8EAA8E;QAC9E,qDAAqD;IACvD,CAAC;IAED,uBAAuB,OAAwB;QAC7C,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,sBAAsB,GAAG,QAAQ,CAAC;QAC1C,8EAA8E;QAC9E,qDAAqD;IACvD,CAAC;IAED,8BAA8B,OAAwB;QACpD,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;QAC3E,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;QACjD,OAAO,CAAC,sBAAsB,GAAG,eAAe,CAAC;IACnD,CAAC;IAED,mCAAmC;IACnC,sCAA6C,QAAgC,EAAE,qBAA6B;QAC1G,IAAI,OAAuB,CAAC;QAC5B,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC9B,KAAK,QAAQ,CAAC,CAAE,iGAAiG;YACjH,KAAK,eAAe,CAAC;YACrB,KAAK,cAAc;gBACjB,OAAO,GAAG,oBAAoB,CAAC;gBAC/B,KAAK,CAAC;YACR,KAAK,iBAAiB,CAAC,CAAC,4GAA4G;YACpI,KAAK,cAAc,CAAC;YACpB;gBACE,OAAO,GAAG,mBAAmB,CAAC;gBAC9B,KAAK,CAAC;QACV,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAfe,wCAA4B,+BAe3C;IAED,8CAAqD,qBAA6B,EAAE,OAAuC;QACzH,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC9B,KAAK,eAAe;gBAClB,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACtC,KAAK,QAAQ,CAAC,CAAC,oGAAoG;YACnH,KAAM,cAAc;gBAClB,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACpC,KAAK,iBAAiB,CAAC,CAAC,+GAA+G;YACvI,KAAK,cAAc,CAAC;YACpB;gBACE,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;oBACpB,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,CAAC,sBAAsB,CAAgC,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAfe,gDAAoC,uCAenD;IAED,kCAAyC,QAAgC,EAAE,qBAA6B,EAAE,OAAuC;QAC/I,IAAI,UAAU,GAAG,oCAAoC,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QACtF,4FAA4F;QAC5F,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAJe,oCAAwB,2BAIvC;IAED,0BAA0B;IAC1B,8BAA8B,EAAmB,EAAG,EAAmB;QACrE,IAAI,cAAc,GAAW,EAAE,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACrF,IAAI,cAAc,GAAW,EAAE,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QAErF,IAAI,gBAAgB,GAAW,QAAQ,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,gBAAgB,GAAW,QAAQ,CAAC,cAAc,CAAC,CAAC;QAExD,IAAI,SAAiB,CAAC;QACtB,EAAE,CAAC,CAAC,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACnF,SAAS,GAAG,wBAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC5E,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC5F,SAAS,GAAG,wBAAU,CAAC,wBAAwB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAClF,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,CAAC,CAAC;QACX,CAAC;QAED,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAED,+BAA+B,EAAE,EAAE,EAAE;QACnC,IAAI,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAClD,EAAE,CAAC,CAAC,CAAC,wBAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,wBAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAC,wBAAU,CAAC,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,2BAA2B,EAAmB,EAAG,EAAmB;QAClE,IAAI,WAAW,GAAW,EAAE,CAAC,mBAAmB,GAAG,wBAAU,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,GAAG,wBAAU,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5J,IAAI,WAAW,GAAW,EAAE,CAAC,mBAAmB,GAAG,wBAAU,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,GAAG,wBAAU,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5J,MAAM,CAAC,wBAAU,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,0BAA0B,mBAA2B;QACnD,IAAI,SAAS,GAAW,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,EAAE,CAAC,CAAC,SAAS,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACtC,IAAI,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC;IAC7B,CAAC;IAED,4BAA4B,mBAA2B;QACrD,IAAI,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5H,EAAE,CAAC,CAAC,cAAc,KAAK,mBAAmB,CAAC,CAAC,CAAC;YAC3C,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5C,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7C,CAAC;YACD,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC;IAC7B,CAAC;AACH,CAAC,EAnPgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAmP3B;;;;;;;;;;ACzPD,sCAA6B,EAAoB,CAAC;AAEvC,6BAAqB,GAAG;IACjC,IAAI,EAAE,gBAAI;IACV,gBAAgB,EAAE,0BAA0B,KAAa,EAAE,SAAc,EAAE,OAAY;QACrF,qCAAqC;QACrC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACxC,CAAC;QACF,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACnF,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,iBAAiB,EAAE,2BAA2B,KAAa,EAAE,SAAc,EAAE,OAAY;QACvF,wGAAwG;QACxG,oCAAoC;QAEpC,2DAA2D;QAC3D,8CAA8C;QAC9C,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3E,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAE,CAAC;QAC/G,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,sBAAsB,EAAE,gCAAgC,KAAa,EAAE,QAAgB,EAAE,OAAY;QACnG,uCAAuC;QACvC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ;SAC1C,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kEAAkE,EAAE;gBAC1G,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,sBAAsB,EAAE,gCAAgC,KAAa,EAAE,QAAgB,EAAE,OAAY;QACnG,uCAAuC;QACvC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ;SAC1C,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qEAAqE,EAAE;gBAC7G,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,uBAAuB,EAAE,iCAAiC,KAAa,EAAE,SAAiB,EAAE,OAAY;QACtG,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;SACnC,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,uBAAuB,EAAE,iCAAiC,KAAa,EAAE,SAAiB,EAAE,OAAY;QACtG,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;SACnC,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,+BAA+B,EAAE,yCAAyC,KAAa,EAAE,QAAgB,EAAE,OAAY;QACrH,uCAAuC;QACvC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,OAAO,CAAC,YAAY,GAAG,QAAQ;SACzC,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sDAAsD,EAAE;gBAC9F,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,+BAA+B,EAAE,yCAAyC,KAAa,EAAE,QAAgB,EAAE,OAAY;QACrH,uCAAuC;QACvC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,OAAO,CAAC,YAAY,GAAG,QAAQ;SACzC,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yDAAyD,EAAE;gBACjG,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,mBAAmB,EAAE,6BAA6B,KAAa,EAAE,WAAmB,EAAE,OAAY;QAChG,IAAI,aAAa,GAAG,UAAS,KAAK;YAChC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS;gBACT,MAAM,CAAC,CAAC,CAAC;YACX,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC;QACF,yCAAyC;QACzC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,WAAW;SAC5D,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uEAAuE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QACjJ,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;;;;;;;;;;AC7HF,sCAA6B,EAAoB,CAAC;AAEvC,2BAAmB,GAAG;IAC/B,IAAI,EAAE,gBAAI;IACV,cAAc,EAAE,wBAAwB,KAAa,EAAE,SAAc,EAAE,OAAY;QACjF,mCAAmC;QACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;SACrC,CAAC;QACF,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACjF,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,EAAE,yBAAyB,KAAa,EAAE,OAAa,EAAE,OAAY;QAClF,oCAAoC;QACpC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAS,OAAO,CAAC,UAAW,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;SACnE,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjJ,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,EAAE,yBAAyB,KAAa,EAAE,OAAa,EAAE,OAAY;QAClF,oCAAoC;QACpC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAS,OAAO,CAAC,UAAW,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE;SACnE,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;;;;;;;;;;AC1CF,sCAA+B,EAAoB,CAAC;AACpD,uCAA0B,GAAqB,CAAC;AAErC,2BAAmB,GAAG;IAC/B,IAAI,EAAE,gBAAI;IACV,qBAAqB,EAAE,+BAA+B,KAAa,EAAE,SAAiB,EAAE,OAAY;QAClG,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;SACnC,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gEAAgE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACtI,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,qBAAqB,EAAE,+BAA+B,KAAa,EAAE,SAAiB,EAAE,OAAY;QAClG,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;SACnC,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gEAAgE,EAAE,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,oBAAoB,EAAE,8BACpB,KAAa,EACb,SAAoD,EACpD,OAAY;QAEZ,yCAAyC;QAEzC,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACxC,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4DAA4D,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAClJ,CAAC;QACD,2CAA2C;QAC3C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,aAAa,EAAE,uBACb,KAAa,EACb,SAAoD,EACpD,OAAY;QAEZ,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACvC,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,oBAAoB,EAAE,8BACpB,KAAa,EACb,SAAoD,EACpD,OAAY;QAEZ,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SACxC,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,aAAa,EAAE,UAAS,KAAa,EAAE,SAAc,EAAE,OAAY;QACjE,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,sBAAS,CAAC,aAAa,CAAC,KAAK,CAAC;SACxC,CAAC;QACF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;;;;;;;;;;AC7EF,sCAA6B,EAAoB,CAAC;AAGvC,2BAAmB,GAAG;IAC/B,IAAI,EAAE,gBAAI;IACV,cAAc,EAAE,wBAAwB,KAAa,EAAE,SAAc,EAAE,OAAY;QACjF,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;SACrC,CAAC;QACF,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,KAAK,OAAO,GAAG,6CAA6C,GAAG,sDAAsD,CAAC,CAAC;QAC3M,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,EAAE,yBAAyB,KAAa,EAAE,OAAa,EAAE,OAAY;QAClF,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAS,OAAO,CAAC,UAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAU,OAAO,CAAC,UAAW,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;SAChJ,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjJ,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,eAAe,EAAE,yBAAyB,KAAa,EAAE,OAAa,EAAE,OAAY;QAClF,IAAI,MAAM,GAAqB;YAC7B,OAAO,EAAS,OAAO,CAAC,UAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAU,OAAO,CAAC,UAAW,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;SAChJ,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;;;;;;;;;;ACrCF,2CAA8B,GAA0B,CAAC;AACzD,mDAAqC,GAAkC,CAAC;AACxE,sCAAyB,GAAa,CAAC;AACvC,sCAAuB,EAAa,CAAC;AAErC,IAAiB,iBAAiB,CAkEjC;AAlED,WAAiB,iBAAiB,EAAC,CAAC;IAClC,4BAAmC,KAA6B,EAAE,eAAuB,EAAE,QAA0C;QAAnE,+BAAuB,GAAvB,uBAAuB;QAAE,wBAA0C,GAA1C,WAAW,oBAAQ,CAAC,YAAY,CAAC,SAAS;QACnI,IAAI,iBAAiB,GAAgC,EAAE,CAAC;QAExD,KAAK,CAAC,OAAO,CAAC,UAAC,IAAqB;YAClC,IAAI,QAAQ,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;YACvC,iBAAiB,CAAC,IAAI,CAAC,IAAI,6CAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YACrB,iBAAiB,GAAG,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;QACrE,CAAC;QACD,oBAAQ,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAE/C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,KAAK,GAAyB,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBACzD,IAAI,cAAc,GAAyB,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBACjE,EAAE,CAAC,CAAC,oBAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxI,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAChC,KAAK,CAAC;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,GAAgC,EAAE,CAAC;QAChD,GAAG,CAAC,CAAqB,UAAiB,EAAjB,uCAAiB,EAAjB,+BAAiB,EAAjB,IAAiB,CAAC;YAAtC,IAAI,YAAY;YACnB,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,6CAAoB,CAAC,YAAY,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;SACF;QAED,IAAI,cAAc,GAA2B,EAAE,CAAC;QAChD,IAAI,kBAAkB,GAAG,oBAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3E,GAAG,CAAC,CAAoB,UAAkB,EAAlB,yCAAkB,EAAlB,gCAAkB,EAAlB,IAAkB,CAAC;YAAtC,IAAI,WAAW;YAClB,cAAc,CAAC,IAAI,CAAC;gBAClB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE;gBACzB,iBAAiB,EAAE,WAAW,CAAC,oBAAoB,EAAE;gBACrD,iBAAiB,EAAE,WAAW,CAAC,oBAAoB,EAAE;gBACrD,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;gBACrC,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE;aAClC,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC;IA5Ce,oCAAkB,qBA4CjC;IAED,qCAAqC,YAAyC;QAC5E,IAAI,MAAM,GAAsC,IAAI,GAAG,EAAgC,CAAC;QAExF,GAAG,CAAC,CAAgB,UAAY,EAAZ,6BAAY,EAAZ,0BAAY,EAAZ,IAAY,CAAC;YAA5B,IAAI,OAAO;YACd,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,oBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBACD,EAAE,CAAC,CAAC,oBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;oBAChE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,IAAI,6CAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,CAAC;SACF;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,EAlEgB,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAkEjC;;;;;;;;;;ACxED,IAAiB,UAAU,CAwB1B;AAxBD,WAAiB,UAAU,EAAC,CAAC;IAEZ,kBAAO,GAAO,UAAU,EAAE,CAAC;IAExC;QACE,IAAM,IAAI,GAAG;YACX,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;YACrF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;YACnF,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;YACtF,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI;YACtF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAErE,IAAM,UAAU,GAAG;YACjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAChF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa;YAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;YACb,SAAS,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;AACL,CAAC,EAxBgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAwB1B;;;;;;;;;;ACrBD;IACE,8BAAoB,aAA8B;QAA9B,kBAAa,GAAb,aAAa,CAAiB;IAAG,CAAC;IAEtD,wCAAS,GAAT,UAAU,WAA0B;QAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAClD,CAAC;IACH,2BAAC;AAAD,CAAC;AANY,4BAAoB,uBAMhC;;;;;;;;;;ACND,wCAAyB,EAAe,CAAC;AACzC,IAAO,gBAAgB,GAAG,wBAAU,CAAC,gBAAgB,CAAC;AACtD,6CAA6B,GAAoB,CAAC;AAGlD,IAAM,SAAS,GAAG,CAAC,CAAC;AACpB,IAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC,IAAiB,SAAS,CA6tBzB;AA7tBD,WAAiB,SAAS,EAAC,CAAC;IAI1B;;;;;;;;;;;;;;;;;;;;;MAqBE;IACF,yBAAgC,SAAkB,EACnB,cAA4B,EAC5B,aAAkC,EAClC,aAAqB,EACrB,YAA0B,EAC1B,WAAgC,EAChC,WAAmB,EACnB,OAAiB;QAC9C,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,+GAA+G;QAC/G,qBAAqB;QACrB,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG;YACzC,WAAW,KAAK,aAAa;YAC7B,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC;YAChC,4CAA4C;YAC5C,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACtB,KAAK,QAAQ;gBACX,UAAU,CAAC,SAAS,EAClB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,CAAC,CAAC;gBACX,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,WAAW,CAAC,SAAS,EACnB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,CAAC,CAAC;gBACX,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,cAAc,CAAC,SAAS,EACtB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,CAAC,CAAC;gBACX,KAAK,CAAC;YACR;gBACE,MAAM,4DAA4D,CAAC;QACvE,CAAC;QAED,wKAAwK;QACxK,IAAI,sCAAsC,GAAG,UAAC,KAAc,EAAE,SAA8B,EAAE,UAAwB;YACpH,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3C,uJAAuJ;gBACvJ,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxC,iDAAiD;gBACjD,IAAI,eAAe,GAAuB,iCAAc,CAAC,kCAAkC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;gBAC/I,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC5B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,qHAAqH;QACrH,IAAI,GAAuB,CAAC;QAE5B,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;YAClE,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC;gBAC9C,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5C,IAAI,EAAE,GAAiC,iCAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;oBAC/G,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;wBACf,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;wBAC5C,sCAAsC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;wBAC3E,OAAO,OAAO,CAAC,YAAY,CAAC;wBAC5B,MAAM,CAAC,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;gBACvD,EAAE,CAAC,CAAC,cAAc,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU;oBACvD,cAAc,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxD,gCAAgC;oBAChC,oCAAoC,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;oBACvF,sCAAsC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC3E,MAAM,CAAC,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAED,qFAAqF;QACrF,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,GAAG,GAAG,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAC5E,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,WAAW,CAAC,CAAC;gBACf,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACrC,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,GAAG,GAAG,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7E,YAAY,EACZ,SAAS,EACT,KAAK,EACL,YAAY,EACZ,CAAC,CAAC,CAAC;gBACL,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACrC,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,sCAAsC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC3E,KAAK,CAAC;YACR,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,gBAAgB,GAAW,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC;QAC/F,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,KAAK,CAAM,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,wBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,YAAY,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAtIe,yBAAe,kBAsI9B;IAED,oBAA2B,SAAkB,EACnB,cAA4B,EAC5B,aAAqB,EACrB,YAA0B,EAC1B,WAAgC,EAChC,WAAmB,EACnB,OAAgB,EAChB,WAAkB;QAAlB,2BAAkB,GAAlB,kBAAkB;QAE1C,IAAI,WAAW,GAAG,UAAC,MAAU,EAAE,SAAiB;YAA7B,sBAAU,GAAV,UAAU;YAC3B,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC,CAAC;QAEF,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,EAAE,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC;oBAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,GAAG,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC/G,CAAC;gBACD,yHAAyH;gBACzH,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC/D,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC/D,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,iDAAiD;gBACjD,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC/D,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EAC7I,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzB,KAAK,CAAC;YACR,QAAQ,CAAC,OAAO;QAClB,CAAC;IACH,CAAC;IAlCe,oBAAU,aAkCzB;IAED,qBAA4B,SAAkB,EACnB,cAA4B,EAC5B,YAA0B,EAC1B,WAAgC,EAChC,WAAmB,EACnB,OAAgB,EAChB,WAAkB;QAAlB,2BAAkB,GAAlB,kBAAkB;QAC3C,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACpG,2HAA2H;gBAC3H,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBACpC,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBACpC,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,iDAAiD;gBACjD,2HAA2H;gBAC3H,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBACpC,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,EAChI,OAAO,EACP,YAAY,CAAC,CAAC;gBAChB,KAAK,CAAC;YACR,QAAQ,CAAC,OAAO;QAClB,CAAC;IACH,CAAC;IA1Be,qBAAW,cA0B1B;IAED,wBAA+B,SAAkB,EACnB,cAA4B,EAC5B,aAAqB,EACrB,YAA0B,EAC1B,WAAgC,EAChC,WAAmB,EACnB,OAAgB,EAChB,WAAkB;QAAlB,2BAAkB,GAAlB,kBAAkB;QAC9C,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,IAAI,MAAM,GAAuB,iCAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,EACpH,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,CAAC,CAAC;gBACf,IAAI,UAAU,GAAW,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC5B,yHAAyH;gBACzH,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,UAAU,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBAChG,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,IAAI,OAAO,GAAuB,iCAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,EACrH,cAAc,EACd,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,WAAW,CAAC,CAAC;gBACf,OAAO,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAChE,KAAK,CAAC;YACR,KAAK,YAAY;gBACf,sBAAsB,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzE,KAAK,CAAC;YACR,QAAQ,CAAC,OAAO;QAClB,CAAC;IACH,CAAC;IAnCe,wBAAc,iBAmC7B;IAED,gCAAuC,SAAkB,EACnB,cAA4B,EAC5B,OAAgB,EAChB,YAA0B;QAC9D,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAC5C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YAC9C,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YAChD,EAAE,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC9C,uBAAuB;gBAEvB,oCAAoC,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAEzF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,qBAAqB;gBACrB,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBACpD,IAAI,WAAW,GAAuB,iCAAc,CAAC,qCAAqC,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC7H,QAAQ,CAAC,iCAAc,CAAC,8BAA8B,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBAE1G,uFAAuF;gBACvF,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,qBAAqB;YACrB,mBAAmB;YACnB,IAAI,OAAO,GAAuB,iCAAc,CAAC,qCAAqC,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAErI,uFAAuF;YACvF,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAE1B,QAAQ,CAAC,iCAAc,CAAC,8BAA8B,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAnCe,gCAAsB,yBAmCrC;IAED,8CAAqD,SAAkB,EACnB,cAA4B,EAC5B,OAAgB,EAChB,YAA0B;QAC5E,IAAI,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAE1D,EAAE,CAAC,CAAC,cAAc,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;YACnH,+CAA+C;YAC/C,IAAI,QAAQ,GAAiC,iCAAc,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAC7G,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACnD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,gBAAgB,GAAuB,iCAAc,CAAC,0CAA0C,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;gBACtI,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC7B,OAAO,OAAO,CAAC,WAAW,CAAC;oBAC3B,OAAO,OAAO,CAAC,YAAY,CAAC;oBAC5B,MAAM,CAAC;gBACT,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,CAAC,mBAAmB,KAAK,SAAS,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvF,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC5D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,QAAQ,CAAC,MAAM,CAAC,iCAAc,CAAC,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBAClJ,CAAC;YACH,CAAC;YAED,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC5B,uFAAuF;gBACvF,IAAI,WAAW,GAAuB,iCAAc,CAAC,qCAAqC,CAAS,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC3I,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,oDAAoD;YACpD,IAAI,WAAW,GAAuB,iCAAc,CAAC,qCAAqC,CAAS,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;YAC3I,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC5B,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAChC,CAAC;YACD,QAAQ,CAAC,iCAAc,CAAC,qCAAqC,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAvCe,8CAAoC,uCAuCnD;IAED;;OAEG;IACH,uBAA8B,SAAkB,EAAE,OAAgB;QAChE,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC1D,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QAC5C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC9C,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACpC,CAAC;IANe,uBAAa,gBAM5B;IAED,kBAAyB,eAA4C,EAAE,KAAc,EAAE,UAAU;QAC/F,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAED,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC,YAAY,CAAC;YAC1B,OAAO,KAAK,CAAC,WAAW,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC,YAAY,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;YAE5C,IAAI,iBAAiB,GAAY,UAAU,CAAC,aAAa,IAAI,IAAI,IAAI,UAAU,CAAC,aAAa,KAAK,MAAM,CAAC;YACzG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtB,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YAC9C,CAAC;YAED,EAAE,CAAC,CAAC,CAAC,KAAK,CAAM,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC5B,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,cAAc,GAAiC,iCAAc,CAAC,wBAAwB,CAAqB,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC5I,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC3B,KAAK,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;gBACnD,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,KAAK,CAAC,YAAY,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IA5Ce,kBAAQ,WA4CvB;IAED,kBAAyB,KAAc,EAAE,UAAwB;QAC/D,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3B,CAAC;QACD,IAAI,iBAAiB,GAAY,UAAU,CAAC,aAAa,IAAI,IAAI,IAAI,UAAU,CAAC,aAAa,KAAK,MAAM,CAAC;QACzG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAhBe,kBAAQ,WAgBvB;IAED,2BAAkC,UAIuB,EACvB,gBAAkC,EAClC,YAA0B,EAC1B,WAAgC,EAChC,WAAoB,EACpB,OAAiB;QAEjD,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;YACpB,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,2GAA2G;QAC3G,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,cAAgE,CAAC;QACrE,GAAG,CAAC,CAAsB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,CAAC;YAAhC,IAAI,aAAa;YACpB,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;YAE1C,EAAE,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,KAAK,YAAY,IAAI,aAAa,CAAC,cAAc,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC9G,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI;4BAC/C,aAAa,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;4BACpD,cAAc,GAAG;gCACf,GAAG,EAAU,aAAa,CAAC,cAAc,CAAC,UAAU;gCACpD,GAAG,EAAU,aAAa,CAAC,cAAc,CAAC,UAAU;6BACrD,CAAC;wBACJ,CAAC;wBAAC,IAAI,CAAC,CAAC;4BACN,cAAc,GAAG,KAAK,CAAC;wBACzB,CAAC;oBACH,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,KAAK,cAAc,CAAC,GAAG;4BAC9D,aAAa,CAAC,cAAc,CAAC,UAAU,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;4BACnE,cAAc,GAAG,KAAK,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,cAAc,GAAG,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;SACF;QAED,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,aAAmE,CAAC;QACxE,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1B,KAAK,QAAQ;oBACX,aAAa,GAAG,QAAQ,CAAC;oBACzB,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,aAAa,GAAG,KAAK,CAAC;oBACtB,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,aAAa,GAAG,cAAc,GAAG,qBAAqB,GAAG,KAAK,CAAC;oBAC/D,KAAK,CAAC;gBACR,QAAQ,CAAC,gBAAgB;YAC3B,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACtB,KAAK,QAAQ;gBACX,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC5F,KAAK,CAAC;YACR,KAAK,KAAK;gBACR,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBACzF,KAAK,CAAC;YACR,KAAK,qBAAqB;gBACxB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBAChG,KAAK,CAAC;YACR,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;QAED,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IA/Ee,2BAAiB,oBA+EhC;IAED,mBAA0B,UAIuB,EACvB,gBAAkC,EAClC,YAA0B,EAC1B,WAAgC,EAChC,OAAgB,EAChB,WAAoB;QAC5C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,GAAG,CAAC,CAAsB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,CAAC;YAAhC,IAAI,aAAa;YACpB,MAAM,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;gBACpC,KAAK,QAAQ;oBACX,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC;oBAC1E,WAAW,IAAI,CAAC,CAAC;oBACjB,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnD,WAAW,IAAI,CAAC,CAAC;oBACjB,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,IAAI,aAAa,GAAuB,iCAAc,CAAC,kCAAkC,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,EAC/D,aAAa,CAAC,cAAc,EAC5B,SAAS,EACT,KAAK,EACL,gBAAgB,CAAC,CAAC;oBAC5G,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC1B,IAAI,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;wBACtC,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;4BACnB,MAAM,GAAG,CAAC,CAAC;wBACb,CAAC;wBACD,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;wBAClD,WAAW,IAAI,MAAM,CAAC;oBACxB,CAAC;oBACD,KAAK,CAAC;gBACR,QAAQ,CAAC,gBAAgB;YAC3B,CAAC;SACF;QAED,IAAI,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;QAEtC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,CAAC,MAAM,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5D,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxK,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YACxD,qCAAqC;YACpC,KAAK,YAAY;gBACf,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxK,KAAK,CAAC;YACR,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IA7De,mBAAS,YA6DxB;IAED,sBAA6B,UAIuB,EACvB,gBAAkC,EAClC,YAA0B,EAC1B,WAAgC,EAChC,OAAgB,EAChB,WAAoB;QAG/C,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,aAAa;YAClD,MAAM,CAAC;gBACL,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,GAAS,KAAM,CAAC,SAAS,CAAC,GAAS,KAAM,CAAC,SAAS;gBAC9H,WAAW,EAAE,aAAa,CAAC,aAAa,GAAS,KAAM,CAAC,WAAW;aACpE,CAAC;QACJ,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,eAAe,GAAW,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAEpE,oEAAoE;QACpE,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC3B,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,QAAQ;gBACX,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC;oBACvC,OAAO,CAAC,MAAM,GAAG,wBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzD,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,MAAM,GAAG,wBAAU,CAAC,KAAK,CAAC,eAAe,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAED,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACxK,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YAChE,qCAAqC;YACpC,KAAK,YAAY;gBACf,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACtK,KAAK,CAAC;YACR,QAAQ,CAAC,gBAAgB;QAC3B,CAAC;QAED,EAAE,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAhDe,sBAAY,eAgD3B;IAED,0BAAiC,UAKuB,EACvB,gBAAkC,EAClC,YAA0B,EAC1B,WAAgC,EAChC,OAAgB,EAChB,WAAoB;QACnD,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,aAAa;YAClD,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;gBACzC,IAAI,MAAM,GAAG,aAAa,CAAC,UAAU,IAAI,IAAI,GAAG,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC7E,MAAM,CAAC;oBACL,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS;oBAC1E,WAAW,EAAG,KAAK,CAAC,WAAW,GAAG,MAAM;iBACzC,CAAC;YACJ,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,MAAM,CAAC;oBACL,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAEzD,EAAE,CAAC,CAAC,YAAY,CAAC,cAAc,KAAK,SAAS;YAC5C,YAAY,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU;YACnE,YAAY,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpB,KAAK,QAAQ;oBACX,OAAO,CAAC,MAAM,GAAW,iCAAc,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBACzI,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,OAAO,GAAW,iCAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBAC9H,KAAK,CAAC;gBACR,QAAQ,CAAC,gBAAgB;YAC3B,CAAC;YACD,QAAQ,CAAC,iCAAc,CAAC,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1I,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,0BAA0B,UAAC;YAE/B,GAAG,CAAC,CAAsB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,CAAC;gBAAhC,IAAI,aAAa;gBACpB,EAAE,CAAC,CAAC,0BAA0B,IAAI,IAAI,IAAI,0BAA0B,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC3G,0BAA0B,GAAG,aAAa,CAAC;gBAC7C,CAAC;aACF;YAED,IAAI,OAAO,GAAW,iCAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,0BAA0B,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAEpK,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpB,KAAK,QAAQ;oBACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,iCAAc,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,0BAA0B,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;oBACtK,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;oBACxK,KAAK,CAAC;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC/C,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;oBACnI,KAAK,CAAC;gBACR,KAAK,YAAY;oBACf,QAAQ,CAAC,iCAAc,CAAC,kCAAkC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;oBACnI,KAAK,CAAC;gBACR,QAAQ,CAAC,gBAAgB;YAC3B,CAAC;YAED,EAAE,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC;gBAC9B,OAAO,CAAC,OAAO,GAAG,wBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACzD,CAAC;QAEH,CAAC;IACH,CAAC;IAxEe,0BAAgB,mBAwE/B;IAED,yBAAgC,UAAkB,EAAE,eAAuB,EAAE,SAA8B,EAAE,UAAwB,EAAE,gBAAkC,EAAE,OAAgB,EAAE,cAAuB;QAClN,IAAI,aAAa,GAAG,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACvE,IAAI,kBAAkB,GAAG,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtF,IAAI,KAAK,GAAY;YACnB,kBAAkB,EAAE,aAAa,GAAG,UAAU,GAAG,EAAE;SACpD,CAAC;QAEF,EAAE,CAAC,CAAC,aAAa,IAAI,kBAAkB,CAAC,CAAC,CAAC;YACxC,QAAQ,CAAC,kBAAkB,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAErF,IAAI,qBAAqB,GAAG,iCAAc,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YACvG,KAAK,CAAC,eAAe,GAAG,qBAAqB,IAAI,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC;YACpF,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClB,KAAK,QAAQ;oBACX,EAAE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC;wBAClC,IAAI,aAAa,GAAG,iCAAc,CAAC,8BAA8B,CAAC,qBAAqB,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;wBACzJ,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;4BAC1B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;wBACvC,CAAC;oBACH,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACN,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;oBACpC,CAAC;oBACD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBACxB,KAAK,CAAC;gBAER,KAAK,SAAS,CAAC;gBACf,KAAK,YAAY;oBACf,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBACxB,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC;wBAC9C,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,GAAG,GAAG,GAAG,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAE;oBACvF,CAAC;oBACD,KAAK,CAAC;gBACR,QAAQ,CAAC,gBAAgB;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IArCe,yBAAe,kBAqC9B;IAED,4BAAmC,UAAwB;QACzD,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;IACxC,CAAC;IALe,4BAAkB,qBAKjC;IAED,iBAAwB,KAAc;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;IAChJ,CAAC;IAFe,iBAAO,UAEtB;AACH,CAAC,EA7tBgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QA6tBzB;;;;;;;;;;ACvuBD,sCAA+B,EAAa,CAAC;AAE7C,IAAiB,aAAa,CA+O7B;AA/OD,WAAiB,aAAa,EAAC,CAAC;IAW9B,qGAAqG;IACrG,8BAA8B,IAAmB,EAAE,IAAc;QAC/D,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8BAA8B,IAAmB,EAAE,IAAc;QAC/D,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,sBAAsB,IAAmB,EAAE,IAAc;QACvD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB,IAAmB,EAAE,IAAc;QACtD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yBAAyB,IAAmB,EAAE,IAAc;QAC1D,IAAI,UAAkB,CAAC;QACvB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;QACnC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,mGAAmG;YACnG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAErC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnC,IAAI,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAC1D,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC7B,MAAM,CAAC,gBAAgB,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,qGAAqG;IAErG,IAAM,oBAAoB,GAA+B,CAAC;YACtD,GAAG,EAAE,yBAAyB;YAC9B,KAAK,EAAE,0BAA0B;YACjC,SAAS,EAAE,oBAAoB;SAChC,EAAE;YACD,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,yBAAyB;YAChC,SAAS,EAAE,oBAAoB;SAChC,EAAE;YACD,GAAG,EAAE,kBAAkB;YACvB,KAAK,EAAE,mBAAmB;YAC1B,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,YAAY;SACxB,EAAE;YACD,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,eAAe;YACtB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,YAAY;SACxB,EAAE;YACD,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,WAAW;SACvB,EAAE;YACD,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,SAAS,EAAE,eAAe;SAC3B,EAAE;YACD,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,YAAY;YACnB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,SAAS,EAAE,eAAe;SAC3B,EAAE;YACD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa;YACpB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,eAAe;SAC3B,EAAE;YACD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa;YACpB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,eAAe;SAC3B,EAAE;YACD,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa;YACpB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,eAAe;SAC3B,EAAE;YACD,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,kBAAkB;YACzB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,UAAU;YAC5B,kBAAkB,EAAE,cAAc;YAClC,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAC;IAEL;;;;OAIG;IACH,iCAAiC,GAAW;QAC1C,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACR,2GAA2G;YAC3G,2EAA2E;YAC3E,mHAAmH;YACnH,wFAAwF;YACxF,IAAI,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;YAEpE,6GAA6G;YAC7G,0FAA0F;YAC1F,MAAM,CAAC,MAAM,CAAC,YAAU,aAAa,8BAA2B,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,2CAA2C,GAAW,EAAE,kBAAiC,EAAE,IAAqB;QAArB,oBAAqB,GAArB,uBAAqB;QAC9G,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,CAA4B,UAAoB,EAApB,6CAAoB,EAApB,kCAAoB,EAApB,IAAoB,CAAC;gBAAhD,IAAI,mBAAmB;gBAC1B,4HAA4H;gBAC5H,8HAA8H;gBAC9H,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACnD,QAAQ,CAAC;gBACX,CAAC;gBAED,8GAA8G;gBAC9G,sHAAsH;gBACtH,oHAAoH;gBACpH,qHAAqH;gBACrH,oBAAoB;gBACpB,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjF,QAAQ,CAAC;gBACX,CAAC;gBAED,IAAI,SAAS,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;gBACjG,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACxD,CAAC;aACF;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,wCAAwC,GAAW,EAAE,4BAAqD;QACxG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACR,GAAG,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED;QACE,oEAAoE;QACpE,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,GAAG,KAAK,kBAAkB,EAA/B,CAA+B,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,GAAG,EAAR,CAAQ,CAAC,CAAC;IACxG,CAAC;IAHe,8BAAgB,mBAG/B;IAED;;;;;;OAMG;IACH,qBAA4B,IAAmB,EAAE,IAAY,EAAE,IAAqB;QAArB,oBAAqB,GAArB,uBAAqB;QAClF,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,GAAG,CAAC,CAA4B,UAAoB,EAApB,6CAAoB,EAApB,kCAAoB,EAApB,IAAoB,CAAC;gBAAhD,IAAI,mBAAmB;gBAC1B,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;aAClE;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IARe,yBAAW,cAQ1B;IAED;;;;;;;OAOG;IACH,2BAAkC,OAA2B,EAAE,kBAAiC,EAAE,IAAqB,EAAE,uBAAiF;QAAxG,oBAAqB,GAArB,uBAAqB;QAAE,uCAAiF,GAAjF,wDAAiF;QACxM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,8EAA8E;YAC9E,IAAI,4BAA4B,GAAG,UAAC,GAAW;gBAC7C,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACR,GAAG,GAAG,iCAAiC,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACzE,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC;YACb,CAAC,CAAC;YAEF,uCAAuC;YACvC,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAde,+BAAiB,oBAchC;AACH,CAAC,EA/OgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA+O7B;;;;;;;;;;AClPD,cAAc;AACD,mCAA2B,GAAG,iBAAiB,CAAC;AAChD,qCAA6B,GAAG,aAAa,CAAC;;;;;;;;;;ACF3D,wCAA2B,GAAe,CAAC;AAAlC,8CAAkC;AAC3C,2CAA8B,GAAkB,CAAC;AAAxC,uDAAwC;AACjD,mDAAqC,GAA0B,CAAC;AAAvD,6EAAuD;AAChE,kDAAmC,GAAyB,CAAC;AAApD,wEAAoD;;;;;;;;;;ACH7D,WAAY,kBAAkB;IAC5B,iEAAW;IACX,iFAAe;IACf,+FAAsB;IACtB,+EAAc;AAChB,CAAC,EALW,0BAAkB,KAAlB,0BAAkB,QAK7B;AALD,IAAY,kBAAkB,GAAlB,0BAKX;;;;;;;;;;ACLD,8CAAsC,GAAqB,CAAC;AAAnD,0EAAmD;;;;;;;;;;;ACA5D,wDAA0E;AAC1E,qCAAsC;AAItC,qCAAuC;AACvC,gEAAuF;AACvF,yCAAsC;AACtC,uEAAmG;AAGnG,oEAA+F;AAG/F;IAkBE,yCAAY,mBAAkD,EAAU,4BAAkC;QAAlC,iFAAkC;QAA1G,iBAiBC;QAjBuE,iCAA4B,GAA5B,4BAA4B,CAAM;QAZ1G,gCAA2B,GAA6C,IAAI,sBAAe,CAA0B;YACnH,kBAAkB,EAAE,EAAE;YACtB,4BAA4B,EAAE,CAAC;YAC/B,qBAAqB,EAAE,CAAC;YACxB,8BAA8B,EAAE,EAAE;SACnC,CAAC,CAAC;QAEH,yBAAoB,GAA4C,EAAE,CAAC;QACnE,oCAA+B,GAAwD,EAAE,CAAC;QAMxF,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,uBAAuB,GAAG,8DAA4B,CAAC,iBAAiB,CAAC;QAI9E,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,UAAC,aAAsC;YACnG,KAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YAEjC,KAAyB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;gBAAnC,IAAI,YAAY;gBACnB,KAAI,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;aAC1C;YACD,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,KAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oEAA0B,GAA1B,UAA2B,gBAAwB;QACjD,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAC;QAChD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,mEAAyB,GAAzB;QAAA,iBASC;QARC,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAC,SAAS,CAAC;YAEhE,KAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAC,YAA8B;gBAGnF,KAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAUD,yDAAe,GAAf,UAAgB,YAA8B,EAAE,eAAuB;QAAvB,yDAAuB;QACrE,IAAI,6BAAgE,CAAC;QAErE,6BAA6B,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAC,qBAA4C;YAC5G,OAAO,qBAAqB,CAAC,cAAc,KAAK,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,IAAI,6BAA6B,IAAI,IAAI,EAAE;YAEzC,6BAA6B,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;SAC7D;aAAM;YAEL,QAAQ,YAAY,CAAC,IAAI,EAAE;gBACzB,KAAK,4BAA4B;oBAC/B,6BAA6B,GAAG,IAAI,0EAAkC,CACpE,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,iBAAiB,EAAE,EACA,YAAa,CAAC,WAAW,EAAE,EAC3B,YAAa,CAAC,cAAc,CAC7D,CAAC;oBACF,MAAM;gBACR,KAAK,yBAAyB;oBAC5B,6BAA6B,GAAG,IAAI,oEAA+B,CACjE,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,iBAAiB,EAAE,EAChC,YAAY,CAAC,mBAAmB,EAChC,YAAY,CAAC,OAAO,CACrB,CAAC;oBACF,MAAM;gBACR;oBACE,6BAA6B,GAAG,IAAI,+CAAqB,CACvD,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,iBAAiB,EAAE,EAChC,YAAY,CAAC,mBAAmB,CACjC,CAAC;oBACF,MAAM;aACT;YACD,6BAA6B,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC;YAC5F,IAAI,CAAC,+BAA+B,CAAC,6BAA6B,CAAC,SAAS,CAAC,GAAG,6BAA6B,CAAC;YAC9G,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;IACH,CAAC;IAGD,gEAAsB,GAAtB,UAAuB,6BAAoC;QAA3D,iBA0BC;QA1BsB,oFAAoC;QACzD,IAAI,YAAY,GAAG,IAAI,CAAC,iCAAiC,EAAE,CAAC;QAE5D,IAAI,WAAW,GAAW,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAC,IAAY,EAAE,IAA2B;YACrG,OAAO,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC7C,CAAC,EAAE,CAAC,CAAC,CAAC;QAGN,IAAI,6BAA6B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7I,IAAI,6BAA6B,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAC,OAA4B;gBAClH,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,uBAAuB,GAAG,6BAA6B,IAAI,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;SAC1I;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAC,KAAK;YAC5D,OAAO,KAAK,CAAC,IAAI,KAAK,KAAI,CAAC,uBAAuB,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;YACpC,kBAAkB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,4BAA4B,CAAC;YAC9E,4BAA4B,EAAE,WAAW;YACzC,qBAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACtE,8BAA8B,EAAE,IAAI,CAAC,iCAAiC,EAAE;SACzE,CAAC,CAAC;IACL,CAAC;IAOD,yDAAe,GAAf,UAAgB,KAA4B;QAA5C,iBASC;QARC,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,MAAM,iCAAiC,CAAC;SACzC;QACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,CAAC,SAAS,CAAC;YACtF,eAAe,CAAC,UAAU,EAAE,CAAC;YAC7B,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,uDAAa,GAAb;QAAA,iBAYC;QAXC,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,KAA8B,UAAiC,EAAjC,SAAI,CAAC,sBAAsB,IAAI,EAAE,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;YAA5D,IAAI,iBAAiB;YACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,EAAE;gBACxF,iBAAiB,CAAC,UAAU,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,iBAAiB,CAAC,aAAa,EAAE;aAChD;SACF;QAED,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YACnD,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,uDAAa,GAAb;QAAA,iBAaC;QAZC,IAAI,KAAK,GAA4B,EAAE,CAAC;QAExC,KAA8B,UAAiC,EAAjC,SAAI,CAAC,sBAAsB,IAAI,EAAE,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;YAA5D,IAAI,iBAAiB;YACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,EAAE;gBACxF,KAAK,CAAC,IAAI,OAAV,KAAK,EAAS,iBAAiB,CAAC,sBAAsB,EAAE,EAAE;gBAC1D,iBAAiB,CAAC,UAAU,EAAE,CAAC;aAChC;SACF;QAED,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YACnD,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAAiC,GAAjC;QACE,IAAI,wBAAwB,GAAG,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YACvC,IAAI,MAAM,GAAG,oBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAK,IAAI,YAAK,CAAC,IAAI,EAAV,CAAU,CAAC,CAAC;YAChF,KAA6B,UAAmB,EAAnB,WAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;gBAA7C,IAAI,gBAAgB;gBACvB,wBAAwB,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC;qBAClE,MAAM,CAAC,UAAC,IAAY,EAAE,SAAgC;oBACrD,OAAO,IAAI,GAAG,SAAS,CAAC,uBAAuB,CAAC;gBAClD,CAAC,EAAE,CAAC,CAAC,CAAC;aACT;SACF;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IASD,kEAAwB,GAAxB,UAAyB,SAAiB,EAAE,aAAqB;QAArB,qDAAqB;QAC/D,IAAI,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAE5D,IAAI,KAAK,IAAI,IAAI,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;IACH,CAAC;IAMD,wEAA8B,GAA9B,UAA+B,SAAiB,EAAE,cAAmD,EAAE,aAAqB;QAA5H,iBAcC;QAdsG,qDAAqB;QAC1H,IAAI,KAAK,GAAG,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO;SACR;QAED,IAAI,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,UAAU,GAAoB,SAAE,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,aAAa,EAAE;YACjB,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC/D;QAED,UAAU,CAAC,SAAS,CAAC,cAAM,YAAI,CAAC,sBAAsB,EAAE,EAA7B,CAA6B,CAAC,CAAC;IAC5D,CAAC;IACH,sCAAC;AAAD,CAAC;AA5OY,0EAA+B;;;;;;;;;;;;;;;;;;;;;;;;ACb5C,6CAAkD;AAClD,qEAAmG;AAGnG,wCAAsC;AAEtC,2CAA0C;AAE1C,IAAI,GAAG,GAAG,sBAAS,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;AAE3D;IAAwD,sDAA+B;IAMrF,4CAAY,IAAY,EAAE,cAAsB,EAAS,QAAgB,EAAS,cAAsB,EAAE,MAAa,EAAE,MAAa;QAA5B,sCAAa;QAAE,sCAAa;QAAtI,YACE,kBAAM,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SACnD;QAFwD,cAAQ,GAAR,QAAQ,CAAQ;QAAS,oBAAc,GAAd,cAAc,CAAQ;QALxG,mBAAa,GAAyC,EAAE,CAAC;QACzD,kBAAY,GAAkB,EAAE,CAAC;QAEzB,gBAAU,GAAgC,IAAI,GAAG,EAAE,CAAC;;IAI5D,CAAC;IAED,sBAAI,wDAAQ;aAAZ;YACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzE,MAAM,uDAAuD,CAAC;aAC/D;YACD,IAAI,GAAG,GAAW,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,OAAO,qBAAmB,GAAK,CAAC;aACjC;iBAAM;gBACL,OAAO,qBAAmB,GAAK,CAAC;aACjC;QACH,CAAC;;;OAAA;IAED,sBAAI,0DAAU;aAAd;YACE,IAAI,MAAM,GAA+E,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvH,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC/B,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,YAAY;oBAC5C,OAAO,YAAY,CAAC,aAAa,EAAE,KAAK,iCAAkB,CAAC,eAAe,CAAC;gBAC7E,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEV,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,YAAY;oBAC3C,OAAO,YAAY,CAAC,aAAa,EAAE,KAAK,iCAAkB,CAAC,cAAc,CAAC;gBAC5E,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEV,OAAO;oBACL,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAO,CAAC,OAAO,CAAC,6DAA6D,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;oBAC9K,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAO,CAAC,OAAO,CAAC,4DAA4D,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE;iBAC3K,CAAC;aACH;iBAAM;gBACL,OAAO;oBACL,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAO,CAAC,OAAO,CAAC,6DAA6D,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;iBAC9J,CAAC;aACH;QACH,CAAC;;;OAAA;IAED,4DAAe,GAAf,UAAgB,YAA8B;QAC5C,iBAAM,eAAe,YAAC,YAAY,CAAC,CAAC;QACpC,GAAG,CAAC,wCAAsC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAG,CAAC,CAAC;QAE1E,IAAI,QAAQ,GAA0D,YAAa,CAAC,WAAW,EAAE,CAAC;QAClG,KAAoB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAAzB,IAAI,OAAO;YACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,OAAuB,IAAK,cAAO,CAAC,UAAU,EAAlB,CAAkB,CAAC,CAAC;IAChH,CAAC;IAED,sBAAI,wDAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,UAAC,YAAY;gBACpD,OAAuC,YAAa,CAAC,OAAO,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC;;;OAAA;IAED,sBAAI,2DAAW;aAAf;YACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;;;OAAA;IAED,6DAAgB,GAAhB;QACE,IAAI,mBAAmB,GAA4B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjF,IAAI,uBAAuB,GAAY,mBAAmB,CAAC,IAAI,CAAC,UAAC,YAA2C;YAC1G,OAAO,YAAY,CAAC,aAAa,EAAE,KAAK,iCAAkB,CAAC,eAAe,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,GAAuB,uBAAuB,CAAC,CAAC,CAAC,iCAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,iCAAkB,CAAC,cAAc,CAAC;QAEtI,IAAI,YAAY,GAA6E,mBAAmB,CAAC,IAAI,CAAC,UAAC,YAA2C;YAChK,OAAO,YAAY,CAAC,aAAa,EAAE,KAAK,UAAU,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,6CAA6C,CAAC;SACrD;QAED,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,cAAE,QAAQ,EAAE,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;IACjG,CAAC;IAED,sBAAI,yDAAS;aAAb;YACE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,MAAM,uEAAuE,CAAC;aAC/E;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,CAAC;;;OAAA;IACH,yCAAC;AAAD,CAAC,CA1FuD,qEAA+B,GA0FtF;AA1FY,gFAAkC;;;;;;;;;;;;;;;;;;;;;;;;ACX/C,wDAAgE;AAIhE;IAA8D,mDAAqB;IAAnF;;IAGA,CAAC;IAAD,sCAAC;AAAD,CAAC,CAH6D,+CAAqB,GAGlF;AAHqB,0EAA+B;;;;;;;;;;;ACJrD,wCAA+C;AAE/C,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAe,CAAC;AAEvC,wBAAgB,GAAG;IAO5B,uBAAuB,EAAE,UAAS,IAAY,EAAE,EAAc;QAAd,mCAAc;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;YACzC,IAAI,aAAa,GAAG,4BAAkB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;aACvC;SACF;IACH,CAAC;IAUD,6BAA6B,EAAE,UAAS,SAAc,EAAE,EAAW;QACjE,IAAI,EAAE,EAAE;YACN,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SACzC;aAAM;YACL,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAChD;IACH,CAAC;IASD,+BAA+B,EAAE,UAAS,EAAc;QAAd,mCAAc;QACtD,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACxC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAMD,sCAAsC,EAAE;QACtC,IAAI,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE;YAC/C,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACxC;IACH,CAAC;IAOD,4BAA4B,EAAG;QAC7B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF,CAAC;;;;;;;;;;;AClEF;IAqBE,0BAAY,MAAiB,EAAE,IAAY;QAZnC,YAAO,GAAG,KAAK,CAAC;QAatB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,iCAAM,GAAN;QAAA,iBAmEC;QAjEC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QAGD,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAGtC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACxD,MAAM,IAAI,KAAK,CAAC,+CAA6C,IAAI,CAAC,IAAM,CAAC,CAAC;SAC3E;QAGD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;YACnE,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAGD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAuB,IAAI,CAAC,IAAM,CAAC,CAAC;SACrD;QAGD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAGlD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAGtC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAGpF,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;YAC3F,MAAM,IAAI,KAAK,CAAC,+EAA6E,IAAI,CAAC,IAAM,CAAC,CAAC;SAC3G;QAGD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC9C,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAElB,GAAG,EAAE;gBACH,OAAO,KAAI,CAAC,KAAK,CAAC;YACpB,CAAC;YACD,GAAG,EAAE,UAAC,KAAU;gBACd,IAAI,KAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBAExB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;oBAE7B,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBAGnB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAGtB,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;iBACnC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,kCAAO,GAAP;QAEE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QAGD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAGlH,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SACvC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,sCAAW,GAAnB,UAAoB,KAAiB;QAEnC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxE,OAAO;SACR;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACrC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QACnC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QACvC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAGzC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAKO,oCAAS,GAAjB,UAAkB,KAAiB;QAAnC,iBAuFC;QAtFC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO;SACR;QAGD,IAAI,CAAC,aAAa,GAAG;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QAGF,KAAK,CAAC,IAAI,GAAG;YAAC,eAAoB;iBAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;gBAApB,0BAAoB;;;YAChC,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAE9B,IAAI,OAAO,GAAG,WAAI,CAAC,aAAa,CAAC,IAAI,EAAC,IAAI,YAAC,KAAI,CAAC,KAAK,SAAK,KAAK,EAAC,CAAC;YAEjE,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,EAAE,CAAC;oBAClC,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,MAAM,EAAE,KAAI,CAAC,KAAK;oBAClB,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,QAAQ;iBACf,CAAC,CACH,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,KAAK,CAAC,GAAG,GAAG;YACV,IAAI,MAAM,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;YAErD,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,EAAE,CAAC;oBACpC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,MAAM;oBACxB,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,KAAI,CAAC,KAAK;oBAClB,OAAO,EAAE,CAAC,MAAM,CAAC;oBACjB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC,CAAC;YAEJ,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,CAAC,OAAO,GAAG;YAAC,eAAoB;iBAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;gBAApB,0BAAoB;;;YACnC,IAAI,OAAO,GAAG,WAAI,CAAC,aAAa,CAAC,OAAO,EAAC,IAAI,YAAC,KAAI,CAAC,KAAK,SAAK,KAAK,EAAC,CAAC;YAEpE,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,EAAE,CAAC;oBACpC,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,MAAM,EAAE,KAAI,CAAC,KAAK;oBAClB,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC,CAAC;YAEJ,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG;YACZ,IAAI,MAAM,GAAG,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;YAEvD,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,EAAE,CAAC;oBACpC,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,KAAI,CAAC,KAAK;oBAClB,OAAO,EAAE,CAAC,MAAM,CAAC;oBACjB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC,CAAC;YAEJ,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,GAAG,UAAC,KAAa,EAAE,WAAmB;YAAE,eAAoB;iBAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;gBAApB,8BAAoB;;;YACtE,IAAI,OAAO,GAAG,WAAI,CAAC,aAAa,CAAC,MAAM,EAAC,IAAI,YAAC,KAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,SAAK,KAAK,EAAC,CAAC;YAEvF,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,EAAE,CAAC;oBACpC,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,MAAM,EAAE,KAAI,CAAC,KAAK;oBAClB,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC,CAAC;YAEJ,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IACH,uBAAC;AAAD,CAAC;AA7NY,4CAAgB;;;;;;;;;;;ACF7B,yCAAuC;AACvC,qCAAoC;AACpC,iDAAkD;AAClD,wDAA+D;AAC/D,6CAA0C;AAC1C,iDAAkD;AAClD,kDAAoD;AACpD,oDAAwD;AACxD,mDAAsD;AACtD,iDAAkD;AAClD,wDAA+D;AAC/D,mDAAsD;AACtD,qDAA0D;AAC1D,yDAAiE;AACjE,6DAAyE;AACzE,4CAAyC;AACzC,0CAAqC;AACrC,+CAA8C;AAC9C,wDAA+D;AAC/D,4CAAyC;AACzC,uDAA8D;AAC9D,yDAAiE;AACjE,sDAA2D;AAC3D,yCAAmC;AACnC,sDAA4D;AAC5D,8CAA6C;AAC7C,4DAAwE;AACxE,gEAA+E;AAC/E,uDAA6D;AAC7D,4CAAyC;AACzC,iDAAkD;AAClD,gEAAgF;AAChF,sEAA2F;AAC3F,wEAA+F;AAC/F,oEAAuF;AACvF,wDAA+D;AAC/D,wDAAgE;AAChE,iDAAkD;AAClD,6CAA2C;AAC3C,gDAAgD;AAChD,sDAA4D;AAC5D,kDAAmD;AACnD,qDAA0D;AAC1D,qDAA0D;AAC1D,+CAA8C;AAC9C,sDAA4D;AAC5D,4CAAyC;AACzC,yDAAiE;AACjE,4CAAyC;AACzC,sDAA4D;AAC5D,oDAA8E;AAC9E,wDAAsF;AACtF,oEAA6G;AAC7G,2DAA2F;AAC3F,4DAA6F;AAC7F,sDAAkF;AAClF,2DAA2F;AAC3F,sDAAkF;AAClF,6DAA+F;AAC/F,oDAA8E;AAC9E,yDAAiE;AACjE,8CAA4C;AAC5C,qDAA0D;AAC1D,iDAAkD;AAClD,kDAAkD;AAClD,mDAAsD;AAMtD,SAAgB,gCAAgC,CAAC,KAAU;IACzD,IAAI,UAAU,GAAG,oBAAQ,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAgC,UAAW,CAAC,aAAa,CAAC;IAC1D,OAAmC,UAAW,CAAC,gBAAgB,CAAC;IAChE,OAAgC,UAAW,CAAC,aAAa,CAAC;IAC1D,OAA+B,UAAW,CAAC,YAAY,CAAC;IACxD,OAA+B,UAAW,CAAC,YAAY,CAAC;IACxD,OAA8B,UAAW,CAAC,WAAW,CAAC;IACtD,OAAO,UAAU,CAAC;AACpB,CAAC;AATD,4EASC;AAED,IAAI,oBAAoB,GAAG;IACzB,2BAA2B,EAAE,gCAAgC,CAAC,uCAAiB,CAAC;IAChF,uBAAuB,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IACxE,2BAA2B,EAAE,gCAAgC,CAAC,uCAAiB,CAAC;IAChF,6BAA6B,EAAE,gCAAgC,CAAC,4CAAmB,CAAC;IACpF,yBAAyB,EAAE,gCAAgC,CAAC,mCAAe,CAAC;IAC5E,yBAAyB,EAAE,gCAAgC,CAAC,mCAAe,CAAC;IAC5E,uBAAuB,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IACxE,uBAAuB,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IACxE,6BAA6B,EAAE,gCAAgC,CAAC,4CAAmB,CAAC;IACpF,0BAA0B,EAAE,gCAAgC,CAAC,qCAAgB,CAAC;IAC9E,2BAA2B,EAAE,gCAAgC,CAAC,uCAAiB,CAAC;IAChF,iBAAiB,EAAE,gCAAgC,CAAC,kBAAO,CAAC;IAC5D,SAAS,EAAE,gCAAgC,CAAC,uBAAS,CAAC;IACtD,qBAAqB,EAAE,gCAAgC,CAAC,2BAAW,CAAC;IACpE,6BAA6B,EAAE,gCAAgC,CAAC,4CAAmB,CAAC;IACpF,aAAa,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IAC9D,cAAc,EAAE,gCAAgC,CAAC,iCAAc,CAAC;IAChE,wBAAwB,EAAE,gCAAgC,CAAC,sDAAwB,CAAC;IACpF,SAAS,EAAE,gCAAgC,CAAC,sBAAS,CAAC;IACtD,8BAA8B,EAAE,gCAAgC,CAAC,8CAAoB,CAAC;IACtF,iBAAiB,EAAE,gCAAgC,CAAC,wCAAiB,CAAC;IACtE,8BAA8B,EAAE,gCAAgC,CAAC,8CAAoB,CAAC;IACtF,sBAAsB,EAAE,gCAAgC,CAAC,gBAAM,CAAC;IAChE,mBAAmB,EAAE,gCAAgC,CAAC,sBAAS,CAAC;IAChE,6BAA6B,EAAE,gCAAgC,CAAC,2CAAmB,CAAC;IACpF,wBAAwB,EAAE,gCAAgC,CAAC,qDAAwB,CAAC;IACpF,4BAA4B,EAAE,gCAAgC,CAAC,yCAAkB,CAAC;IAClF,qBAAqB,EAAE,gCAAgC,CAAC,0BAAW,CAAC;IACpE,4BAA4B,EAAE,gCAAgC,CAAC,0CAAkB,CAAC;IAClF,2BAA2B,EAAE,gCAAgC,CAAC,4DAA2B,CAAC;IAC1F,mBAAmB,EAAE,gCAAgC,CAAC,sBAAS,CAAC;IAChE,4BAA4B,EAAE,gCAAgC,CAAC,6DAA4B,CAAC;IAC5F,iCAAiC,EAAE,gCAAgC,CAAC,wEAAiC,CAAC;IACtG,mCAAmC,EAAE,gCAAgC,CAAC,4EAAmC,CAAC;IAC1G,+BAA+B,EAAE,gCAAgC,CAAC,oEAA+B,CAAC;IAClG,mBAAmB,EAAE,gCAAgC,CAAC,4CAAmB,CAAC;IAC1E,oBAAoB,EAAE,gCAAgC,CAAC,6CAAoB,CAAC;IAC5E,aAAa,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IAC9D,UAAU,EAAE,gCAAgC,CAAC,wBAAU,CAAC;IACxD,YAAY,EAAE,gCAAgC,CAAC,6BAAY,CAAC;IAC5D,kBAAkB,EAAE,gCAAgC,CAAC,yCAAkB,CAAC;IACxE,cAAc,EAAE,gCAAgC,CAAC,iCAAc,CAAC;IAChE,qBAAqB,EAAE,gCAAgC,CAAC,2BAAW,CAAC;IACpE,kBAAkB,EAAE,gCAAgC,CAAC,yCAAkB,CAAC;IACxE,SAAS,EAAE,gCAAgC,CAAC,sBAAS,CAAC;IACtD,oBAAoB,EAAE,gCAAgC,CAAC,8CAAoB,CAAC;IAC5E,kBAAkB,EAAE,gCAAgC,CAAC,yCAAkB,CAAC;IACxE,SAAS,EAAE,gCAAgC,CAAC,sBAAS,CAAC;IACtD,aAAa,EAAE,gCAAgC,CAAC,oCAAe,CAAC;IAChE,mBAAmB,EAAE,gCAAgC,CAAC,4CAAmB,CAAC;IAC1E,8BAA8B,EAAE,gCAAgC,CAAC,mEAA8B,CAAC;IAChG,mBAAmB,EAAE,gCAAgC,CAAC,iDAAqB,CAAC;IAC5E,oBAAoB,EAAE,gCAAgC,CAAC,mDAAsB,CAAC;IAC9E,eAAe,EAAE,gCAAgC,CAAC,wCAAiB,CAAC;IACpE,mBAAmB,EAAE,gCAAgC,CAAC,iDAAqB,CAAC;IAC5E,eAAe,EAAE,gCAAgC,CAAC,wCAAiB,CAAC;IACpE,uBAAuB,EAAE,gCAAgC,CAAC,qDAAuB,CAAC;IAClF,aAAa,EAAE,gCAAgC,CAAC,oCAAe,CAAC;IAChE,oBAAoB,EAAE,gCAAgC,CAAC,8CAAoB,CAAC;IAC5E,UAAU,EAAE,gCAAgC,CAAC,yBAAU,CAAC;IACxD,aAAa,EAAE,gCAAgC,CAAC,+BAAa,CAAC;IAC9D,eAAe,EAAE,gCAAgC,CAAC,mCAAe,CAAC;IAClE,cAAc,EAAE,gCAAgC,CAAC,iCAAc,CAAC;IAChE,2BAA2B,EAAE,gCAAgC,CAAC,uCAAiB,CAAC;CACjF,CAAC;AAES,oBAAY,GAAG;IACxB,WAAW,EAAE,IAAI,mBAAY;IAC7B,2BAA2B,EAAE,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM;IAClE,wBAAwB,EAAxB,UAAyB,UAAkB;QACzC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;YACpD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,GAAG,gEAAgE,CAAC,CAAC;YACnG,OAAO;SACR;QAEK,MAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC,2BAA2B,EAAE;YACtE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACD,2BAA2B,EAA3B,UAA4B,GAAQ;QAClC,KAAK,IAAI,IAAI,IAAI,oBAAoB,EAAE;YACrC,IAAI,IAAI,KAAK,sBAAsB,EAAE;gBACnC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;aACtC;SACF;IACH,CAAC;IAQD,mCAAmC,EAAE;QACnC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,iCAAiC,EAAE;QACjC,IAAI,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,CAAC;IAC7D,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC;IACD,mCAAmC,EAAE;QACnC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IACjE,CAAC;IACD,iCAAiC,EAAE;QACjC,IAAI,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,CAAC;IAC7D,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IACjE,CAAC;IACD,kCAAkC,EAAE;QAClC,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IACD,mCAAmC,EAAE;QACnC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,yBAAyB,EAAE;QACzB,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IACD,iBAAiB,EAAE;QACjB,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,6BAA6B,EAAE;QAC7B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IACjE,CAAC;IACD,qBAAqB,EAAE;QACrB,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,sBAAsB,EAAE;QACtB,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,gCAAgC,EAAE;QAChC,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC;IACD,iBAAiB,EAAE;QACjB,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,sCAAsC,EAAE;QACtC,IAAI,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IAClE,CAAC;IACD,yBAAyB,EAAE;QACzB,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IACD,sCAAsC,EAAE;QACtC,IAAI,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IAClE,CAAC;IACD,8BAA8B,EAAE;QAC9B,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;IAC1D,CAAC;IACD,2BAA2B,EAAE;QAC3B,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IACjE,CAAC;IACD,gCAAgC,EAAE;QAChC,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC;IACD,oCAAoC,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;IAChE,CAAC;IACD,6BAA6B,EAAE;QAC7B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,oCAAoC,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;IAChE,CAAC;IACD,mCAAmC,EAAE;QACnC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,2BAA2B,EAAE;QAC3B,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,oCAAoC,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;IAChE,CAAC;IACD,yCAAyC,EAAE;QACzC,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IACD,2CAA2C,EAAE;QAC3C,IAAI,CAAC,wBAAwB,CAAC,qCAAqC,CAAC,CAAC;IACvE,CAAC;IACD,uCAAuC,EAAE;QACvC,IAAI,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,CAAC;IACnE,CAAC;IACD,2BAA2B,EAAE;QAC3B,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,4BAA4B,EAAE;QAC5B,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,qBAAqB,EAAE;QACrB,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,4BAA4B,EAAE;QAC5B,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,oBAAoB,EAAE;QACpB,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IACD,0BAA0B,EAAE;QAC1B,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC;IACD,sBAAsB,EAAE;QACtB,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,6BAA6B,EAAE;QAC7B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IACD,oCAAoC,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC;IACD,2BAA2B,EAAE;QAC3B,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,sCAAsC,EAAE;QACtC,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,oCAAoC,EAAE;QACpC,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC;IACD,iBAAiB,EAAE;QACjB,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,gDAAgD,EAAE;QAChD,IAAI,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;IAClE,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,sCAAsC,EAAE;QACtC,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,iCAAiC,EAAE;QACjC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IACD,qCAAqC,EAAE;QACrC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;IACvD,CAAC;IACD,iCAAiC,EAAE;QACjC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IACD,yCAAyC,EAAE;QACzC,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,sCAAsC,EAAE;QACtC,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,4BAA4B,EAAE;QAC5B,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,mCAAmC,EAAE;QACnC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,CAAC;IAC/D,CAAC;IACD,+BAA+B,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,gCAAgC,EAAE;QAClC,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IACD,iCAAiC,EAAE;QACjC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACrXF,0DAAmE;AAEnE,wCAAqC;AACrC,4DAAyE;AACzE,+CAAiD;AAEjD;IAAmC,iCAAsB;IAAzD;QAAA,qEA+JC;QA9JC,QAAE,GAAG,iBAAiB,CAAC;QAWvB,0BAAoB,GAAG,KAAK,CAAC;QAG7B,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,MAAM;YACnB,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAkFJ,CAAC;IAhFC,+CAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAE/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEhE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAElF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,8BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACjE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAOD,qCAAa,GAAb,UAAc,UAAgB,EAAE,IAAY;QAAZ,mCAAY;QAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE;YAChD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,kBAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;aACvD;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAQ,GAAR,UAAS,KAAK,EAAE,IAAY;QAAZ,mCAAY;QAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACvB;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,kBAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SACzD;IACH,CAAC;IAED,mCAAW,GAAX,UAAY,CAAC;QAIX,IAAI,CAAC,KAAK,GAAG,kBAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IASD,4CAAoB,GAApB,UAAqB,KAAU;QAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;YAE9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;SAClC;IACH,CAAC;IAED,6CAAqB,GAArB;QACE,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IACH,oBAAC;AAAD,CAAC,CA/JkC,kDAAsB,GA+JxD;AA/JY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;ACN1B,0CAAuC;AAEvC,yCAAqC;AACrC,wCAAmC;AACnC;IAAyC,uCAAS;IAAlD;QAAA,qEA+UC;QA7UC,QAAE,GAAG,wBAAwB,CAAC;QAqB9B,iBAAW,GAAG,KAAK,CAAC;QAYpB,gBAAU,GAAG;YACX,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,wBAAwB;aAChC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,aAAa;aACxB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,YAAY;aACvB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,KAAK;aACZ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;aACb;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;aACb;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CAAC;;IA6QJ,CAAC;IA3QC,4CAAc,GAAd;QAEE,IAAI,WAAW,GAAyC,EAAE,CAAC;QAC3D,kBAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,KAAK;YAC9D,IAAI,YAAY,GAAG;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,IAAI,EAAE,KAAK;aACZ,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,mCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QAEd,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,SAAS,GAAG,kBAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAE1D,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAChE;QAED,IAAI,CAAC,CAAC;QACN,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SAChB;aAAM;YACL,CAAC,GAAG,KAAK,CAAC;SACX;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,oBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,sCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAID,yCAAW,GAAX;QAAA,iBAuBC;QAtBC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAgB,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC/E,IAAI,YAAY,GAAgB,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE;YACzD,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,GAAG,UAAC,KAAoB;gBAC9C,IAAI,WAAW,GAAG,KAAI,CAAC,oBAAoB,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAC;gBACnE,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;oBAC5B,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;qBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE;wBACrD,YAAY,CAAC,KAAK,EAAE,CAAC;wBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;yBAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE;wBAC5D,WAAW,CAAC,KAAK,EAAE,CAAC;wBACpB,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;iBACF;YACH,CAAC,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7E;IACH,CAAC;IASD,kDAAoB,GAApB,UAAqB,gBAA6B;QAChD,IAAI,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAuB,IAAI,KAAK,EAAe,CAAC;QAClE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAG,UAAC,UAAuB;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;gBACtD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QACH,OAAoB,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,yCAAW,GAAX,UAAY,KAAW;QAErB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAMD,sCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5E,IAAI,kBAAkB,GAAgB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnF,IAAI,kBAAkB,IAAI,IAAI,EAAE;gBAC9B,kBAAkB,CAAC,KAAK,EAAE,CAAC;aAC5B;SACF;QACD,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAChF;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAGD,8CAAgB,GAAhB,UAAiB,KAAa;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,6CAAe,GAAf,UAAgB,SAAS;QACvB,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,kDAAoB,GAApB,UAAqB,aAAa,EAAE,KAAK;QACvC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,aAAa,EAAE;YACtD,OAAO,kBAAkB,CAAC;SAC3B;IACH,CAAC;IAED,2CAAa,GAAb,UAAc,aAAa;QACzB,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,cAAc,EAAE;YAClE,OAAO,uBAAuB,CAAC;SAChC;IACH,CAAC;IAED,+CAAiB,GAAjB,UAAkB,SAAS;QACzB,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,OAAO,iBAAiB,CAAC;SAC1B;IACH,CAAC;IAED,kDAAoB,GAApB,UAAqB,aAAwC;QAC3D,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE;YAC3C,OAAO,kBAAkB,CAAC;SAC3B;IACH,CAAC;IAED,iDAAmB,GAAnB,UAAoB,aAAwC;QAC1D,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,GAAG,aAAa,EAAE;gBAC1E,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,GAAG,aAAa,EAAE;gBAC1E,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wCAAU,GAAV,UAAW,KAAK;QACd,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,OAAO;SACR;QAED,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAErD,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE;YACrD,OAAO;SACR;QAED,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAG3B,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,kDAAoB,GAApB,UAAqB,IAAI;QACvB,IAAI,QAAQ,GAAyC,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,GAAG,GAAW,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,2CAAa,GAAb;QACE,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,uCAAS,GAAT;QACE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,qCAAO,GAAP,UAAQ,cAAc;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAMlF,IAAI,CAAC,OAAO,CAAC,UAAC,WAAW;YACvB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACzC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0CAAY,GAAZ,UAAa,YAAgC,EAAE,GAAW;QACxD,IAAI,YAAY,EAAE;YAChB,IAAI,IAAI,GAAG,kBAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9E,IAAI,IAAI,EAAE;gBACT,OAAO,IAAI,CAAC;aACZ;SACF;QACD,OAAO;IACT,CAAC;IAED,gDAAkB,GAAlB;QACE,IAAI,CAAC,SAAS,GAAG,kBAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,iBAAM,kBAAkB,WAAE,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,CA/UwC,sBAAS,GA+UjD;AA/UY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACJhC,0CAAyC;AAGzC,2CAAyC;AACzC,yCAAuC;AACvC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAEzF;IAA+B,6BAAS;IAAxC;QAAA,qEA0+BC;QAz+BC,QAAE,GAAG,aAAa,CAAC;QAGnB,gBAAU,GAAmB,EAAE,CAAC;QA+BhC,iCAA2B,GAAG,KAAK,CAAC;QAKpC,2CAAqC,GAAG,KAAK,CAAC;QAM9C,0CAAoC,GAAG,KAAK,CAAC;QAuB7C,sBAAgB,GAAG,KAAK,CAAC;QAGzB,kBAAY,GAAG,KAAK,CAAC;QAGrB,wBAAkB,GAAG,IAAI,CAAC;QAE1B,kCAA4B,GAAG,EAAE,CAAC;QAElC,4BAAsB,GAAG,YAAY,CAAC;QAKtC,oCAA8B,GAAG,EAAE,CAAC;QASpC,6BAAuB,GAA4B,EAAE,CAAC;QAEtD,gBAAU,GAAG;YAEX,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,0BAA0B;aAClC;YACD,UAAU,EAAE;gBACV,QAAQ,EAAE,mBAAmB;aAC9B;YACD,uBAAuB,EAAE;gBACvB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;YACD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;YACD,2BAA2B,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;YACD,4BAA4B,EAAE;gBAC5B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,IAAI;aACf;YACD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;QAYM,mBAAa,GAAG,QAAQ,CAAC;;IAy1BnC,CAAC;IAt1BC,2BAAO,GAAP;QAAA,iBAUC;QATC,IAAI,CAAC,kBAAkB,GAAG;YACxB,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YACpC,IAAI,KAAI,CAAC,eAAe,GAAG,GAAG,IAAI,WAAW,IAAI,GAAG,EAAE;gBACpD,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,KAAI,CAAC,eAAe,IAAI,GAAG,IAAI,WAAW,GAAG,GAAG,EAAE;gBAC3D,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC1B;YACD,KAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,4BAAQ,GAAR;QAAA,iBAUC;QATC,iBAAM,QAAQ,WAAE,CAAC;QAEjB,UAAU,CAAC;YACT,KAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;QAEzC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED,4BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChE,CAAC;IAED,2CAAuB,GAAvB,UAAwB,cAA2B;QAAnD,iBAqGC;QAnGC,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAClE,IAAI,CAAC,sBAAsB,GAAG,kBAAkB,CAAC;QACjD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO;SACR;QAED,UAAU,CAAC;YACT,IAAI,YAAY,GAAuB,KAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;YACzF,IAAI,UAAU,GAAuB,KAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC5E,IAAI,cAAc,GAAuB,KAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAErF,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,IAAI,KAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1B,aAAa,GAAG,KAAI,CAAC,SAAS,CAAC;aAChC;YAGD,IAAI,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;YAEzD,KAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YACpC,KAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;YAEzC,IAAI,KAAI,CAAC,2BAA2B,EAAE;gBACpC,IAAI,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;gBAC9E,iBAAiB,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC;gBACnD,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAgB,aAAa,QAAK,CAAC;gBACpE,KAAI,CAAC,sBAAsB,GAAI,EAAE,CAAC;aACnC;iBAAM,IAAI,YAAY,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC/E,IAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,CAAC;gBAEzD,IAAI,gBAAgB,GAAwB,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACzE,IAAI,eAAe,GAAG,CAAC,CAAC;gBAExB,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,IAAI,gBAAgB,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBAC/E,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBACtD;gBAID,IAAM,oBAAoB,GAAG,EAAE,CAAC;gBAGhC,IAAI,iBAAiB,GAAW,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC,CAAC;gBAGnL,IAAI,kBAAkB,GAAG,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC;gBAE5H,IAAI,kBAAkB,GAAG,YAAY,CAAC,YAAY,CAAC;gBAGnD,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;oBAC3B,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC;oBAG9C,KAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;oBACjC,oBAAQ,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAA0B,CAAC,CAAC;iBAGrE;qBAAM,IAAI,kBAAkB,GAAG,eAAe,GAAG,oBAAoB,EAAE;oBACtE,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;oBACjD,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC;oBAC9C,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,aAAa,GAAG,KAAK,CAAC;oBAGnE,KAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;iBAGlC;qBAAM,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,kBAAkB,EAAE;oBACxD,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;oBACjD,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC;oBAG9C,KAAI,CAAC,sBAAsB,GAAI,EAAE,CAAC;iBAGnC;qBAAM,IAAI,kBAAkB,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE;oBAC1E,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;oBAGjD,KAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;iBAGtD;qBAAM;oBACL,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,GAAG,IAAI,CAAC;oBACjD,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,kBAAkB,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC;oBAGhG,KAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;iBAClC;gBAED,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBACrD,IAAI,OAAO,IAAI,IAAI,EAAE;oBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,GAAG,eAAe,GAAG,KAAK,CAAC;iBACjE;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAmB,GAAnB,UAAoB,KAAY;QAAhC,iBAuEC;QAtEC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAClC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA0D,KAAK,CAAC,MAAM,CAAC;QACjF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA0D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAClG;QAED,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,GAA0D,KAAK,CAAC,UAAU,CAAC;SAClF;QAED,IAAI,GAAG,GAAY,MAAM,CAAC,OAAO,CAAC;QAClC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;gBACrE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;aACR;SACF;QAED,IAAI,CAAC,qCAAqC,GAAG,IAAI,CAAC,2BAA2B,CAAC;QAC9E,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,2BAA2B,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE;YAG5D,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,gBAAyB,IAAK,uBAAgB,KAAK,KAAI,CAAC,kBAAkB,EAA5C,CAA4C,CAAC,EAAE;gBAClG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC;aACrD;iBAAM;gBACL,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC7C;YAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;gBACrC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;aAC7F;YAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,4BAA4B,EAAE,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAG5B,OAAO;SACR;QAED,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;SAGtC;aAAM;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,IAAI,EAAE;gBAExC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACvD;iBAAM;gBACL,MAAM,uEAAuE,CAAC;aAC/E;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAKD,kCAAc,GAAd,UAAe,OAAuB;QACpC,IAAI,CAAC,8BAA8B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAKD,4CAAwB,GAAxB,UAAyB,OAAuB;QAC9C,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAKD,kDAA8B,GAA9B,UAA+B,OAAuB;QACpD,IAAI,CAAC,8BAA8B,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAKD,qCAAiB,GAAjB,UAAkB,KAAc;QAC9B,IAAI,CAAC,8BAA8B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAKD,mDAA+B,GAA/B,UAAgC,KAAa;QAC3C,IAAI,CAAC,8BAA8B,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAKD,4CAAwB,GAAxB,UAAyB,KAAqB;QAC5C,IAAI,CAAC,8BAA8B,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,yCAAqB,GAArB,UAAsB,KAAY;QAChC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA4D,KAAK,CAAC,MAAM,CAAC;QACnF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA4D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpG;QAED,IAAI,GAAG,GAAY,MAAM,CAAC,OAAO,CAAC;QAClC,IAAI,MAAM,GAAY,MAAM,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAOhC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAI,IAAI,EAAE;YAEjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SACzE;aAAM;YACL,MAAM,aAAW,GAAG,CAAC,EAAE,gDAA6C,CAAC;SACtE;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,wCAAoB,GAApB,UAAqB,KAAY;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA4D,KAAK,CAAC,MAAM,CAAC;QACnF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA4D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpG;QAED,IAAI,MAAM,GAAY,MAAM,CAAC,UAAU,CAAC;QACxC,IAAI,mBAAmB,GAAY,MAAM,CAAC,OAAO,CAAC;QAKlD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;YAClE,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;SACpC;QAED,IAAI,mBAAmB,CAAC,WAAW,IAAI,IAAI,EAAE;YAE3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;YAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,MAAM,aAAW,mBAAmB,CAAC,EAAE,gDAA6C,CAAC;SACtF;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,6CAAyB,GAAzB,UAA0B,KAAY;QAAtC,iBAuBC;QAtBC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA4D,KAAK,CAAC,MAAM,CAAC;QACnF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA4D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpG;QAED,IAAI,cAAc,GAAY,MAAM,CAAC,UAAU,CAAC;QAChD,IAAI,gBAAgB,GAAY,MAAM,CAAC,OAAO,CAAC;QAE/C,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAC7C,IAAI,IAAI,CAAC,2BAA2B,EAAE;YACpC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;QAED,UAAU,CAAC;YACT,UAAU,CAAC;gBACT,oBAAQ,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAA0B,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAQD,0CAAsB,GAAtB,UAAuB,KAAY;QACjC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA4D,KAAK,CAAC,MAAM,CAAC;QACnF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA4D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpG;QAED,IAAI,eAAe,GAAY,MAAM,CAAC,UAAU,CAAC;QACjD,IAAI,iBAAiB,GAAY,MAAM,CAAC,OAAO,CAAC;QAEhD,IAAI,iBAAiB,CAAC,WAAW,IAAI,IAAI,EAAE;YAEzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;YAC7C,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;SACzD;aAAM;YACL,MAAM,aAAW,iBAAiB,CAAC,EAAE,gDAA6C,CAAC;SACpF;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAOD,6CAAyB,GAAzB,UAA0B,KAAY;QACpC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAA4D,KAAK,CAAC,MAAM,CAAC;QACnF,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAA4D,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpG;QAED,IAAI,aAAa,GAAY,MAAM,CAAC,UAAU,CAAC;QAC/C,IAAI,OAAO,GAAY,MAAM,CAAC,OAAO,CAAC;QAEtC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAE3D,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;SACpD;aAAM;YACL,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;gBAE/B,IAAI,CAAC,eAAe,OAApB,IAAI,EAAoB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;gBAGxD,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACrC;iBAAM;gBACL,MAAM,aAAW,OAAO,CAAC,EAAE,gDAA6C,CAAC;aAC1E;YAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,0CAAsB,GAAtB;QACE,IAAI,0BAA0B,GAAuB,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;QAC1G,IAAI,0BAA0B,IAAI,IAAI,EAAE;YACtC,0BAA0B,CAAC,SAAS,GAAG,CAAC,CAAC;SAC1C;IACH,CAAC;IAMD,mCAAe,GAAf,UAAgB,OAAiB,EAAE,SAAmB,EAAE,QAAkB,EAAE,UAAoB;QAC9F,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,SAAS,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,QAAQ,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,UAAU,IAAI,IAAI,CAAC;IAChD,CAAC;IAOD,oCAAgB,GAAhB,UAAiB,OAAgB;QAC/B,IAAI,KAAK,GAAmB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,MAAM,GAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,MAAM,IAAI,IAAI,EAAE;YACrB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACjC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,gDAA4B,GAA5B,UAA6B,KAAY;QACvC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,2BAA2B,IAAI,IAAI,EAAE;YAK5C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;SACrC;aAAM;YAEL,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAChE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;SACvF;QAED,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,gDAA4B,GAA5B;QAAA,iBASC;QARC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAG3C,UAAU,CAAC;YACT,UAAU,CAAC;gBACT,oBAAQ,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAA0B,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,6BAAS,GAAT,UAAU,YAAqB,EAAE,eAAgC;QAC/D,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;SACnC;QACD,IAAI,MAAM,GAAmB,IAAI,CAAC;QAClC,IAAI,QAAQ,GAAG,UAAS,CAAU;YAChC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAU,IAAK,QAAC,KAAK,YAAY,EAAlB,CAAkB,CAAC,CAAC;QACrE,CAAC,CAAC;QAEF,KAAgB,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;YAA5B,IAAI,GAAG;YAEV,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACjB,OAAO,GAAG,CAAC;aACZ;iBAAM;gBACL,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACxB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACpD,IAAI,MAAM,IAAI,IAAI,EAAE;wBAClB,OAAO,MAAM,CAAC;qBACf;iBACF;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAmB,GAAnB;QACE,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC;IACtE,CAAC;IAED,mCAAe,GAAf,UAAgB,OAAgB;QAE9B,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS;YAC1B,OAAO,KAAK,IAAI,CAAC,kBAAkB;YACnC,OAAO,KAAK,IAAI,CAAC,iBAAiB;YAClC,OAAO,KAAK,IAAI,CAAC,mBAAmB,EAAE;YACxC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wCAAoB,GAApB,UAAqB,KAAY;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAAuC,KAAK,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,oBAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAuC,oBAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAC/E;QAED,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE;YAC3B,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,MAAM,aAAW,GAAG,CAAC,EAAE,gDAA6C,CAAC;SACtE;IACH,CAAC;IAED,kCAAc,GAAd,UAAe,KAAmB;QAChC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAI5B,oBAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAA0B,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGD,iCAAa,GAAb,UAAc,KAAmB;QAC/B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;IACpC,CAAC;IAGD,6BAAS,GAAT,UAAU,KAAY;QACpB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAGzB,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,mCAAe,GAAf;QACE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,kCAAc,GAAd,UAAe,KAAa;QAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAGD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;SACxC;IACH,CAAC;IAED,oCAAgB,GAAhB,UAAiB,UAAU;QACzB,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5F,OAAO,wBAAwB,CAAC;SACjC;IACH,CAAC;IACD,mCAAe,GAAf;QACE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvF,CAAC;IAED,gCAAY,GAAZ;QACE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9G,CAAC;IAED,+BAAW,GAAX;QACE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3G,CAAC;IAED,6CAAyB,GAAzB;QACE,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,+BAAW,GAAX,UAAY,IAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,yCAAqB,GAArB;QACE,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,qCAAiB,GAAjB;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,qCAAiB,GAAjB;QAAA,iBASC;QARC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAClC,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,IAAI,CAAC,8BAA8B,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,OAAgB;gBACnG,OAAO,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;SACb;IACH,CAAC;IASD,0CAAsB,GAAtB,UAAuB,GAAY,EAAE,WAAoB;QACvD,IAAI,GAAG,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/G,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,GAAG,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE;YAC7D,OAAO,KAAK,CAAC;SACd;QAED,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACrE,CAAC;IAWD,yCAAqB,GAArB,UAAsB,GAAY,EAAE,WAAoB;QACtD,IAAI,GAAG,KAAK,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC9G,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,GAAG,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE;YAC7D,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACpE,CAAC;IAKD,uCAAmB,GAAnB,UAAoB,GAAY;QAC9B,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;YACvE,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAOD,gCAAY,GAAZ,UAAa,OAAgB,EAAE,UAAkB;QAAjD,iBAoBC;QAnBC,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7D,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;SACd;QAED,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7D,OAAO,KAAK,CAAC;aACd;YAED,OAAO,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,KAAc;gBAClD,OAAO,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qCAAiB,GAAjB,UAAkB,OAAgB;QAChC,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,yCAAqB,GAArB;QAEE,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtI,OAAO;SACR;QAED,IAAI,UAAU,GAAmB,EAAE,CAAC;QACpC,IAAI,kBAAkB,GAAY,EAAC,IAAI,EAAE,uDAAuD,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC;QAC1G,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;QACjC,KAAkB,UAAkC,EAAlC,SAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAlC,cAAkC,EAAlC,IAAkC,EAAE;YAAjD,IAAI,KAAK;YACZ,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAEvD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1C,IAAI,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnF,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;iBAClD;gBACD,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;aAClC;iBAAM;gBAEL,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5C,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBACrC;aACF;SACF;QAED,QAAQ,UAAU,CAAC,MAAM,EAAE;YACzB,KAAK,CAAC;gBACJ,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM;YACR;gBACE,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAEO,yCAAqB,GAA7B,UAA8B,aAAqB;QACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEO,iCAAa,GAArB,UAAsB,cAAyB;QAA/C,iBA8DC;QA9DqB,0DAAyB;QAC7C,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,UAAC,OAAgB;gBAE3C,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3D,OAAO,IAAI,IAAU,OAAO,CAAC,QAAS,CAAC,IAAI,CAAC,UAAC,SAAkB;wBAE7D,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,SAAS,CAAC,QAAS,CAAC,IAAI,CAAC,UAAC,cAAuB;gCACrD,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oCACzE,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,mBAA4B;wCACxD,IAAI,mBAAmB,CAAC,cAAc,IAAI,IAAI,IAAI,mBAAmB,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE;4CACzG,KAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;4CAC/C,KAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;4CACxC,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;4CACpC,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC;4CACzB,OAAO,IAAI,CAAC;yCACb;wCACD,OAAO,KAAK,CAAC;oCACf,CAAC,CAAC,CAAC;iCACJ;qCAAM;oCACL,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE;wCAC1F,KAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;wCACxC,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;wCACpC,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC;wCACzB,KAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;wCAC3C,OAAO,IAAI,CAAC;qCACb;oCACD,OAAO,KAAK,CAAC;iCACd;4BACH,CAAC,CAAC,CAAC;yBACJ;6BAAM;4BACL,IAAI,SAAS,CAAC,cAAc,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gCAC3E,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gCACpC,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC;gCACzB,KAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;gCAC3C,OAAO,IAAI,CAAC;6BACb;4BACD,OAAO,KAAK,CAAC;yBACd;wBAGD,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;iBACJ;gBAGD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrE,KAAI,CAAC,SAAS,GAAG,OAAO,CAAC;oBACzB,OAAO,IAAI,CAAC;iBACb;gBAGD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,CA1+B8B,sBAAS,GA0+BvC;AA1+BY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACPtB,0CAAuC;AAGvC,yCAAqC;AAGrC;IAAmC,iCAAS;IAA5C;QAAA,qEA+HC;QA9HC,QAAE,GAAG,iBAAiB,CAAC;QAcvB,eAAS,GAAG,KAAK,CAAC;;IAgHpB,CAAC;IA5GC,gCAAQ,GAAR;QAAA,iBAcC;QAbC,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAE9B,kBAAkB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,UAAC,KAAK;gBAC3D,IAAU,KAAK,KAAK,KAAK,CAAC,UAAU,EAAE;oBACpC,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC;YACH,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,KAAK;gBACjD,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,mCAAW,GAAX,UAAY,KAAY;QACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,MAAM,GAAkD,KAAK,CAAC,MAAM,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACnC,MAAM,GAAkD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAChG;QACD,IAAI,QAAQ,GAAqB,MAAM,CAAC,WAAW,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,oCAAY,GAAZ,UAAa,KAAY;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IAED,wCAAgB,GAAhB,UAAiB,KAAY;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,MAAM,GAAgF,KAAK,CAAC,MAAM,CAAC;QACvG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACzC,MAAM,GAAgF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAC9H;QAED,IAAI,IAAI,GAAuB,MAAM,CAAC,QAAQ,CAAC;QAC/C,IAAI,QAAQ,GAAqB,MAAM,CAAC,WAAW,CAAC;QAGpD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QAExB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,+BAA+B,CAAC;SACvC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,mDAA2B,GAA3B,UAA4B,MAAc;QACxC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC;SACX;QACD,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;YAC5B,KAAK,IAAI;gBACP,OAAO,cAAc,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,oBAAoB,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,cAAc,CAAC;YACxB,KAAK,KAAK;gBACR,OAAO,cAAc,CAAC;YACxB;gBACE,OAAO,EAAE,CAAC;SACb;IACH,CAAC;IAED,4CAAoB,GAApB,UAAqB,cAAmB;QACtC,OAAO,oBAAQ,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED,iCAAS,GAAT,UAAU,cAA+C;QACvD,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,OAAO,kBAAkB,CAAC;SAC3B;QACD,IAAuB,cAAe,CAAC,GAAG,IAAI,IAAI,EAAE;YAClD,OAA0B,cAAe,CAAC,GAAG,CAAC;SAC/C;aAAM,IAAmB,cAAe,CAAC,SAAS,IAAI,IAAI,EAAE;YAC3D,OAAsB,cAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACtE;aAAM;YACL,MAAM,8DAA8D,CAAC;SACtE;IACH,CAAC;IAED,6CAAqB,GAArB,UAAsB,OAAyB;QAC7C,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC9B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACnI;aAAM;YACL,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3G;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACH,oBAAC;AAAD,CAAC,CA/HkC,sBAAS,GA+H3C;AA/HY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;ACA1B,wCAAqC;AACrC,yCAAuC;AACvC,0CAAyC;AAIzC,IAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAM,MAAM,GAAG,CAAC,CAAC;AAGjB;IAAoC,kCAAS;IAA7C;QAAA,qEA+dC;QA9dC,QAAE,GAAG,kBAAkB,CAAC;QAqBxB,gBAAU,GAAG;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK;aACb;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,2BAA2B;aACtC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,2BAA2B;aACtC;SACF,CAAC;;IAwbJ,CAAC;IAraC,8BAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG;YACpB,SAAS,EAAE,uBAAuB;YAClC,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;IACH,CAAC;IAED,4CAAmB,GAAnB,UAAoB,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAI1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAc,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC9D,IAAI,iBAAiB,IAAI,IAAI,EAAE;gBAC7B,iBAAiB,CAAC,KAAK,EAAE,CAAC;aAC3B;YACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAChC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC,eAAe;gBAC/D,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY;gBACzD,0BAA0B,EAAE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB;aAC9E,CAAC,CAAC;YACH,IAAI,CAAC,kCAAkC,EAAE,CAAC;SAC3C;IACH,CAAC;IAQD,kDAAyB,GAAzB;QAAA,iBAkBC;QAjBC,UAAU,CAAC;YACT,IAAI,KAAI,CAAC,YAAY,EAAE;gBAGrB,KAAI,CAAC,aAAa,GAAgB,KAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAC5E,KAAI,CAAC,YAAY,GAAgB,KAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;gBACtF,IAAI,KAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7B,KAAI,CAAC,YAAY,GAAgB,KAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;iBACpF;gBACD,IAAI,KAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7B,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;iBAC3B;gBACD,KAAI,CAAC,iCAAiC,EAAE,CAAC;gBACzC,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;YACD,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,2BAA2B,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAUD,oDAA2B,GAA3B;QAaE,IAAI,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;QACxE,IAAI,4BAA4B,GAAG,IAAI,KAAK,EAAe,CAAC;QAE5D,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAC,cAAc;YAC/D,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC3C,4BAA4B,CAAC,IAAI,CAAc,cAAc,CAAC,CAAC;aAChE;QACH,CAAC,CAAC,CAAC;QACH,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,mBAAmB,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC;YAC7D,IAAI,mBAAmB,IAAI,IAAI,EAAE;gBAC/B,IAAI,qBAAmB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAClF,IAAI,gBAAgB,GAAG,qBAAmB,CAAC,qBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,IAAI,gBAAgB,IAAI,IAAI,EAAE;oBAE5B,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;oBAC9E,IAAI,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;oBAC3E,IAAI,gBAAgB,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,EAAE;wBACrD,OAAoB,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;qBACzD;yBAAM;wBACL,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAc,aAAa,CAAC,CAAC,CAAc,gBAAgB,CAAC,CAAC;qBAChG;iBACF;aACF;SACF;QACD,OAAoB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAQD,0DAAiC,GAAjC;QAAA,iBAoBC;QAnBC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAE9B,IAAI,CAAC,mCAAmC,GAAG,UAAC,KAAoB;gBAC9D,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;oBAC5B,KAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;iBACtC;gBACD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;oBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAI,CAAC,WAAW,CAAC,EAAE;wBAC1D,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;yBAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAI,CAAC,YAAY,CAAC,EAAE;wBACjE,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;wBACzB,KAAK,CAAC,cAAc,EAAE,CAAC;qBACxB;iBACF;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mCAAmC,CAAC,CAAC;SAC1F;IACH,CAAC;IAQD,iDAAwB,GAAxB,UAAyB,KAAU;QACjC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC,eAAe;YAC/D,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY;YACzD,0BAA0B,EAAE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB;SAC9E,CAAC,CAAC;QACH,IAAI,CAAC,kCAAkC,EAAE,CAAC;IAE5C,CAAC;IAED,2DAAkC,GAAlC;QACE,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAsC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChI,OAAO,IAAI,CAAC,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAGD,mCAAU,GAAV;QACE,IAAI,CAAC,qBAAqB,GAAG;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAUD,oCAAW,GAAX;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;QAC5D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;QAChF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC;IAC1D,CAAC;IAED,sCAAa,GAAb,UAAc,KAAY;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,qCAAY,GAAZ,UAAa,KAAY;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,6CAAoB,GAApB,UAAqB,aAA8C;QACjE,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,cAAc,EAAE;YAClE,OAAO,mBAAmB,CAAC;SAC5B;QACD,IAAI,YAAY,GAAiB,aAAa,CAAC;QAC/C,IAAI,cAAc,GAAqB,aAAa,CAAC;QACrD,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;YACzC,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;gBACzC,OAAO,MAAG,cAAc,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,cAAc,CAAC,cAAgB,CAAC;aAClI;iBAAM;gBACL,OAAO,MAAG,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,cAAc,CAAC,UAAY,CAAC;aAChH;SAEF;aAAM;YACL,IAAI,YAAY,CAAC,WAAW,IAAI,IAAI,EAAE;gBACpC,OAAO,kBAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE;oBACzD,IAAI,EAAE,YAAY,CAAC,SAAS;oBAC5B,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM;iBACtC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,KAAG,YAAY,CAAC,SAAW,CAAC;aACpC;SACF;IACH,CAAC;IAED,yCAAgB,GAAhB,UAAiB,KAAY;QAC3B,IAAI,QAAQ,GAA4D,KAAM,CAAC,MAAM,CAAC;QACtF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,wCAAe,GAAf,UAAgB,KAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,kDAAyB,GAAzB,UAA0B,KAAY;QACpC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACpE,CAAC;IAED,2CAAkB,GAAlB,UAAmB,KAAY;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,gDAAuB,GAAvB,UAAwB,aAA4B;QAClD,OAAO,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,QAAQ,IAAI,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACxG,CAAC;IAED,2CAAkB,GAAlB,UAAmB,aAAsC;QACvD,OAAO,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,yCAAgB,GAAhB,UAAiB,KAAoB;QAGnC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,KAAiB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;YAAnB,IAAI,IAAI;YACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAKD,mDAA0B,GAA1B,UAA2B,eAAsC,EAAE,kBAA2B;QAC5F,IAAI,0BAA0B,GAAG,IAAI,KAAK,EAAmC,CAAC;QAE9E,KAAiB,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;YAA7B,IAAI,IAAI;YACX,IAAI,SAAS,GAAkB,EAAE,CAAC;YAClC,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAE5B,KAA4B,UAAqB,EAArB,SAAI,CAAC,gBAAgB,EAArB,cAAqB,EAArB,IAAqB,EAAE;gBAA9C,IAAI,eAAe;gBACtB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;aAC3C;YAED,IAAI,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACjD,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzH,0BAA0B,CAAC,IAAI,CAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,kBAAkB,GAAG,GAAG;oBACjD,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC7C,CAAC,CAAC;aACJ;iBAAM;gBACL,0BAA0B,CAAC,IAAI,CAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC7C,CAAC,CAAC;aACJ;SACF;QAED,IAAI,CAAC,uBAAuB,GAAG,0BAA0B,CAAC;QAC1D,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAGD,0CAAiB,GAAjB,UAAkB,cAAoC;QACpD,IAAI,OAAO,GAAsC,EAAE,CAAC;QACpD,IAAI,mBAAmB,GAAsC,EAAE,CAAC;QAChE,IAAI,sBAAsB,GAAsC,EAAE,CAAC;QAEnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,KAAoB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;YAA/B,IAAI,OAAO;YAEd,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzD,mBAAmB,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,OAAO,CAAC,GAAG;oBAClB,IAAI,EAAK,OAAO,CAAC,SAAS,SAAI,OAAO,CAAC,QAAU;iBACjD,CAAC,CAAC;aACJ;iBAAM;gBACL,sBAAsB,CAAC,IAAI,CAAC;oBAC1B,KAAK,EAAE,OAAO,CAAC,GAAG;oBAClB,IAAI,EAAK,OAAO,CAAC,SAAS,SAAI,OAAO,CAAC,QAAU;iBACjD,CAAC,CAAC;aACJ;SACF;QACD,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAErE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACzC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,6CAAoB,GAApB,UAAqB,cAAmB;QACtC,OAAO,oBAAQ,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED,4CAAmB,GAAnB,UAAoB,aAA4B,EAAE,WAAoB;QACpE,IAAI,aAAa,EAAE;YACjB,OAAO,WAAW,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC;SACxD;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,uCAAc,GAAd,UAAe,eAAuB;QACpC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACnD,OAAO,CAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,wDAAoD,CAAC;SAC7H;aAAM;YACL,OAAO,iEAAiE,CAAC;SAC1E;IACH,CAAC;IAED,sDAA6B,GAA7B,UAA8B,OAAwC;QACpE,IAAI,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE;YACnC,OAAO,sBAAsB,CAAC;SAC/B;QAED,IAAI,cAAc,GAAsB,OAAQ,CAAC;QACjD,IAAI,cAAc,CAAC,gBAAgB,IAAI,IAAI,IAAI,cAAc,CAAC,sBAAsB,IAAI,IAAI,EAAE;YAC5F,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,OAAO,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC;SACjD;QACD,OAAO,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,oDAA2B,GAA3B,UAA4B,OAAwC;QAClE,IAAI,cAAc,GAAsB,OAAQ,CAAC;QACjD,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;YACzC,OAAO,cAAc,CAAC,cAAc,CAAC;SACtC;QACD,OAAO,cAAc,CAAC,UAAU,CAAC;IACnC,CAAC;IAED,uDAA8B,GAA9B,UAA+B,OAAwC;QACrE,IAAI,cAAc,GAAqB,OAAO,CAAC;QAC/C,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,QAAQ,IAAI,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnG,IAAI,WAAW,GAA0B,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAK,IAAI,YAAK,CAAC,aAAa,KAAK,IAAI,EAA5B,CAA4B,CAAC,CAAC;YAC7G,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,OAAO,WAAW,CAAC,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;aAC3D;SACF;IACH,CAAC;IAED,+CAAsB,GAAtB,UAAuB,GAAW;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,OAAU,OAAQ,CAAC,SAAS,SAAI,OAAQ,CAAC,QAAU,CAAC;SACrD;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAAsB,GAAtB,UAAuB,GAAW;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,OAAQ,CAAC,QAAQ,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,yCAAgB,GAAxB;QAAA,iBAOC;QANC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,OAAO;gBAClC,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,CA/dmC,sBAAS,GA+d5C;AA/dY,wCAAc;;;;;;;;;;;ACd3B;IAAA;QACE,OAAE,GAAG,oBAAoB,CAAC;QAC1B,YAAO,GAAG,QAAQ,CAAC;QAGnB,eAAU,GAAG;YACX,cAAc,EAAE;gBACd,QAAQ,EAAE,gBAAgB;aAC3B;YACD,YAAY,EAAE,EAAE;YAEhB,UAAU,EAAE,MAAM;SACnB,CAAC;QAIF,mBAAc,GAAmD,EAAE,CAAC;QAGpE,gBAAW,GAAG,KAAK,CAAC;IA4DtB,CAAC;IA1DC,yCAAc,GAAd;QACE,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,SAAS,GAAS,IAAK,CAAC,KAAK,CAAC;SAC/B;aAAM;YACL,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,SAAS,GAAS,IAAK,CAAC,KAAK,CAAC;SAC/B;QAEK,IAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAG3B,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,YAAY,KAAK,CAAC,EAAE;YAC3C,OAAO;SACR;QAED,IAAI,CAAC,qBAAqB,CAAC,IAAgC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC/F,CAAC;IAEO,gDAAqB,GAA7B,UAA8B,SAAkD,EAAE,aAAmD,EAAE,SAAc,EAAE,mBAA2B;QAA3B,iEAA2B;QAChL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,SAAS,SAAyC,CAAC;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC/B,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC/C,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC9B,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;aAC3G;iBAAM;gBACL,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5C,SAA+B,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACtD,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;gBAElC,IAAK,MAAuB,CAAC,QAAQ,KAAK,IAAI,EAAE;oBAC9C,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;iBACxC;aAEF;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3B,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC1C;YAGD,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;gBACtD,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACvC,mBAAmB,GAAG,IAAI,CAAC;aAC5B;YAED,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SAClC;QAGD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,uBAAC;AAAD,CAAC;AA/EY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACD7B,0DAAqE;AACrE,4DAAyE;AAEzE,2CAAyC;AAKzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAErG;IAAqC,mCAAsB;IAA3D;QAAA,qEAgRC;QA/QC,QAAE,GAAG,mBAAmB,CAAC;QAKzB,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,kBAAkB,EAAE,MAAM;YAC1B,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,yBAAyB;aACpC;SACF,CAAC;QAEM,eAAS,GAAG,KAAK,CAAC;;IA0M5B,CAAC;IArMC,iDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAKD,uCAAa,GAAb;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAKD,uCAAa,GAAb;QACE,GAAG,CAAC,+BAA6B,IAAI,CAAC,IAAI,MAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAGvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAOD,uCAAa,GAAb,UAAc,UAAkB,EAAE,IAAY;QAAZ,mCAAY;QAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAElC,IAAI,MAAM,IAAI,IAAI,IAAI,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE;YACtD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YAE/B,GAAG,CAAC,aAAW,IAAI,CAAC,IAAI,6BAAwB,MAAM,CAAC,UAAU,cAAS,UAAU,OAAI,CAAC,CAAC;YAE1F,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACjC;YAED,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,yCAAe,GAAf;QAAA,iBA6BC;QA5BC,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAE9D,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;gBAClC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;gBAC3B,OAAO;aACR;YAED,IAAI,cAAc,SAA0B,CAAC;YAE7C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,cAAc,GAAG,IAAI,CAAC,OAA8B,CAAC;gBACzD,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,UAAC,WAAyB,EAAE,WAA8B;oBAC/F,OAAO,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAe,IAAK,QAAC,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,EAAtB,CAAsB,CAAC,CAAC;gBAC5F,CAAC,EAAE,SAAS,CAAC,CAAC;aACf;iBAAM;gBACL,IAAI,WAAW,GAAG,IAAI,CAAC,OAAyB,CAAC;gBACjD,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,UAAC,CAAe,IAAK,QAAC,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,EAAtB,CAAsB,CAAC,CAAC;aAChF;YAED,IAAI,cAAc,EAAE;gBAClB,WAAW,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;gBAC5C,GAAG,CAAC,aAAW,IAAI,CAAC,IAAI,kCAA6B,cAAc,CAAC,IAAI,0BAAqB,IAAI,CAAC,KAAK,OAAI,CAAC,CAAC;aAC9G;iBAAM;gBACL,GAAG,CAAC,kBAAgB,IAAI,CAAC,IAAI,+CAA0C,IAAI,CAAC,KAAK,mCAAgC,CAAC,CAAC;gBACnH,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;aAC5B;SACF;IACH,CAAC;IAMD,kCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,UAAU,GAAG,KAAK,CAAC;QAGvB,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;YAC5C,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAErB,GAAG,CAAC,aAAW,IAAI,CAAC,IAAI,uBAAkB,QAAQ,cAAS,MAAM,CAAC,KAAK,OAAI,CAAC,CAAC;SAC9E;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACtC;IACH,CAAC;IAKD,iDAAuB,GAAvB,UAAwB,QAAQ,EAAE,QAAQ;QAA1C,iBAUC;QATC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACxC,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEzG,UAAU,CAAC;YACT,KAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAMD,yCAAe,GAAf;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAkB,CAAC;QAEvF,IAAI,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAkB,CAAC;QAE1F,IAAI,CAAC,IAAI,CAAC,oCAAoC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,EAAE;YACvF,IAAI,WAAW,GAAG,aAAa;iBAE5B,GAAG,CAAC,UAAC,KAAa,IAAK,aAAI,KAAK,MAAG,EAAZ,CAAY,CAAC;iBACpC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,4BAA0B,WAAW,uBAAkB,IAAI,CAAC,IAAI,oBAAiB,CAAC,CAAC;SACjG;QAED,IAAI,CAAC,IAAI,CAAC,oCAAoC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE;YAC3F,IAAI,aAAa,GAAG,eAAe;iBAEhC,GAAG,CAAC,UAAC,IAAY,IAAK,aAAI,IAAI,MAAG,EAAX,CAAW,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,8BAA4B,aAAa,wBAAmB,IAAI,CAAC,IAAI,oBAAiB,CAAC,CAAC;SACtG;QAED,OAAO;YACL,aAAa;YACb,eAAe;SAChB,CAAC;IACJ,CAAC;IAQS,gDAAsB,GAAhC,UAAiC,KAAiB,EAAE,QAAgB;QAElE,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;YAC7B,OAAO,EAAE,CAAC;SACX;QAGI,mBAAI,EAAE,2BAAa,CAAU;QAGlC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;SACX;QAGD,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,SAAc,IAAK,gBAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAtC,CAAsC,CAAC,CAAC;QAG/F,IAAI,aAAa,GAAG,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAGpF,IAAI,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAG5E,OAAO,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IACH,sBAAC;AAAD,CAAC,CAhRoC,kDAAsB,GAgR1D;AAhRY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACX5B,0DAAqE;AAErE,4DAAyE;AAEzE;IAAmC,iCAAsB;IAAzD;QAAA,qEAyQC;QAxQC,QAAE,GAAG,iBAAiB,CAAC;QA6BvB,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,kBAAkB,EAAE,MAAM;YAC1B,yBAAyB,EAAE,MAAM;YACjC,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YAGD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,MAAM;YACrB,gBAAgB,EAAE,MAAM;YACxB,SAAS,EAAE,MAAM;YACjB,kBAAkB,EAAE,MAAM;YAC1B,gBAAgB,EAAE,MAAM;YACxB,yBAAyB,EAAE,MAAM;YACjC,kBAAkB,EAAE,MAAM;YAG1B,6BAA6B,EAAE,MAAM;YACrC,6BAA6B,EAAE,MAAM;YACrC,cAAc,EAAE,MAAM;YACtB,oBAAoB,EAAE;gBACpB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK;aACb;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAyIJ,CAAC;IAvIC,+CAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC3E,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAGlE,IACE,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACzB,IAAI,CAAC,kBAAkB,IAAI,IAAI;YAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAClC;YACA,IAAI;gBACF,eAAe,CAAC,KAAK,GAAG;oBACtB,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBAClH,YAAY,EAAE,IAAI,CAAC,kBAAkB;iBACtC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;aAGb;SACF;QAED,IACE,IAAI,CAAC,gBAAgB,IAAI,IAAI;YAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAChC,IAAI,CAAC,yBAAyB,IAAI,IAAI;YACtC,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EACzC;YACA,IAAI;gBACF,eAAe,CAAC,YAAY,GAAG;oBAC7B,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;wBACpC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC;wBACnE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBACrC,YAAY,EAAE,IAAI,CAAC,yBAAyB;iBAC7C,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;aAGb;SACF;QAED,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAOD,qCAAa,GAAb,UAAc,UAAkB,EAAE,IAAa;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE;YAChD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,gCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;IAGD,oDAA4B,GAA5B;QACE,IAAI,IAAI,CAAC,6BAA6B,IAAI,IAAI,EAAE;YAC9C,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBAClD,IAAI,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1D,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;iBACzE;aACF;SACF;IACH,CAAC;IAGD,oDAA4B,GAA5B;QACE,IAAI,IAAI,CAAC,6BAA6B,IAAI,IAAI,EAAE;YAC9C,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACzD,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBAClD,IAAI,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC1D,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;iBACzE;aACF;SACF;IACH,CAAC;IAGD,yCAAiB,GAAjB;QACE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAGD,6CAAqB,GAArB;QACE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,qCAAa,GAAb,UAAc,iBAAyB;QACrC,OAAO,CAAC,iBAAM,aAAa,YAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtI,CAAC;IAED,uCAAe,GAAf,UAAgB,WAAmB;QACjC,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IACzE,CAAC;IACH,oBAAC;AAAD,CAAC,CAzQkC,kDAAsB,GAyQxD;AAzQY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;ACJ1B,0DAAqE;AAErE,4DAAyE;AACzE,2CAAyC;AACzC,wCAAqC;AACrC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,2BAA2B,CAAC,CAAC;AAE1G;IAAyC,uCAAsB;IAA/D;QAAA,qEA4NC;QA3NC,QAAE,GAAG,wBAAwB,CAAC;QAU9B,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,kBAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC;aAC3D;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,kBAAkB,EAAE,MAAM;YAC1B,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;QAoDM,gBAAU,GAAkB,IAAI,CAAC;;IA4F3C,CAAC;IA7IC,sBAAI,sCAAK;aAAT;YACE,OAAiB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC;aAGD,UAAU,KAAe;YACvB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,CAAC;;;OALA;IAOD,sBAAI,sCAAK;aAAT;YACE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAED,UAAU,KAAU;YAClB,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAkB,KAAK,CAAC;QACzC,CAAC;;;OALA;IAOD,sBAAI,2CAAU;aAAd;YACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,OAAO;aACR;YAED,IAAI,MAAM,GAAqB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE3D,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC1C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAElB,OAAO,MAAM,CAAC,KAAK,CAAC;aACrB;QACH,CAAC;aAED,UAAe,KAA2B;YACxC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,CAAC;YACX,IAAI,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAC9B;aACF;QACH,CAAC;;;OAZA;IAkBD,sCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,mCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,wCAAU,GAAV;QACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,yCAAW,GAAX;QACE,GAAG,CAAC,cAAc,CAAC,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,iBAAM,WAAW,WAAE,CAAC;IACtB,CAAC;IAED,qDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAED,8CAAgB,GAAhB;QACE,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,2CAAa,GAAb;QACE,IAAI,SAAS,GAAuC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEhF,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACzD,IAAI,SAAS,GAAkB,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,sCAAQ,GAAR,UAAS,KAAgC,EAAE,IAAY;QAAZ,mCAAY;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAOD,2CAAa,GAAb,UAAc,UAAgC,EAAE,IAAc;QAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,KAAK,EAAE;YAC3C,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC;gBACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;aAGlB;YAED,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;aAC3C;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kDAAoB,GAApB,UAAqB,QAAgB;QACnC,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,CAAC;IACH,0BAAC;AAAD,CAAC,CA5NwC,kDAAsB,GA4N9D;AA5NY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACRhC,0DAAmE;AAEnE,4DAAyE;AACzE,wCAAqC;AAErC,IAAI,cAAc,GAAG,iBAAiB,CAAC;AAEvC;IAAqC,mCAAsB;IAA3D;QAAA,qEAyJC;QAxJC,QAAE,GAAG,mBAAmB,CAAC;QAczB,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,MAAM;YACvB,sBAAsB,EAAE,MAAM;YAC9B,sBAAsB,EAAE,MAAM;YAC9B,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAgEJ,CAAC;IA9DC,iDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnE,eAAe,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACtF,eAAe,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACtF,eAAe,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAEzE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAOD,uCAAa,GAAb,UAAc,UAAkB,EAAE,IAAa;QAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE;YAChD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,kBAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,kCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,kBAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SAC3D;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,CAzJoC,kDAAsB,GAyJ1D;AAzJY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACP5B,0CAAuC;AACvC;IAAuC,qCAAS;IAAhD;QAAA,qEAkGC;QAjGC,QAAE,GAAG,qBAAqB,CAAC;QAK3B,gBAAU,GAAG;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,YAAY;aACvB;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,cAAc;aACzB;YACD,IAAI,EAAE,MAAM;SACb,CAAC;QA6DF,kBAAY,GAAG;YACb,IAAI,KAAK,GAAgB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,WAAW,GAAG,QAAQ,CAAO,KAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACxD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;YAClE,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;YAE3B,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;YACnD,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;YAEtD,IAAI,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;YAGjE,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;YACzC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;YACpC,QAAQ,CAAC,SAAS,GAAG,WAAW,CAAC;QACnC,CAAC,CAAC;;IACJ,CAAC;IA9EC,sBAAI,yCAAU;aASd;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAXD,UAAe,KAAa;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACjC;YAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5C,CAAC;;;OAAA;IAOD,wCAAY,GAAZ,UAAa,KAAK;QAChB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAGD,sCAAU,GAAV,UAAW,GAAG;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,4CAAgB,GAAhB,UAAiB,IAAY,EAAE,IAAS;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAExC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,iCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,KAAK,GAAgB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAQ,IAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,YAAY,CAAC,KAAK,EAAQ,IAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,IAAU,IAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAE7E,IAAI,sCAAsC,GAAG,UAAU,KAAK;YAE1D,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1C,IAAI,CAAC,GAAU,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC;QAGF,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAInF,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAsBH,wBAAC;AAAD,CAAC,CAlGsC,sBAAS,GAkG/C;AAlGY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACD9B,0CAAuC;AACvC,IAAI,cAAc,GAAG,iBAAiB,CAAC;AAEvC;IAA0C,wCAAS;IAAnD;QAAA,qEAsBC;QArBC,QAAE,GAAG,yBAAyB,CAAC;QAK/B,gBAAU,GAAG;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,IAAI;gBACZ,kBAAkB,EAAE,IAAI;aAC3B;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;SACF,CAAC;;IAKJ,CAAC;IAHC,6CAAc,GAAd;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,2BAAC;AAAD,CAAC,CAtByC,sBAAS,GAsBlD;AAtBY,oDAAoB;;;;;;;;;;;;;;;;;;;;;;;;ACHjC,0CAAuC;AAEvC;IAA8C,4CAAS;IAAvD;QAAA,qEAoDC;QAnDC,QAAE,GAAG,6BAA6B,CAAC;QAQnC,gBAAU,GAAG;YACX,cAAc,EAAE;gBACd,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,2BAA2B;aACtC;SACF,CAAC;;IAqCJ,CAAC;IAnCC,wCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;SAClC;IACH,CAAC;IAED,sDAAmB,GAAnB,UAAoB,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAED,4DAAyB,GAAzB;QAEE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,OAAO;SACR;QAGD,IAAI,SAAS,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACzH,IAAI,iBAAiB,GAAyC,EAAE,CAAC;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;YACpD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBACjF,SAAS,GAAG,IAAI,CAAC;aAClB;YACD,iBAAiB,CAAC,IAAI,CAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC5B,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;aAC9B,CAAC,CAAC;SACJ;QAED,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC;SACjD;IACH,CAAC;IACH,+BAAC;AAAD,CAAC,CApD6C,sBAAS,GAoDtD;AApDY,4DAAwB;;;;;;;;;;;;;;;;;;;;;;;;ACFrC,6CAAkD;AAGlD,qCAA0B;AAC1B,0CAA0C;AAI1C,0CAAyC;AACzC,qDAAmE;AAGnE;IAA+B,6BAAS;IAAxC;QAAA,qEA2UC;QA1UC,QAAE,GAAG,YAAY,CAAC;QAIlB,eAAS,GAAG,KAAK,CAAC;QAkBlB,gBAAU,GAAG;YACX,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CAAC;QAEM,wBAAkB,GAAG,IAAI,uCAAiB,EAAE,CAAC;;IAySvD,CAAC;IArSC,sBAAI,gCAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAED,UAAc,KAAsB;YAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;;;OALA;IAOD,yBAAK,GAAL,UAAM,EAAU;QACd,OAAO,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,4BAAQ,GAAR;QAAA,iBASC;QARC,iBAAM,QAAQ,WAAE,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YACtC,KAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE;YACpD,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG;YACf,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,EAAE;SAChB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,oCAAgB,GAAhB,UAAiB,KAAY;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,+BAAW,GAAX,UAAY,KAAY;QACtB,IAAI,CAAC,WAAW,GAAS,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,iCAAa,GAAb,UAAc,WAAW;QACvB,OAAO,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC;IAED,0CAAsB,GAAtB,UAAuB,WAAW;QAChC,OAAO,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,wCAAoB,GAApB,UAAqB,QAAoC,EAAE,QAAwB,EAAE,kBAA2B,EAAE,qBAA8B;QAC9I,IAAI,QAAQ,YAAY,KAAK,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,qBAAqB,CAAC,CAAC;SACpG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sCAAkB,GAAlB,UAAmB,OAAmB,EAAE,mBAA4B;QAClE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC;IACnD,CAAC;IAED,0CAAsB,GAAtB,UAAuB,OAAgB,EAAE,WAAoB;QAC3D,OAAO,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,yCAAqB,GAArB,UAAsB,OAAgB,EAAE,WAAoB;QAC1D,OAAO,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,uCAAmB,GAAnB,UAAoB,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,MAAM,GAAuD,KAAK,CAAC,MAAM,CAAC;QAC9E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACnC,MAAM,GAAuD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACrG;QACD,IAAI,OAAO,GAAQ,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,uCAAmB,GAAnB,UAAoB,KAAU;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,OAAO,GAAY,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACrC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,wCAAoB,GAApB,UAAqB,OAAgB,EAAE,aAAsB;QAC3D,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;YAC1C,OAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,MAAG,CAAC;SAC5G;QACD,OAAO,KAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAG,CAAC;IAClD,CAAC;IAED,wCAAoB,GAApB;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,KAAiB,UAAqB,EAArB,SAAI,CAAC,UAAU,CAAC,KAAK,EAArB,cAAqB,EAArB,IAAqB,EAAE;YAAnC,IAAI,IAAI;YACX,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACxB,MAAM,oCAAoC,CAAC;aAC5C;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SAC3C;QACD,KAAoB,UAAwB,EAAxB,SAAI,CAAC,UAAU,CAAC,QAAQ,EAAxB,cAAwB,EAAxB,IAAwB,EAAE;YAAzC,IAAI,OAAO;YACd,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACtC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,oCAAgB,GAAhB,UAAiB,YAA6B,EAAE,SAA0B;QACxE,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;IAED,iCAAa,GAAb,UAAc,WAAW,EAAE,SAAS,EAAE,SAA0B;QAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,CAC/E,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;eACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;eACrE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,SAAS,IAAI,YAAY,CAAC;IAChF,CAAC;IAED,sCAAkB,GAAlB,UAAmB,KAAK;QACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,OAAO,GAAY,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;YACjD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI;gBACtD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACnC,KAAK,EAAE,OAAO;gBACd,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;aACzB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAChC,KAAK,EAAE,OAAO;gBACd,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;aACzB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,yCAAqB,GAArB,UAAsB,KAAK;QACzB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,OAAO,GAAwB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QACvD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;YACzC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,QAAQ;gBAChE,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACnC,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAChC,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,kCAAc,GAAd;QACE,IAAI,CAAC,UAAU,GAAG;YAChB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACxC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC9C,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,6CAAyB,GAAzB,UAA0B,KAAkB;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,UAAU,GAAiB,KAAK,CAAC,MAAM,CAAC;QAC5C,IAAI,iBAAiB,GAAyB;YAC5C,IAAI,EAAE,4BAA4B;YAClC,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,QAAQ;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,kCAAc,GAAd,UAAe,KAAU;QAAzB,iBA4BC;QA3BC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,EAAuB,IAAK,SAAE,CAAC,UAAU,EAAb,CAAa,CAAC,CAAC;QACrG,IAAI,MAAM,GAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;YAC9D,UAAU,EAAE,iCAAkB,CAAC,eAAe;YAC9C,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;YAC5B,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SAC5H,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;aACxE,SAAS,CAAC,UAAC,UAAwB;YAClC,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,yBAAyB,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9E,KAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC;YAC7C,KAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,UAAU,CAAC;gBACT,KAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;oBAC/E,KAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAClE,CAAC;IAED,uCAAmB,GAAnB,UAAoB,KAAK;QAAzB,iBAmCC;QAlCC,IAAI,SAAmC,CAAC;QACxC,IAAI,MAAM,GAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI;YAC1C,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ;YAClD,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,aAAa;YAC5D,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ;SACnD,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE;YAClC,SAAS,GAAG,SAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3K,oBAAQ,CAAC,UAAC,YAAY;gBACpB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,iCAAkB,CAAC,eAAe,CAAC;gBACvD,OAAO,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC,CAAC;SACP;aAAM;YACL,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAS,CAAC,CAAC,IAAI,CACpI,oBAAQ,CAAC,UAAC,YAAY;gBACpB,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9F,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,iCAAkB,CAAC,cAAc,CAAC;gBACtD,OAAO,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC,CAAC;SACP;QACD,SAAS;aACN,SAAS,CAAC,UAAC,UAAwB;YAClC,KAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC;YAC7C,UAAU,CAAC;gBACT,IAAI,WAAW,GAAgB,KAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;gBACjF,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,UAAC,GAAG;YACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6CAAyB,GAAzB,UAA0B,kBAA0B;QAGlD,IAAI,qBAAqB,GAAY,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,UAAC,eAAe;YAC5F,OAAO,eAAe,CAAC,UAAU,KAAK,kBAAkB,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACH,gBAAC;AAAD,CAAC,CA3U8B,sBAAS,GA2UvC;AA3UY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACZtB,0CAAyC;AACzC,IAAI,OAAO,GAAG,8BAA8B,CAAC;AAE7C,IAAM,WAAW,GAA6B;IAC5C,wBAAwB,EAAE,qBAAqB;IAC/C,oBAAoB,EAAE,qBAAqB;IAC3C,gBAAgB,EAAE,qBAAqB;IACvC,cAAc,EAAE,qBAAqB;IACrC,eAAe,EAAE,qBAAqB;IACtC,iBAAiB,EAAE,qBAAqB;IACxC,qBAAqB,EAAE,qBAAqB;IAC5C,gBAAgB,EAAE,qBAAqB;IACvC,gBAAgB,EAAE,qBAAqB;IACvC,iBAAiB,EAAE,qBAAqB;IACxC,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE,qBAAqB;IACtC,cAAc,EAAE,qBAAqB;IACrC,yBAAyB,EAAE,qBAAqB;IAChD,oBAAoB,EAAE,qBAAqB;CAC5C,CAAC;AAGF,IAAM,iBAAiB,GAAgC;IACrD,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,WAAW;IAC3B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,eAAe;IAC/B,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,YAAY;IAC5B,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,UAAU;IACvB,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,QAAQ;IACpB,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,gBAAgB;IACpC,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,WAAW;IAC1B,cAAc,EAAE,MAAM;IACtB,YAAY,EAAE,UAAU;IACxB,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,OAAO;IAClB,mBAAmB,EAAE,mBAAmB;IACxC,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,eAAe;IAChC,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,cAAc;IAChC,iBAAiB,EAAE,cAAc;IACjC,uBAAuB,EAAE,cAAc;IACvC,cAAc,EAAE,cAAc;IAC9B,wBAAwB,EAAE,eAAe;IACzC,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,iBAAiB;IACpC,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,gBAAgB;IACzB,kBAAkB,EAAE,mBAAmB;IACvC,gBAAgB,EAAE,iBAAiB;IACnC,QAAQ,EAAE,eAAe;IACzB,gBAAgB,EAAE,iBAAiB;IACnC,cAAc,EAAE,eAAe;IAC/B,UAAU,EAAE,iBAAiB;IAC7B,MAAM,EAAE,aAAa;IACrB,qBAAqB,EAAE,mBAAmB;IAC1C,gBAAgB,EAAE,gBAAgB;IAClC,aAAa,EAAE,cAAc;IAC7B,cAAc,EAAE,cAAc;IAC9B,mBAAmB,EAAE,sBAAsB;IAC3C,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,cAAc;IAClC,kBAAkB,EAAE,cAAc;IAClC,kBAAkB,EAAE,eAAe;IACnC,kBAAkB,EAAE,iBAAiB;IACrC,kBAAkB,EAAE,gBAAgB;IACpC,kBAAkB,EAAE,gBAAgB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,eAAe;IACnC,mBAAmB,EAAE,gBAAgB;IACrC,sBAAsB,EAAE,yBAAyB;IACjD,yBAAyB,EAAE,yBAAyB;IACpD,kBAAkB,EAAE,gBAAgB;IACpC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,iBAAiB;IACzC,mBAAmB,EAAE,iBAAiB;IACtC,6BAA6B,EAAE,wBAAwB;IACvD,2BAA2B,EAAE,wBAAwB;IACrD,UAAU,EAAE,gBAAgB;IAC5B,iBAAiB,EAAE,iBAAiB;IACpC,mBAAmB,EAAE,iBAAiB;IACtC,YAAY,EAAE,uBAAuB;IACrC,cAAc,EAAE,qBAAqB;IACrC,oBAAoB,EAAE,eAAe;IACrC,oBAAoB,EAAE,eAAe;IACrC,gBAAgB,EAAE,aAAa;IAC/B,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,WAAW;IAC9B,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,WAAW;IAC3B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,MAAM;IAC3B,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,YAAY;IAC5B,cAAc,EAAE,YAAY;IAC5B,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,YAAY;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,oBAAoB,EAAE,2BAA2B;IACjD,oBAAoB,EAAE,qBAAqB;IAC3C,YAAY,EAAE,WAAW;IACzB,gBAAgB,EAAE,WAAW;IAC7B,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,kBAAkB;IAClC,OAAO,EAAE,iBAAiB;IAC1B,YAAY,EAAE,2BAA2B;IACzC,qBAAqB,EAAE,eAAe;IACtC,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,iBAAiB;IAC3B,iBAAiB,EAAE,qBAAqB;IACxC,YAAY,EAAE,WAAW;IACzB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,uBAAuB;IACjC,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,MAAM;IAC3B,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,YAAY;IAC/B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,oBAAoB;IACpC,aAAa,EAAE,cAAc;IAC7B,QAAQ,EAAE,cAAc;IACxB,sBAAsB,EAAE,aAAa;IACrC,qBAAqB,EAAE,YAAY;IACnC,QAAQ,EAAE,cAAc;IACxB,gBAAgB,EAAE,qBAAqB;IACvC,cAAc,EAAE,oBAAoB;IACpC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,qBAAqB;IACjC,OAAO,EAAE,iBAAiB;IAC1B,cAAc,EAAE,aAAa;IAC7B,cAAc,EAAE,WAAW;IAC3B,mBAAmB,EAAE,iBAAiB;IACtC,eAAe,EAAE,WAAW;IAC5B,uBAAuB,EAAE,WAAW;IACpC,WAAW,EAAE,kBAAkB;IAC/B,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,WAAW;IAC5B,eAAe,EAAE,gBAAgB;IACjC,WAAW,EAAE,WAAW;IACxB,uBAAuB,EAAE,aAAa;IACtC,yBAAyB,EAAE,uBAAuB;IAClD,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,WAAW;IACvB,sBAAsB,EAAE,aAAa;IACrC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,aAAa;IAChC,kBAAkB,EAAE,MAAM;IAC1B,oBAAoB,EAAE,OAAO;IAC7B,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,aAAa;IAC9B,gBAAgB,EAAE,aAAa;IAC/B,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,WAAW;IAC1B,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,WAAW;IACzB,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;IAA6B,2BAAS;IAAtC;QAAA,qEAwCC;QAvCC,QAAE,GAAG,UAAU,CAAC;QAOhB,gBAAU,GAAG;YACX,IAAI,EAAE;gBACJ,SAAS,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAC;gBACzC,QAAQ,EAAE,eAAe;aAC1B;SACF,CAAC;;IA2BJ,CAAC;IAvBC,0BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IAED,+BAAa,GAAb;QACE,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC9C,QAAQ,GAAG,iBAAiB,CAAE,QAAQ,CAAE,CAAC;SAC1C;QAED,IAAI,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SAC5B;aAAM;YACL,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7C,QAAQ,CAAE,CAAC,CAAE,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC;gBACpE,QAAQ,CAAE,CAAC,CAAE,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;aAC9F;SACF;IACH,CAAC;IACH,cAAC;AAAD,CAAC,CAxC4B,sBAAS,GAwCrC;AAxCY,0BAAO;;;;;;;;;;;;;;;;;;;;;;;;AC3NpB,mDAA6D;AAE7D,2CAAyC;AAEzC,sDAA4D;AAG5D,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE7F;IAAiC,+BAAmB;IAApD;QAAA,qEAgFC;QA/EC,QAAE,GAAG,eAAe,CAAC;QAQrB,gBAAU,GAAG;YACX,aAAa,EAAE;gBACb,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,EAAE;aACV;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,0BAA0B;aACrC;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,0BAA0B;aACrC;SACF,CAAC;;IAwDJ,CAAC;IAtDC,8BAAQ,GAAR;QACE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,mCAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED,8CAAwB,GAAxB;QACE,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzD,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;IACH,CAAC;IAED,oCAAc,GAAd;QAAA,iBAkBC;QAjBC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,OAAO;SACR;QAED,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAClH,UAAC,QAAiC;YAChC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACzC,KAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC,EACD,UAAC,KAAK;YACJ,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAE7C,IAAI,KAAI,CAAC,aAAa,IAAI,IAAI,IAAI,KAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjE,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,2CAAqB,GAArB;QACE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,+CAAyB,GAAzB;QACE,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,wCAAkB,GAAlB;QACE,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,yBAAG,GAAH,UAAI,OAAa;QAAE,wBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,uCAAwB;;QACzC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,yCAAmB,GAAnB;QACE,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,kBAAC;AAAD,CAAC,CAhFgC,2CAAmB,GAgFnD;AAhFY,kCAAW;;;;;;;;;;;ACTxB,yCAAqC;AACrC,wCAAmC;AAGnC;IAOE;QAAA,iBAwBC;QAlBC,IAAI,CAAC,kCAAkC,GAAG,UAAC,KAAoB;YAC7D,IAAI,4BAA4B,GAAG,oBAAQ,CAAC,sBAAsB,CAAc,KAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5G,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;oBAC7G,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,KAAI,CAAC,4BAA4B,IAAI,IAAI,EAAE;wBAC/B,KAAI,CAAC,4BAA6B,CAAC,KAAK,EAAE,CAAC;qBAC1D;iBACF;qBAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC9H,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,KAAI,CAAC,4BAA4B,IAAI,IAAI,EAAE;wBAC/B,KAAI,CAAC,4BAA6B,CAAC,KAAK,EAAE,CAAC;qBAC1D;iBACF;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,wDAAe,GAAf,UAAgB,OAAuC;QACrD,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,0DAAiB,GAAjB,UAAkB,SAAyC;QACzD,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,qEAA4B,GAA5B,UAA6B,SAAiB;QAC5C,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;YACtC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;SACjG;IACH,CAAC;IAED,uEAA8B,GAA9B,UAA+B,SAAiB;QAC9C,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;YACtC,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;SACpG;IACH,CAAC;IAED,6DAAoB,GAApB,UAAqB,SAAqB;QACxC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,8FAAqD,GAArD;QACE,IAAI,2BAA2B,GAAuB,EAAE,CAAC;QACzD,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;YACtC,2BAA2B,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;SACvH;QACD,IAAI,2BAA2B,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3C,IAAI,mBAAmB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;YACzD,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,SAAS,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACnJ,IAAI,kBAAkB,GAAG,2BAA2B,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7F,kBAAkB,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,SAAS,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC;SAChJ;aAAM,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE;YACnD,IAAI,mBAAmB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;YACzD,mBAAmB,CAAC,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC,SAAS,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,CAAC;SACtJ;IACH,CAAC;IAEO,kDAAS,GAAjB;QACE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IACH,qCAAC;AAAD,CAAC;AA9EY,wEAA8B;;;;;;;;;;;ACyC3C;IAAA;IAgFA,CAAC;IA9EQ,0CAAsB,GAA7B,UAA8B,OAI7B;QAJ6B;YAC5B,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,cAAc;YAChC,OAAO,EAAE,kBAAkB;SAC5B;QAEC,IAAI,aAAa,GAA0B;YACzC,KAAK,EAAE,OAAO,CAAC,SAAS;YACxB,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,IAAI;SAClB,CAAC;QACF,mBAAmB,CAAC,oCAAoC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjF,OAAO,aAAa,CAAC;IACvB,CAAC;IAEc,wDAAoC,GAAnD,UAAoD,aAAoC,EAAE,OAA8B;QACtH,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE;YACvC,IAAI,QAAQ,GAAG,QAAQ,CAAC;YACxB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;SACvD;QACD,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE;YACnC,IAAI,QAAQ,GAAG,SAAS,CAAC;YACzB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;SACnD;QACD,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACtC,IAAI,QAAQ,GAAG,UAAU,CAAC;YAC1B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACpC,IAAI,QAAQ,GAAG,UAAU,CAAC;YAC1B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;SACpD;QACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACpC,IAAI,QAAQ,GAAG,QAAQ,CAAC;YACxB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;SACpD;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,IAAI,QAAQ,GAAG,QAAQ,CAAC;YACxB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC5B,IAAI,QAAQ,GAAG,UAAU,CAAC;YAC1B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;SAC5C;QACD,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACtC,IAAI,QAAQ,GAAG,WAAW,CAAC;YAC3B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACtC,IAAI,QAAQ,GAAG,gBAAgB,CAAC;YAChC,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;YAClC,IAAI,QAAQ,GAAG,gBAAgB,CAAC;YAChC,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;SAClD;QACD,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE;YACnC,IAAI,QAAQ,GAAG,cAAc,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;SACnD;QACD,IAAI,OAAO,CAAC,oBAAoB,IAAI,IAAI,EAAE;YACxC,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;SACxD;QACD,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;YACjC,IAAI,QAAQ,GAAG,MAAM,CAAC;YACtB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;SACjD;QACD,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE;YACnC,IAAI,QAAQ,GAAG,eAAe,CAAC;YAC/B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;SACnD;QACD,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;YAC/B,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;SAC/C;IACH,CAAC;IACH,0BAAC;AAAD,CAAC;AAhFY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;AC7ChC,0CAAyC;AAGzC;IAAyC,uCAAS;IAAlD;QAAA,qEAwLC;QAvLC,QAAE,GAAG,wBAAwB,CAAC;QAK9B,mCAA6B,GAAG,KAAK,CAAC;QACtC,+BAAyB,GAAG,KAAK,CAAC;;IAiLpC,CAAC;IA9KC,mCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;QAC3C,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,sCAAQ,GAAR;QAAA,iBAcC;QAbC,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,sBAAsB,GAAG,UAAC,KAAY;YAEzC,IAAI,KAAI,CAAC,yBAAyB,EAAE;gBAClC,IAAI,QAAQ,GAAgB,KAAI,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;gBACpF,IAAI,QAAQ,GAAgB,KAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;gBAE3E,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAc,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAc,KAAK,CAAC,MAAM,CAAC,EAAE;oBAEtH,KAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC7B;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAKD,qDAAuB,GAAvB,UAAwB,aAAkB,EAAE,6BAAsC,EAAE,QAAiB,EAAE,UAAgC;QAErI,IAAI,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI,6BAA6B,EAAE;YACjC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,2DAA2D,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;SAClI;aAAM;YACL,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,iDAAiD,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxH;IACH,CAAC;IAED,uDAAyB,GAAzB,UAA0B,aAAkB,EAAE,yBAAkC,EAAE,SAAoB,EAAE,eAAqC;QAC3I,IAAI,eAAe,IAAI,IAAI,EAAE;YAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,4EAA4E,CAAC,CAAC;SAEpH;aAAM;YAEL,IAAI,iBAAiB,SAAqB,CAAC;YAE3C,IAAI,eAAe,CAAC,OAAO,IAAI,IAAI,EAAE;gBACnC,KAAuB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,EAAE;oBAA7B,IAAI,UAAU;oBACjB,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;wBAC/B,KAAqB,UAAmB,EAAnB,eAAU,CAAC,QAAQ,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;4BAArC,IAAI,QAAQ;4BACf,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE;gCACpF,iBAAiB,GAAG,UAAU,CAAC;6BAChC;yBACF;qBACF;iBACF;aACF;YAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;SAC/F;IACH,CAAC;IAED,wDAA0B,GAA1B,UAA2B,aAAkB,EAAE,yBAAkC,EAAE,eAAqC;QACtH,IAAI,yBAAyB,EAAE;YAE7B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,wDAAwD,CAAC,CAAC;SAChG;aAAM;YACL,IAAI,eAAe,IAAI,IAAI,EAAE;gBAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,4EAA4E,CAAC,CAAC;aACpH;iBAAM;gBAEL,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,uDAAuD,CAAC,CAAC;aAC/F;SACF;IACH,CAAC;IAGD,yCAAW,GAAX,UAAY,QAAiB;QAC3B,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAM,EAAE,EAAE;YAC1D,OAAO,WAAW,CAAC;SACpB;aAAM;YACL,OAAO,QAAQ,CAAC,QAAQ,CAAC;SAC1B;IACH,CAAC;IAED,uCAAS,GAAT,UAAU,QAAiB,EAAE,eAAyB;QACpD,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;aAAM;YACL,OAAO,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;SAC3C;IACH,CAAC;IAED,2DAA6B,GAA7B,UAA8B,KAAY;QACxC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAElC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;aAAM;YAEL,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,6DAA+B,GAA/B,UAAgC,KAAY;QAC1C,IAAI,CAAC,6BAA6B,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC;IAC3E,CAAC;IAGD,2CAAa,GAAb,UAAc,KAAU;QACtB,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAChC;IACH,CAAC;IAED,gDAAkB,GAAlB,UAAmB,KAAU;QAC3B,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YAEvC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAEjC,IAAI,QAA6B,CAAC;QAClC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YAExB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;SACjC;aAAM;YAEL,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;SACjC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE;YAEpB,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAElC,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;aAC3C;iBAAM;gBAEL,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;SACF;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;YAE/B,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;SACF;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;SACxD;IACH,CAAC;IAED,wCAAU,GAAV,UAAW,KAAK;QACd,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAGO,kDAAoB,GAA5B;QACE,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAEO,kDAAoB,GAA5B;QACE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QAEtC,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IACH,0BAAC;AAAD,CAAC,CAxLwC,sBAAS,GAwLjD;AAxLY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACHhC,0CAAyC;AAEzC,IAAI,OAAO,GAAG,8BAA8B,CAAC;AAE7C;IAA+B,6BAAS;IAAxC;QAAA,qEA0DC;QAzDG,QAAE,GAAG,YAAY,CAAC;QAGlB,gBAAU,GAAG;YACT,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aAClB;YACD,gBAAgB,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACZ;YACD,mBAAmB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACZ;SACJ,CAAC;;IAyCN,CAAC;IAjCG,4BAAQ,GAAR;QAGI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACzE;IACL,CAAC;IASD,4BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5E;IACH,CAAC;IAED,sCAAkB,GAAlB,UAAmB,IAAY;QAC3B,QAAQ,IAAI,EAAE;YACV,KAAK,OAAO;gBACR,OAAO,eAAe,CAAC;YAC3B,KAAK,OAAO;gBACR,OAAO,eAAe,CAAC;YAC3B,KAAK,QAAQ,CAAC;YACd;gBACI,OAAO,YAAY,CAAC;SAC3B;IACL,CAAC;IACL,gBAAC;AAAD,CAAC,CA1D8B,sBAAS,GA0DvC;AA1DY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACJtB,0CAAyC;AACzC,wCAAqC;AAErC;IAAyC,uCAAS;IAAlD;QAAA,qEA0IC;QAzIG,QAAE,GAAG,uBAAuB,CAAC;QAQ7B,gBAAU,GAAG;YACT,SAAS,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC;aACX;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC;aACX;YACD,WAAW,EAAE;gBACT,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACd;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,mBAAmB;aAC7B;YACD,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,kBAAkB;aAC5B;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACjB;SACJ,CAAC;;IAwGN,CAAC;IAtGG,2CAAa,GAAb;QACI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,OAAO,mBAAmB,CAAC;SAC5B;QAGD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW;YACxE,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;YAElG,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;aAAM;YAEH,OAAO,mBAAmB,CAAC;SAC9B;IAEL,CAAC;IAED,0CAAY,GAAZ;QACI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,OAAO,kBAAkB,CAAC;SAC3B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,EAAE;YAEzG,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;QAED,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAID,2CAAa,GAAb,UAAc,OAAO;QACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAGD,wCAAU,GAAV;QAEI,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxE,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,gDAAkB,GAAlB;QAEI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC1B,OAAO,kBAAO,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;SAC7F;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YAC9C,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAC1C,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;SACtB;QACD,OAAO,kBAAO,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAC,CAAC,CAAC;IACvF,CAAC;IAGD,4CAAc,GAAd;QAEI,IAAI,IAAI,CAAC,WAAW,EAAE;YAElB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACxB;YACD,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;gBACxB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;aAC1B;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxE,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,OAAO,GAAG,CAAC;SACd;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IAEL,0BAAC;AAAD,CAAC,CA1IwC,sBAAS,GA0IjD;AA1IY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACFhC,0DAA0F;AAC1F,4DAAyE;AAGzE,2CAAyC;AACzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAE3G;IAA0C,wCAAsB;IAAhE;QAAA,qEAwOC;QAvOC,QAAE,GAAG,yBAAyB,CAAC;QAI/B,aAAO,GAA+B,IAAI,CAAC;QAG3C,gBAAU,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,kBAAkB,EAAE,MAAM;YAE1B,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,cAAc;aACzB;SACF,CAAC;QAGM,iBAAW,GAAuB,SAAS,CAAC;;IAgKtD,CAAC;IA3JC,sDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAKD,4CAAa,GAAb;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO;YACL,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;YACjC,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC;IAKD,4CAAa,GAAb;QACE,GAAG,CAAC,+BAA6B,IAAI,CAAC,IAAI,MAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAGvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAOD,4CAAa,GAAb,UAAc,UAAkB,EAAE,IAAY;QAAZ,mCAAY;QAC5C,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW,EAAE;YACnC,GAAG,CAAC,aAAW,IAAI,CAAC,IAAI,6BAAwB,IAAI,CAAC,WAAW,cAAS,UAAU,OAAI,CAAC,CAAC;YACzF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAE9B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACjC;YAED,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,uCAAQ,GAAR,UAAS,KAAyB,EAAE,IAAY;QAAZ,mCAAY;QAC9C,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;aACzE;SACF;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;IAED,+CAAgB,GAAhB;QACE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAMD,2CAAY,GAAZ;QAAA,iBA6CC;QA5CC,IAAI,SAAS,GAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtD,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,KAAmB,UAAY,EAAZ,SAAI,CAAC,OAAO,EAAZ,cAAY,EAAZ,IAAY,EAAE;gBAA5B,IAAI,MAAM;gBAEb,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,OAAO,GAAqB,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAG7B,OAAO,CAAC,YAAY,CAAC,KAAK,EAAK,IAAI,CAAC,IAAI,gBAAW,WAAa,CAAC,CAAC;gBAElE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAK,IAAI,CAAC,IAAI,gBAAW,WAAa,CAAC,CAAC;gBACjE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAC,KAAK;oBACrC,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAC,KAAK;oBACvC,KAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;gBACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,UAAU,CAAC,CAAC;gBACtD,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEtD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACtC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEhC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACnC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;gBAG5C,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3B,WAAW,EAAE,CAAC;aACf;SACF;IACH,CAAC;IAED,6CAAc,GAAd;QACE,IAAI,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,UAAU,CAAC,CAAC;aACrE;SACF;IACH,CAAC;IAGD,0CAAW,GAAX;QACE,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QACzC,iBAAM,WAAW,WAAE,CAAC;IACtB,CAAC;IAGD,6CAAc,GAAd,UAAe,oBAA4B;QAA5B,mEAA4B;QACzC,OAAO,iBAAM,cAAc,YAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACH,2BAAC;AAAD,CAAC,CAxOyC,kDAAsB,GAwO/D;AAxOY,oDAAoB;AA0OjC,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,OAAO,GAAgB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACtPD,0DAAqE;AAErE,iEAAoH;AACpH,4DAAyE;AACzE,yCAAuC;AACvC,wCAAqC;AACrC,2CAAyC;AAEzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAKxG,SAAgB,mCAAmC,CAAC,GAAQ;IAIxD,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;QAC9F,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9C,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAS;gBAC/C,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,WAAW,GAAG,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,IAAI,WAAW,IAAI,IAAI,EAAE;YACrB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;SAChC;KACJ;AACH,CAAC;AAnBH,kFAmBG;AAEH,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,IAAI,IAAI,EAAE;IACvD,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAC;IAYrE,IAAM,oBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1C,kBAAO,CAAC,yBAAyB,CAAC,CAAC,EAAE,oDAAoD,CAAC,CAAC;QAC3F,oBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC;CACH;AACD;IAAuC,qCAAsB;IAA7D;QAAA,qEA4YC;QA1YC,QAAE,GAAG,sBAAsB,CAAC;QAoB5B,gBAAU,GAAG;YACX,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,oBAAoB;aAC/B;YACD,cAAc,EAAE,MAAM;YACtB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,oBAAoB;aAC/B;YACD,sBAAsB,EAAE;gBACtB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,0BAA0B,EAAE;gBAC1B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,0BAA0B,EAAE;gBAC1B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YAED,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;;IA0RJ,CAAC;IAxRC,8CAAkB,GAAlB;QACE,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/Q,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,mDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAE/F,eAAe,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;QAC9D,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAED,qCAAS,GAAT,UAAU,aAAqB;QAC7B,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,4CAAgB,GAAhB,UAAiB,OAA2C;QAC1D,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjC,IAAI,aAAa,GAAQ,6DAA2B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/E,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,oCAAQ,GAAR;QACE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjR,CAAC;IAED,oCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,0CAAc,GAAd;QACE,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAK3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAI,IAAI,CAAC,IAAI,sBAAmB,CAAC,CAAC,CAAC;SAC/E;IACH,CAAC;IAED,4CAAgB,GAAhB,UAAiB,cAAsB,EAAE,aAAqB,EAAE,sBAA8B,EAAE,0BAAkC,EAAE,iBAAyB,EAAE,0BAAkC,EAAE,iBAAyB,EAAE,aAAqB,EAAE,cAAsB,EAAE,iBAAyB;QAAtS,iBAuGC;QAtGC,IAAI,IAAI,CAAC,UAAU,EAAE;YAKnB,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7D,IAAI,eAAe,EAAE;gBACnB,IAAI,wBAAsB,GAAG,CAAC,0BAA0B,KAAK,MAAM,CAAC,CAAC;gBACrE,IAAI,OAAO,GAAuC;oBAChD,UAAU,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;oBAC5C,WAAW,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC;oBACvC,kBAAkB,EAAE,CAAC,sBAAsB,KAAK,MAAM,CAAC;oBACvD,sBAAsB,EAAE,CAAC,0BAA0B,KAAK,MAAM,CAAC;oBAC/D,aAAa,EAAE,CAAC,iBAAiB,KAAK,MAAM,CAAC;oBAC7C,aAAa,EAAE,CAAC,iBAAiB,KAAK,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC;oBAC/E,eAAe,EAAE,CAAC,cAAc,KAAK,MAAM,CAAC;oBAC5C,YAAY,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC;oBACxC,UAAU,EAAE,CAAC,cAAc,KAAK,MAAM,CAAC;oBACvC,aAAa,EAAE,CAAC,iBAAiB,KAAK,MAAM,CAAC;iBAC9C,CAAC;gBACF,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;oBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,aAAa,CAAC,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBAC3B;qBAAM;oBAKL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,aAAa,CAAC,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAGpC,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;gBAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;oBACrB,IAAI,KAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;wBACjC,IAAI,QAAQ,GAAQ,KAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAG3C,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;4BACxC,KAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC;wBAIH,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE;4BACzC,KAAI,CAAC,cAAc,EAAE,CAAC;wBACxB,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;oBACvB,KAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE;oBAM9B,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAClC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;oBACrB,KAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;oBACtB,KAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE;oBAC3B,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBAC7B,kBAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,CAAC,CAAC,CAAC;gBAQH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,UAAC,GAAG;oBACrC,IAAI,CAAC,wBAAsB,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;wBACpE,GAAG,CAAC,MAAM,EAAE,CAAC;qBACd;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,UAAC,GAAG;oBACvC,IAAI,CAAC,wBAAsB,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;wBAEpE,GAAG,CAAC,MAAM,EAAE,CAAC;qBACd;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,sBAAI,oCAAK;aAAT;YACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAEvB,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAChH;QACH,CAAC;;;OAAA;IAKD,sBAAI,yCAAU;aAAd;YACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAEvB,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAChH;iBAAM;gBAEL,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;QACH,CAAC;aAMD,UAAe,KAAK;YAClB,GAAG,CAAC,gCAAgC,GAAG,KAAK,CAAC,CAAC;YAO9C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAMvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;QACH,CAAC;;;OA3BA;IAkCD,oCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,GAAG,CAAC,0BAA0B,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;QAE3D,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;YAC9I,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;IAOD,yCAAa,GAAb,UAAc,UAAkB,EAAE,IAAc;QAAhD,iBA2BC;QA1BC,GAAG,CAAC,oCAAoC,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;QAG1E,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;YAEnJ,IAAI;gBACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;oBAC9B,QAAQ,EAAE;wBAKR,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAClC,CAAC;iBACF,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACjC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACb;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,sCAAU,GAAlB,UAAmB,MAAkB;QACnC,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;YAArB,IAAI,KAAK;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,CA5YsC,kDAAsB,GA4Y5D;AA5YY,8CAAiB;;;;;;;;;;;ACrD9B,kDAAsD;AACtD,mDAAsD;AAsBtD;IAAA;IAmJA,CAAC;IAlJQ,4CAAgB,GAAvB,UAAwB,OAYvB;QAZuB;YAEtB,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,KAAK;YACzB,sBAAsB,EAAE,IAAI;YAC5B,aAAa,EAAE,IAAI;YACnB,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;SAClB;QAGC,IAAI,aAAa,GAAQ;YACvB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC9C,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,mEAAmE;YACjF,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE;gBACT,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,CAAC,CAAC;aACjB;YACD,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,gBAAgB;YAC7B,gBAAgB,EAAE,8BAA8B;YAChD,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,mCAAe,CAAC,YAAY,GAAG,mCAAmC,CAAC;YACrM,YAAY,EAAE,KAAK;YACnB,yBAAyB,EAAE,KAAK;YAChC,iBAAiB,EAAE,KAAK;YACxB,qBAAqB,EAAE,IAAI;YAC3B,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAGpD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC1B,aAAa,CAAC,aAAa,IAAI,eAAe,CAAC;YAC/C,aAAa,CAAC,cAAc,GAAG,KAAK,CAAC;SACtC;QAED,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;SACnC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE;YAEtB,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC9B,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;SACrC;aAAM;YAIL,IAAI,OAAO,CAAC,aAAa,EAAE;gBACzB,aAAa,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC7C,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;aAC1C;YAGD,IAAI,OAAO,CAAC,WAAW,EAAE;gBAEvB,aAAa,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBAC9D,aAAa,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;gBACtE,IAAI,kBAAkB,GAAmC;oBACvD,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,CAAC,QAAQ,CAAC;iBAClB,CAAC;gBAEF,IAAI,OAAO,CAAC,eAAe,EAAE;oBAE3B,aAAa,CAAC,OAAO,GAAG;wBACtB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;wBAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;wBAC/C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE;wBACjF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE;wBAC3G,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;wBAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;wBAC9D,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;qBACvC,CAAC;oBAEF,IAAI,mCAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;wBACtE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;qBAChD;oBAED,aAAa,CAAC,SAAS,GAAG;wBACxB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;wBACtE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;wBACvC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE;wBAC1C,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE;wBAC5H,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE;wBAC5K,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE;wBACnH,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE;wBAGxF,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE;wBAExG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;wBAChG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;wBAChG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;wBAChG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;wBAChG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;qBACnG,CAAC;iBACH;qBAAM;oBAEL,IAAI,aAAa,GAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;oBACrF,IAAI,mCAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;wBACtE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC9B;oBACD,aAAa,CAAC,OAAO,GAAG;wBACtB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;wBAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;wBAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE;wBAC/D,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;wBAC7E,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE;qBAChD,CAAC;iBACH;aACF;SACF;QAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,IAAI,IAAI,EAAE;YAI7E,aAAa,CAAC,cAAc,GAAG;gBAC7B,EAAE,EAAE;oBAEA,QAAQ,EAAE,QAAQ,CAAC,GAAG;oBACtB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,IAAI;iBAChB;aACF,CAAC;YAEF,aAAa,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;SACpD;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IACH,kCAAC;AAAD,CAAC;AAnJY,kEAA2B;;;;;;;;;;;;;;;;;;;;;;;;ACvBxC,0CAAuC;AACvC;IAA4B,0BAAS;IAArC;QAAA,qEAkEC;QAjEC,QAAE,GAAG,SAAS,CAAC;QAYf,gBAAU,GAAG;YACX,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,UAAU;aACrB;YACD,gBAAgB,EAAE,MAAM;YACxB,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI;aACZ;YACD,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YAEd,cAAc,EAAE;gBACd,KAAK,EAAE,KAAK;aACb;SACF,CAAC;;IAmCJ,CAAC;IAjCC,sBAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,mBAAmB,CAAC;IACjC,CAAC;IAED,yBAAQ,GAAR;QAAA,iBAKC;QAJC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,UAAU,CAAC;YACT,KAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6BAAY,GAAZ;QAEE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,wBAAO,GAAP;QACE,OAAO,IAAI,CAAC,cAAc,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC5E,CAAC;IAED,yBAAQ,GAAR;QAAA,iBAWC;QAVC,iBAAM,QAAQ,WAAE,CAAC;QAEjB,UAAU,CAAC;YACT,IAAI,KAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvE,MAAM,mCAAmC,CAAC;aAC3C;YACD,IAAI,KAAI,CAAC,QAAQ,IAAI,KAAI,CAAC,GAAG,IAAI,IAAI,EAAE;gBACrC,MAAM,8DAA8D,CAAC;aACtE;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACH,aAAC;AAAD,CAAC,CAlE2B,sBAAS,GAkEpC;AAlEY,wBAAM;;;;;;;;;;;;;;;;;;;;;;;;ACDnB,0CAAuC;AAEvC;IAAwC,sCAAS;IAAjD;QAAA,qEA8EC;QA7EC,QAAE,GAAG,sBAAsB,CAAC;QAa5B,oBAAc,GAAG,KAAK,CAAC;QACvB,gBAAU,GAAG,KAAK,CAAC;;IA+DrB,CAAC;IA5DC,kCAAK,GAAL;QAAA,iBAkBC;QAjBC,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAC,KAAY;YAC9B,IAAI,KAAI,CAAC,KAAK,EAAE;gBACd,KAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,UAAC,KAAoB;YACpC,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;gBACxB,KAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,UAAC,EAAS;YAC5B,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;IAGD,qCAAQ,GAAR;QAAA,iBAWC;QAVC,iBAAM,QAAQ,WAAE,CAAC;QACjB,UAAU,CAAC;YACT,KAAI,CAAC,gBAAgB,GAAS,KAAK,CAAC,kBAAkB,CAAC;YACvD,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACzE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvE,UAAU,CAAC;gBACT,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,qCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7E;QACD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,uCAAU,GAAV;QAAA,iBAcC;QAXC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,UAAU,CAAC;gBACT,IAAI,KAAI,CAAC,cAAc,KAAK,KAAK,EAAE;oBACjC,KAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBAC3B;qBAAM;oBACL,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;gBACD,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;IACH,CAAC;IAEH,yBAAC;AAAD,CAAC,CA9EuC,sBAAS,GA8EhD;AA9EY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;ACF/B,0CAAyC;AAQzC;IAAiC,+BAAS;IAA1C;QAAA,qEAuDC;QApDC,QAAE,GAAG,SAAS,CAAC;QACf,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;aACb;SACF,CAAC;;IA+CJ,CAAC;IAzCC,2BAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAOD,sCAAgB,GAAhB,UAAiB,IAAY,EAAE,IAAS;QACtC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,sCAAsC,EAAE,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SACrE;IACH,CAAC;IAED,8BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,+BAA+B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,+BAA+B,EAAE,CAAC;SAC1D;IACH,CAAC;IAED,kCAAY,GAAZ,UAAa,IAAY;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC/D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5C,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;YAC7B,IAAI,MAAI,GAAS,OAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,UAAU,CAAC;gBACT,MAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,EAAE,KAAK,CAAC,CAAC;SACX;IACH,CAAC;IAED,wCAAkB,GAAlB;IAEA,CAAC;IACH,kBAAC;AAAD,CAAC,CAvDgC,sBAAS,GAuDzC;AAvDY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNxB,gEAAwF;AACxF,oEAA8F;AAC9F,uEAAoG;AACpG,iEAAyF;AAEzF,wDAAyE;AAGzE,0CAAyC;AAIzC;IAA8C,4CAAS;IAAvD;QAAA,qEA4NC;QA3NC,QAAE,GAAG,4BAA4B,CAAC;QAQlC,gBAAU,GAAG;YACX,wBAAwB,EAAE;gBACxB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,wBAAwB,EAAE;gBACxB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;QAcF,mBAAa,GAAG,EAAE,CAAC;;IAwLrB,CAAC;IArLC,sBAAI,qEAA+B;aAAnC;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAED,UAAoC,UAA2C;YAA/E,iBAWC;YAVC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,SAAS,CAAC,UAAC,uBAAgD;gBAE9I,KAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,+CAAqB,CAAC,OAAO,CAAC,CAAC;gBACjH,KAAI,CAAC,4BAA4B,GAAG,uBAAuB,CAAC,4BAA4B,CAAC;gBACzF,KAAI,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC;gBAC3E,KAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC,8BAA8B,CAAC;gBACvF,KAAI,CAAC,uBAAuB,GAAG,KAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBACvE,KAAI,CAAC,aAAa,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;;;OAbA;IAeD,2CAAQ,GAAR;QACE,OAAO,IAAI,CAAC,iBAAiB,KAAK,MAAM,IAAI,IAAI,CAAC,wBAAwB,KAAK,MAAM,CAAC;IACvF,CAAC;IAED,wCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,2CAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,iCAAiC,IAAI,IAAI,EAAE;YAClD,IAAI,CAAC,iCAAiC,CAAC,WAAW,EAAE,CAAC;SACtD;IACH,CAAC;IAED,qDAAkB,GAAlB,cAA6B,CAAC;IAE9B,4DAAyB,GAAzB,UAA0B,KAAa;QACrC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,4BAA4B,EAAE;YACrC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;IACH,CAAC;IAED,2DAAwB,GAAxB;QAAA,iBASC;QAHC,UAAU,CAAC;YACT,KAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8CAAW,GAAX,UAAY,KAAa;QACvB,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,6CAAU,GAAV,UAAW,KAA4B;QACrC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,0DAAuB,GAAvB;QACE,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAC3C,CAAC;IAED,iDAAc,GAAd,UAAe,KAAU;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,SAAS,GAA0B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACrE,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,kEAA+B,GAA/B,UAAgC,KAAY;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,SAAS,GAA0C,KAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACtF,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,mDAAgB,GAAhB,UAAiB,KAAU;QACzB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,6DAA0B,GAA1B,UAA2B,KAAU;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;IACzE,CAAC;IAED,mDAAgB,GAAhB,UAAiB,wBAAgE,EAAE,gBAAwB;QACzG,IAAI,KAAK,GAAW,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QACpE,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,uDAAoB,GAApB,UAAqB,wBAAgE,EAAE,gBAAwB;QAC7G,OAAO,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,yDAAsB,GAAtB,UAAuB,KAAU;QAC/B,IAAI,SAAS,GAAuC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAClF,IAAI,UAAU,GAAwC,SAAU,CAAC,gBAAgB,EAAE,CAAC;QACpF,IAAI,CAAC,+BAA+B,CAAC,8BAA8B,CACjE,SAAS,CAAC,SAAS,EACnB,+DAA6B,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,EACrE,IAAI,CACL,CAAC;QACF,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE;YAC1C,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,4DAAyB,GAAzB,UAA0B,KAAkB;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,UAAU,GAAiB,KAAK,CAAC,MAAM,CAAC;QAC5C,IAAI,iBAAiB,GAAyB;YAC5C,IAAI,EAAE,4BAA4B;YAClC,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,QAAQ;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,wDAAqB,GAArB,UAAsB,kBAAgD,EAAE,aAAsB;QAC5F,OAAO,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,6DAA0B,GAA1B,UAA2B,aAAsB,EAAE,gBAAwB;QACzE,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;QACvF,QAAQ,gBAAgB,EAAE;YACxB,KAAK,+DAA6B,CAAC,iBAAiB;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,KAAK,SAAE,CAAC,CAAC;YAC7F,KAAK,0EAAkC,CAAC,iBAAiB;gBACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,oDAAoD,EAAE,EAAE,KAAK,SAAE,CAAC,CAAC;YAChG,KAAK,8DAA4B,CAAC,iBAAiB,CAAC;YACpD;gBACE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,KAAK,SAAE,CAAC,CAAC;SACpG;IACH,CAAC;IAED,wDAAqB,GAArB,UAAsB,aAAsB,EAAE,gBAAwB;QACpE,QAAQ,gBAAgB,EAAE;YACxB,KAAK,0EAAkC,CAAC,iBAAiB;gBACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;YACzF;gBACE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;SACrE;IACH,CAAC;IAEO,8DAA2B,GAAnC,UAAoC,SAAkE,EAAE,YAAsB,EAAE,8BAAqC;QAA7D,gDAAsB;QAAE,sFAAqC;QACnK,IAAI,iBAAiB,gBAA8B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAK,YAAY,CAAE,CAAC;QAE3G,IAAI,SAAS,CAAC,IAAI,KAAK,4BAA4B,IAAI,SAAS,CAAC,sBAAsB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACtG,IAAI,aAAa,GAA4D,SAAU,CAAC,gBAAgB,EAAE,CAAC;YAC3G,iBAAiB,gBAAQ,iBAAiB,IAAE,UAAU,EAAE,aAAa,CAAC,UAAU,GAAE,CAAC;SACpF;QAED,IAAI,SAAS,CAAC,mBAAmB,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC5B;QAED,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAAS,YAAY,oEAA+B,CAAC,CAAC,CAAC,CAAS,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7H,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,4BAA4B,GAAG,CAAC,8BAA8B,CAAC;IACtE,CAAC;IACH,+BAAC;AAAD,CAAC,CA5N6C,sBAAS,GA4NtD;AA5NY,4DAAwB;;;;;;;;;;;;;;;;;;;;;;;;ACbrC,0CAAyC;AAEzC;IAAiD,+CAAS;IAA1D;QAAA,qEAWC;QAVC,QAAE,GAAG,gCAAgC,CAAC;;IAUxC,CAAC;IALC,2CAAK,GAAL;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,wDAAkB,GAAlB,cAA4B,CAAC;IAC/B,kCAAC;AAAD,CAAC,CAXgD,sBAAS,GAWzD;AAXY,kEAA2B;;;;;;;;;;;;;;;;;;;;;;;;ACHxC,0CAAyC;AACzC,wCAA+C;AAS/C;IAAwC,sCAAS;IAAjD;QAAA,qEAyEC;QAxEC,QAAE,GAAG,uBAAuB,CAAC;QAI7B,gBAAU,GAAG;YACX,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,aAAa;aACxB;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,oBAAoB;aAC/B;SACF,CAAC;;IA0DJ,CAAC;IAxDC,+CAAkB,GAAlB;IAEA,CAAC;IAED,wCAAW,GAAX,UAAY,KAAa;QACvB,IAAI,EAAE,GAAgB,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;QAC3E,IAAI,EAAE,EAAE;YACN,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,IAAI,GAAG,4BAAkB,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,eAAe,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBAC/B;aACF;YACD,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,+CAAkB,GAAlB,UAAmB,KAAU;QAC3B,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;IAC9D,CAAC;IASD,wCAAW,GAAX,UAAY,IAAY;QACtB,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAGtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAUzC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;oBAC5G,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;iBACnD;aACF;SACF;QACD,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;IACH,yBAAC;AAAD,CAAC,CAzEuC,sBAAS,GAyEhD;AAzEY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;ACV/B,0DAAmE;AAEnE,4DAAyE;AACzE,wCAAqC;AACrC,6CAA0C;AAE1C,IAAI,cAAc,GAAG,iBAAiB,CAAC;AAEvC;IAAmC,iCAAsB;IAAzD;QAAA,qEAgIC;QA/HC,QAAE,GAAG,iBAAiB,CAAC;QAMvB,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,MAAM;YACnB,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,MAAM;SACvB,CAAC;;IA0DJ,CAAC;IAxDC,+CAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,yBAAU,CAAC,CAAC;QACtE,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,yBAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAOD,qCAAa,GAAb,UAAc,UAAgB,EAAE,IAAa;QAE3C,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE;YAChD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,kBAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;aACvD;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,gCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,kBAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SACzD;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,CAhIkC,kDAAsB,GAgIxD;AAhIY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;ACR1B,6CAAkD;AAElD,0CAA+C;AAE/C,qCAA0B;AAG1B,+CAAgD;AAChD,0CAAyC;AACzC,qDAAmE;AAEnE;IAAkD,gDAAS;IAA3D;QAAA,qEAoFC;QAnFC,QAAE,GAAG,gCAAgC,CAAC;QAU9B,uBAAiB,GAAG,IAAI,uCAAiB,EAAE,CAAC;;IAyEtD,CAAC;IAvEC,4CAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1D,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACxC,CAAC;IAED,yDAAkB,GAAlB,cAA6B,CAAC;IAE9B,qDAAc,GAAd,UAAe,KAAU;QAAzB,iBAeC;QAdC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC;QAC9C,6BAAY,CAAC,GAAG,CAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,iCAA4B,UAAU,CAAC,SAAW,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aACnI,SAAS,CAAC,UAAC,QAAsB;YAChC,KAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5D,KAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,KAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,UAAU,CAAC;gBACT,KAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;oBAC/E,KAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gEAAyB,GAAzB;QAAA,iBAMC;QALC,6BAAY,CAAC,IAAI,CAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,2CAAwC,EAAE,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aAC/K,SAAS,CAAC,UAAC,QAAsB;YAChC,IAAI,kBAAkB,GAA8B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9E,KAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kDAAW,GAAX,UAAY,iBAAqD;QAC/D,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,0DAAmB,GAAnB,UAAoB,KAAK;QAAzB,iBAiCC;QAhCC,IAAI,SAAmC,CAAC;QACxC,IAAI,MAAM,GAAQ;YAChB,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI;YAC1C,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ;YAClD,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,aAAa;YAC5D,QAAQ,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ;SACnD,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE;YAClC,SAAS,GAAG,SAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3K,oBAAQ,CAAC,UAAC,YAAY;gBACpB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,iCAAkB,CAAC,eAAe,CAAC;gBACvD,OAAO,KAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC,CAAC;SACP;aAAM;YACL,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,QAAS,CAAC,CAAC,IAAI,CACnI,oBAAQ,CAAC,UAAC,YAAY;gBACpB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,iCAAkB,CAAC,cAAc,CAAC;gBACtD,OAAO,KAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,KAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC,CAAC;SACP;QACD,SAAS;aACN,SAAS,CAAC,UAAC,UAAwB;YAClC,KAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC;YAC7C,UAAU,CAAC;gBACT,IAAI,WAAW,GAAgB,KAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;gBACjF,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACH,mCAAC;AAAD,CAAC,CApFiD,sBAAS,GAoF1D;AApFY,oEAA4B;;;;;;;;;;;;;;;;;;;;;;;;ACXzC,0CAAyC;AAGzC;IAAuD,qDAAS;IAAhE;QAAA,qEAYC;QAXC,QAAE,GAAG,sCAAsC,CAAC;;IAW9C,CAAC;IANC,iDAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,8DAAkB,GAAlB,cAA6B,CAAC;IAChC,wCAAC;AAAD,CAAC,CAZsD,sBAAS,GAY/D;AAZY,8EAAiC;;;;;;;;;;;;;;;;;;;;;;;;ACH9C,0CAAyC;AAGzC;IAAyD,uDAAS;IAAlE;QAAA,qEAYC;QAXC,QAAE,GAAG,wCAAwC,CAAC;;IAWhD,CAAC;IANC,mDAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,gEAAkB,GAAlB,cAA6B,CAAC;IAChC,0CAAC;AAAD,CAAC,CAZwD,sBAAS,GAYjE;AAZY,kFAAmC;;;;;;;;;;;;;;;;;;;;;;;;ACHhD,0CAAyC;AAGzC;IAAqD,mDAAS;IAA9D;QAAA,qEAWC;QAVC,QAAE,GAAG,oCAAoC,CAAC;;IAU5C,CAAC;IALC,+CAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;IAC5D,CAAC;IACD,4DAAkB,GAAlB,cAA6B,CAAC;IAChC,sCAAC;AAAD,CAAC,CAXoD,sBAAS,GAW7D;AAXY,0EAA+B;;;;;;;;;;;;;;;;;;;;;;;;ACH5C,4CAAyC;AACzC,6CAAkD;AAClD,wCAAqC;AAErC,+CAAgD;AAKhD;IAAyC,uCAAS;IAAlD;QAAA,qEAmLC;QAlLC,QAAE,GAAG,wBAAwB,CAAC;;IAkLhC,CAAC;IArKC,mCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC;QAC1D,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,iCAAkB,CAAC,cAAc,EAAE;YAC1G,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;SACjC;IACH,CAAC;IAED,sCAAQ,GAAR;QAAA,iBAMC;QALC,iBAAM,QAAQ,WAAE,CAAC;QACjB,UAAU,CAAC;YACT,IAAI,WAAW,GAAgB,KAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;YACjF,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAY,GAAZ,UAAa,QAAsB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAC/I,CAAC;IAED,4CAAc,GAAd,UAAe,UAAwB,EAAE,QAAgB,EAAE,QAAgB;QACzE,IAAI,UAAU,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YAC1C,OAAO,EAAE,CAAC;SACX;QACD,QAAQ,QAAQ,EAAE;YAChB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC9D,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC;YAC5D;gBACE,OAAO,CAAC,KAAK,CAAC,yCAAuC,QAAQ,UAAO,CAAC,CAAC;gBACtE,OAAO,EAAE,CAAC;SAEb;IACH,CAAC;IAED,8CAAgB,GAAhB,UAAiB,QAA8B;QAC7C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,OAAO,EAAE,CAAC;SACX;QACD,IAAI,oBAAoB,GAA+B,IAAI,CAAC,UAAU,CAAC,YAAY;aAChF,GAAG,CAAC,UAAC,WAAW;;YACf,gBAAS,GAAC,WAAW,CAAC,OAAO,IAAG,WAAW,KAAG;QAChD,CAAC,CAAC,CAAC;QACL,IAAI,cAAc,GAAwB,MAAM,CAAC,MAAM,OAAb,MAAM,GAAQ,EAAE,SAAK,oBAAoB,EAAC,CAAC;QACrF,IAAI,qBAAqB,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,IAAI,aAAa,GAAwB,EAAE,CAAC;QAC5C,IAAI,mBAAmB,GAAiB,EAAE,WAAW,EAAE,cAAc,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7G,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAExC,KAAoB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAAzB,IAAI,OAAO;YACd,IAAI,OAAO,CAAC,SAAS,KAAK,qBAAqB,EAAE;gBAC/C,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC1C,mBAAmB,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9F,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACzC;iBAAM;gBACL,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC5C;SACF;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,gDAAkB,GAAlB,UAAmB,YAA0B;QAC3C,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,OAAO,kBAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC3E,CAAC;IAED,gDAAkB,GAAlB,UAAmB,WAA8B;QAC/C,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;YACnE,OAAU,WAAW,CAAC,KAAK,SAAI,WAAW,CAAC,QAAU,CAAC;SACvD;QACD,OAAU,WAAW,CAAC,SAAS,SAAI,WAAW,CAAC,QAAU,CAAC;IAC5D,CAAC;IAED,qDAAuB,GAAvB,UAAwB,WAA8B;QACpD,OAAO,YAAU,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAI,WAAW,CAAC,OAAS,CAAC;IAC/E,CAAC;IAED,iDAAmB,GAAnB,UAAoB,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,2CAAa,GAAb,UAAc,OAAe;QAC3B,OAAO,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC;IACzC,CAAC;IAED,yCAAW,GAAX,UAAY,KAAY;QAAxB,iBAgBC;QAfC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG;YACZ,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;YAC9B,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,qBAAqB,EAAE,IAAI,CAAC,WAAW;YACvC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,SAAS,EAAK,IAAI,CAAC,UAAU,CAAC,GAAG,SAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAI;SACzE,CAAC;QACF,6BAAY,CAAC,IAAI,CAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,4BAAyB,EAAE,OAAO,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aACpH,SAAS,CAAC;YACT,KAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YAC1C,KAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2CAAa,GAAb,UAAc,KAAY;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAS,KAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,IAAI,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACvG,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;SACjC;IACH,CAAC;IAED,wDAA0B,GAA1B,UAA2B,mBAA4B;QACrD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,mBAAmB,EAAE;YACvB,WAAW,GAAG,kBAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;SAC7E;aAAM;YACL,WAAW,GAAG,kBAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;SACnE;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,uDAAyB,GAAjC,UAAkC,UAAwB,EAAE,QAAgB;QAC1E,QAAQ,UAAU,CAAC,UAAU,EAAE;YAC7B,KAAK,iCAAkB,CAAC,cAAc;gBACpC,OAAO,kBAAO,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5G,KAAK,iCAAkB,CAAC,eAAe;gBACrC,OAAO,kBAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1F;gBACE,OAAO,CAAC,KAAK,CAAC,qBAAmB,UAAU,CAAC,UAAU,+CAA4C,CAAC,CAAC;gBACpG,OAAO,kBAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SAC3D;IACH,CAAC;IAEO,+DAAiC,GAAzC,UAA0C,UAAwB;QAChE,IAAI,kBAAkB,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,WAAW;YAChE,OAAO,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,gDAAgD,CAAC;SACxD;QACD,IAAI,WAAmB,CAAC;QACxB,IAAI,kBAAkB,CAAC,KAAK,EAAE;YAC5B,WAAW,GAAM,kBAAkB,CAAC,KAAK,SAAI,kBAAkB,CAAC,QAAU,CAAC;SAC5E;aAAM;YACL,WAAW,GAAM,kBAAkB,CAAC,SAAS,SAAI,kBAAkB,CAAC,QAAU,CAAC;SAChF;QAED,QAAQ,UAAU,CAAC,UAAU,EAAE;YAC7B,KAAK,iCAAkB,CAAC,cAAc,CAAC;YACvC,KAAK,iCAAkB,CAAC,eAAe;gBACrC,OAAO,kBAAO,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7F;gBACE,OAAO,CAAC,KAAK,CAAC,qBAAmB,UAAU,CAAC,UAAU,+CAA4C,CAAC,CAAC;gBACpG,OAAO,kBAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;SAC3D;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,CAnLwC,sBAAS,GAmLjD;AAnLY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACThC,0CAAuC;AAGvC;IAA0C,wCAAS;IAAnD;QAAA,qEA4DC;QAzDC,QAAE,GAAG,EAAE,CAAC;QAOR,gBAAU,GAAG;YAKX,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC;oBACb,SAAS,EAAE,IAAI;iBAChB;aACF;YACD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,mBAAmB;aAC9B;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,mBAAmB;aAC9B;YACD,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,6BAA6B,EAAE;gBAC7B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;;IAgBJ,CAAC;IAdC,uCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,IAAI,CAAC,6BAA6B,KAAK,MAAM,IAAU,IAAK,CAAC,aAAa,IAAI,IAAI,EAAE;YAChF,IAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;SAC7E;IACH,CAAC;IAED,gDAAiB,GAAjB;QAEE,IAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM;YACxC,UAAU,EAAE,IAAI,CAAC,qBAAqB,IAAI,CAAC;SAC5C,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,CA5DyC,sBAAS,GA4DlD;AA5DY,oDAAoB;;;;;;;;;;;;;;;;;;;;;;;;ACHjC,0CAAuC;AACvC,kDAA+D;AAG/D,IAAM,iCAAiC,GAAG,oCAAoC,CAAC;AAC/E,IAAM,+BAA+B,GAAG,kCAAkC,CAAC;AAC3E,IAAM,2BAA2B,GAAG,kBAAkB,CAAC;AACvD,IAAM,mCAAmC,GAAG;IAC3C,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,uBAAuB;IACvB,uBAAuB;CACvB,CAAC;AACF;IAAmC,iCAAS;IAA5C;QAAA,qEA4CC;QAvCC,cAAQ,GAAG,IAAI,CAAC;QAChB,gBAAU,GAAG;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,iBAAiB;aAC5B;SACF,CAAC;;IAiCJ,CAAC;IA/BC,uCAAe,GAAf;QAAA,iBAWC;QAVC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,cAAc,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,UAAC,gBAAkC;gBAC1E,KAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,+CAAuB,GAAvB,UAAwB,gBAAkC;QACxD,IAAI,UAAU,GAAuB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,QAAQ,gBAAgB,EAAE;gBACxB,KAAK,YAAY;oBAChB,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;oBAC5D,MAAM;gBACP,KAAK,UAAU;oBACb,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,MAAM;oBACT,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;oBACtD,MAAM;gBACR,QAAQ;aACT;SACF;IACH,CAAC;IAEH,oBAAC;AAAD,CAAC,CA5CkC,sBAAS,GA4C3C;AA5CY,sCAAa;;;;;;;;;;;ACd1B;IAEE,yBAAY,GAAa;QACvB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IACD,kCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,kCAAQ,GAAR,UAAS,GAAa;QACpB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IACD,6CAAmB,GAAnB,UAAoB,wBAAsE;QACxF,IAAI,CAAC,SAAS,CAAC,UAAC,GAAqB;YACnC,IAAI,gBAAgB,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACjH,wBAAwB,CAAmB,gBAAgB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mCAAS,GAAT,UAAU,mBAAkC;QAC1C,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACzB,GAAG,CAAC,MAAM,GAAG;YACX,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC;IACH,sBAAC;AAAD,CAAC;AAxBY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACH5B,0CAAuC;AACvC,0DAAkE;AAElE,yCAAqC;AAErC;IAAgC,8BAAS;IAAzC;QAAA,qEA4LC;QA1LC,QAAE,GAAG,aAAa,CAAC;QA8BnB,gBAAU,GAAG;YACX,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,cAAc;aACtB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,kBAAkB;aAC1B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS;aACjB;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;aAChB;SACF,CAAC;;IA2IJ,CAAC;IAxIC,4BAAO,GAAP;QACE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAMD,0BAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAGD,6BAAQ,GAAR;QAAA,iBA8CC;QA7CC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACzB;QAED,UAAU,CAAC;YACT,iBAAM,QAAQ,YAAE,CAAC;YAEjB,IAAI,CAAC,KAAI,CAAC,eAAe,EAAE;gBAEzB,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAG5B,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,EAAE,sBAAsB,CAAC,CAAC;gBAG9E,IAAI,KAAI,CAAC,cAAc,IAAI,IAAI,EAAE;oBAC/B,OAAO,CAAC,KAAK,CAAC,4GAA4G,CAAC,CAAC;oBAC5H,OAAO;iBACR;gBAED,IAAI,aAAa,GAAG,iDAAsB,CAAC,qBAAqB,CAAC,KAAI,CAAC,gBAAgB,EAAE,KAAI,CAAC,aAAa,EAAE,KAAI,CAAC,SAAS,EAAE,EAAE,KAAI,CAAC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,CAAC;gBAGvK,IAAI,KAAI,CAAC,SAAS,EAAE;oBAClB,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;iBACxC;gBAID,KAAI,CAAC,eAAe,GAAG,iDAAsB,CAAC,uBAAuB,CAAC,KAAI,CAAC,cAAc,EAAE,aAAa,EAAE,KAAI,CAAC,EAAE,CAAC,CAAC;gBAGnH,KAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,CAAC,cAAM,YAAI,CAAC,YAAY,EAAE,EAAnB,CAAmB,CAAC,CAAC;gBACrE,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAI,CAAC,SAAS,EAAE,EAAE;oBAC3C,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,CAAC,OAAO,CAAC;iBAC3B,CAAC,CAAC;gBAGH,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aACpD;iBAAM;gBAEL,KAAI,CAAC,4BAA4B,EAAE,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,6BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QAKjB,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAMD,iDAA4B,GAA5B;QAAA,iBAgBC;QAfC,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,sBAAsB,GAAG,IAAI,gBAAgB,CAAC,UAAC,aAAa,EAAE,QAAQ;gBACzE,IAAI,KAAI,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAI,CAAC,cAAc,CAAC,EAAE;oBAE1E,oBAAQ,CAAC,MAAM,CAAC,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAG7C,IAAI,KAAI,CAAC,aAAa,IAAI,IAAI,EAAE;wBAC9B,KAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;qBACjC;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IAKD,kDAA6B,GAA7B;QACE,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC;SAC1C;IACH,CAAC;IAMD,iCAAY,GAAZ;QAEE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;YAExD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YAGnD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;SAC/D;IACH,CAAC;IAED,2CAAsB,GAAtB,UAAuB,gBAAwC;QAC7D,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,IAAI;gBAC3C,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,EAAE;gBACvD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;aAC1E;YAED,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,IAAI,EAAE;gBACxC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;aAC3D;SACF;IACH,CAAC;IACH,iBAAC;AAAD,CAAC,CA5L+B,sBAAS,GA4LxC;AA5LY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACLvB,0CAAuC;AAGvC;IAAkC,gCAAS;IAA3C;QAAA,qEAsCC;QApCC,QAAE,GAAG,gBAAgB,CAAC;QAKtB,kBAAY,GAAG,KAAK,CAAC;QAOrB,gBAAU,GAAG;YACX,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAmBJ,CAAC;IAjBC,+BAAQ,GAAR;QAAA,iBAIC;QAHC,UAAU,CAAC;YACT,KAAI,CAAC,SAAS,GAAG,wBAAsB,KAAI,CAAC,KAAK,CAAC,UAAU,SAAM,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;IACH,CAAC;IAED,4CAAqB,GAArB;QACE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,CAtCiC,sBAAS,GAsC1C;AAtCY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;ACHzB,0CAAuC;AACvC;IAAwC,sCAAS;IAAjD;QAAA,qEAKC;QAHC,QAAE,GAAG,sBAAsB,CAAC;;IAG9B,CAAC;IAAD,yBAAC;AAAD,CAAC,CALuC,sBAAS,GAKhD;AALY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;ACI/B,yCAAqC;AAErC,qCAAmD;AACnD,2CAAyC;AAGzC,sDAA4D;AAE5D,mDAAsD;AAEtD,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC;AASnG,IAAI,uBAAuB,GAAG,KAAK,CAAC;AACpC,SAAS,kBAAkB;IACzB,IAAI,CAAC,uBAAuB,EAAE;QAE5B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAS,KAA8B;YACxE,IAAI,YAAY,GAAa,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrB,YAAY,CAAC,CAAC,CAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;aACpE;QACH,CAAC,CAAC,CAAC;QAEH,uBAAuB,GAAG,IAAI,CAAC;KAChC;AACH,CAAC;AAED;IAAoC,kCAAmB;IAAvD;QAAA,qEAwSC;QAtSC,QAAE,GAAG,kBAAkB,CAAC;QAmBxB,gBAAU,GAAG;YACX,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,kBAAkB;aAC7B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,iBAAiB;aAC5B;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,kCAAkC;aAC7C;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,6BAA6B;aACxC;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,kCAAkC;aAC7C;SACF,CAAC;;IAkPJ,CAAC;IA9NC,8CAAqB,GAArB;QACE,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,2CAAkB,GAAlB;QACE,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,kDAAyB,GAAzB;QACE,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAID,gCAAO,GAAP;QACE,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,sBAAe,CAAgB,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC3E,QAAQ,IAAI,CAAC,YAAY,EAAE;YACzB,KAAK,sBAAsB;gBAEzB,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,SAAS,GAAG,yDAAyD,CAAC;gBAC3E,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,GAAG,mEAAmE,CAAC;gBACrF,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,SAAS,GAAG,wCAAsC,mCAAe,CAAC,OAAO,uCAAoC,CAAC;gBACnH,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,GAAG,wCAAsC,mCAAe,CAAC,OAAO,uCAAoC,CAAC;gBACnH,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,CAAC,SAAS,GAAG,wCAAsC,mCAAe,CAAC,OAAO,uCAAoC,CAAC;gBACnH,MAAM;YACR,KAAK,YAAY,CAAC;YAClB;gBACE,IAAI,CAAC,SAAS,GAAG,wCAAsC,mCAAe,CAAC,OAAO,uCAAoC,CAAC;gBACnH,MAAM;SACT;QAED,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAGD,8BAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC9B,CAAC;IAGD,iCAAQ,GAAR;QACE,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7B,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IAED,wCAAe,GAAf,UAAgB,QAAuB;QACrC,GAAG,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAGD,yDAAgC,GAAhC;QACE,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE;YACpC,OAAO;SACR;QAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS;YAChB,4DAEsB,IAAI,CAAC,mBAAmB,eAC5C,CAAC;QACL,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,oDAA2B,GAA3B;QACE,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS;YAChB,6DAEU,IAAI,CAAC,aAAa,eAC1B,CAAC;QACL,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,yDAAgC,GAAhC;QACE,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,OAAO;SACR;QAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS;YAChB,oHAGsB,IAAI,CAAC,kBAAkB,4CAE3C,CAAC;QACL,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAGD,qCAAY,GAAZ;QACE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAG5B,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9C,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAKD,2CAAkB,GAAlB,UAAmB,KAA8B;QAAjD,iBAsCC;QArCC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEX,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE;YACvE,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvB,KAAK,gBAAgB;oBAEnB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;wBAErC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAC,QAAuB;4BACpF,IAAI,QAAQ,IAAI,IAAI,EAAE;gCACpB,OAAO;6BACR;4BAEK,QAAS,CAAC,aAAa,CAAC,WAAW,CAAC;gCACxC,IAAI,EAAE,kBAAkB;gCACxB,IAAI,EAAE,YAAY;gCAClB,YAAY,EAAE,KAAI,CAAC,YAAY;gCAC/B,QAAQ;gCACR,YAAY,EAAE,sBAAS,CAAC,YAAY,CAAC,cAAc,CAAC;6BACrD,EAAE,GAAG,CAAC,CAAC;wBACV,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBAEL,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;qBAC7D;oBACD,MAAM;gBACR,KAAK,aAAa;oBAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9C,MAAM;gBACR;oBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,8CAA8C,CAAC,CAAC;aAC1G;SACF;IACH,CAAC;IAED,2CAAkB,GAAlB;QACE,iBAAM,kBAAkB,WAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAKD,yCAAgB,GAAhB;QACE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IACzD,CAAC;IAOD,oCAAW,GAAX,UAAY,MAA4C;QACtD,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,IAAI,IAAI,GAA2B,EAAE,CAAC;QACtC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;gBAArB,IAAI,KAAK;gBACZ,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,KAAK,CAAC,SAAS;oBACnB,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,EAAE,KAAK,CAAC,UAAU;oBACrB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;oBAC9C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;iBAC5C,CAAC,CAAC;aACJ;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAG,GAAH,UAAI,OAAa;QAAE,wBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,uCAAwB;;QACzC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,4CAAmB,GAAnB;QACE,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC,CAxSmC,2CAAmB,GAwStD;AAxSY,wCAAc;;;;;;;;;;;;;;;;;;;;;;;;ACtC3B,0DAAwF;AAExF,4DAAyE;AAGzE;IAAuC,qCAAsB;IAA7D;QAAA,qEAqOC;QApOC,QAAE,GAAG,qBAAqB,CAAC;QAc3B,sBAAgB,GAAG,CAAC,CAAC;QAMrB,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,iBAAiB;aAC5B;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,kBAAkB,EAAE,MAAM;YAC1B,yBAAyB,EAAE,MAAM;YACjC,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YAGD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,2BAA2B;aACtC;YACD,gBAAgB,EAAE,MAAM;YACxB,SAAS,EAAE,MAAM;YACjB,kBAAkB,EAAE,MAAM;YAC1B,gBAAgB,EAAE,MAAM;YACxB,yBAAyB,EAAE,MAAM;YACjC,kBAAkB,EAAE,MAAM;YAC1B,cAAc,EAAE,MAAM;YACtB,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAiIJ,CAAC;IA/HC,iCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,qDAAyB,GAAzB,UAA0B,QAAQ,EAAE,QAAQ;QAC1C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YAExC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE;YACpC,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;aACnC;SACF;IACH,CAAC;IAED,mDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrE,eAAe,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAG3E,IACE,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACzB,IAAI,CAAC,kBAAkB,IAAI,IAAI;YAC/B,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAClC;YACA,IAAI;gBACF,eAAe,CAAC,KAAK,GAAG;oBACtB,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBAClH,YAAY,EAAE,IAAI,CAAC,kBAAkB;iBACtC,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;aAGb;SACF;QAED,IACE,IAAI,CAAC,gBAAgB,IAAI,IAAI;YAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAChC,IAAI,CAAC,yBAAyB,IAAI,IAAI;YACtC,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EACzC;YACA,IAAI;gBACF,eAAe,CAAC,YAAY,GAAG;oBAC7B,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;wBACpC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC;wBACnE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;oBACrC,YAAY,EAAE,IAAI,CAAC,yBAAyB;iBAC7C,CAAC;aACH;YAAC,OAAO,GAAG,EAAE;aAGb;SACF;QAED,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAOD,yCAAa,GAAb,UAAc,UAAkB,EAAE,IAAa;QAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE;YAChD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,oCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,yCAAa,GAAb;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,kDAAsB,GAAtB,UAAuB,gBAAyB,EAAE,SAAkB;QAClE,IAAI,UAAU,GAAW,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,CAAC;SACV;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEH,wBAAC;AAAD,CAAC,CArOsC,kDAAsB,GAqO5D;AArOY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACL9B,0DAAqE;AAErE,4DAAyE;AAGzE,2CAAyC;AAEzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC,CAAC;AAEvG;IAAuC,qCAAsB;IAA7D;QAAA,qEAgSC;QA9RC,QAAE,GAAG,qBAAqB,CAAC;QAY3B,gBAAU,GAAG;YAEX,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE,MAAM;YACzB,eAAe,EAAE,MAAM;YACvB,2BAA2B,EAAE;gBAC3B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBAEf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,gBAAgB;aAC3B;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YAED,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;aACb;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,cAAc;aACzB;SACF,CAAC;;IAqNJ,CAAC;IA/MC,sBAAI,oCAAK;aAAT;YACE,IAAI,MAAM,GAAkB,EAAE,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;aAC9C;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,EAAE,CAAC;aACX;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;aAED,UAAU,KAAK;YACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;;;OALA;IAOD,sBAAI,yCAAU;aAAd;YAEE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;aAED,UAAe,KAAK;YAClB,IAAI,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAC9B;aACF;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;;;OAXA;IAaD,mDAAuB,GAAvB;QACE,IAAI,eAAe,GAAyB,sDAAwB,CAAC,uBAAuB,EAAE,CAAC;QAC/F,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,sDAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvE,SAAS,EAAE;oBACT,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAED,yCAAa,GAAb;QACE,GAAG,CAAC,+BAA6B,IAAI,CAAC,IAAI,MAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAOD,yCAAa,GAAb,UAAc,UAAe,EAAE,IAAc;QAC3C,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW,EAAE;YACnC,IAAI,UAAU,YAAY,KAAK,EAAE;gBAC/B,IAAI,CAAC,WAAW,GAAO,UAAU,QAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;iBACjD;aACF;iBAAM;gBACL,OAAO,IAAI,CAAC,WAAW,CAAC;gBACxB,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACnB;aACF;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,oCAAQ,GAAR,UAAS,KAAa,EAAE,IAAY;QAAZ,mCAAY;QAClC,IAAI,MAAiC,CAAC;QAEtC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;YAAC,WAAM,GAAG;SACZ;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAExB,KAAK,CAAC,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACpE;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAClC;IACH,CAAC;IAED,0CAAc,GAAd;QACE,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,UAAU,CAAC;SAC3D;IACH,CAAC;IAGD,wCAAY,GAAZ;QAAA,iBAgFC;QA/EC,IAAI,SAAS,GAA6B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnE,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAmB,UAAY,EAAZ,SAAI,CAAC,OAAO,EAAZ,cAAY,EAAZ,IAAY,EAAE;gBAA5B,IAAI,MAAM;gBAGb,IAAI,IAAI,GAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7D,IAAI,OAAO,GAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,OAAO,GAAuC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1F,IAAI,WAAW,GAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrE,IAAI,UAAU,GAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAGlE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAK,IAAI,CAAC,IAAI,gBAAW,aAAe,CAAC,CAAC;gBAEpE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAK,IAAI,CAAC,IAAI,gBAAW,aAAe,CAAC,CAAC;gBACnE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACzC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAI5C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACjC,KAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,UAAU,CAAC;gBAEpD,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC5C,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEtC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/D,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;iBAC3C;gBACD,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;gBAGnD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC7B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAIjC,IAAI,MAAM,CAAC,SAAS,EAAE;oBACpB,IAAI,YAAY,GAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBACvE,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBAE9C,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;oBAG5C,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtD,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;iBACvC;gBAGD,IAAI,MAAM,CAAC,WAAW,EAAE;oBACtB,IAAI,WAAW,GAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAEtE,IAAI,cAAc,GAAgB,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAChF,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBAEhD,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC5C,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAEjD,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBAExC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtD,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;iBACtC;gBAED,aAAa,EAAE,CAAC;aACjB;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;SACvD;IACH,CAAC;IAGD,uCAAW,GAAX;QACE,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;QACzC,iBAAM,WAAW,WAAE,CAAC;IACtB,CAAC;IAGD,0CAAc,GAAd,UAAe,oBAA4B;QAA5B,mEAA4B;QACzC,OAAO,iBAAM,cAAc,YAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACH,wBAAC;AAAD,CAAC,CAhSsC,kDAAsB,GAgS5D;AAhSY,8CAAiB;AAkS9B,SAAS,aAAa,CAAC,OAAe,EAAE,UAAkB;IACxD,IAAI,OAAO,GAAgB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC7C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,UAAU,EAAE;QAChB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACnC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC/SD,wCAAqC;AAIrC,sDAA4D;AAC5D,2CAAyC;AAEzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAEhG;IAAiC,+BAAmB;IAApD;QAAA,qEAuLC;QAtLC,QAAE,GAAG,eAAe,CAAC;QAgBrB,kBAAY,GAAG,KAAK,CAAC;QAErB,gBAAU,GAAG;YACX,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV;YAKD,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI;aACZ;YACD,IAAI,EAAG;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;aACb;SACF,CAAC;;IAoJJ,CAAC;IA9IC,8BAAQ,GAAR;QAAA,iBASC;QARC,iBAAM,QAAQ,WAAE,CAAC;QAKjB,UAAU,CAAC;YACT,KAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IA8BD,2CAAqB,GAArB;QACE,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,wCAAkB,GAAlB;QACE,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,+CAAyB,GAAzB;QACE,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,yCAAmB,GAAnB;QACE,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAKD,wCAAkB,GAAlB,UAAmB,KAAK;QACtB,OAAO,kBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;IACzH,CAAC;IAoBD,sCAAgB,GAAhB,UAAiB,qBAAoC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,qCAAe,GAAf,UAAgB,qBAAoC;QAClD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClF,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;IASD,+CAAyB,GAAzB;QACE,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACjD;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC9B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAChD;SACF;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,2CAAqB,GAArB;QACE,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,0CAAoB,GAApB,UAAqB,KAAY;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,GAAuC,KAAK,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACnC,MAAM,GAAuC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACrF;QAED,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE;YAC3B,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,MAAM,aAAW,GAAG,CAAC,EAAE,gDAA6C,CAAC;SACtE;IACH,CAAC;IAED,yBAAG,GAAH,UAAI,OAAa;QAAE,wBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,uCAAwB;;QACzC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,yCAAmB,GAAnB;QACE,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,kBAAC;AAAD,CAAC,CAvLgC,2CAAmB,GAuLnD;AAvLY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;ACdxB,0CAAwD;AACxD,yCAAuC;AACvC,0DAA6E;AAC7E,wCAAqC;AAGrC;IAAwC,sCAAS;IAAjD;QAAA,qEAoIC;QAnIC,QAAE,GAAG,sBAAsB,CAAC;QAkB5B,gBAAU,GAAG,KAAK,CAAC;QAKnB,cAAQ,GAAG,IAAI,CAAC;QAKhB,cAAQ,GAAG,IAAI,CAAC;QAKhB,iBAAW,GAAG,IAAI,CAAC;QAKnB,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;aACb;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,MAAM;aACb;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;aACb;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;aACb;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,KAAK;aACZ;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;aACb;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;aACb;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,MAAM;aACb;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;aACb;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;aACb;SACF,CAAC;;IA8CJ,CAAC;IAhHC,sBAAI,8CAAc;aAAlB,UAAmB,KAAoB;YACrC,IAAI,CAAC,UAAU,GAAG,oBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;;;OAAA;IAGD,sBAAI,4CAAY;aAAhB,UAAiB,KAAoB;YACnC,IAAI,CAAC,QAAQ,GAAG,oBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;;;OAAA;IAGD,sBAAI,4CAAY;aAAhB,UAAiB,KAAoB;YACnC,IAAI,CAAC,QAAQ,GAAG,oBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;;;OAAA;IAGD,sBAAI,+CAAe;aAAnB,UAAoB,KAAoB;YACtC,IAAI,CAAC,WAAW,GAAG,oBAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;;;OAAA;IAqDD,qCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpC,OAAO,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;SAChH;IACH,CAAC;IAID,oCAAO,GAAP;QACE,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,iDAAoB,GAApB;QAAA,iBAmBC;QAlBC,IAAI,MAAM,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,YAAY,EAAE,IAAI,CAAC,gBAAgB;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,mBAAmB;YACzC,eAAe,EAAE,IAAI,CAAC,mBAAmB;YACzC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;YAC3C,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,aAAa,EAAE,IAAI,CAAC,iBAAiB;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,cAAc;SAChC,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CACjD,cAAM,YAAI,CAAC,QAAQ,EAAE,EAAf,CAAe,EACrB,cAAM,2BAAQ,CAAC,gBAAgB,CAAC,KAAI,CAAC,SAAS,EAAE,EAC5C,kBAAO,CAAC,OAAO,CAAC,+HAA+H,CAAC,EAAE,OAAO,CAAC,EADxJ,CACwJ,EAC9J,cAAM,YAAI,CAAC,SAAS,EAAE,EAAhB,CAAgB,CAAC,CAAC;IAC5B,CAAC;IAEO,sCAAS,GAAjB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAEO,qCAAQ,GAAhB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IACH,yBAAC;AAAD,CAAC,CApIuC,sBAAS,GAoIhD;AApIY,gDAAkB;;;;;;;;;;ACN/B,CAAC,UAAS5B,CAAT,EAAWT,CAAX,EAAa;AAAC,4CAAiByE,OAAjB,MAA0B,0CAAiBqC,MAAjB,EAA1B,GAAkDA,MAAM,CAACrC,OAAP,GAAezE,CAAC,EAAlE,GAAqE,QAAsC+G,iCAAO,EAAD,oCAAI/G,CAAJ;AAAA;AAAA;AAAA,oGAA5C,GAAmD,SAAxH;AAAmM,CAAjN,CAAkNgH,MAAlN,EAA0N,YAAU;AAAC,SAAO,UAASvG,CAAT,EAAW;AAAC,QAAIT,CAAC,GAAC,EAAN;;AAAS,aAASG,CAAT,CAAWgB,CAAX,EAAa;AAAC,UAAGnB,CAAC,CAACmB,CAAD,CAAJ,EAAQ,OAAOnB,CAAC,CAACmB,CAAD,CAAD,CAAKsD,OAAZ;AAAoB,UAAIS,CAAC,GAAClF,CAAC,CAACmB,CAAD,CAAD,GAAK;AAACjB,SAAC,EAACiB,CAAH;AAAK8F,SAAC,EAAC,CAAC,CAAR;AAAUxC,eAAO,EAAC;AAAlB,OAAX;AAAiC,aAAOhE,CAAC,CAACU,CAAD,CAAD,CAAKb,IAAL,CAAU4E,CAAC,CAACT,OAAZ,EAAoBS,CAApB,EAAsBA,CAAC,CAACT,OAAxB,EAAgCtE,CAAhC,GAAmC+E,CAAC,CAAC+B,CAAF,GAAI,CAAC,CAAxC,EAA0C/B,CAAC,CAACT,OAAnD;AAA2D;;AAAA,WAAOtE,CAAC,CAACiE,CAAF,GAAI3D,CAAJ,EAAMN,CAAC,CAACe,CAAF,GAAIlB,CAAV,EAAYG,CAAC,CAAClB,CAAF,GAAI,UAASwB,CAAT,EAAWT,CAAX,EAAamB,CAAb,EAAe;AAAChB,OAAC,CAACgE,CAAF,CAAI1D,CAAJ,EAAMT,CAAN,KAAUb,MAAM,CAACoC,cAAP,CAAsBd,CAAtB,EAAwBT,CAAxB,EAA0B;AAACkH,kBAAU,EAAC,CAAC,CAAb;AAAeP,WAAG,EAACxF;AAAnB,OAA1B,CAAV;AAA2D,KAA3F,EAA4FhB,CAAC,CAACgB,CAAF,GAAI,UAASV,CAAT,EAAW;AAAC,qBAAa,OAAOkD,MAApB,IAA4BA,MAAM,CAACwD,WAAnC,IAAgDhI,MAAM,CAACoC,cAAP,CAAsBd,CAAtB,EAAwBkD,MAAM,CAACwD,WAA/B,EAA2C;AAAC9E,aAAK,EAAC;AAAP,OAA3C,CAAhD,EAA6GlD,MAAM,CAACoC,cAAP,CAAsBd,CAAtB,EAAwB,YAAxB,EAAqC;AAAC4B,aAAK,EAAC,CAAC;AAAR,OAArC,CAA7G;AAA8J,KAA1Q,EAA2QlC,CAAC,CAACH,CAAF,GAAI,UAASS,CAAT,EAAWT,CAAX,EAAa;AAAC,UAAG,IAAEA,CAAF,KAAMS,CAAC,GAACN,CAAC,CAACM,CAAD,CAAT,GAAc,IAAET,CAAnB,EAAqB,OAAOS,CAAP;AAAS,UAAG,IAAET,CAAF,IAAK,oBAAiBS,CAAjB,CAAL,IAAyBA,CAAzB,IAA4BA,CAAC,CAAC2F,UAAjC,EAA4C,OAAO3F,CAAP;AAAS,UAAIU,CAAC,GAAChC,MAAM,CAACU,MAAP,CAAc,IAAd,CAAN;AAA0B,UAAGM,CAAC,CAACgB,CAAF,CAAIA,CAAJ,GAAOhC,MAAM,CAACoC,cAAP,CAAsBJ,CAAtB,EAAwB,SAAxB,EAAkC;AAAC+F,kBAAU,EAAC,CAAC,CAAb;AAAe7E,aAAK,EAAC5B;AAArB,OAAlC,CAAP,EAAkE,IAAET,CAAF,IAAK,YAAU,OAAOS,CAA3F,EAA6F,KAAI,IAAIyE,CAAR,IAAazE,CAAb;AAAeN,SAAC,CAAClB,CAAF,CAAIkC,CAAJ,EAAM+D,CAAN,EAAQ,UAASlF,CAAT,EAAW;AAAC,iBAAOS,CAAC,CAACT,CAAD,CAAR;AAAY,SAAxB,CAAyBoH,IAAzB,CAA8B,IAA9B,EAAmClC,CAAnC,CAAR;AAAf;AAA8D,aAAO/D,CAAP;AAAS,KAA9iB,EAA+iBhB,CAAC,CAACA,CAAF,GAAI,UAASM,CAAT,EAAW;AAAC,UAAIT,CAAC,GAACS,CAAC,IAAEA,CAAC,CAAC2F,UAAL,GAAgB,YAAU;AAAC,eAAO3F,CAAC,CAAC4F,OAAT;AAAiB,OAA5C,GAA6C,YAAU;AAAC,eAAO5F,CAAP;AAAS,OAAvE;AAAwE,aAAON,CAAC,CAAClB,CAAF,CAAIe,CAAJ,EAAM,GAAN,EAAUA,CAAV,GAAaA,CAApB;AAAsB,KAA7pB,EAA8pBG,CAAC,CAACgE,CAAF,GAAI,UAAS1D,CAAT,EAAWT,CAAX,EAAa;AAAC,aAAOb,MAAM,CAACS,SAAP,CAAiBJ,cAAjB,CAAgCc,IAAhC,CAAqCG,CAArC,EAAuCT,CAAvC,CAAP;AAAiD,KAAjuB,EAAkuBG,CAAC,CAACZ,CAAF,GAAI,EAAtuB,EAAyuBY,CAAC,CAACA,CAAC,CAACF,CAAF,GAAI,CAAL,CAAjvB;AAAyvB,GAAp5B,CAAq5B,CAAC,UAASQ,CAAT,EAAWT,CAAX,EAAaG,CAAb,EAAe;AAAC;;AAAahB,UAAM,CAACoC,cAAP,CAAsBvB,CAAtB,EAAwB,YAAxB,EAAqC;AAACqC,WAAK,EAAC,CAAC;AAAR,KAArC;AAAiD,QAAIlB,CAAC,GAAChB,CAAC,CAAC,CAAD,CAAP;AAAWH,KAAC,CAACqH,aAAF,GAAgBlG,CAAC,CAACkG,aAAlB;AAAgC,QAAInC,CAAC,GAAC/E,CAAC,CAAC,CAAD,CAAP;AAAWH,KAAC,CAACsH,KAAF,GAAQpC,CAAC,CAACoC,KAAV,EAAgBtH,CAAC,CAACuH,WAAF,GAAcrC,CAAC,CAACqC,WAAhC,EAA4CP,MAAM,CAACQ,gBAAP,CAAwB,MAAxB,EAAgC,YAAU;AAACrG,OAAC,CAACkG,aAAF;AAAkB,KAA7D,CAA5C;AAA4G,GAAjP,EAAkP,UAAS5G,CAAT,EAAWT,CAAX,EAAaG,CAAb,EAAe;AAAC;;AAAahB,UAAM,CAACoC,cAAP,CAAsBvB,CAAtB,EAAwB,YAAxB,EAAqC;AAACqC,WAAK,EAAC,CAAC;AAAR,KAArC;AAAiD,QAAIlB,CAAC,GAAC,mBAAN;AAAA,QAA0B+D,CAAC,GAAC,mBAA5B;AAAA,QAAgDhF,CAAC,GAAC,aAAlD;AAAA,QAAgEiE,CAAC,GAAC,4GAAlE;AAAA,QAA+KlE,CAAC,GAAC;AAACwH,QAAE,EAAC,oBAAJ;AAAyBC,QAAE,EAAC,uBAA5B;AAAoD9C,QAAE,EAAC,eAAvD;AAAuE+C,QAAE,EAAC,eAA1E;AAA0FC,QAAE,EAAC,kBAA7F;AAAgHC,QAAE,EAAC,qBAAnH;AAAyIC,QAAE,EAAC,oBAA5I;AAAiKC,QAAE,EAAC,gBAApK;AAAqL,eAAQ,eAA7L;AAA6MC,QAAE,EAAC,uBAAhN;AAAwOC,QAAE,EAAC,iBAA3O;AAA6PC,QAAE,EAAC,kBAAhQ;AAAmR,eAAQ,uBAA3R;AAAmTC,QAAE,EAAC,iBAAtT;AAAwUC,QAAE,EAAC,oBAA3U;AAAgWC,QAAE,EAAC,+BAAnW;AAAmYC,QAAE,EAAC,kBAAtY;AAAyZC,QAAE,EAAC,kBAA5Z;AAA+aC,QAAE,EAAC,WAAlb;AAA8bC,QAAE,EAAC,2BAAjc;AAA6dC,QAAE,EAAC,mBAAhe;AAAofC,QAAE,EAAC,uBAAvf;AAA+gBC,SAAG,EAAC,kBAAnhB;AAAsiBC,QAAE,EAAC,kBAAziB;AAA4jB,eAAQ,oBAApkB;AAAylBC,QAAE,EAAC,yBAA5lB;AAAsnBC,QAAE,EAAC,iBAAznB;AAA2oBC,QAAE,EAAC,cAA9oB;AAA6pBC,QAAE,EAAC,0BAAhqB;AAA2rBC,QAAE,EAAC,qBAA9rB;AAAotBC,QAAE,EAAC,cAAvtB;AAAsuBC,QAAE,EAAC,iBAAzuB;AAA2vBC,QAAE,EAAC,eAA9vB;AAA8wBC,QAAE,EAAC,sBAAjxB;AAAwyBC,QAAE,EAAC,iBAA3yB;AAA6zBC,QAAE,EAAC,kBAAh0B;AAAm1BC,QAAE,EAAC,6BAAt1B;AAAo3BC,QAAE,EAAC,gCAAv3B;AAAw5BC,QAAE,EAAC,YAA35B;AAAw6BC,QAAE,EAAC,uBAA36B;AAAm8BC,QAAE,EAAC,uBAAt8B;AAA89BC,QAAE,EAAC,gCAAj+B;AAAkgCC,QAAE,EAAC,iBAArgC;AAAuhCC,QAAE,EAAC,QAA1hC;AAAmiCC,SAAG,EAAC,sBAAviC;AAA8jC,iBAAU,YAAxkC;AAAqlCC,QAAE,EAAC,iBAAxlC;AAA0mCC,QAAE,EAAC,kBAA7mC;AAAgoCC,QAAE,EAAC,kBAAnoC;AAAspCC,QAAE,EAAC,wBAAzpC;AAAkrCC,QAAE,EAAC,mBAArrC;AAAysCC,QAAE,EAAC,gBAA5sC;AAA6tCC,QAAE,EAAC,iBAAhuC;AAAkvCC,QAAE,EAAC,mBAArvC;AAAywCC,QAAE,EAAC,iBAA5wC;AAA8xCC,QAAE,EAAC,gBAAjyC;AAAkzCC,QAAE,EAAC,iBAArzC;AAAu0CC,QAAE,EAAC,iBAA10C;AAA41CC,QAAE,EAAC,eAA/1C;AAA+2CC,QAAE,EAAC,mBAAl3C;AAAs4C,eAAQ,oBAA94C;AAAm6CC,QAAE,EAAC,oBAAt6C;AAA27CC,SAAG,EAAC,8BAA/7C;AAA89CC,QAAE,EAAC,eAAj+C;AAAi/CC,QAAE,EAAC,aAAp/C;AAAkgD,iBAAU,sBAA5gD;AAAmiDC,QAAE,EAAC,oBAAtiD;AAA2jDC,SAAG,EAAC,eAA/jD;AAA+kDC,QAAE,EAAC,kBAAllD;AAAqmDC,SAAG,EAAC,8BAAzmD;AAAwoDC,SAAG,EAAC,gBAA5oD;AAA6pDC,QAAE,EAAC,kBAAhqD;AAAmrDC,QAAE,EAAC,6BAAtrD;AAAotDC,QAAE,EAAC,cAAvtD;AAAsuDC,QAAE,EAAC,YAAzuD;AAAsvDC,QAAE,EAAC,mBAAzvD;AAA6wDC,QAAE,EAAC,iBAAhxD;AAAkyDC,QAAE,EAAC,iBAAryD;AAAuzDC,QAAE,EAAC,iBAA1zD;AAA40D,oBAAa,uBAAz1D;AAAi3D,oBAAa,uBAA93D;AAAs5D,oBAAa,uBAAn6D;AAA27DC,QAAE,EAAC,kBAA97D;AAAi9DC,QAAE,EAAC,wBAAp9D;AAA6+DC,QAAE,EAAC,iBAAh/D;AAAkgEC,QAAE,EAAC,+BAArgE;AAAqiE,oBAAa,kBAAljE;AAAqkEC,QAAE,EAAC,iBAAxkE;AAA0lEC,QAAE,EAAC,mBAA7lE;AAAinEC,QAAE,EAAC,mBAApnE;AAAwoEC,QAAE,EAAC,mBAA3oE;AAA+pEC,QAAE,EAAC,mBAAlqE;AAAsrEC,QAAE,EAAC,yBAAzrE;AAAmtE,eAAQ,eAA3tE;AAA2uEC,QAAE,EAAC,mBAA9uE;AAAkwEC,QAAE,EAAC,mBAArwE;AAAyxEC,QAAE,EAAC,2BAA5xE;AAAwzEC,QAAE,EAAC,qBAA3zE;AAAi1EC,QAAE,EAAC,oBAAp1E;AAAy2EC,QAAE,EAAC,mBAA52E;AAAg4EC,QAAE,EAAC,cAAn4E;AAAk5EC,QAAE,EAAC,QAAr5E;AAA85E,iBAAU,SAAx6E;AAAk7EC,QAAE,EAAC;AAAr7E,KAAjL;;AAA8nF,aAASC,CAAT,CAAW3M,CAAX,EAAa;AAAC,UAAIT,CAAC,GAACqN,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAN;AAAoCtN,OAAC,CAACuN,GAAF,GAAMpJ,CAAN;AAAQ,UAAIhE,CAAC,GAACM,CAAC,CAAC+M,YAAF,CAAerM,CAAf,KAAmB,IAAzB;AAA8BnB,OAAC,CAACyN,KAAF,CAAQC,MAAR,GAAe1N,CAAC,CAACyN,KAAF,CAAQE,KAAR,GAAcxN,CAAC,GAAC,IAA/B,EAAoCH,CAAC,CAACyN,KAAF,CAAQG,aAAR,GAAsB,QAA1D,EAAmE5N,CAAC,CAACyN,KAAF,CAAQI,SAAR,GAAkB,MAArF;AAA4F,UAAI3I,CAAC,GAACzE,CAAC,CAAC+M,YAAF,CAAetN,CAAf,KAAmB,IAAzB;AAA8BF,OAAC,CAAC8N,GAAF,GAAM5M,CAAC,CAACgE,CAAD,CAAP,EAAWzE,CAAC,CAACsN,WAAF,CAAc/N,CAAd,CAAX;AAA4B;;AAAA,aAASf,CAAT,CAAWwB,CAAX,EAAa;AAAC,UAAIT,CAAC,GAACqN,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAN;AAAqCtN,OAAC,CAACyN,KAAF,CAAQO,UAAR,GAAmB,KAAnB,EAAyBvN,CAAC,CAACsN,WAAF,CAAc/N,CAAd,CAAzB;AAA0C;;AAAA,aAASiH,CAAT,CAAWxG,CAAX,EAAa;AAAC,UAAIT,CAAC,GAACqN,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAN;AAAA,UAAqCnN,CAAC,GAACM,CAAC,CAAC+M,YAAF,CAAetN,CAAf,KAAmB,IAA1D;AAA+DF,OAAC,CAACiO,WAAF,GAAc/M,CAAC,CAACf,CAAD,CAAf,EAAmBM,CAAC,CAACsN,WAAF,CAAc/N,CAAd,CAAnB;AAAoC;;AAAA,aAASkB,CAAT,CAAWT,CAAX,EAAa;AAAC,aAAOA,CAAC,GAACA,CAAC,CAACyN,WAAF,EAAF,EAAkBjO,CAAC,CAACQ,CAAD,CAAD,GAAKR,CAAC,CAACQ,CAAD,CAAN,GAAU,YAAUA,CAAV,IAAa,YAAUA,CAAvB,IAA0B,YAAUA,CAApC,GAAsCR,CAAC,CAAC,SAAD,CAAvC,IAAoDQ,CAAC,GAACA,CAAC,CAAC0N,SAAF,CAAY,CAAZ,EAAc1N,CAAC,CAAC2N,WAAF,CAAc,GAAd,CAAd,CAAF,EAAoCnO,CAAC,CAACQ,CAAD,CAAD,GAAKR,CAAC,CAACQ,CAAD,CAAN,IAAWA,CAAC,GAACA,CAAC,CAAC0N,SAAF,CAAY,CAAZ,EAAc1N,CAAC,CAAC2N,WAAF,CAAc,GAAd,CAAd,CAAF,EAAoCnO,CAAC,CAACQ,CAAD,CAAD,GAAKR,CAAC,CAACQ,CAAD,CAAN,GAAUR,CAAC,CAACqI,EAA3D,CAAxF,CAAnC;AAA2L;;AAAAtI,KAAC,CAACqH,aAAF,GAAgB,UAAS5G,CAAT,EAAW;AAAC,UAAIT,CAAC,GAACqN,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAN;AAAsCtN,OAAC,CAACqO,SAAF,GAAY,wJAAZ,EAAqKhB,QAAQ,CAACiB,IAAT,CAAcP,WAAd,CAA0B/N,CAA1B,CAArK;AAAkM,UAAIG,CAAC,GAAC,GAAGoO,KAAH,CAASjO,IAAT,CAAc+M,QAAQ,CAACmB,sBAAT,CAAgC,yBAAhC,CAAd,CAAN;AAAgF/N,OAAC,IAAEA,CAAC,CAACgO,QAAL,KAAgBtO,CAAC,GAACM,CAAC,CAACgO,QAApB;;AAA8B,WAAI,IAAItN,CAAC,GAAC,CAAN,EAAQgD,CAAC,GAAChE,CAAd,EAAgBgB,CAAC,GAACgD,CAAC,CAAC9D,MAApB,EAA2Bc,CAAC,EAA5B,EAA+B;AAAC,YAAIlB,CAAC,GAACkE,CAAC,CAAChD,CAAD,CAAP;AAAWlB,SAAC,CAACyO,YAAF,CAAe,MAAf,EAAsB,QAAtB,GAAgCzO,CAAC,CAACyO,YAAF,CAAe,MAAf,EAAsB,QAAtB,CAAhC;AAAgE,YAAItK,CAAC,GAACnE,CAAC,CAACuN,YAAF,CAAetN,CAAf,KAAmB,IAAzB;;AAA8B,gBAAOD,CAAC,CAACyO,YAAF,CAAe,YAAf,EAA4BxN,CAAC,CAACkD,CAAD,CAA7B,GAAkCnE,CAAC,CAACuN,YAAF,CAAetI,CAAf,KAAmB,MAA5D;AAAoE,eAAI,MAAJ;AAAWkI,aAAC,CAACnN,CAAD,CAAD;AAAK;;AAAM,eAAI,MAAJ;AAAWgH,aAAC,CAAChH,CAAD,CAAD;AAAK;;AAAM,eAAI,aAAJ;AAAkBmN,aAAC,CAACnN,CAAD,CAAD,EAAKhB,CAAC,CAACgB,CAAD,CAAN,EAAUgH,CAAC,CAAChH,CAAD,CAAX;AAAlI;AAAkJ;AAAC,KAA9oB;AAA+oB,GAAltI,EAAmtI,UAASQ,CAAT,EAAWT,CAAX,EAAaG,CAAb,EAAe;AAAC;;AAAa,QAAIgB,CAAC,GAAC,QAAM,KAAKrB,QAAX,IAAqB,YAAU;AAAC,aAAM,CAACqB,CAAC,GAAChC,MAAM,CAACY,MAAP,IAAe,UAASU,CAAT,EAAW;AAAC,aAAI,IAAIT,CAAJ,EAAMG,CAAC,GAAC,CAAR,EAAUgB,CAAC,GAACf,SAAS,CAACC,MAA1B,EAAiCF,CAAC,GAACgB,CAAnC,EAAqChB,CAAC,EAAtC;AAAyC,eAAI,IAAI+E,CAAR,IAAalF,CAAC,GAACI,SAAS,CAACD,CAAD,CAAxB;AAA4BhB,kBAAM,CAACS,SAAP,CAAiBJ,cAAjB,CAAgCc,IAAhC,CAAqCN,CAArC,EAAuCkF,CAAvC,MAA4CzE,CAAC,CAACyE,CAAD,CAAD,GAAKlF,CAAC,CAACkF,CAAD,CAAlD;AAA5B;AAAzC;;AAA4H,eAAOzE,CAAP;AAAS,OAAnK,EAAqKF,KAArK,CAA2K,IAA3K,EAAgLH,SAAhL,CAAN;AAAiM,KAAvO;;AAAwOjB,UAAM,CAACoC,cAAP,CAAsBvB,CAAtB,EAAwB,YAAxB,EAAqC;AAACqC,WAAK,EAAC,CAAC;AAAR,KAArC;AAAiD,QAAI6C,CAAC,GAAC/E,CAAC,CAAC,CAAD,CAAP;AAAWH,KAAC,CAACuH,WAAF,GAAc,UAAS9G,CAAT,EAAWT,CAAX,EAAaG,CAAb,EAAeD,CAAf,EAAiB;AAAC,aAAO,IAAIqC,OAAJ,CAAa,UAAS4B,CAAT,EAAWlE,CAAX,EAAa;AAAC,YAAGQ,CAAH;AAAK,cAAGN,CAAH;AAAK,gBAAGA,CAAC,CAACwO,MAAL;AAAY,kBAAGxO,CAAC,CAACwO,MAAF,CAAStO,MAAZ,EAAmB;AAAC,oBAAI+M,CAAC,GAACwB,IAAI,CAACC,GAAL,EAAN;AAAiB,iBAAC3O,CAAC,GAACiB,CAAC,CAAC;AAAC2N,0BAAQ,EAAC,GAAV;AAAcC,yBAAO,EAAC,IAAtB;AAA2BC,4BAAU,EAAC,CAAC,CAAvC;AAAyCC,iCAAe,EAAC,CAAC,CAA1D;AAA4DC,gCAAc,EAAC,CAAC;AAA5E,iBAAD,EAAgFhP,CAAhF,CAAJ,EAAwF4O,QAAxF,IAAkG,YAAU,OAAO5O,CAAC,CAAC4O,QAArH,KAAgI5O,CAAC,CAAC4O,QAAF,GAAW,GAA3I;AAAgJ,oBAAI7P,CAAC,GAAC,IAAN;AAAA,oBAAWgI,CAAC,GAACoG,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAb;AAAA,oBAA2CpM,CAAC,GAAChB,CAAC,CAAC8O,UAAF,GAAa3B,QAAQ,CAACC,aAAT,CAAuB,SAAvB,CAAb,GAA+CD,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAA5F;AAAA,oBAA6HlJ,CAAC,GAACiJ,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAA/H;AAA+JlJ,iBAAC,CAACiK,SAAF,GAAY,oCAAZ;;AAAiD,oBAAI9K,CAAC,GAAC,SAAFA,CAAE,GAAU;AAACtE,mBAAC,KAAG+H,MAAM,CAACmI,YAAP,CAAoBlQ,CAApB,GAAuBA,CAAC,GAAC,IAA5B,CAAD;AAAmC,iBAApD;AAAA,oBAAqDM,CAAC,GAAC,SAAFA,CAAE,GAAU;AAAC8N,0BAAQ,CAACpK,IAAT,CAAcmM,QAAd,CAAuBnI,CAAvB,KAA2BoG,QAAQ,CAACpK,IAAT,CAAcoM,WAAd,CAA0BpI,CAA1B,CAA3B,EAAwD1D,CAAC,EAAzD,EAA4Da,CAAC,CAACkL,UAAF,IAAclL,CAAC,CAACkL,UAAF,CAAaD,WAAb,CAAyBjL,CAAzB,CAA1E;AAAsG,iBAAxK;;AAAyK7E,iBAAC;;AAAG,oBAAIsE,CAAC,GAAC,SAAFA,CAAE,CAAS1C,CAAT,EAAW;AAAC,sBAAGA,CAAC,IAAEA,CAAC,CAACoO,IAAR,EAAa,IAAG,2BAAyBpO,CAAC,CAACoO,IAA9B,EAAmChQ,CAAC,IAAGyH,MAAM,CAACwI,mBAAP,CAA2B,SAA3B,EAAqC3L,CAArC,CAAH,EAA2C3D,CAAC,CAACuP,MAAF,IAAUvP,CAAC,CAACuP,MAAF,EAAtD,CAAnC,KAAyG,IAAG,sCAAoCtO,CAAC,CAACoO,IAAzC,EAA8C;AAAC,wBAAItQ,CAAC,GAAC;AAACyQ,wCAAkB,EAACjP,CAApB;AAAsBkP,sCAAgB,EAAC3P,CAAvC;AAAyC4P,6BAAO,EAACzP,CAAjD;AAAmD0P,yDAAmC,EAACjB,IAAI,CAACC,GAAL,KAAWzB;AAAlG,qBAAN;AAA2GlM,qBAAC,CAAC4O,aAAF,CAAgBC,WAAhB,CAA4BC,IAAI,CAACC,SAAL,CAAe;AAACC,iCAAW,EAAC,SAAb;AAAuBC,kCAAY,EAAClR;AAApC,qBAAf,CAA5B,EAAmF,GAAnF;AAAwF,mBAAlP,MAAsP,uCAAqCkC,CAAC,CAACoO,IAAvC,IAA6ChM,CAAC,IAAGY,CAAC,CAAC8C,CAAD,CAAlD,IAAuD,mCAAiC9F,CAAC,CAACoO,IAAnC,IAAyChQ,CAAC,IAAGU,CAAC,CAAC;AAACmQ,wBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYC,YAAlB;AAA+BC,2BAAO,EAAC;AAAvC,mBAAD,CAA9C,IAAiI,gCAA8BpP,CAAC,CAACoO,IAAhC,KAAuChQ,CAAC,IAAGU,CAAC,CAAC;AAACmQ,wBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYG,SAAlB;AAA4BD,2BAAO,EAAC;AAApC,mBAAD,CAA5C,CAAxL;AAA4S,iBAA1qB;;AAA2qBvJ,sBAAM,CAACQ,gBAAP,CAAwB,SAAxB,EAAkC3D,CAAlC,GAAqC5E,CAAC,GAAC+H,MAAM,CAACyJ,UAAP,CAAmB,YAAU;AAAClR,mBAAC,IAAGU,CAAC,CAAC;AAACmQ,wBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYK,OAAlB;AAA0BH,2BAAO,EAAC,wCAAsCrQ,CAAC,CAAC6O,OAAxC,GAAgD;AAAlF,mBAAD,CAAL;AAAiG,iBAA/H,EAAiI7O,CAAC,CAAC6O,OAAnI,CAAvC,EAAmL7O,CAAC,CAAC+O,eAAF,IAAmB/N,CAAC,CAACwN,YAAF,CAAe,iBAAf,EAAiC,EAAjC,CAAtM,EAA2OxN,CAAC,CAACuM,KAAF,CAAQkD,OAAR,GAAgB,iFAA3P,EAA6UzQ,CAAC,CAAC8O,UAAF,IAAc9N,CAAC,CAACsG,gBAAF,CAAmB,UAAnB,EAA+B,YAAU;AAACtG,mBAAC,CAAC4O,aAAF,CAAgBC,WAAhB,CAA4BC,IAAI,CAACC,SAAL,CAAe;AAACC,+BAAW,EAAC;AAAb,mBAAf,CAA5B,EAAwE,GAAxE;AAA6E,iBAAvH,CAA3V;AAAqd,oBAAIU,CAAC,GAAC,CAAC1Q,CAAC,CAAC2Q,YAAF,GAAe3Q,CAAC,CAAC2Q,YAAjB,GAA8B,+DAA/B,IAAgG,0CAAtG;AAAiJ3Q,iBAAC,CAACgP,cAAF,KAAmB0B,CAAC,IAAE,sBAAtB,GAA8C1Q,CAAC,CAAC4Q,MAAF,KAAWF,CAAC,IAAE,WAAS1Q,CAAC,CAAC4Q,MAAzB,CAA9C,EAA+E5P,CAAC,CAACqM,GAAF,GAAMqD,CAArF,EAAuF3J,CAAC,CAACwG,KAAF,CAAQkD,OAAR,GAAgB,wHAAsHzQ,CAAC,CAAC4O,QAAxH,GAAiI,uCAAxO,EAAgR7H,CAAC,CAAC8G,WAAF,CAAc7M,CAAd,CAAhR,EAAiSmM,QAAQ,CAACpK,IAAT,CAAc8K,WAAd,CAA0B9G,CAA1B,CAAjS,EAA8ToG,QAAQ,CAACiB,IAAT,CAAcP,WAAd,CAA0B3J,CAA1B,CAA9T;AAA2V,eAA9pE,MAAmqEnE,CAAC,CAAC;AAACmQ,oBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYU,WAAlB;AAA8BR,uBAAO,EAAC;AAAtC,eAAD,CAAD;AAA/qE,mBAAyvEtQ,CAAC,CAAC;AAACmQ,kBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYU,WAAlB;AAA8BR,qBAAO,EAAC;AAAtC,aAAD,CAAD;AAA9vE,iBAAu0EtQ,CAAC,CAAC;AAACmQ,gBAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYU,WAAlB;AAA8BR,mBAAO,EAAC;AAAtC,WAAD,CAAD;AAA50E,eAAs5EtQ,CAAC,CAAC;AAACmQ,cAAI,EAAClL,CAAC,CAACmL,SAAF,CAAYU,WAAlB;AAA8BR,iBAAO,EAAC;AAAtC,SAAD,CAAD;AAAmE,OAAp/E,CAAP;AAA8/E,KAA9hF,EAA+hFvQ,CAAC,CAACsH,KAAF,GAAQ,YAAU;AAACN,YAAM,CAAC+I,WAAP,CAAmB,sBAAnB,EAA0C,GAA1C;AAA+C,KAAjmF;AAAkmF,GAAtnO,EAAunO,UAAStP,CAAT,EAAWT,CAAX,EAAaG,CAAb,EAAe;AAAC;;AAAahB,UAAM,CAACoC,cAAP,CAAsBvB,CAAtB,EAAwB,YAAxB,EAAqC;AAACqC,WAAK,EAAC,CAAC;AAAR,KAArC,GAAiD,UAAS5B,CAAT,EAAW;AAACA,OAAC,CAACsQ,WAAF,GAAc,aAAd,EAA4BtQ,CAAC,CAACiQ,OAAF,GAAU,SAAtC,EAAgDjQ,CAAC,CAAC6P,YAAF,GAAe,cAA/D,EAA8E7P,CAAC,CAAC+P,SAAF,GAAY,WAA1F;AAAsG,KAAlH,CAAmHxQ,CAAC,CAACqQ,SAAF,KAAcrQ,CAAC,CAACqQ,SAAF,GAAY,EAA1B,CAAnH,CAAjD;AAAmM,GAAv1O,CAAr5B,CAAP;AAAsvQ,CAA39Q,CAAD,C;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrBA,0CAAyC;AACzC,wCAAqC;AAErC;IAA+B,6BAAS;IAAxC;QAAA,qEA0CC;QAzCC,QAAE,GAAG,YAAY,CAAC;QASlB,gBAAU,GAAG;YACX,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC;;IA2BJ,CAAC;IAzBC,yBAAK,GAAL;QAAA,iBAKC;QAJC,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;YACf,KAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,qCAAiB,GAAjB,UAAkB,kBAAkB;QAClC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;YAC/F,EAAE,IAAI,EAAE,kBAAO,CAAC,OAAO,CAAC,0DAA0D,EAChF,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,KAAK,EAAE,cAAY,kBAAkB,CAAC,WAAW,EAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,cAAY,kBAAkB,CAAC,WAAW,EAAI,CAAC;QACpE,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,gCAAY,GAAZ;QACE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,2BAAO,GAAP;QACE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E,CAAC;IACH,gBAAC;AAAD,CAAC,CA1C8B,sBAAS,GA0CvC;AA1CY,8BAAS;;;;;;;;;;;ACHtB,yCAA2C;AAC3C,2CAA6C;AAG7C,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAE1G,IAAM,OAAO,GAAG,CAAC,CAAC;AAClB,IAAM,MAAM,GAAG,CAAC,CAAC;AACjB,IAAM,YAAY,GAAG,EAAE,CAAC;AAExB;IAaE,4BACU,SAAsB,EACvB,QAAgB,EAChB,SAAiB,EACjB,OAAsB;QAHrB,cAAS,GAAT,SAAS,CAAa;QACvB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAe;QAT/B,UAAK,GAA8B,EAAE,CAAC;QACtC,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAQf,GAAG,CAAC,wDAAqD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAG,CAAC,CAAC;IACnH,CAAC;IAGD,oCAAO,GAAP,UAAQ,IAAwB;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAGD,oCAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,UAAC,IAAwB,IAAK,WAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAA/D,CAA+D,CAAC;aAElG,MAAM,CAAC,UAAC,IAAmB,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC;aACvC,GAAG,CAAC,UAAC,IAAY,IAAK,WAAI,CAAC,IAAI,EAAE,EAAX,CAAW,CAAC,CAAC;IACxC,CAAC;IAGD,4CAAe,GAAf,UAAgB,OAAoB;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,IAAwB,IAAK,WAAI,KAAK,OAAO,EAAhB,CAAgB,CAAC,CAAC;IACzE,CAAC;IAGD,wCAAW,GAAX,UAAY,WAAoB,EAAE,YAAqB;QACrD,IAAI,CAAC,QAAQ,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC;QAEhD,OAAO,IAAI,CAAC,MAAM,CAAC;QACnB,KAAiB,UAAU,EAAV,SAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;YAAxB,IAAI,IAAI;YACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC;IAGD,yCAAY,GAAZ,UAAa,IAAwB;QAEnC,IAAI,QAAQ,GAAG,IAAI,YAAY,WAAW;YACxC,CAAC,CAAC,oBAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;YACzE,CAAC,CAAC,oBAAQ,CAAC,yCAAyC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE7E,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzB,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACvB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3C,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;QAG5C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,QAAE,GAAG,OAAE,KAAK,SAAE,MAAM,UAAE,CAAC;SAC5C;aAAM;YAEL,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAGjD,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1C,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAG3C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3D;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;SAC5B;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;SAC1B;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACtD;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SACvD;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,iDAAoB,GAApB;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO;SACR;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QACpD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAGnD,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC;QACzB,GAAG,IAAI,YAAY,GAAG,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,QAAE,GAAG,OAAE,CAAC;IAC9B,CAAC;IACH,yBAAC;AAAD,CAAC;AAxHY,gDAAkB;;;;;;;;;;;ACPlB,kBAAU,GAAyB;IAC9C,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,cAAM,WAAI,EAAJ,CAAI;IACpB,UAAU,EAAE,EAAE;CACf,CAAC;;;;;;;;;;;ACNF,4CAAmE;AAGtD,+BAAuB,GAAyB;IAC3D,MAAM,EAAE,oBAAoB;IAC5B,QAAQ,EAAE,UAAC,IAAyB,EAAE,IAAyB;QAC7D,WAAI,CAAC,UAAU,IAAI,IAAI;YACvB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI;gBACvB,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC;IAFrC,CAEqC;IACvC,UAAU,EAAE,CAAC,uBAAU,CAAC;CACzB,CAAC;;;;;;;;;;;ACVF,6CAAoE;AACpE,6CAAoE;AAGvD,mBAAW,GAAyB;IAC/C,MAAM,EAAE,oDAAoD;IAC5D,QAAQ,EAAE,UAAC,IAAyB,IAAK,QAAC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,EAAhD,CAAgD;IACzF,UAAU,EAAE,CAAC,wBAAU,EAAE,wBAAU,CAAC;CACrC,CAAC;;;;;;;;;;;ACRF,2CAAgE;AAGnD,+BAAuB,GAAyB;IAC3D,MAAM,EAAE,qBAAqB;IAC7B,QAAQ,EAAE,UAAC,IAAyB,EAAE,IAAyB,IAAK,WAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAA7B,CAA6B;IACjG,UAAU,EAAE,CAAC,oBAAQ,CAAC;CACvB,CAAC;;;;;;;;;;;ACPF,gDAA0E;AAG7D,0BAAkB,GAAyB;IACtD,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,UAAC,IAAyB,EAAE,IAAyB,IAAK,WAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAA/C,CAA+C;IACnH,UAAU,EAAE,CAAC,8BAAa,CAAC;CAC5B,CAAC;;;;;;;;;;;ACPF,6CAAoE;AAGvD,gCAAwB,GAAyB;IAC5D,MAAM,EAAE,sCAAsC;IAC9C,QAAQ,EAAE,UAAC,IAAyB,IAAK,WAAI,CAAC,UAAU,GAAG,IAAI,EAAtB,CAAsB;IAC/D,UAAU,EAAE,CAAC,wBAAU,CAAC;CACzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACRF,0CAAyC;AAQzC;IAA+B,6BAAS;IAAxC;QAAA,qEA+DC;QA9DC,QAAE,GAAG,YAAY,CAAC;QAGlB,kBAAY,GAAG,KAAK,CAAC;;IA2DvB,CAAC;IAxDC,4BAAQ,GAAR;QAAA,iBASC;QARC,iBAAM,QAAQ,WAAE,CAAC;QAIjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACrD,YAAY,CAAC,cAAM,YAAI,CAAC,kBAAkB,EAAE,EAAzB,CAAyB,CAAC,CAAC;QAEjD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,4BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QAGjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzE,CAAC;IAED,iCAAa,GAAb,UAAc,KAAwC;QAEpD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpC;IACH,CAAC;IAGD,8BAAU,GAAV,UAAW,MAAgB;QAEzB,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAGD,+BAAW,GAAX,UAAY,MAAgB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;IAC/F,CAAC;IAGD,+BAAW,GAAX,UAAY,MAAgB;QAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAGD,uCAAmB,GAAnB,UAAoB,MAAgB;QAClC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,qBAAqB,CAAC;SAC9B;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,sCAAkB,GAAlB;QAGE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,CAAC;IACH,gBAAC;AAAD,CAAC,CA/D8B,sBAAS,GA+DvC;AA/DY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACRtB,0CAAuC;AAEvC,2CAAyC;AACzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAK3G;IAAwC,sCAAS;IAAjD;QAAA,qEA6FC;QA5FC,QAAE,GAAG,sBAAsB,CAAC;QAK5B,gBAAU,GAAG;YACX,aAAa,EAAE;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,qBAAqB;aAChC;SACF,CAAC;;IAkFJ,CAAC;IA3EC,gDAAmB,GAAnB,UAAoB,QAAqC,EAAE,SAAsC;QAC/F,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAKD,0CAAa,GAAb,UAAc,cAA2C;QACvD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACxB,OAAO;SACR;QAED,IAAI,OAAO,GAA2C,IAAI,CAAC,UAAU,CAAC;QAEtE,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YAEjG,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC3B;aAAM;YAEL,GAAG,CAAC,yDAAyD,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5F,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SAC5D;IACH,CAAC;IAOD,yDAA4B,GAA5B,UAA6B,OAAoB,EAAE,cAA2C;QAC5F,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE;YACjD,OAAO;SACR;QAED,GAAG,CAAC,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;YACzC,KAA0B,UAA0C,EAA1C,WAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAA1C,cAA0C,EAA1C,IAA0C,EAAE;gBAAjE,IAAI,aAAa;gBACpB,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;aACnF;YAGD,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC/D,KAA0B,UAAsC,EAAtC,WAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,EAAE;oBAA7D,IAAI,aAAa;oBACpB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;wBACxD,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;qBACxC;iBACF;aACF;SACF;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;YACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAGtD,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC/D,KAAyB,UAAsC,EAAtC,WAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAtC,cAAsC,EAAtC,IAAsC,EAAE;oBAA5D,IAAI,YAAY;oBACnB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;wBACvD,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;qBAC9B;iBACF;aACF;SACF;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;YACzC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACtD;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,CA7FuC,sBAAS,GA6FhD;AA7FY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;ACR/B,0CAA6C;AAE7C,yCAA2C;AAC3C,2CAA6C;AAC7C,wCAAyC;AAEzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAEnG,IAAI,iBAAiB,CAAC;AAEtB;IAAqC,mCAAS;IAA9C;QAAA,qEA2FC;QA1FC,QAAE,GAAG,oBAAoB,CAAC;;IA0F5B,CAAC;IAnFC,kCAAQ,GAAR;QAAA,iBAgBC;QAfC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhC,IAAI,SAAS,GAAuB,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;QACtF,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,KAAY;gBAC1D,IAAI,oBAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAqB,EAAE,6BAA6B,CAAC,EAAE;oBAC3E,KAAI,CAAC,MAAM,CAAC,eAAe,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;iBAChE;qBAAM;oBACL,KAAI,CAAC,MAAM,CAAC,gBAAgB,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;iBACjE;gBACD,KAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,qCAAW,GAAX;QACE,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QAE5D,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,sCAAY,GAAZ;QACE,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7B,OAAkB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,kDAAwB,GAAxB;QACI,IAAI,iBAAiB,IAAI,IAAI,EAAE;YAC/B,iBAAiB,GAAG;gBAClB;oBACE,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,kBAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC;iBAC/C;aACF,CAAC;SACH;QACC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED,sCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;IACpF,CAAC;IAED,4CAAkB,GAAlB;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,2CAAiB,GAAjB,UAAkB,aAAqB;QACrC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,EAAE;YAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,sBAAC;AAAD,CAAC,CA3FoC,sBAAS,GA2F7C;AA3FY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACV5B,0CAA6C;AAE7C,yCAA2C;AAC3C,+CAAqD;AACrD,wCAAyC;AAIzC,qCAA+B;AAC/B,0CAA8C;AAC9C,0CAAqC;AACrC,2CAA6C;AAC7C,kDAAoE;AACpE,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC,CAAC;AAEvG;IAAyC,uCAAS;IAAlD;QAAA,qEAmWC;QAlWC,QAAE,GAAG,wBAAwB,CAAC;QAG9B,gBAAU,GAAsB,IAAI,CAAC;QACrC,mBAAa,GAAG,IAAI,CAAC;QACrB,uBAAiB,GAAG,IAAI,CAAC;QAEzB,sBAAgB,GAAkB,IAAI,CAAC;QAMvC,gBAAU,GAAG;YACX,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,kBAAkB;aAC7B;YACD,kBAAkB,EAAE;gBAClB,KAAK,EAAE,GAAG;aACX;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;;IAwUJ,CAAC;IAtUC,qCAAO,GAAP;QACE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,cAAO,EAAQ,CAAC;IAChD,CAAC;IAED,mCAAK,GAAL;QACE,GAAG,CAAC,cAAc,CAAC,CAAC;QACpB,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,sCAAQ,GAAR;QACE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,mDAAqB,GAArB;QAAA,iBAsBC;QArBC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,IAAI,aAAa,GAAuB,IAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAC9F,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,KAAY;gBACnD,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBAC5C,KAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAC,KAAY;gBACpD,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBAC7C,KAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBAC7C,UAAU,CAAC;oBACT,KAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,gBAAgB,CAAC,4BAA4B,EAAE;gBAC3D,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBAClE,KAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,oDAAsB,GAAtB;QAAA,iBAeC;QAdC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,eAAG,CAAC,UAAC,GAAQ;YACX,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAE3B,KAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,KAAI,CAAC,uBAAuB,EAAE,CAAC;YAE/B,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,EACF,wBAAY,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAC9C,CAAC,SAAS,CAAC,UAAC,GAAQ;YACnB,KAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAmB,GAAnB;QACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,qDAAqD,CAAC,CAAC;QAE5F,KAAoB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAAzB,IAAI,OAAO;YACd,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACtC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED,qDAAuB,GAAvB;QACE,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;SACjG;IACH,CAAC;IAGD,8CAAgB,GAAhB;QAAA,iBAwBC;QAvBC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oCAAgB,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAC,UAAkC;gBAChJ,KAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;gBACrC,IAAI,KAAI,CAAC,UAAU,IAAI,IAAI,EAAE;oBAC3B,KAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC9B,KAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBACxD,KAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBAC5C,KAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAC1C,KAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBAClD,IAAI,KAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;wBACrC,KAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;qBACzD;oBACD,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;wBAC7D,KAAI,CAAC,sBAAsB,EAAE,CAAC;oBAChC,CAAC,CAAC,CAAC,CAAC;oBACJ,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;wBAE9D,KAAI,CAAC,uBAAuB,EAAE,CAAC;oBACjC,CAAC,CAAC,CAAC,CAAC;iBACL;YACH,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAED,oDAAsB,GAAtB;QACE,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACnC,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;SAC3D;IACH,CAAC;IAED,wCAAU,GAAV;QACE,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,YAAY,CAAC;IAC9J,CAAC;IAED,6CAAe,GAAf,UAAgB,KAAK;QACnB,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;YACpB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,EAAE;YACjI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IASD,8CAAgB,GAAhB,UAAiB,KAAK;QACpB,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,CAAC,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,UAAU,IAAI,IAAI;YACvB,oBAAoB,IAAI,IAAI;YAC5B,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YACvC,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAEjD,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACtD,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;SAClE;QAED,IAAI,KAAK,EAAE;YACT,UAAU,CAAC;gBACT,IAAI,QAAQ,GAAG,oBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC7D,IAAI,QAAQ,IAAI,IAAI,EAAE;oBACpB,QAAQ,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC;iBACzE;YACH,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;QAGD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,qDAAuB,GAAvB;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1F,OAAO;SACR;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,uDAAyB,GAAzB;QACE,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,OAAO,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;SACrE;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,+CAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,aAAa;YAClF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,iDAAmB,GAAnB;QACE,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACtC,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;SAC1C;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,0CAAY,GAAZ,UAAa,KAAY;QACvB,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,KAAK,GAAuB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,CAAC,CAAC;SACX;QACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,qCAAO,GAAP,UAAQ,QAAiB;QACvB,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,8BAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,EAAE;YAChH,GAAG,CAAC,gDAAgD,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,yCAAW,GAAX;QACE,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1B,IAAI,yBAAyB,GAAgB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACzF,UAAU,CAAC;YACT,IAAI,yBAAyB,IAAI,IAAI,EAAE;gBACrC,IAAI,gBAAgB,GAAG,oBAAQ,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;gBAClF,IAAI,gBAAgB,IAAI,IAAI,EAAE;oBAC5B,IAAI,oBAAoB,GAAG,oBAAQ,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7G,IAAI,oBAAoB,IAAI,IAAI,EAAE;wBAChC,oBAAoB,CAAC,KAAK,EAAE,CAAC;qBAC9B;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAe,GAAf;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO,EAAE,CAAC;SACX;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAC7C,OAAO,kBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,EAAG,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,EAAC,CAAC,CAAC;SACrM;aAAM;YACL,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,EAAE;gBACpD,OAAO,EAAE,CAAC;aACX;YACD,OAAO,kBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;SACtM;IACH,CAAC;IAED,uDAAyB,GAAzB;QACE,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,yBAAyB,EAAE,CAAC,GAAG,CAAC,UAAC,KAA0B;YAC9F,OAAO,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAMD,kDAAoB,GAApB,UAAqB,KAAY;QAC/B,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAID,IAAI,kBAAkB,GAAI,KAAK,CAAC,MAAc,CAAC,KAAK,CAAC;QACrD,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,OAAO;SACR;QACD,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAC3F,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACrC,CAAC;IAED,wDAA0B,GAA1B;QACE,IAAI,oBAAoB,GAAgC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvF,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,gDAAkB,GAAlB,UAAmB,eAAgC;QACjD,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE;YAC5C,UAAU,EAAE;gBACV,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B;YACD,UAAU,EAAE;gBACV,EAAE,EAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE;aAC/D;YACD,UAAU,EAAE,wBAAwB;SACrC,CAAC;IACJ,CAAC;IAED,wCAAU,GAAV,UAAW,eAAgC;QAIzC,OAAO,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;IAED,sCAAQ,GAAR;QACE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACH,0BAAC;AAAD,CAAC,CAnWwC,sBAAS,GAmWjD;AAnWY,kDAAmB;;;;;;;;;;;ACdhC,qCAAmD;AAMnD;IAIE;QAFQ,yBAAoB,GAA4D,EAAE,CAAC;IAE5E,CAAC;IAKhB,8CAAkB,GAAlB,UAAmB,UAAsB,EAAE,EAAU;QACnD,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAChD;aAAM;YACL,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,sBAAe,CAAC,UAAU,CAAC,CAAC;SACjE;IACH,CAAC;IAMD,yCAAa,GAAb,UAAc,EAAU;QACtB,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,sBAAe,CAAC,SAAS,CAAC,CAAC;SAChE;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC;AA5BY,8CAAiB;;;;;;;;;;;ACN9B,yCAA8E;AAC9E,4CAAmD;AAEnD,iDAAkD;AAClD,qCAA6B;AAE7B;IAAA;QACE,yBAAoB,GAAwB,IAAI,wBAAU,EAAW,CAAC;QACtE,mBAAc,GAAwB,IAAI,wBAAU,EAAW,CAAC;QAChE,mBAAc,GAAwB,IAAI,wBAAU,EAAW,CAAC;QAEhE,wBAAmB,GAAsC,IAAI,cAAO,EAA4B,CAAC;IAqEnG,CAAC;IAnEC,sCAAa,GAAb,UAAc,QAA4B;QACxC,QAAQ,QAAQ,EAAE;YAChB,QAAQ;YACR,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC;YACnC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACH,CAAC;IAED,uCAAc,GAAd,UAAe,IAAoB,EAAE,QAA4B,EAAE,OAAoC,EAAE,OAAgB,EAAE,OAAgB;QAA3I,iBAwBC;QAvBC,IAAI,mBAAmB,GAAY,IAAI,iBAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1F,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO;SACR;QACD,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe,KAAK,KAAK,EAAE;YAChD,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7B,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;SAC5B;QACD,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC1D,gCAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAExC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEnD,IAAI,mBAAmB,CAAC,OAAO,KAAK,CAAC,EAAE;YACrC,mBAAmB,CAAC,UAAU,GAAG,UAAU,CAAC;gBAE1C,GAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACzC,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC3C,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrD,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;SACjC;IACH,CAAC;IAED,sCAAa,GAAb,UAAc,QAA4B,EAAE,OAAe;QACzD,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,IAAI,UAAU,GAAoC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/E,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,IAAI,UAAU,GAAwB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACpC,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iDAAwB,GAAxB;QAAA,iBAaC;QAbwB,mBAAuC;aAAvC,UAAuC,EAAvC,qBAAuC,EAAvC,IAAuC;YAAvC,8BAAuC;;QAC9D,SAAS,CAAC,OAAO,CAAC,UAAC,QAA4B;YAE7C,IAAI,UAAU,GAAoC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/E,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,IAAI,oBAAkB,GAAmB,EAAE,CAAC;gBAC5C,UAAU,CAAC,OAAO,CAAC,UAAC,KAAc,EAAE,GAAW,EAAE,KAAa;oBAC5D,oBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,oBAAkB,CAAC,CAAC;aACnD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACH,qBAAC;AAAD,CAAC;AA1EY,wCAAc;;;;;;;;;;;ACkB3B;IA8BE,iBAAa,IAAoB,EACpB,QAA4B,EAC5B,kBAA+C,EAC/C,OAAgB,EAChB,OAAgB;QAf7B,oBAAe,GAAG,KAAK,CAAC;QAExB,YAAO,GAAG,EAAE,CAAC;QAEb,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAG,IAAI,CAAC;QACf,YAAO,GAAG,SAAS,CAAC;QAQlB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACvD,KAAkB,UAAW,EAAX,SAAI,CAAC,MAAM,EAAX,cAAW,EAAX,IAAW,EAAE;YAA1B,IAAI,KAAK;YACZ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;aAClB;iBAAM,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aAC7C;SACF;QACD,IAAI,CAAC,SAAS,GAAM,IAAI,CAAC,OAAO,SAAI,IAAI,CAAC,IAAI,SAAI,IAAI,CAAC,QAAQ,SAAI,IAAI,CAAC,OAAO,CAAC,MAAM,aAAU,CAAC;IAClG,CAAC;IAtDD,sBAAI,kCAAa;aAAjB;YACE,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACjC,CAAC;;;OAAA;IAED,sBAAI,+BAAU;aAAd;YACE,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAC9B,CAAC;;;OAAA;IAED,sBAAI,kCAAa;aAAjB;YACE,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACjC,CAAC;;;OAAA;IAED,sBAAI,gCAAW;aAAf;YACE,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;QAC/B,CAAC;;;OAAA;IAgDO,iCAAe,GAAvB,UAAwB,kBAA+C;QAErE,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;YAC1C,OAAO,CAAC;oBACN,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,kBAAkB;iBAC5B,CAAC,CAAC;SACJ;aAAM,IAAI,kBAAkB,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACxH,OAAO,CAAC;oBACN,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,kBAAkB,CAAC,OAAO;iBACpC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAGzC,IAAI,SAAS,GAAG,0BAA0B,CAAC;YAC3C,IAAI,WAAW,GAAa,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,aAAa,GAAmB,EAAE,CAAC;oCAC9B,KAAK;gBAEZ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAClC,aAAa,CAAC,IAAI,CAAC;wBACjB,UAAU,EAAE,KAAK;wBACjB,OAAO,EAAE,KAAK;qBACf,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrD,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1C,IAAI,WAAS,GAAgB,gBAAgB,CAAC,UAAU,CAAC;oBAGzD,IAAI,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,QAAkB;wBACvE,OAAO,WAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACN,IAAI,eAAe,IAAI,IAAI,EAAE;wBAC3B,OAAO,CAAC,KAAK,CAAC,mBAAiB,WAAS,CAAC,EAAE,4CAAyC,CAAC,CAAC;qBACvF;oBACD,aAAa,CAAC,IAAI,CAAC;wBACjB,UAAU,EAAE,IAAI;wBAChB,OAAO,EAAE,WAAS,CAAC,SAAS;wBAC5B,QAAQ,EAAE,eAAe;qBAC1B,CAAC,CAAC;iBACJ;YACH,CAAC;YAzBD,KAAkB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW;gBAAxB,IAAI,KAAK;wBAAL,KAAK;aAyBb;YACD,OAAO,aAAa,CAAC;SACtB;IACH,CAAC;IACH,cAAC;AAAD,CAAC;AAjHY,0BAAO;;;;;;;;;;;;;;;;;;;;;;;;ACzBpB,0CAA6C;AAG7C,2CAA6C;AAC7C,kDAAoE;AAEpE,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,uCAAuC,CAAC,CAAC;AAEnH;IAAoD,kDAAS;IAA7D;QAAA,qEAoHC;QAnHC,QAAE,GAAG,oCAAoC,CAAC;QAM1C,gBAAU,GAAG;YACX,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC;;IAuGJ,CAAC;IArGC,iDAAQ,GAAR;QAAA,iBAgBC;QAfC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,iBAAiB,GAAuB,IAAI,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;QAC9G,IAAI,iBAAiB,IAAI,IAAI,EAAE;YAC7B,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,KAAY;gBACtD,KAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAC,KAAY;gBACvD,KAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,KAAY;gBAClE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAE,KAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzD,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,yDAAgB,GAAhB;QAAA,iBAcC;QAbC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oCAAgB,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAC,UAAkC;gBAChJ,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,KAAI,CAAC,UAAU,IAAI,IAAI,IAAI,KAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,EAAE;oBACxE,KAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBACtD,KAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBAC1D,KAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBACzD,KAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBAC7D,KAAI,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;iBAC/D;YACH,CAAC,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAED,+DAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,GAAG,CAAC,CAAC;IACrI,CAAC;IAED,8DAAqB,GAArB;QACE,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC/L,CAAC;IAED,8DAAqB,GAArB;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO,EAAE,CAAC;SACX;QAED,OAAU,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,YAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,CAAC,CAAE,CAAC;IACtL,CAAC;IAED,gEAAuB,GAAvB,UAAwB,KAAc;QACpC,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,+DAAsB,GAAtB;QACE,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC;IACrI,CAAC;IAED,oDAAW,GAAX,UAAY,cAA6B;QACvC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE;YACrD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,GAAG,cAAc,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,8DAAqB,GAArB;QACE,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QACjD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC;SACxE;QAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,0DAAiB,GAAjB;QACE,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC;SACxE;QAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,iDAAQ,GAAR;QACE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACH,qCAAC;AAAD,CAAC,CApHmD,sBAAS,GAoH5D;AApHY,wEAA8B;;;;;;;;;;;;;;;;;;;;;;;;ACR3C,0CAA6C;AAG7C;IAA2C,yCAAS;IAApD;QAAA,qEAgCC;QA/BC,QAAE,GAAG,2BAA2B,CAAC;QAIjC,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAmBJ,CAAC;IAjBC,wCAAQ,GAAR;QAAA,iBAWC;QAVC,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,WAAW,GAAuB,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC5E,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,WAAW,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,KAAY;gBAC5D,IAAI,KAAI,CAAC,MAAM,IAAI,IAAI,EAAE;oBACvB,KAAI,CAAC,MAAM,CAAC,WAAW,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;oBAC3D,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,2CAAW,GAAX;QACE,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACH,4BAAC;AAAD,CAAC,CAhC0C,sBAAS,GAgCnD;AAhCY,sDAAqB;;;;;;;;;;;;;;;;;;;;;;;;ACHlC,0CAA6C;AAG7C,8CAAwD;AAIxD;IAA4C,0CAAS;IAuBnD;QAAA,YACE,iBAAO,SACR;QAxBD,QAAE,GAAG,4BAA4B,CAAC;QAWlC,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAIF,CAAC;IAED,yCAAQ,GAAR;QAAA,iBASC;QARC,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,kBAAkB,GAAgC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAQ,CAAC;QAC3G,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,UAAC,eAAgC;gBACxF,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC;gBACrF,KAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gDAAe,GAAf,UAAgB,KAAY;QAE1B,IAAI,QAAQ,GAAsB,KAAK,CAAC,MAAO,CAAC;QAChD,IAAI,EAAE,GAAkB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,4CAAW,GAAX;QACE,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,4CAAW,GAAX,UAAY,MAAyB;QAArC,iBAuBC;QAtBC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO;SACR;QAED,IAAI,aAAa,GAA0C,IAAI,CAAC,MAAM,CAAC,SAA8B,CAAC,aAAa,CAAC,KAAK,CAAC;QAC1H,IAAI,gBAAgB,GAA2B,EAAE,CAAC;QAClD,KAAyB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;YAAnC,IAAI,YAAY;YACnB,IAAI,UAAU,GAAG;gBACf,EAAE,EAAE,YAAY,CAAC,GAAG;gBACpB,IAAI,EAAE,YAAY,CAAC,GAAG;gBACtB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;aACvD,CAAC;YACF,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,gBAAgB,CAAC,CAAC;QAErD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CACxC,UAAC,eAAgC;YAC/B,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC;YACrF,KAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CACF,CAAC;IACJ,CAAC;IAED,0CAAS,GAAT,UAAU,IAAqB;QAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,8CAAa,GAAb;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,2CAAU,GAAV;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IACH,6BAAC;AAAD,CAAC,CA7F2C,sBAAS,GA6FpD;AA7FY,wDAAsB;;;;;;;;;;;;;;;;;;;;;;;;ACPnC,0CAA6C;AAG7C,yCAA2C;AAE3C,2CAA6C;AAC7C,wCAAyC;AACzC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAErG,IAAI,iBAAiB,CAAC;AAEtB;IAAuC,qCAAS;IAAhD;QAAA,qEAuIC;QAtIC,QAAE,GAAG,sBAAsB,CAAC;QAQ5B,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAsHJ,CAAC;IApHC,oCAAQ,GAAR;QAAA,iBAeC;QAdC,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhC,IAAI,SAAS,GAAuB,IAAI,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACxF,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,KAAY;gBAC1D,IAAI,oBAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAqB,EAAE,+BAA+B,CAAC,EAAE;oBAC7E,KAAI,CAAC,MAAM,CAAC,cAAc,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;iBAC/D;qBAAM;oBACL,KAAI,CAAC,MAAM,CAAC,eAAe,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;iBAChE;gBACD,KAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,uCAAW,GAAX;QACE,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC,KAAK,CAAC;QAEjG,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACjE,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aACnE;YACD,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACjE,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aACpE;SACF;QAED,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,0CAAc,GAAd;QACE,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7B,OAAoB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,uCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,OAAO,KAAK,CAAC;SACd;QAED,OAAqB,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,sDAA0B,GAA1B;QACE,IAAI,iBAAiB,IAAI,IAAI,EAAE;YAC7B,iBAAiB,GAAG;gBAClB;oBACE,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,GAAG;iBACV;gBACD;oBACE,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,kBAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC;iBAC/C;aACF,CAAC;SACH;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,sDAA0B,GAA1B;QACE,IAAI,QAAQ,GAAiD,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,QAAQ,CAAC;QAC7F,IAAI,WAAW,GAA4C,EAAE,CAAC;QAE9D,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAkB,UAAc,EAAd,aAAQ,CAAC,KAAK,EAAd,cAAc,EAAd,IAAc,EAAE;gBAA5B,IAAI,IAAI;gBACZ,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzB,IAAI,EAAE,IAAI,CAAC,GAAG;iBACf,CAAC,CAAC;aACJ;SACF;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,wCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC;IACrH,CAAC;IAED,8CAAkB,GAAlB;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC;IAC/C,CAAC;IAED,6CAAiB,GAAjB,UAAkB,aAAqB;QACrC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,EAAE;YAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,wBAAC;AAAD,CAAC,CAvIsC,sBAAS,GAuI/C;AAvIY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACX9B,0CAA6C;AAE7C,2CAA6C;AAC7C,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,CAAC;AAE1G;IAA2C,yCAAS;IAApD;QAAA,qEA6BC;QA5BC,QAAE,GAAG,2BAA2B,CAAC;QAKjC,gBAAU,GAAG;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAmBJ,CAAC;IAhBC,0CAAU,GAAV,UAAW,KAAY;QACrB,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAE1B,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,OAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,aAAa,CAAC,OAAK,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,iDAAiB,GAAjB,UAAkB,IAAkC;QAClD,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,CAAC;IACH,4BAAC;AAAD,CAAC,CA7B0C,sBAAS,GA6BnD;AA7BY,sDAAqB;;;;;;;;;;;;;;;;;;;;;;;;ACLlC,0CAA6C;AAE7C,8CAAsE;AAItE;IAAuC,qCAAS;IAAhD;QAAA,qEAsDC;QArDC,QAAE,GAAG,sBAAsB,CAAC;QAK5B,iBAAW,GAAG,4BAAY,CAAC,WAAW,CAAC;QAEvC,gBAAU,GAAG;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IA0CJ,CAAC;IAxCC,oCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACjC,IAAI,aAAa,GAAuB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,4BAAY,CAAC,WAAW,CAAC;aACpD;YAGK,aAAc,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;SACtD;IACH,CAAC;IAED,uCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO;SACR;QAED,IAAI,aAAa,GAAyC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvF,IAAI,aAAa,CAAC,aAAa,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;SAC/C;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,4BAAY,CAAC,WAAW,CAAC;SACpD;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,4CAAgB,GAAhB,UAAiB,MAAmB;QAClC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,CAAC;SACX;QAGD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK;aAC9D,GAAG,CAAC,UAAC,MAAoC;YACxC,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAC,CAAC;QACjD,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACH,wBAAC;AAAD,CAAC,CAtDsC,sBAAS,GAsD/C;AAtDY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACN9B,0CAA6C;AAI7C,2CAA6C;AAC7C,yCAA2C;AAC3C,kDAAoE;AACpE,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,gCAAgC,CAAC,CAAC;AAE5G;IAA6C,2CAAS;IAAtD;QAAA,qEAiIC;QAhIC,QAAE,GAAG,6BAA6B,CAAC;QAGnC,uBAAiB,GAA6B,IAAI,CAAC;QAGnD,sBAAgB,GAAkB,IAAI,CAAC;QAKvC,gBAAU,GAAG,KAAK,CAAC;QAEnB,gBAAU,GAAG;YACX,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,yBAAyB;gBACnC,KAAK,EAAE,IAAI;aACZ;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,kBAAkB;gBAC5B,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;QAEF,eAAS,GAAG;YACV,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,gCAAgC;SAC1C,CAAC;;IAoGJ,CAAC;IAhGC,uCAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QAGd,IAAI,MAAM,GAA4B,IAAI,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;QACxG,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,IAAI,GAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,oBAAQ,CAAC,EAAE,CAAc,IAAI,EAAE,sCAAsC,CAAC,EAAE;oBAC1E,SAAS;iBACV;gBAED,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;IACH,CAAC;IAED,0CAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,8CAAY,GAAZ;QACE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC7E,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACxF,CAAC;IAED,yDAAuB,GAAvB,UAAwB,oBAA0D,EAAE,oBAA0D;QAE5I,IAAI,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACxD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;SAClC;QAGD,IAAI,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YAEnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjE;IACH,CAAC;IAED,gEAA8B,GAA9B,UAA+B,KAAoB;QAEjD,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;YAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;IACH,CAAC;IAED,qDAAmB,GAAnB;QACE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAM7D,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACvD;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACpD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACvD;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,KAAK,IAAI,EAAE;gBACnD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,kDAAgB,GAAhB;QAAA,iBAMC;QALC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACjC,oCAAgB,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,UAAC,UAAkC;gBACxH,KAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;YACvC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,6DAA2B,GAA3B;QACE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAIlC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACpE;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC1D;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,CAjI4C,sBAAS,GAiIrD;AAjIY,0DAAuB;;;;;;;;;;;;;;;;;;;;;;;;ACTpC,0CAA6C;AAK7C,wCAAyC;AACzC,2CAA6C;AAC7C,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAEnG;IAAqC,mCAAS;IAA9C;QAAA,qEAwFC;QAvFC,QAAE,GAAG,oBAAoB,CAAC;QAG1B,QAAE,GAAkB,IAAI,CAAC;QAGzB,YAAM,GAAsB,IAAI,CAAC;QAEjC,gBAAU,GAA4B,UAAU,CAAC;QAEjD,gBAAU,GAAG;YACX,MAAM,EAAE;gBACN,QAAQ,EAAE,kBAAkB;gBAC5B,KAAK,EAAE,IAAI;aACZ;YACD,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAoEJ,CAAC;IAlEC,+BAAK,GAAL;QACE,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAKD,0CAAgB,GAAhB;QACE,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SAC1C;IACH,CAAC;IAED,kCAAQ,GAAR;QAAA,iBAcC;QAbC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,cAAc,GAAuB,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;QAC3F,IAAI,cAAc,IAAI,IAAI,EAAE;YAG1B,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAC,KAAY;gBAC/D,IAAI,KAAI,CAAC,MAAM,IAAI,IAAI,EAAE;oBACvB,KAAI,CAAC,MAAM,CAAC,WAAW,GAAI,KAAK,CAAC,MAAc,CAAC,UAAU,CAAC;oBAC3D,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,qCAAW,GAAX;QACE,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1B,IAAI,QAAQ,GAAyC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,GAA4B,QAAQ,CAAC,KAAK,CAAC;YACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAED,IAAI,KAAK,GAAU,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,2CAAiB,GAAjB,UAAkB,aAAqB;QACrC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YACpB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,EAAE;YAChD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAAgB,GAAhB;QACE,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,CAAC;SACX;QAED,OAAmB,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,iBAA0D;YAChI,OAAO;gBACL,IAAI,EAAE,kBAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzD,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,CAxFoC,sBAAS,GAwF7C;AAxFY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACP5B,wCAAqC;AAGrC,sDAA8D;AAC9D,2CAAyC;AACzC,yCAAuC;AAIvC,0DAAmE;AACnE,+CAA+C;AAC/C,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,4BAA4B,CAAC,CAAC;AAM3G;IAA0C,wCAAmB;IAA7D;QAAA,qEA+QC;QA9QC,QAAE,GAAG,yBAAyB,CAAC;QAS/B,oBAAc,GAAG,QAAQ,CAAC;QAO1B,mBAAa,GAAG,IAAI,CAAC;QACrB,qBAAe,GAAG,KAAK,CAAC;QAExB,gBAAU,GAAG,KAAK,CAAC;QACnB,aAAO,GAAG,IAAI,CAAC;QAaf,kCAA4B,GAAG,KAAK,CAAC;QAWrC,uBAAiB,GAAG,KAAK,CAAC;QAE1B,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE,mBAAmB;gBAC7B,KAAK,EAAE,IAAI;aACZ;YACD,cAAc,EAAE;gBACd,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aAChB;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,YAAY;aACvB;YACD,gCAAgC,EAAE;gBAChC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,YAAY;aACvB;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,4BAA4B,EAAE;gBAC5B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;QAkBM,aAAO,GAAG,KAAK,CAAC;;IA4I1B,CAAC;IA1IC,uCAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,oCAAK,GAAL;QACE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,kDAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAED,+CAAgB,GAAhB;QAAA,iBAKC;QAJC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC;YACzC,KAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAAc,GAAd,UAAe,KAA6C;QAC1D,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAED,0CAAW,GAAX,UAAY,KAAmF;QAC7F,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAG;YAE7D,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YAEvD,IAAI,OAAO,GAAqD,oBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3G,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACnE;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,gDAAiB,GAAjB;QACE,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;YACpC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAED,+CAAgB,GAAhB;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,kBAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;SAClE;IACH,CAAC;IAED,oDAAqB,GAArB;QACE,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,iDAAkB,GAAlB;QACE,OAAO,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,wDAAyB,GAAzB;QACE,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,kDAAmB,GAAnB;QACE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kCAAG,GAAH,UAAI,OAAa;QAAE,wBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,uCAAwB;;QACzC,GAAG,gBAAC,OAAO,SAAK,cAAc,GAAE;IAClC,CAAC;IAED,8CAAe,GAAf,UAAgB,qBAAoC;QAClD,iBAAM,eAAe,YAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,6CAAc,GAAd,UAAe,qBAAoC;QACjD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,iBAAM,cAAc,YAAC,qBAAqB,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAMD,wDAAyB,GAAzB;QACE,KAAyB,UAAgE,EAAhE,UAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAhE,cAAgE,EAAhE,IAAgE,EAAE;YAAtF,IAAI,YAAY;YACnB,IAAI,eAAe,GAAsC,YAAa,CAAC,eAAe,CAAC;YACvF,IAAI,eAAe,IAAI,IAAI,EAAE;gBAC3B,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;gBACtF,IAAI,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,aAAa,IAAI,IAAI,EAAE;oBACzB,aAAa,CAAC,OAAO,GAAG,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC;iBAC7D;aACF;SACF;IACH,CAAC;IAED,kDAAmB,GAAnB;QACE,IAAI,MAAM,GAAqB,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;YAClC,IAAI,IAAI,GAAgC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,IAAqB;gBAClG,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;YAClC,CAAC,CAAC,CAAC;YAKH,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,WAAW,GAAG,YAAY,CAAC;gBAClC,OAAO,MAAM,CAAC;aACf;SACF;QAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,IAAI,kBAAkB,GAAG,8BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClF,IAAI,kBAAkB,IAAI,IAAI,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;aAC3D;iBAAM;gBACL,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,EAAE,EAAE,CAAC,CAAC;aACnF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sDAAuB,GAAvB;IAGA,CAAC;IACH,2BAAC;AAAD,CAAC,CA/QyC,2CAAmB,GA+Q5D;AA/QY,oDAAoB;AAkRjC,oBAAoB,CAAC,SAAS,CAAC,UAAU,GAAG,kDAAsB,CAAC,SAAS,CAAC,UAAU,CAAC;AACxF,oBAAoB,CAAC,SAAS,CAAC,cAAc,GAAG,kDAAsB,CAAC,SAAS,CAAC,cAAc,CAAC;AAChG,oBAAoB,CAAC,SAAS,CAAC,aAAa,GAAG,kDAAsB,CAAC,SAAS,CAAC,aAAa,CAAC;AAC9F,oBAAoB,CAAC,SAAS,CAAC,SAAS,GAAG,kDAAsB,CAAC,SAAS,CAAC,SAAS,CAAC;AACtF,oBAAoB,CAAC,SAAS,CAAC,QAAQ,GAAG,kDAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpF,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,GAAG,kDAAsB,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACzSpG,sDAA4D;AAC5D,2CAAyC;AAEzC,yCAAqC;AAGrC,wCAAmC;AACnC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAE3F;IAAgC,8BAAmB;IAAnD;QAAA,qEAuSC;QAtSC,QAAE,GAAG,cAAc,CAAC;QAUpB,0BAAoB,GAAoB,cAAc,CAAC;QAkEvD,gBAAU,GAAG;YACX,EAAE,EAAE;gBACF,IAAI,EAAE,MAAM;aACb;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,wBAAwB;aACnC;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,yBAAyB;aACpC;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACZ;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI;aACZ;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;aACZ;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,IAAI;aACZ;YACD,4BAA4B,EAAE;gBAC5B,KAAK,EAAE,IAAI;aACZ;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;SACF,CAAC;;IAoJJ,CAAC;IAlJC,0BAAK,GAAL;QAAA,iBAOC;QANC,iBAAM,KAAK,WAAE,CAAC;QACd,IAAI,CAAC,wBAAwB,GAAG,UAAC,cAA0B;YACzD,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,CAAC,CAAC;QAEF,IAAI,CAAC,yCAAyC,EAAE,CAAC;IACnD,CAAC;IAED,8DAAyC,GAAzC;QAAA,iBAUC;QATC,IAAI,CAAC,mCAAmC,GAAG,UAAC,KAAY;YACtD,IAAI,YAAY,GAA4D,oBAAQ,CAAC,UAAU,CAAc,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,EAAE,CAAE,CAAC;YACrI,IAAI,eAAe,GAA6B,oBAAQ,CAAC,UAAU,CAAc,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAChH,KAAoB,UAAqD,EAArD,UAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAI,CAAC,EAAE,CAAC,CAAC,EAArD,cAAqD,EAArD,IAAqD,EAAE;gBAAtE,IAAI,OAAO;gBACd,IAAI,OAAO,KAAK,YAAY,EAAE;oBAC3B,OAA6B,CAAC,WAAW,EAAE,CAAC;iBAC9C;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,6BAAQ,GAAR;QACE,iBAAM,QAAQ,WAAE,CAAC;QAGjB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,oBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,kBAAkB,CAAC,IAAI,IAAI,EAAE;gBACrE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;aAC/B;SACF;QAGD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,IAAI,oBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,qBAAqB,CAAC,IAAI,IAAI,EAAE;gBACxE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;aAClC;SACF;IACH,CAAC;IAED,0CAAqB,GAArB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,uCAAkB,GAAlB;QACE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,8CAAyB,GAAzB;QACE,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,wBAAG,GAAH,UAAI,OAAa;QAAE,wBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,uCAAwB;;QACzC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,wCAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,oCAAe,GAAf,UAAgB,KAAY;QAC1B,IAAI,QAAQ,GAAyB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO;SACR;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACrB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,EAAE,GAAG,kCAAkC,CAAC,CAAC;SAEpF;QAMD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,mCAAmC,IAAI,IAAI,EAAE;YACpD,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;SACjD;IACH,CAAC;IAKD,2CAAsB,GAAtB;QACE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YACtB,IAAI,CAAC,eAAgB,CAAC,OAAO,IAAI,IAAI;YACrC,IAAI,CAAC,eAAgB,CAAC,cAAc,IAAI,IAAI;YAC5C,IAAI,CAAC,eAAgB,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,EAAE;YACxD,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpE,IAAI,CAAC,eAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC;SAC1F;IACH,CAAC;IAED,4CAAuB,GAAvB;QACE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACvE;IACH,CAAC;IAKD,iCAAY,GAAZ,UAAa,KAAY;QAAzB,iBAcC;QAZC,UAAU,CAAC;YACT,IAAI,aAAa,GAAW,GAAG,GAAG,KAAI,CAAC,EAAE,GAAG,sBAAsB,GAAG,KAAI,CAAC,EAAE,GAAG,wBAAwB,CAAC;YACxG,KAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;YAC5C,IAAI,IAAI,GAAuB,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,EAAE;YAC7C,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,wCAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YACjF,OAAO,gCAAgC,CAAC;SACzC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yCAAoB,GAApB,UAAqB,QAAkB,EAAE,SAAiB;QACxD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;SAC7F;aAAM,IAAI,SAAS,KAAK,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;SAC3F;aAAM,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,OAAO,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,kBAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;SACzF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IACH,iBAAC;AAAD,CAAC,CAvS+B,2CAAmB,GAuSlD;AAvSY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACVvB,0CAAyC;AAGzC,kDAAgE;AAGhE;IAAuC,qCAAS;IAAhD;QAAA,qEA6FC;QA5FC,QAAE,GAAG,qBAAqB,CAAC;QAM3B,gBAAU,GAAG;YACX,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,gBAAgB;aAC3B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS;aACjB;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IAqEJ,CAAC;IAnEC,mDAAuB,GAAvB,UAAwB,eAAmC;QACzD,QAAQ,eAAe,CAAC,WAAW,EAAE,EAAE;YACrC,QAAS;YACT,KAAK,QAAQ;gBACX,OAAO,qBAAqB,CAAC;YAC/B,KAAK,QAAQ;gBACX,OAAO,qBAAqB,CAAC;YAC/B,KAAK,UAAU;gBACb,OAAO,uBAAuB,CAAC;SAClC;IACH,CAAC;IAED,gDAAoB,GAApB,UAAqB,YAAqB;QACxC,IAAI,YAAY,CAAC,aAAa,EAAE;YAC9B,OAAO,qBAAqB,CAAC;SAC9B;QACD,IAAI,YAAY,CAAC,UAAU,EAAE;YAC3B,OAAO,kBAAkB,CAAC;SAC3B;QACD,IAAI,YAAY,CAAC,aAAa,EAAE;YAC9B,OAAO,qBAAqB,CAAC;SAC9B;QACD,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5B,OAAO,mBAAmB,CAAC;SAC5B;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,0CAAc,GAAd;QAAA,iBAMC;QALC,IAAI,cAAc,GAAmB,oCAAgB,CAAC,iBAAiB,EAAE,CAAC;QAC1E,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAC,OAAgB;YAC5D,KAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,mDAAuB,GAAvB;QACE,IAAI,cAAc,GAAmB,oCAAgB,CAAC,iBAAiB,EAAE,CAAC;QAC1E,QAAQ,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE;YAC9C,KAAK,UAAU;gBACb,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;gBAC7D,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM;YACR,QAAQ;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM;SAET;IACH,CAAC;IAED,sDAA0B,GAA1B,UAA2B,KAAY;QACrC,IAAI,MAAM,GAAQ,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,mCAAO,GAAP,UAAQ,KAAY;QAClB,IAAI,OAAO,GAAY,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,cAAc,GAAmB,oCAAgB,CAAC,iBAAiB,EAAE,CAAC;QAC1E,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,uCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;IACH,wBAAC;AAAD,CAAC,CA7FsC,sBAAS,GA6F/C;AA7FY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;ACN9B,0CAAyC;AACzC,6CAAwC;AAExC,wCAAqC;AAKrC,IAAM,+BAA+B,GAAG,IAAI,uBAAQ,EAAE,CAAC;AAEvD,+BAA+B,CAAC,MAAM,GAAG,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAC,EAAC,CAAC;AAEpF;IAAmC,iCAAS;IAA5C;QAAA,qEA4CC;QA3CC,QAAE,GAAG,iBAAiB,CAAC;QAOvB,gBAAU,GAAG;YACX,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,YAAY;aACvB;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,qBAAqB;aAChC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,qBAAqB;aAChC;SACF,CAAC;;IAqBJ,CAAC;IApBC,kCAAU,GAAV;QACE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,IAAI,WAAW,GAAG,+BAA+B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7E,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,IAAI,CAAC,IAAI,GAAG,kBAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aAClB;SACF;IACH,CAAC;IAED,2CAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YAC9C,IAAI,CAAC,aAAa,GAAG,kBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACrE;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,CA5CkC,sBAAS,GA4C3C;AA5CY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;ACZ1B,0CAAuC;AAEvC,kDAAgE;AAGhE,2CAAyC;AACzC,wCAAqC;AACrC,IAAI,GAAG,GAAG,sBAAS,CAAC,aAAa,CAAC,sBAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAE7F;IAAoC,kCAAS;IAA7C;QAAA,qEAmGC;QAjGC,QAAE,GAAG,kBAAkB,CAAC;QASxB,gBAAU,GAAG;YACX,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,cAAc;aACzB;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,IAAI;aACZ;SACF,CAAC;;IA+EJ,CAAC;IA7EC,qCAAY,GAAZ;QAAA,iBA0BC;QAzBC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,oCAAgB,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,kBAAqC;YACvG,IAAI,KAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBACvB,OAAO;aACR;YACD,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC5B,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC;YACtD,KAAiB,UAAkB,EAAlB,yCAAkB,EAAlB,gCAAkB,EAAlB,IAAkB,EAAE;gBAAhC,IAAI,IAAI;gBACX,KAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC;IACxD,CAAC;IAED,yCAAgB,GAAhB,UAAiB,KAAY;QAC3B,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,OAAO;SACR;QAED,IAAI,MAAM,GAAuB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO;SACR;QACD,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,GAA2B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YACnC,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,2CAAkB,GAAlB,UAAmB,IAAgB;QACjC,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC5D,CAAC;IAED,yCAAgB,GAAhB,UAAiB,IAAgB;QAC/B,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,yCAAgB,GAAhB,UAAiB,IAAgB;QAC/B,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC5D,CAAC;IAED,+CAAsB,GAAtB,UAAuB,IAAgB;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,kBAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;SACvE;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,kBAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,kBAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3E,CAAC;IAED,2CAAkB,GAAlB,UAAmB,IAAgB;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,kBAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC3C;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,CAnGmC,sBAAS,GAmG5C;AAnGY,wCAAc;;;;;;;;;;;;;;;;;;;;;;;;ACT3B,0CAAyC;AACzC,wCAAqC;AAErC;IAAqC,mCAAS;IAA9C;QAAA,qEAoEC;QAnEC,QAAE,GAAG,mBAAmB,CAAC;QAOzB,gBAAU,GAAG;YACX,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,cAAc;aACzB;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,gBAAgB;aAC3B;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,qBAAqB;aAChC;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,gBAAgB;aAC3B;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;;IAkCJ,CAAC;IAhCC,sCAAY,GAAZ;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YACrD,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAA2B,CAAC,CAAC;YAE7D,IAAI,aAAa,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACvC;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,6CAAmB,GAAnB;QACE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE;YACrE,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAmC,CAAC,CAAC;YAErE,IAAI,aAAa,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC5B;SACF;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;IACH,CAAC;IAED,wCAAc,GAAd;QACE,IAAI,WAAW,GAAW,kBAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnF,IAAI,CAAC,8BAA8B,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IACH,sBAAC;AAAD,CAAC,CApEoC,sBAAS,GAoE7C;AApEY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;ACH5B,qDAA6D;AAC7D,qCAA6D;AAE7D,gEAA0H;AAC1H,yCAAwC;AAIxC,+CAAiD;AAGjD,0CAAwC;AACxC,0CAA+C;AAC/C,0CAA6C;AAC7C,0CAA0C;AAC1C,0DAAmE;AAMnE;IAAqD,mDAAmB;IActE,yCAAY,KAA4C,EAAU,MAAW;QAA7E,YACE,kBAAM,KAAK,CAAC,SAwDb;QAzDiE,YAAM,GAAN,MAAM,CAAK;QAXtE,UAAI,GAAW,8DAA4B,CAAC,iBAAiB,CAAC;QAG7D,iBAAW,GAAe,EAAE,CAAC;QAE7B,uBAAiB,GAA4B,EAAE,CAAC;QAGhD,0BAAoB,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC3D,uBAAiB,GAA4B,EAAE,CAAC;QAItD,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,KAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,MAAM,qDAAqD,CAAC;SAC7D;QAED,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YACnC,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,OAAb,MAAM,GAAQ,EAAE,SAAK,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;;gBAC/E,gBAAS,GAAC,OAAO,CAAC,GAAG,IAAG,OAAO,KAAG;YACpC,CAAC,CAAC,EAAC,CAAC;SACL;QAED,IAAI,KAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YACpE,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,OAAb,MAAM,GAAQ,EAAE,SAAK,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;;gBAC/E,gBAAS,GAAC,OAAO,CAAC,GAAG,IAAG,OAAO,KAAG;YACpC,CAAC,CAAC,EAAC,CAAC;YAEJ,IAAI,KAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,EAAE;gBAChD,KAAoB,UAAqB,EAArB,UAAI,CAAC,OAAO,CAAC,QAAQ,EAArB,cAAqB,EAArB,IAAqB,EAAE;oBAAtC,IAAI,OAAO;oBACd,IAAI,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1E,IAAI,aAAa,IAAI,IAAI,EAAE;wBACzB,KAAoB,UAAsB,EAAtB,kBAAa,CAAC,QAAQ,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;4BAAvC,IAAI,OAAO;4BACd,IAAI,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCAC9C,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;6BAC3D;iCAAM;gCACL,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;6BACvD;yBACF;qBACF;iBACF;aACF;SACF;aAAM,IAAI,KAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1C,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;SAC9B;QAED,KAAI,CAAC,sBAAsB,GAAG,eAAQ,CACpC,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,SAAiB;YACrD,IAAI,OAAO,GAAG;gBACZ,OAAO,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc;gBAC7C,SAAS,EAAE,SAAS;aACrB,CAAC;YACF,IAAI,IAAI,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACrF,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,OAAO,6BAAY,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/E,eAAG,CAAC,UAAC,QAAsB;gBACzB,IAAI,IAAI,GAAsD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxF,IAAI,QAAQ,GAAM,KAAI,CAAC,OAAO,CAAC,QAAQ,SAAI,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAgB,CAAC;gBAClF,IAAI,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/D,KAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAC1C,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,uBAAW,EAAE,EAAE,oBAAQ,EAAE,CAAC,CAAC;;IACpC,CAAC;IAED,sEAA4B,GAA5B;QAAA,iBA4CC;QA3CC,IAAI,cAAc,GAAG,UAAC,MAAkC;YACtD,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,EAAE;gBACpG,OAAO,KAAK,CAAC;aACd;YAGD,IAAI,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAG,CAAC;YAC5E,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,KAAI,CAAC,OAAO,CAAC,cAAc;gBAC7D,KAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,KAAK,CAAC;aACd;YACD,KAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;YAClD,OAAO,IAAI,CAAC;QAEd,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CACrC,eAAG,CAAC;YAEF,IAAI,WAAW,GAAmD,KAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC1F,OAAO,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CACpC,eAAG,CAAC,UAAC,MAAmC;oBACR,MAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;oBACzD,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAGH,KAAI,CAAC,iBAAiB,GAAG,YAAK,eAAI,WAAW,EAAE,IAAI,CACjD,kBAAM,CAAC,cAAc,CAAC,EACtB,eAAG,CAAC,UAAC,MAAkC;gBAErC,IAAI,mBAAmB,GAAG,KAAI,CAAC,sBAAsB,CAA2B,MAAM,CAAC,WAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtH,OAAO,IAAI,8DAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC,CAAC,CACH,CAAC;YAEF,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,iBAAiB,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,gEAAsB,GAAtB,UAAuB,KAAa;QAApC,iBAmCC;QAlCC,OAAa,IAAI,CAAC,sBAAuB,CAAC,IAAI,CAC5C,oBAAQ,CAAC;YAEP,IAAI,GAAG,GAAe,EAAE,CAAC;oCAChB,IAAI;gBACX,IAAI,UAAU,GAAG,gDAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC1E,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,UAAU,GAAG,WAAI,CAIf,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAC7B,UAAC,MAAyC;wBACxC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;wBAC1B,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC,CACL,CAAC;oBACF,gDAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,wDAAwD,EAAE,UAAU,CAAC,CAAC;iBAClI;gBACD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;YAhBD,KAAiB,UAAgB,EAAhB,UAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB;gBAA5B,IAAI,IAAI;wBAAJ,IAAI;aAgBZ;YAGD,OAAO,eAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACvB,eAAG,CAAC,UAAC,aAAuD;gBAC1D,IAAI,GAAG,GAA4B,EAAE,CAAC;gBACtC,KAAqB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;oBAA/B,IAAI,QAAQ;oBACf,GAAG,CAAC,IAAI,OAAR,GAAG,EAAS,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;iBACnD;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAGD,yDAAe,GAAf,UAAgB,UAAU;QACxB,OAAO,iBAAU,CAAC,MAAM,CAAC,UAAC,QAAQ;YAEhC,IAAI,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,UAAC,IAAI;gBAE3C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,KAAwB,UAAQ,EAAR,SAAI,CAAC,GAAG,EAAR,cAAQ,EAAR,IAAQ,EAAE;wBAA7B,IAAI,WAAW;wBAClB,QAAQ,CAAC,IAAI,CAAC;4BACZ,WAAW,EAAE,WAAW;yBACzB,CAAC,CAAC;qBACJ;oBACD,gDAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,gEAAgE,CAAC,CAAC;iBAC7H;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oDAAU,GAAV,UAAW,KAA0C;QACnD,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,oDAAU,GAAV,UAAW,KAA0C;QACnD,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,8DAAoB,GAA5B,UAA6B,KAA0C,EAAE,MAAuB;QAC9F,IAAI,MAAM,GAAG,oBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,IAAI,IAAK,WAAI,CAAC,QAAQ,EAAb,CAAa,CAAC,CAAC;QAC9D,IAAI,WAAW,GAA2B,CAAC,SAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1D,KAAqB,UAAmB,EAAnB,WAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;YAArC,IAAI,QAAQ;YACf,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM,eAAe,CAAC;aACvB;YAGD,gDAAqB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAC;YAE9G,IAAI,GAAG,GAAkB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAAC;YAMjE,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,MAAM,KAAK,MAAM,EAAE;oBACrB,WAAW,CAAC,IAAI,CAAC,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;iBACtE;qBAAM;oBACL,WAAW,CAAC,IAAI,CAAC,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;iBACtE;aACF;SACF;QAED,OAAO,eAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/B,eAAG,CAAC;YACF,OAAO;QACT,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,6DAAmB,GAA3B,UAA4B,MAAe;QACzC,IAAI,UAAU,GAAW,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAEO,0DAAgB,GAAxB,UAAyB,MAAe;QACtC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,8DAAoB,GAA5B,UAA6B,UAAkB;QAC7C,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC7B,KAAK,SAAS;gBACZ,OAAO,EAAE,CAAC;YACZ,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzD,KAAK,SAAS;gBACZ,OAAO,EAAE,CAAC;YACZ;gBACE,MAAM,uBAAuB,CAAC;SACjC;IACH,CAAC;IAEO,gEAAsB,GAA9B,UAA+B,QAAiC,EAAE,QAAgB;QAChF,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEtD,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YACpD,kBAAkB,EAAE,QAAQ,CAAC,WAAW;YACxC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;YACvC,SAAS,EAAE,QAAQ,CAAC,UAAU;YAC9B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;SAChC,CAAC;IACJ,CAAC;IAEO,+DAAqB,GAA7B,UAA8B,QAA2C;QACvE,IAAI,GAAG,GAA4B,EAAE,CAAC;QACtC,KAA2B,UAAgB,EAAhB,aAAQ,CAAC,OAAO,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;YAAxC,IAAI,cAAc;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC3B,KAAqB,UAAyB,EAAzB,mBAAc,CAAC,UAAU,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;oBAA3C,IAAI,QAAQ;oBACf,IAAI,QAAQ,CAAC,EAAE,IAAI,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;wBAC9E,KAAmB,UAAW,EAAX,aAAQ,CAAC,EAAE,EAAX,cAAW,EAAX,IAAW,EAAE;4BAA3B,IAAI,MAAM;4BACb,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE;gCAClE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gCACzB,IAAI,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gCACnF,GAAG,CAAC,IAAI,CAAC,IAAI,8DAA4B,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;6BACjH;yBACF;qBACF;iBACF;aACF;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACH,sCAAC;AAAD,CAAC,CAnRoD,0CAAmB,GAmRvE;AAnRY,0EAA+B;;;;;;;;;;;ACpB5C,qCAAqD;AAErD,yCAAsC;AACtC,0CAAqC;AAGrC;IASE,uCAAY,oBAAgD;QAF5D,+BAA0B,GAAiD,EAAE,CAAC;QAG5E,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,KAAoB,UAAyB,EAAzB,SAAI,CAAC,oBAAoB,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAA1C,IAAI,OAAO;YACd,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;SACzD;IACH,CAAC;IAKD,gEAAwB,GAAxB;QACE,IAAI,kBAAkB,GAA+C,EAAE,CAAC;QACxE,KAAgC,UAAyB,EAAzB,SAAI,CAAC,oBAAoB,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAAtD,IAAI,mBAAmB;YAC1B,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1E;QACD,OAAO,eAAQ,eAAI,kBAAkB,EAAE,IAAI,CACzC,eAAG,CAAC,UAAC,KAAqC;;YACxC,OAAO,WAAK,CAAC,SAAS,EAAC,MAAM,WAAI,KAAK,EAAE;QAC1C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAOD,oEAA4B,GAA5B;QAAA,iBAeC;QAdC,IAAI,iBAAiB,GAA2B,EAAE,CAAC;QACnD,KAAgC,UAAyB,EAAzB,SAAI,CAAC,oBAAoB,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAAtD,IAAI,mBAAmB;YAC1B,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAC,CAAC;SAC5E;QACD,OAAO,eAAQ,eAAI,iBAAiB,EAAE,IAAI,CACxC,eAAG,CAAC;YACF,IAAI,mBAAmB,GAAwC,EAAE,CAAC;YAClE,KAAgC,UAAyB,EAAzB,UAAI,CAAC,oBAAoB,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;gBAAtD,IAAI,mBAAmB;gBAC1B,IAAI,GAAG,GAAiC,mBAAmB,CAAC,kBAAkB,CAAC;gBAC/E,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;YACD,KAAI,CAAC,kBAAkB,GAAG,YAAK,eAAI,mBAAmB,CAAC,CAAC;QAC1D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,kDAAU,GAAV,UAAW,KAA8B;QACvC,IAAI,MAAM,GAAG,oBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,IAAI,IAAK,WAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;QAC1D,IAAI,WAAW,GAAG,CAAC,SAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,KAAsB,UAAmB,EAAnB,WAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;YAAtC,IAAI,SAAS;YAChB,IAAI,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,MAAM,yBAAyB,CAAC;aACjC;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,eAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/B,eAAG,CAAC;YACF,OAAO;QACT,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,kDAAU,GAAV,UAAW,KAA8B;QACvC,IAAI,MAAM,GAAG,oBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,IAAI,IAAK,WAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAzB,CAAyB,CAAC,CAAC;QAC1E,IAAI,WAAW,GAAG,CAAC,SAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,KAAsB,UAAmB,EAAnB,WAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;YAAtC,IAAI,SAAS;YAChB,IAAI,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,MAAM,yBAAyB,CAAC;aACjC;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,eAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/B,eAAG,CAAC;YACF,OAAO;QACT,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACH,oCAAC;AAAD,CAAC;AAtFY,sEAA6B;;;;;;;;;;;;;;;;;;;;;;;;ACL1C,0CAA8E;AAC9E,qCAA+C;AAI/C,mEAAuI;AACvI,+CAAiD;AACjD,wDAA2E;AAC3E,qDAA6D;AAI7D;IAAwD,sDAAmB;IAWzE,4CAAY,KAAU,EAAE,eAAoB;QAA5C,YACE,kBAAM,KAAK,CAAC,SAoBb;QA/BD,wBAAkB,GAAgD,IAAI,cAAO,EAAmC,CAAC;QAEjH,UAAI,GAAW,oEAA+B,CAAC,oBAAoB,CAAC;QAM5D,iBAAW,GAAkC,EAAE,CAAC;QAKtD,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,GAAG;YACZ,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;YACpC,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC;QAEF,IAAI,IAAI,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/G,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,KAAI,CAAC,eAAe,GAAG,6BAAY,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/F,eAAG,CAAC,UAAC,QAAsB;YACzB,IAAI,IAAI,GAAsD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxF,KAAI,CAAC,aAAa,GAAG,IAAI,8CAAoB,CAAC,eAAe,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAG,KAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,OAAO,CAAC,cAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrK,CAAC,CAAC,EACF,uBAAW,EAAE,EACb,oBAAQ,EAAE,CAAC,CAAC;;IAEhB,CAAC;IAED,uDAAU,GAAV,UAAW,KAA6C;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,uDAAU,GAAV,UAAW,KAA6C;QACtD,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,yEAA4B,GAA5B;QAAA,iBAsBC;QArBC,IAAI,cAAc,GAAG,UAAC,MAA2C;YAC/D,OAAO,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,eAAG,CAAC;YACF,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,IAAI,CACjE,kBAAM,CAAC,cAAc,CAAC,EACtB,eAAG,CAAC,UAAC,MAA2C;gBAC9C,IAAI,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAY,CAAC,UAAU,CAAC,CAAC;gBACtE,IAAI,OAAO,GAA2C;oBACpD,QAAQ,EAAE,MAAM,CAAC,WAAY;oBAC7B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;oBAC3C,gBAAgB,EAAE,MAAM,CAAC,WAAY,CAAC,KAAM;oBAC5C,WAAW,EAAE,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBACjD,CAAC;gBACF,OAAO,IAAI,oEAA+B,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,mEAAsB,GAAtB,UAAuB,KAAa;QAApC,iBAsBC;QArBC,IAAI,cAAc,GAAG,UAAC,YAAgD;YACpE,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7M,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,oBAAQ,CAAC;YACP,OAAO,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,EACF,eAAG,CAAC,UAAC,aAAwD;YAC3D,OAAO,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAC,cAAkD;gBACjG,IAAI,QAAQ,GAA+B,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,OAAO,GAA2C;oBACpD,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;oBAC3C,gBAAgB,EAAE,cAAc,CAAC,KAAM;oBACvC,WAAW,EAAE,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBACjD,CAAC;gBACF,OAAO,IAAI,oEAA+B,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,kEAAqB,GAA7B,UAA8B,OAA8B;QAC1D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACpC,OAAO,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;SACrE;QACD,OAAO,OAAO,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IACjE,CAAC;IACH,yCAAC;AAAD,CAAC,CArGuD,0CAAmB,GAqG1E;AArGY,gFAAkC;;;;;;;;;;;;;;;;;;;;;;;;ACZ/C,0CAA8E;AAC9E,qCAA+C;AAK/C,gEAA0H;AAC1H,+CAAiD;AACjD,wDAA2E;AAC3E,qDAA6D;AAI7D;IAAoD,kDAAmB;IAWrE,wCAAY,KAAU,EAAE,eAAoB;QAA5C,YACE,kBAAM,KAAK,CAAC,SAoBb;QA/BD,wBAAkB,GAA4C,IAAI,cAAO,EAA+B,CAAC;QAEzG,UAAI,GAAW,4DAA2B,CAAC,oBAAoB,CAAC;QAMxD,iBAAW,GAAkC,EAAE,CAAC;QAKtD,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,GAAG;YACZ,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;YACpC,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC;QAEF,IAAI,IAAI,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/G,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,KAAI,CAAC,eAAe,GAAG,6BAAY,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/F,eAAG,CAAC,UAAC,QAAsB;YACzB,IAAI,IAAI,GAAsD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxF,KAAI,CAAC,aAAa,GAAG,IAAI,8CAAoB,CAAC,eAAe,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAG,KAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,OAAO,CAAC,cAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrK,CAAC,CAAC,EACF,uBAAW,EAAE,EACb,oBAAQ,EAAE,CAAC,CAAC;;IAEhB,CAAC;IAED,mDAAU,GAAV,UAAW,KAAyC;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAiC;YAC1F,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,mDAAU,GAAV,UAAW,KAAyC;QAClD,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,qEAA4B,GAA5B;QAAA,iBAyBC;QAxBC,IAAI,cAAc,GAAG,UAAC,MAA2C;YAC/D,OAAO,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,eAAG,CAAC;YACF,IAAI,OAA2C,CAAC;YAChD,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,IAAI,CACjE,kBAAM,CAAC,cAAc,CAAC,EACtB,eAAG,CAAC,UAAC,MAA2C;gBAC9C,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE;oBAClE,IAAI,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACrE,OAAO,GAAG;wBACR,QAAQ,EAAE,MAAM,CAAC,WAAW;wBAC5B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;wBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;wBAC3C,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;wBAC1C,WAAW,EAAE,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;qBACjD,CAAC;iBACH;gBACD,OAAO,IAAI,4DAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,+DAAsB,GAAtB,UAAuB,KAAa;QAApC,iBAyBC;QAxBC,IAAI,cAAc,GAAG,UAAC,YAAgD;YACpE,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7M,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAC9B,oBAAQ,CAAC;YACP,OAAO,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,EACF,eAAG,CAAC,UAAC,aAAwD;YAC3D,IAAI,OAA2C,CAAC;YAChD,OAAO,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAC,cAAkD;gBACjG,IAAI,QAAQ,GAA+B,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,cAAc,CAAC,KAAK,IAAI,IAAI,EAAE;oBAChC,OAAO,GAAG;wBACR,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;wBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;wBAC3C,gBAAgB,EAAE,cAAc,CAAC,KAAK;wBACtC,WAAW,EAAE,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;qBACjD,CAAC;iBACH;gBACD,OAAO,IAAI,4DAA2B,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,8DAAqB,GAA7B,UAA8B,OAA8B;QAC1D,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;YACpC,OAAO,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;SACrE;QACD,OAAO,OAAO,CAAC,gBAAgB,GAAG,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IACjE,CAAC;IACH,qCAAC;AAAD,CAAC,CA3GmD,0CAAmB,GA2GtE;AA3GY,wEAA8B;;;;;;;;;;;;;;;;;;;;;;;;ACf3C,qCAA+C;AAC/C,0CAAqC;AACrC,uEAGyD;AACzD,qDAA6D;AAI7D;IAA2D,yDAAmB;IAO5E,+CAAY,KAAkD;QAA9D,YACE,kBAAM,KAAK,CAAC,SAEb;QATD,wBAAkB,GAAmD,IAAI,cAAO,EAAsC,CAAC;QAEvH,UAAI,GAAW,0EAAkC,CAAC,oBAAoB,CAAC;QAMrE,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;IACtB,CAAC;IAED,0DAAU,GAAV,UAAW,KAA2C;QACpD,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,0DAAU,GAAV,UAAW,KAA2C;QACpD,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,4EAA4B,GAA5B;QACE,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,sEAAsB,GAAtB,UAAuB,KAAa;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CACtC,eAAG,CACD,UAAC,eAAe;YACd,OAAO,eAAe,CAAC,GAAG,CAAC,UAAC,EAAE;gBAC5B,OAAO,IAAI,0EAAkC,CAC3C;oBACE,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,qBAAqB,EAAE,EAAE,CAAC,qBAAqB;oBAC/C,cAAc,EAAE,EAAE,CAAC,cAAc;oBACjC,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,eAAe,EAAE,EAAE,CAAC,eAAe;oBACnC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;oBACvC,aAAa,EAAE,EAAE,CAAC,aAAa;iBAChC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IACH,4CAAC;AAAD,CAAC,CA7C0D,0CAAmB,GA6C7E;AA7CY,sFAAqC;;;;;;;;;;;;;;;;;;;;;;;;ACVlD,qCAA+B;AAC/B,qCAAsC;AACtC,iEAGmD;AACnD,qDAA6D;AAC7D,+CAAiD;AAEjD,wDAA2E;AAK3E,0CAAiD;AACjD,0CAAqC;AACrC,0CAAuC;AACvC,0CAA6C;AAC7C,0CAAwC;AACxC,0CAA0C;AAC1C,2CAA0C;AAE1C,IAAI,GAAG,GAAG,sBAAS,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;AAG3D;IAAsD,oDAAmB;IAWvE,0CAAY,KAAU,EAAE,eAAoB;QAA5C,YACE,kBAAM,KAAK,CAAC,SAyBb;QApCD,wBAAkB,GAA8C,IAAI,cAAO,EAAiC,CAAC;QAE7G,UAAI,GAAW,+DAA6B,CAAC,iBAAiB,CAAC;QAMvD,iBAAW,GAA8C,EAAE,CAAC;QAKlE,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,GAAG;YACZ,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;YACpC,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC;QAEF,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE;YAC/B,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YACzC,KAAI,CAAC,eAAe,GAAG,SAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAW,EAAE,EAAE,oBAAQ,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,IAAI,GAAG,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC/G,IAAI,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,KAAI,CAAC,eAAe,GAAG,6BAAY,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/F,eAAG,CAAC,UAAC,QAAsB;gBACzB,IAAI,IAAI,GAAsD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxF,KAAI,CAAC,aAAa,GAAG,IAAI,8CAAoB,CAAC,eAAe,EAAE,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAG,KAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,OAAO,CAAC,cAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrK,CAAC,CAAC,EACF,uBAAW,EAAE,EACb,oBAAQ,EAAE,CACX,CAAC;SACH;;IACH,CAAC;IAED,qDAAU,GAAV,UAAW,KAA2C;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,qDAAU,GAAV,UAAW,KAA2C;QACpD,OAAO,SAAE,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,uEAA4B,GAA5B;QAAA,iBAyCC;QAxCC,OAAO,IAAI,CAAC,eAAe;aACxB,IAAI,CAAC,eAAG,CAAC;YACR,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE;iBAC3D,IAAI,CAAC,eAAG,CAAC,UAAC,MAAuC;gBAChD,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;uBAClF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,KAAK,KAAI,CAAC,OAAO,CAAC,cAAc,EAAE;oBACzE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC7B;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CACD;iBACA,IAAI,CAAC,kBAAM,CAAC,UAAC,UAA0D,IAAK,QAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,CAAC;iBAC1F,IAAI,CAAC,oBAAQ,CAAC,UAAC,UAA8C;gBAM5D,OAAa,KAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAE,CAAC,IAAI,CAAC,iBAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;iBACF,IAAI,CAAC,eAAG,CAAC,UAAC,UAA8C;gBACvD,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC9C,IAAI,UAAU,GAAuB,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAC7J,IAAI,OAAO,GAAyC;wBAClD,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,UAAU;wBACtB,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;wBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;wBAC3C,gBAAgB,EAAE,QAAQ,CAAC,KAAK;qBACjC,CAAC;oBACF,OAAO,IAAI,+DAA6B,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBACjE;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CACD;iBACA,IAAI,CAAC,kBAAM,CAAC,UAAC,IAAmC,IAAK,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACD,CAAC;IACN,CAAC;IAED,iEAAsB,GAAtB,UAAuB,KAAa;QAApC,iBA+BC;QA9BC,IAAI,cAAc,GAAG,UAAC,YAA+C;YACnE,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;mBAC7C,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,KAAI,CAAC,OAAO,CAAC,cAAc;mBAC1D,CAAC,YAAY,CAAC,OAAO;mBACrB,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;QAClC,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,eAAe;aACxB,IAAI,CAAC,oBAAQ,CAAC,cAAM,YAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAA1C,CAA0C,CAAC,CAAC;aAChE,IAAI,CAAC,oBAAQ,CAAC,UAAC,aAAuD;YACrE,IAAI,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;gBAC9C,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,OAAO,KAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,iBAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;aACF,IAAI,CAAC,eAAG,CAAC,UAAC,aAAuD;YAChE,OAAO,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,UAAC,cAAiD;gBAChG,IAAI,QAAQ,GAAgC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzE,IAAI,UAAU,GAAuB,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC7J,IAAI,OAAO,GAAyC;oBAClD,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;oBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,cAAc;oBAC3C,gBAAgB,EAAE,cAAc,CAAC,KAAK;iBACvC,CAAC;gBACF,OAAO,IAAI,+DAA6B,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACD,CAAC;IACN,CAAC;IAEO,wEAA6B,GAArC,UAAsC,UAA8C,EAAE,iBAA2B;QAAjH,iBAsBC;QArBC,GAAG,CAAC,0CAAwC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAG,CAAC,CAAC;QAE1E,IAAI,aAAa,GAA6E,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAE/I,GAAG,CAAC,uCAAqC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAG,CAAC,CAAC;QAC1E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,SAAE,CAAC,IAAI,CAAC,CAAC;SACjB;QAED,IAAI,IAAI,GAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACnH,IAAI,GAAG,GAAW,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,OAAO,6BAAY,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,6BAAY,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,IAAI,CACxG,eAAG,CAAC,UAAC,QAAsB;YACzB,IAAI,IAAI,GAA8B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChE,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAnB,IAAI,KAAK;gBACZ,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;aACzC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,0EAA+B,GAAvC,UAAwC,UAA8C;QACpF,IAAI,WAAW,GAA6E,EAAE,CAAC;QAC/F,IAAI,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;QAEvC,KAAqB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;YAA5B,IAAI,QAAQ;YACf,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC7B,KAAK,SAAS;oBAGZ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;wBACrC,WAAW,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,QAAQ,CAAC,QAAQ;4BAC1B,QAAQ,EAAE,SAAS;4BACnB,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB;yBACpD,CAAC,CAAC;wBACH,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBAClC;oBACD,MAAM;gBACR;oBAGE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;wBAC3C,WAAW,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,QAAQ,CAAC,cAAc;4BAChC,QAAQ,EAAE,SAAS;4BACnB,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,qBAAqB;yBACpD,CAAC,CAAC;wBACH,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;qBACxC;aACJ;SACF;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IACH,uCAAC;AAAD,CAAC,CAvLqD,0CAAmB,GAuLxE;AAvLY,4EAAgC;;;;;;;;;;;ACzB7C,6CAA2C;AAC3C,+CAA+C;AAC/C,uDAA8D;AAC9D,2CAAuC;AAIvC,6CAAiE;AACjE,2CAAuC;AACvC,+CAA+C;AAE/C,qCAA6C;AAG7C,4CAA4C;AAC5C,oDAA4E;AAC5E,6CAA2C;AAC3C,8CAAuD;AACvD,wCAAyC;AACzC,kDAA0D;AAG1D,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,uDAAI;IACJ,mEAAU;IACV,qEAAW;IACX,yEAAa;AACf,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED;IAmEE,oBACE,kBAAkC,EAClC,QAAiB;QAFnB,iBAsBC;QAlFD,eAAU,GAAoC,IAAI,wBAAU,EAAuB,CAAC;QAGpF,0BAAqB,GAAe,IAAI,wBAAU,CAAC,mBAAmB,EAAE,kBAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAGrI,aAAQ,GAAa,IAAI,oBAAQ,CAAC;YAChC,OAAO,KAAI,CAAC,SAAS,CAAC;QACxB,CAAC,CAAC,CAAC;QAKH,kBAAa,GAA2B,IAAI,cAAO,EAAc,CAAC;QAIlE,iBAAY,GAAqB,IAAI,cAAO,EAAQ,CAAC;QAErD,gBAAW,GAAa,IAAI,oBAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtD,sBAAiB,GAAiB,IAAI,4BAAY,EAAE,CAAC;QAErD,wBAAmB,GAAwB,IAAI,2CAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE3F,kBAAa,GAAe,IAAI,wBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAK5D,aAAQ,GAA+B,IAAI,wBAAU,CAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC;QAMrF,qBAAgB,GAA0D,IAAI,CAAC;QAM/E,uBAAkB,GAAG,KAAK,CAAC;QAM3B,2BAAsB,GAA+B,IAAI,GAAG,EAAyB,CAAC;QAgBpF,IAAI,CAAC,iBAAiB,GAAG,IAAI,4BAAY,CAAsB,IAAI,CAAC,aAAa,EAAE;YACjF,KAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEvE,IAAI,kBAAkB,KAAK,KAAK,EAAE;YAChC,IAAI,kBAAkB,IAAI,IAAI;mBACzB,OAAO,kBAAkB,KAAK,QAAQ;mBACtC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;aAC3E;YACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,kBAAkB,CAAC;SACtD;IACH,CAAC;IAMD,yBAAI,GAAJ,UAAK,UAA+E,EAClF,SAA0B,EAC1B,kBAA6C,EAC7C,gBAAuB;QAHzB,iBAwDC;QAvDC,0CAA0B;QAE1B,0DAAuB;QACvB,qCAAgB,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAIzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAGxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,EAAE;YAC7C,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,gBAAgB,KAAK,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAAC,eAAe,IAAI,IAAI,EAAE;gBACjG,IAAI,CAAC,qBAAqB,CAAC,eAAe,GAAG,kBAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;aACxF;SACF;QAED,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAG/B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAG3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAG3B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAGpD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;aAC5B;SACF;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC5B;QAGD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE;YACpE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAoB;YACzC,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAGe,IAAI,CAAC,YAAa,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAKD,0CAAqB,GAArB;QACE,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAUD,sCAAiB,GAAjB;QAME,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAoB;YACzC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAED,sCAAiB,GAAjB;QACE,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7C,CAAC;IAKD,sCAAiB,GAAjB;QACE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAUD,wCAAmB,GAAnB,UAAoB,UAA4B;QAC9C,QAAQ,UAAU,EAAE;YAClB,KAAK,gBAAgB,CAAC,aAAa;gBACjC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;gBACxC,MAAM;YACR,KAAK,gBAAgB,CAAC,IAAI;gBACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,MAAM;YACR,KAAK,gBAAgB,CAAC,UAAU;gBAC9B,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;gBACrC,MAAM;YACR,KAAK,gBAAgB,CAAC,WAAW;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;gBACtC,MAAM;YACR;gBACE,MAAM,UAAU,GAAG,wCAAwC,CAAC;SAC/D;IACH,CAAC;IAED,yCAAoB,GAApB,UAAqB,iBAA0B;QAC7C,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/D,CAAC;IAED,uCAAkB,GAAlB,UAAmB,eAAwB;QACzC,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3D,CAAC;IASD,kCAAa,GAAb,UAAc,iBAAuD,EAAE,aAA6B;QAClG,IAAI,aAAa,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI,EAAE;YACtD,iBAAiB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,kCAAa,GAAb,UAAc,UAA+E;QAA7F,iBAgCC;QA9BC,IAAI,QAAQ,GAAG,UAAC,SAA8B;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,EAA+C,EAAE,GAAW;gBACtF,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI;oBACzB,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;oBACxB,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;oBACxC,OAAO,IAAI,CAAC;iBACb;gBACD,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAGpD,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,eAAe;gBAC1D,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,KAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,CAAC;QACnD,CAAC,CAAC;QAEF,IAAI,UAAU,YAAY,KAAK,EAAE;YACF,UAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC5D;aAAM;YAEL,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;gBAC1B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;IAED,qCAAgB,GAAhB,UAAiB,UAAsC;QAAvD,iBAuBC;QAtBC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,UAAU,CAAC,OAAO,CAAC,UAAC,SAA8B;YAGhD,IAAI,YAAY,GAAG,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAC,MAAuB;gBACpF,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,CAAC,UAAC,MAAuB;gBAC3C,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnG,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAGH,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;SACvC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAQD,4BAAO,GAAP,UAAQ,MAAsB;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO;SACR;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAE9B,OAAO,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE;YAChE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;SACtB;QAED,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACvC;IACH,CAAC;IAED,+BAAU,GAAV,UAAW,MAAsB;QAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,mCAAc,GAAd,UAAe,WAAmB;QAChC,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,WAAW,CAAC;IACnD,CAAC;IAMD,6CAAwB,GAAxB,UAAyB,YAAyC;QAChE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAwB,YAAY,CAAC,CAAC;IACvE,CAAC;IAGD,mDAA8B,GAA9B,UAA+B,KAAa;QAC1C,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAKD,oCAAe,GAAf,UAAgB,UAAkB,EAAE,iBAAyB;QAC3D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAOD,qCAAgB,GAAhB;QACE,IAAI,QAAQ,GAA2C,EAAE,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAoB;YACzC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;gBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAeD,qCAAgB,GAAhB,UAAiB,QAAiB;QAAlC,iBAqCC;QApCC,IAAI,mBAAmB,GAA2B,CAAC,SAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAmC;YACtE,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,eAAQ,eAAI,mBAAmB,EAAE,SAAS,CAAC;YACzC,IAAI,IAAoB,CAAC;YACzB,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAGpB,IAAI,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;aACpC;iBAAM;gBAEL,IAAI,GAAG,GAAmB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7C,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAC3C,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;iBACpB;gBACD,IAAI,GAAG,GAAG,CAAC;gBACX,IAAI,GAAG,IAAI,IAAI,EAAE;oBACf,IAAI,GAAG,GAAG,CAAC;iBACZ;aACF;YAED,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,qCAAgB,CAAC,GAAG,CAAC,8CAA8C,GAAG,IAAI,CAAC,IAAI,GAAG,cAAc,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;gBACjH,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;QACH,CAAC,EAAE;YACD,qCAAgB,CAAC,GAAG,CAAC,4CAA4C,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;YAElF,IAAI,GAAG,GAAmB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7C,OAAO,GAAG,IAAI,IAAI,EAAE;gBAClB,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACxB,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,wCAAmB,GAAnB,UAAoB,gBAAuB;QAAvB,0DAAuB;QACzC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAKD,wCAAmB,GAAnB;QACE,mCAAe,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,iCAAY,GAAZ;QAEE,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,oBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAoB;gBACzC,IAAI,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACpD,IAAI,iBAAiB,IAAI,IAAI,EAAE;oBAC7B,oBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC;iBACnD;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,mCAAe,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAkB,CAAC,CAAC,CAAC;aAC1F;iBAAM;gBACL,mCAAe,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACzD;SACF;IACH,CAAC;IAED,iCAAY,GAAZ;QACE,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,mBAAmB,GAAG,mCAAe,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/E,IAAI,mBAAmB,IAAI,IAAI,EAAE;gBAC/B,IAAI;oBACF,IAAI,oBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAoB;wBACzC,IAAI,CAAC,4BAA4B,CAAC,oBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACnE,CAAC,CAAC,CAAC;iBACJ;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;iBAClF;aACF;SACF;IACH,CAAC;IAYD,+BAAU,GAAV,UAAW,QAAe;QACxB,IAAI,OAAO,GAAe,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;QACrE,IAAI,UAAU,GAAe,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAC,SAA8B;YAC1F,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,QAAQ,QAAQ,EAAE;YAChB,KAAK,KAAK;gBACR,OAAO,0BAAW,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACpD;gBACE,OAAO,0BAAW,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACrD;IACH,CAAC;IACH,iBAAC;AAAD,CAAC;AA5eY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;AC7BvB,iDAAoD;AACpD,kDAAqD;AACrD,uDAAoF;AAGpF,yCAA2C;AAE3C,4DAAuE;AAQvE;IAAgC,8BAAc;IAsC5C,oBACE,YAA6C;QAD/C,YAGE,iBAAO,SAQR;QA7CD,UAAI,GAAG,QAAQ,CAAC;QAShB,sBAAgB,GAA2B,EAAE,CAAC;QAK9C,2BAAqB,GAAG,CAAC,CAAC;QAkB1B,sBAAgB,GAAG,KAAK,CAAC;QAMvB,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,YAAY,CAAC,OAAO,CAAC,UAAC,SAA8B;YAClD,IAAI,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,YAAY;gBAC/D,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,IAAI,EAAE;gBACvD,KAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;;IACL,CAAC;IAED,gCAAW,GAAX;QACE,OAAO,iCAAc,CAAC,oBAAoB,CAAC;IAC7C,CAAC;IAED,qCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAUD,uCAAkB,GAAlB,UAAmB,sBAAuC,EAAE,eAAgB;QAC1E,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,sBAAsB,CAAC,eAAe,GAAG,eAAe,CAAC;SAC1D;QAED,IAAI,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC;QAIpD,IAAI,aAAa,CAAC,eAAe,KAAK,sBAAsB,CAAC,SAAS,CAAC,eAAe,EAAE;YACtF,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;SACnE;QAGD,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC5F,CAAC;IAUD,8BAAS,GAAT,UAAU,OAAgB;QACxB,IAAI,kBAAkB,GAAmD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACzG,IAAI,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzF,IAAI,eAAe,GAAG,IAAI,kCAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAEvE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/C,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YAIzC,IAAI,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YAG1D,OAAO,eAAe,CAAC;SACxB;IACH,CAAC;IAKD,qCAAgB,GAAhB;QAAA,iBAgBC;QAfC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAAM;YAEL,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,WAAgC;gBACzD,IAAI,WAAW,CAAC,mBAAmB,EAAE;oBACnC,KAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;iBAChC;YACH,CAAC,CAAC,CAAC;YAGH,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF;IACH,CAAC;IAMD,iCAAY,GAAZ,UAAa,KAAa;QACxB,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAKtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAMD,0BAAK,GAAL;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YAEL,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAMD,0BAAK,GAAL;QAGE,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAI3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAOD,gCAAW,GAAX;QAIE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,eAAgC;gBAC7D,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,EAAE;oBAClC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;iBAC1C;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAClC,IAAI,YAAU,GAA+B,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,eAAgC;gBAC7D,YAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,GAAG,oBAAQ,CAAC,OAAO,CAAC,YAAU,CAAC,CAAC;SACnD;IACH,CAAC;IAMD,gDAA2B,GAA3B;QACE,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC;IACnF,CAAC;IAMD,wBAAG,GAAH,UAAI,QAAoB;QAAxB,iBA6BC;QA5BC,IAAI,YAAY,GAAe,EAAE,CAAC;QAElC,IAAI,QAAQ,IAAI,IAAI,EAAE;YAGpB,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAE3C,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;gBACvB,IAAI,kBAAkB,GAAG,IAAI,CAAC;gBAC9B,IAAI,qBAAqB,GAAG,IAAI,CAAC;gBAEjC,IAAI,KAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,KAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAIrE,IAAI,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,WAA4B;wBAC3E,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;oBACH,qBAAqB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;iBACzC;gBAED,IAAI,kBAAkB,IAAI,qBAAqB,EAAE;oBAC/C,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;iBAC7C;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAKD,yCAAoB,GAApB;QACE,IAAI,MAAM,GAAuB,EAAE,CAAC;QAEpC,KAAe,UAAqB,EAArB,SAAI,CAAC,gBAAgB,EAArB,cAAqB,EAArB,IAAqB,EAAE;YAAjC,IAAI,EAAE;YACT,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC/B,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE;iBACxC,CAAC,CAAC;aACJ;SACF;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC;SACf;IACH,CAAC;IAED,iDAA4B,GAA5B,UAA6B,KAAyB;QAGpD,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QAED,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;YAC9C,OAAO;SACR;QAED,IAAI,MAAM,GAA2C,KAAK,CAAC;gCAElD,GAAG;YACV,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;gBACvB,IAAI,WAAW,GAAG,OAAK,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,WAAW,EAAE;oBACf,IAAI,eAAe,SAA6B,CAAC;oBACjD,IAAI,OAAK,gBAAgB,EAAE;wBAIzB,eAAe,GAAG,OAAK,gBAAgB,CAAC,IAAI,CAAC,UAAC,eAAgC;4BAC5E,OAAO,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC;wBACxD,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,eAAe,GAAG,OAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBACjD;oBACD,IAAI,eAAe,IAAI,IAAI,EAAE;wBAC3B,eAAe,CAAC,MAAM,CAAC,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAClE;iBACF;aACF;QACH,CAAC;;QArBD,KAAK,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE;oBAAxC,GAAG;SAqBX;IACH,CAAC;IAMD,kCAAa,GAAb;QACE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;IAED,8CAAyB,GAAzB;QAEE,IAAI,sBAAsB,GAA+B,EAAE,CAAC;QAE5D,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,IAAI,sBAAoB,GAAoB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,SAA8B;gBACvD,IAAI,sBAAoB,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;oBACpE,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAQO,qCAAgB,GAAxB,UAAyB,QAAoB;QAA7C,iBAiCC;QAhCC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,MAA2B,EAAE,GAAQ,EAAE,KAAa;YAC7E,IAAI,MAAM,YAAY,oDAAuB,EAAE;gBAC7C,IAAI,WAAS,GAA4B,MAAM,CAAC;gBAChD,IAAI,aAAqC,CAAC;gBAE1C,IAAI,eAAe,GAAgC,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAC,eAAgC;oBAC7G,OAAO,eAAe,CAAC,SAAS,KAAK,WAAS,CAAC;gBACjD,CAAC,CAAC,CAAC;gBAEH,IAAI,eAAe,IAAI,IAAI,EAAE;oBAC3B,aAAW,GAA6B,eAAe,CAAC,MAAM,CAAC;iBAChE;qBAAM;oBAEL,aAAW,GAA6B,WAAS,CAAC,iBAAiB,EAAE,CAAC;iBACvE;gBAGD,KAAgB,UAA8B,EAA9B,gBAAS,CAAC,aAAa,CAAC,IAAI,EAAE,EAA9B,cAA8B,EAA9B,IAA8B,EAAE;oBAA3C,IAAI,KAAG;oBACV,IAAI,CAAC,aAAW,CAAC,YAAY,CAAC,KAAG,CAAC,EAAE;wBAClC,aAAW,CAAC,YAAY,CAAC,KAAG,CAAC,GAAG,KAAK,CAAC;qBACvC;iBACF;gBAED,aAAW,CAAC,eAAe,GAAG,KAAK,CAAC;gBACpC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,OAAO;oBACjC,OAAO,aAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,OAAO,aAAW,CAAC,eAAe,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAOO,0CAAqB,GAA7B,UAA8B,SAA8B,EAAE,UAA4B;QACxF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,CAAkB;YAC/C,IAAI,CAAC,KAAK,UAAU,EAAE;gBACpB,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;aACnD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,+CAA0B,GAAlC,UAAmC,SAA8B,EAAE,UAA4B;QAC7F,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,CAAkB;YAE/C,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE;gBACvD,OAAO,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAKO,6CAAwB,GAAhC;QAEE,IAAI,MAAM,GAA2C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAEhF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;YACtC,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,YAAY;gBAC/D,SAAS,CAAC,cAAc,KAAK,4CAAmB,CAAC,IAAI,EAAE;gBAEvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,eAAgC;YAE7D,OAAO,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,iBAAC;AAAD,CAAC,CAja+B,iCAAc,GAia7C;AAjaY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACdvB,qDAAwD;AAExD;IAA8C,4CAAiB;IAA/D;;IAyCA,CAAC;IAvCC,uDAAoB,GAApB,UAAqB,eAAe;QAApC,iBAsCC;QArCC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAIlC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,iBAAiB,GAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAC,aAAa;YACjD,IAAI,WAAW,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,WAAW,EAAE;gBAEf,IAAI,cAAc,GAAiB,KAAI,CAAC,SAAU,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAIpF,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;oBAWxC,OAAO,cAAc,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;iBACjD;qBAAM,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;oBACpF,OAAO,eAAe,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;iBACvE;qBAAM;oBACL,OAAO,eAAe,KAAK,cAAc,CAAC;iBAC3C;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IACH,+BAAC;AAAD,CAAC,CAzC6C,uCAAiB,GAyC9D;AAzCY,4DAAwB;;;;;;;;;;;;;;;;;;;;;;;;ACHrC,iDAAoD;AACpD,8CAA+C;AAC/C;IAAkC,gCAAc;IAAhD;QAAA,qEAqVC;QAhVC,UAAI,GAAG,UAAU,CAAC;QAGlB,uBAAiB,GAAG,IAAI,CAAC;QAEzB,oBAAc,GAAG,KAAK,CAAC;QAEvB,qBAAe,GAAG,IAAI,CAAC;QASvB,kBAAY,GAAG,CAAC,CAAC;QAOjB,gBAAU,GAAG,CAAC,CAAC;QAGf,iBAAW,GAAG,EAAE,CAAC;QAGjB,oBAAc,GAAG,IAAI,CAAC;QAEtB,iCAA2B,GAAG,KAAK,CAAC;QAGpC,WAAK,GAA8B,SAAS,CAAC;QAM7C,oBAAc,GAAG,CAAC,CAAC;QA2CnB,mBAAa,GAAG;YACd,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC,CAAC;QAMF,oBAAc,GAAG;YACf,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC,CAAC;QAWF,eAAS,GAAG;YACV,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;gBACzB,OAAO;aACR;YACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC;QAOF,kBAAY,GAAG;YACb,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO;aACR;QACH,CAAC,CAAC;QAOF,cAAQ,GAAG;YACT,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;gBACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO;aACR;QACH,CAAC,CAAC;QAOF,cAAQ,GAAG;YACT,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,aAAa,EAAE;gBAC1C,OAAO;aACR;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC;QAMF,aAAO,GAAG,UAAU,UAAU;YAC5B,IAAI,UAAU,IAAI,CAAC;gBACjB,UAAU,IAAI,IAAI,CAAC,aAAa;gBAChC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;gBAChC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;QACH,CAAC,CAAC;;IA+KJ,CAAC;IAlSC,kCAAW,GAAX;QACE,OAAO,iCAAc,CAAC,sBAAsB,CAAC;IAC/C,CAAC;IASD,sCAAe,GAAf,UAAgB,YAAoB;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAOD,4CAAqB,GAArB,UAAsB,kBAA0B;QAC9C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAGD,oCAAa,GAAb,UAAc,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;IACnC,CAAC;IAmBD,uCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC;IACnF,CAAC;IAkED,wCAAiB,GAAjB;QAEE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,kCAAW,GAAX;QAEE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,aAAa,GAAG;gBACnB,IAAI,4BAAY,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;gBAC9C,IAAI,4BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;aACrD,CAAC;SACH;IACH,CAAC;IAKD,0BAAG,GAAH,UAAI,QAAoB;QACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAGtC,IAAI,QAAQ,GAAe,EAAE,CAAC;QAC9B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EACnD,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5B;SACF;QAED,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC;QAG1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKD,2CAAoB,GAApB;QACE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;IACH,CAAC;IAED,mDAA4B,GAA5B,UAA6B,KAAyB;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,gBAAgB,GAAW,KAAK,CAAC;QACrC,IAAI,gBAAgB,EAAE;YACpB,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAChC;IACH,CAAC;IAEO,0CAAmB,GAA3B;QACE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;aAAM,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;YAI/C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SACvD;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;YACvC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;SACzC;IACH,CAAC;IAEO,yCAAkB,GAA1B;QACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;aAAM,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7C;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YAChD,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;aACvC;SACF;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;IACH,CAAC;IAMO,0CAAmB,GAA3B;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAGpE,IAAI,IAAI,CAAC,UAAU,GAAG,aAAa,IAAI,aAAa,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QAED,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;YAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;SACvC;QAED,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACpC;IACH,CAAC;IAMO,8CAAuB,GAA/B;QACE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;YAC/D,OAAO;SACR;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC;QAEN,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAEtE,IAAI,YAAY,GAAG,QAAQ,EAAE;YAC3B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpB;SACF;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,IAAI,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC;YAC1B,IAAI,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC;YAE3C,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;oBAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC1B,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC;iBACvB;qBAAM;oBAEL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxB,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC;iBACxC;aACF;SACF;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,CArViC,iCAAc,GAqV/C;AArVY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;ACFzB,iDAAoD;AAGpD;IAAyC,uCAAc;IAgCrD,6BAAY,YAA0B;QAAtC,YACE,iBAAO,SAER;QA/BD,UAAI,GAAG,kBAAkB,CAAC;QA8BxB,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC;;IACnC,CAAC;IAPD,yCAAW,GAAX;QACE,OAAO,iCAAc,CAAC,8BAA8B,CAAC;IACvD,CAAC;IAOD,yCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAE3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAKD,iCAAG,GAAH,UAAI,QAAoB;QACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QAGD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kDAAoB,GAApB;QACE,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;YAC3C,OAAO,iBAAiB,CAAC;SAC1B;IACH,CAAC;IAED,0DAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAY,KAAK,KAAK,iBAAiB,EAAE;YACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,CArEwC,iCAAc,GAqEtD;AArEY,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;ACHhC,iDAAoD;AAIpD,kDAAwD;AAExD,IAAI,WAAW,GAAG,IAAI,iCAAc,CAAC;AACrC,WAAW,CAAC,UAAU,EAAE,CAAC;AAEzB;IAA8B,4BAAc;IAmB1C,kBAAY,UAA2C;QAAvD,YACE,iBAAO,SAER;QAjBD,UAAI,GAAG,MAAM,CAAC;QAgBZ,KAAI,CAAC,SAAS,GAAG,UAAU,CAAC;;IAC9B,CAAC;IACD,8BAAW,GAAX;QACE,OAAO,iCAAc,CAAC,kBAAkB,CAAC;IAC3C,CAAC;IAED,8BAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC7E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;aAChE;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;aACzB;SACF;IACH,CAAC;IAKD,sBAAG,GAAH,UAAI,QAAoB;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAClC,OAAO,QAAQ,CAAC;SACjB;QACD,IAAI,iBAAiB,GAAsF,EAAE,CAAC;QAC9G,KAAoB,UAA6B,EAA7B,SAAI,CAAC,iBAAiB,CAAC,MAAM,EAA7B,cAA6B,EAA7B,IAA6B,EAAE;YAA9C,IAAI,OAAO;YAGd,IAAI,kBAAkB,GAAG,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,kBAAkB,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrE,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC5C;SACF;QACD,IAAI,UAAU,GAAG,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;QAC5H,OAAO,UAAU,CAAC;IACpB,CAAC;IAQD,yBAAM,GAAN,UAAO,iBAAuD,EAAE,SAA0C;QACxG,IAAI,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,EAAE;YAEhD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAElC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,IAAI,IAAI,EAAE;oBACtD,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;iBAC9C;aACF;YAED,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAE3C,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,IAAI,IAAI,EAAE;gBACxF,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;aAC9C;SACF;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,uCAAoB,GAApB;QACE,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;SACtD;IACH,CAAC;IAED,+CAA4B,GAA5B,UAA6B,KAAyB;QACpD,IAAI,KAAK,GAAgD,KAAK,CAAC;QAC/D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAErE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;gBAEnC,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;iBAAM;gBACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAC,UAA6B;oBAClF,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAGlC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;aAClD;SACF;aAAM;YACL,OAAO,IAAI,CAAC,iBAAiB,CAAC;SAC/B;IACH,CAAC;IACH,eAAC;AAAD,CAAC,CAnH6B,iCAAc,GAmH3C;AAnHY,4BAAQ;;;;;;;;;;;ACRrB;IAIE,oBAAY,IAAO;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,6BAAQ,GAAR,UAAS,SAAY,EAAE,WAAc;QAGnC,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC1C,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC;QAGrC,IAAI,WAAW,CAAC,QAAQ,IAAI,IAAI,EAAE;YAChC,WAAW,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;SAC/C;QACD,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,8BAAS,GAAT,UAAU,SAAY,EAAE,WAAc;QAGpC,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAClD,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC;QAGjC,IAAI,WAAW,CAAC,YAAY,IAAI,IAAI,EAAE;YACpC,WAAW,CAAC,YAAY,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC/C;QACD,WAAW,CAAC,YAAY,GAAG,SAAS,CAAC;QAErC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;SACvB;IACH,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAoB;QAC3B,IAAI,GAAG,GAAmB,IAAI,CAAC,IAAI,CAAC;QAEpC,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;YAClC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;SACpB;QAED,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAOD,4BAAO,GAAP,UAAQ,QAAoC;QAC1C,IAAI,GAAG,GAAM,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO,GAAG,IAAI,IAAI,EAAE;YAClB,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC1B,GAAG,GAAM,GAAG,CAAC,QAAQ,CAAC;aACvB;SACF;IACH,CAAC;IAED,+BAAU,GAAV,UAAW,IAAoB;QAE7B,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YACtB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;SAChD;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACH,iBAAC;AAAD,CAAC;AA9EY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;ACDvB,iDAAkD;AAClD;IAA8B,4BAAc;IAmB1C,kBAAY,UAA4B;QAAxC,YACE,iBAAO,SAER;QApBD,UAAI,GAAG,aAAa,CAAC;QAmBnB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;IAC/B,CAAC;IAhBD,sBAAI,4BAAM;aAAV;YAEE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;;;OAAA;IAED,mCAAgB,GAAhB,UAAiB,MAAwB;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,8BAAW,GAAX;QACE,OAAO,iCAAc,CAAC,kBAAkB,CAAC;IAC3C,CAAC;IAOD,sBAAG,GAAH,UAAI,IAAgB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACH,eAAC;AAAD,CAAC,CA3B6B,iCAAc,GA2B3C;AA3BY,4BAAQ;;;;;;;;;;;;;;;;;;;;;;;;ACDrB,iDAAkD;AAElD;IAAkC,gCAAc;IAY9C,sBAAY,UAA+B,EAAE,UAAsB;QAAnE,YACE,iBAAO,SAGR;QAdD,UAAI,GAAG,sBAAsB,CAAC;QAY5B,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;IAC/B,CAAC;IAED,kCAAW,GAAX;QACE,OAAO,iCAAc,CAAC,sBAAsB,CAAC;IAC/C,CAAC;IAED,kCAAW,GAAX;QAEE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,0BAAG,GAAH,UAAI,IAAgB;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8CAAuB,GAAvB,UAAwB,KAAc;IAEtC,CAAC;IAED,8BAAO,GAAP;QAGE,iBAAM,OAAO,WAAE,CAAC;QAIhB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACH,mBAAC;AAAD,CAAC,CA7CiC,iCAAc,GA6C/C;AA7CY,oCAAY;;;;;;;;;;;ACGZ,uBAAe,GAAG,GAAG,CAAC;AAKtB,8BAAsB,GAAG,GAAG,CAAC;AAK7B,sBAAc,GAAG,KAAO;AAQ1B,mBAAW,GAAG;IAQvB,SAAS,EAAT,UAAU,IAAgB,EAAE,MAAwB;QAElD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;YAArB,IAAI,KAAK;YACZ,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,OAAO,IAAI,mBAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC7D;iBAAM;gBACL,OAAO,IAAI,uBAAe,GAAG,mBAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC/E;YACD,QAAQ,IAAI,CAAC,CAAC;SACf;QAED,KAAgB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAjB,IAAI,GAAG;YACV,QAAQ,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,sBAAc,CAAC;YAE1B,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;gBAArB,IAAI,KAAK;gBACZ,IAAI,QAAQ,KAAK,CAAC,EAAE;oBAClB,OAAO,IAAI,mBAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC5E;qBAAM;oBACL,OAAO,IAAI,uBAAe,GAAG,mBAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9F;gBACD,QAAQ,IAAI,CAAC,CAAC;aACf;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAOD,uBAAuB,EAAvB,UAAwB,MAAc;QAEpC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YAG9C,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAGlC,IAAI,aAAa,CAAC,QAAQ,CAAC,8BAAsB,CAAC;mBAC7C,aAAa,CAAC,QAAQ,CAAC,uBAAe,CAAC;mBACvC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;mBAC5B,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAIjC,IAAI,aAAa,CAAC,QAAQ,CAAC,8BAAsB,CAAC,EAAE;oBAIlD,IAAI,aAAa,CAAC,UAAU,CAAC,8BAAsB,CAAC;2BAC/C,aAAa,CAAC,QAAQ,CAAC,8BAAsB,CAAC;2BAC9C,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;wBAG9B,IAAI,qBAAqB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAGjF,OAAO,8BAAsB;8BACzB,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;8BACzC,8BAAsB,CAAC;qBAC5B;yBAAM;wBAML,OAAO,8BAAsB;4BAC3B,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;4BACjC,8BAAsB,CAAC;qBAC1B;iBACF;qBAAM;oBAIL,OAAO,8BAAsB,GAAG,aAAa,GAAG,8BAAsB,CAAC;iBACxE;aACF;iBAAM;gBAGL,OAAO,aAAa,CAAC;aACtB;SACF;aAAM;YAEL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CAEF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC3HF,iDAAkD;AAKlD,IAAI,OAAO,GAAG,UAAC,KAAK,EAAE,KAAK;IACzB,IAAI,KAAK,GAAG,KAAK,EAAE;QACjB,OAAO,CAAC,CAAC;KACV;SAAM,IAAI,KAAK,GAAG,KAAK,EAAE;QACxB,OAAO,CAAC,CAAC,CAAC;KACX;SAAM;QACL,OAAO,CAAC,CAAC;KACV;AACH,CAAC,CAAC;AAEF;IAAiC,+BAAc;IAW7C,qBAAY,SAA8B,EAAE,WAAmB,EAAE,QAAiB;QAAtC,iDAAmB;QAA/D,YACE,iBAAO,SAOR;QAjBD,cAAQ,GAAG,GAAG,CAAC;QAMf,cAAQ,GAA+B,EAAE,CAAC;QAC1C,UAAI,GAAG,cAAc,CAAC;QAIpB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QACD,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;;IACjC,CAAC;IAED,iCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8BAAQ,GAAR,UAAS,OAAY,EAAE,UAAqC;QAC1D,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE,EAAE;YAC/C,YAAY,GAAG,MAAM,CAAC;SACvB;QACD,IAAI,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;YAC3C,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;SAC5B;aAAM;YACL,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,oCAAc,GAAd,UAAe,SAAiB;QAAhC,iBAMC;QALC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,OAAO;YAC1B,OAAO,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,2CAAqB,GAArB,UAAsB,kBAA8B;QAClD,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;IACjD,CAAC;IAED,mCAAa,GAAb;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gCAAU,GAAV,UAAW,QAAoB;QAA/B,iBA2DC;QA1DC,IAAI,SAAS,GAGM,EAAE,CAAC;QAEtB,IAAI,UAAU,GAA8B,EAAE,CAAC;QAE/C,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;YACvB,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAGH,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;YAC/B,IAAI,KAAK,GAAW,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,iDAAiD;oBACvD,eAAe,GAAG,QAAQ,GAAG,IAAI;oBACjC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI;oBAC5C,4BAA4B;aAC7B,CAAC,CAAC;SACJ;QAED,IAAI,UAAU,GAAG,UAAC,IAAkD;YAClE,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;gBACrB,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;iBAAM;gBACL,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7B;qBAAM;oBACL,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;aACF;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,KAAK;YAC1B,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAgBH,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;YACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,yBAAG,GAAH,UAAI,QAAoB;QACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACH,kBAAC;AAAD,CAAC,CA1HgC,iCAAc,GA0H9C;AA1HY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;ACfxB,uDAA6D;AAC7D,6CAAyC;AACzC,4CAA0C;AAQ1C;IAA+B,6BAAmB;IAQhD,mBAAY,IAAY,EAAE,YAAwC,EAAE,KAAa,EAAE,SAAe;QAAlG,YACE,kBAAM,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,SAK5C;QAVD,wBAAkB,GAAkC,IAAI,wBAAU,EAAqB,CAAC;QAExF,qBAAe,GAAG,KAAK,CAAC;QAItB,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC7B,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,0BAA0B,EAAC,EAAE;YAC9G,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAC,EAAE;SAChH,CAAC,CAAC;;IACL,CAAC;IAED,qCAAiB,GAAjB;QACE,OAAO,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAkB,GAAlB,UAAmB,KAA+B;QAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAOD,2CAAuB,GAAvB,UAAwB,UAAyC;QAC/D,KAAgB,UAAuB,EAAvB,WAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAApC,IAAI,GAAG;YACV,IAAI,OAAO,GAAkC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9E,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;aACrC;SACF;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAiB,UAA6B,EAA7B,SAAI,CAAC,kBAAkB,CAAC,KAAK,EAA7B,cAA6B,EAA7B,IAA6B,EAAE;YAA3C,IAAI,IAAI;YACX,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,UAAU,EAAE,CAAC;aACd;SACF;QAED,IAAI,CAAC,eAAe,GAAG,UAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,mCAAe,GAAf,UAAgB,OAAY;QAC1B,OAAe,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IACH,gBAAC;AAAD,CAAC,CAlD8B,4CAAmB,GAkDjD;AAlDY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACVtB,uDAA6D;AAE7D,6CAAyC;AACzC,wCAAgD;AAEhD;IAA+B,6BAAmB;IAIhD,mBAAY,IAAY,EAAE,YAAwC,EAAE,KAAa,EAAE,SAAe;eAChG,kBAAM,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC;IAC7C,CAAC;IAED,qCAAiB,GAAjB;QACE,OAAO,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAkB,GAAlB,UAAmB,KAA+B;QAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,mCAAe,GAAf,UAAgB,OAAY;QAC1B,IAAI,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,kBAAO,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACzC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,CAxB8B,4CAAmB,GAwBjD;AAxBY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;ACLtB,6CAA2C;AAE3C,oDAAsD;AACtD;IAAqC,mCAAW;IAAhD;;IAIA,CAAC;IAHC,2CAAiB,GAAjB;QACE,OAAO,IAAI,qCAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACH,sBAAC;AAAD,CAAC,CAJoC,0BAAW,GAI/C;AAJY,0CAAe;;;;;;;;;;;ACH5B,8CAA6C;AAC7C;IAqBE,2BAAY,MAA8B;QAAE,0BAAkC;aAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;YAAlC,yCAAkC;;QAlB9E,aAAQ,GAA+B,IAAI,CAAC;QAoB1C,IAAI,MAAM,YAAY,KAAK,EAAE;YAC3B,IAAI,CAAC,MAAM,GAAkB,MAAM,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,CAAS,MAAM,CAAC,CAAC;SAChC;QAED,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SACpD;IACH,CAAC;IAED,4CAAgB,GAAhB,UAAiB,aAA+C;QAC9D,QAAQ,aAAa,EAAE;YACrB,KAAK,aAAa,CAAC,SAAS;gBAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM;YACR,KAAK,aAAa,CAAC,UAAU;gBAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR;gBACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM;SACT;IACH,CAAC;IAMD,kDAAsB,GAAtB,UAAuB,QAAoB;QACzC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,4CAAgB,GAAhB;QAAA,iBAgBC;QAfC,IAAI,QAAQ,GAAwB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,OAAe;YAClC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACnE;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACnC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;aACpE;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5F;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5F;iBAAM;gBACL,QAAQ,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC,OAAO,EAAE,GAAG,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC/E;QACH,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gDAAoB,GAApB;QACE,IAAI,KAAK,GAAiD;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wDAA4B,GAA5B,UAA6B,KAAa;QACxC,IAAI,KAAK,GAAiD,KAAK,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE3B,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAChC;IACH,CAAC;IACH,wBAAC;AAAD,CAAC;AA9FY,8CAAiB;AAgG9B,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,2DAAS;IACT,6DAAU;IACV,2DAAS;AACX,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;;;;;;;;;;;;;;;;;;;;;;;;ACrGD,uDAA6D;AAC7D,+CAA6C;AAE7C,wCAAgD;AAEhD;IAAiC,+BAAmB;IAMhD,qBAAY,IAAY,EAAE,YAAwC,EAAE,KAAa,EAAE,QAA6B,EAAE,SAAe;QAAjI,YACI,kBAAM,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,SAE9C;QADG,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;IAC7B,CAAC;IAED,uCAAiB,GAAjB;QACE,OAAO,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,wCAAkB,GAAlB,UAAmB,KAAiC;QAClD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,qCAAe,GAAf,UAAgB,OAAY;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,kBAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IACL,kBAAC;AAAD,CAAC,CA3BgC,4CAAmB,GA2BnD;AA3BY,kCAAW","file":"powerschool-design-system-toolkit.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 147);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\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\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n /** @internal */ syncErrorValue: any = null;\n /** @internal */ syncErrorThrown: boolean = false;\n /** @internal */ syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: PartialObserver; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n // HACK(benlesh): For situations where Node has multiple copies of rxjs in\n // node_modules, we cannot rely on `instanceof` checks\n if (isTrustedSubscriber(destinationOrNext)) {\n const trustedSubscriber = destinationOrNext[rxSubscriberSymbol]() as Subscriber;\n this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;\n this.destination = trustedSubscriber;\n trustedSubscriber.add(this);\n } else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, > destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete);\n break;\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 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 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 this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _parent, _parents } = this;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n let next: ((value: T) => void);\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\n } else if (observerOrNext) {\n next = (> observerOrNext).next;\n error = (> observerOrNext).error;\n complete = (> observerOrNext).complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n\nfunction isTrustedSubscriber(obj: any) {\n return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriberSymbol]);\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber(\n nextOrObserver?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscriber {\n\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return (> nextOrObserver);\n }\n\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from '../internal/symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\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\n */\nexport class Observable implements Subscribable {\n\n /** Internal implementation detail, do not use directly. */\n public _isScalar: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n source: Observable;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n operator: Operator;\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, subscriber: Subscriber) => 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 cold Observable by calling the Observable constructor\n * @static true\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 cold observable\n * @nocollapse\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\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, all errors will\n * be left uncaught.\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 Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\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 * ## Example\n * ### Subscribe with an Observer\n * ```javascript\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.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\n * ```javascript\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Cancel a subscription\n * ```javascript\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\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 as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n operator.call(sink, this.source);\n } else {\n sink.add(\n this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink)\n );\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n sink.error(err);\n }\n }\n\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n }) as Promise;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): TeardownLogic {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n // favor of iif and throwError functions.\n /**\n * @nocollapse\n * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n */\n static if: typeof iif;\n /**\n * @nocollapse\n * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n */\n static throw: typeof throwError;\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;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable;\n pipe(...operations: OperatorFunction[]): Observable;\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 * ```javascript\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * Rx.Observable.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[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: any;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\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 if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}\n","import { Subscriber } from './Subscriber';\nimport { OuterSubscriber } from './OuterSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class InnerSubscriber extends Subscriber {\n private index = 0;\n\n constructor(private parent: OuterSubscriber, public outerValue: T, public outerIndex: number) {\n super();\n }\n\n protected _next(value: R): void {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n\n protected _error(error: any): void {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","\nimport { ObservableInput } from '../types';\nimport { Subscription } from '../Subscription';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeTo } from './subscribeTo';\n\nexport function subscribeToResult(outerSubscriber: OuterSubscriber,\n result: any,\n outerValue?: T,\n outerIndex?: number): Subscription;\nexport function subscribeToResult(outerSubscriber: OuterSubscriber,\n result: ObservableInput,\n outerValue?: T,\n outerIndex?: number): Subscription | void {\n const destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n\n return subscribeTo(result)(destination);\n}\n","import { Subscriber } from './Subscriber';\nimport { InnerSubscriber } from './InnerSubscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.destination.error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.destination.complete();\n }\n}\n","import { pdsI18n } from './pds-i18n';\nimport { pdsUtils } from './pds-utils';\nimport { PropertyObserver } from './models/property-observer';\nexport type StringBoolean = 'true' | 'false' | null;\nimport {Subscription} from 'rxjs';\nexport abstract class PdsWidget {\n is: string;\n\n pds: any;\n\n // event keycodes for event processing.\n escKey = 27;\n tabKey = 9;\n\n //classList is an HTML element property.\n classList: any;\n //styles is an HTML property\n style: any;\n //Our pattern for generating dynamic IDs is to use the name property and append it\n name: string;\n // inner html is an html property\n innerHTML: any;\n // offsetTop is an html property\n offsetTop: number;\n\n cloneNode: (flag: boolean) => any;\n\n customStyle: any;\n\n selfToken: any;\n\n //This is how you tell Polymer that something needs to run through change detection.\n notifyPath: (value: string) => void;\n\n //This polymer method combines notifyPath with actually setting the value\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/model-data#set-path\n // Polymer will not see deep changes unless this function or notifyPath is used.\n set: (path: string, value: any) => void;\n\n //This is a polymer shortcut to any elements with an ID in the component's template. $.elementId is the element with id=elementId\n // This does not include elements in dom-repeats, as there may be more than 1 matching element\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/local-dom#node-finding\n $: { [elementId: string]: HTMLElement; };\n\n // Polymer built in function to fire events\n fire: (string, any) => {};\n\n //Polymer built in function to get content children\n getContentChildren: (selector: string) => any;\n\n //Polymer built in function to get effective children\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/local-dom#effective-children\n getEffectiveChildren: (selector?: string) => Array;\n\n addEventListener: (string, any) => any;\n\n // Polymer built in function to debounce\n debounce: (string, Function, number) => any;\n\n redrawTrigger: boolean;\n\n firstChild: Node | null;\n lastChild: Node | null;\n\n children: HTMLCollection;\n\n childNodes: NodeList;\n\n // polymer array methods\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/model-data#array-mutation\n push: (path: string, ...items: Array) => number;\n pop: (path: string) => any;\n unshift: (path: string, ...items: Array) => number;\n shift: (path: string) => any;\n splice: (path: string, index: number, removeCount: number, ...items: Array) => Array;\n notifySplices: (path: string, items: Array<{ index: number, removed: Array, addedCount: number, object: Array, type: 'splice' }>) => number;\n\n protected subscriptions: Array = [];\n\n //Since most widgets aren't going to use watches, we default this to undefined.\n //It will get defined when someone watches a property.\n private observeredPaths: Record | undefined;\n\n // shortcut to this element typecasted as an element\n asElement(): HTMLElement {\n return this as unknown as HTMLElement;\n }\n\n // shortcut to Polymer's DOM API - used so that Polymer can detect DOM manipulations\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/local-dom#dom-api\n // defaults to this as an element as that is a common use case\n polymerDom(element: HTMLElement = this.asElement()): any {\n return (window as any).Polymer.dom(element);\n }\n\n // shortcut to Polymer's DOM API flush method - used so execute async operations\n // https://polymer-library.polymer-project.org/1.0/docs/devguide/local-dom#dom-api\n flushPolymer(): void {\n (window as any).Polymer.dom.flush();\n }\n\n /**\n * This will be called on all of the elements that are in the DOM when the message keys get updated.\n */\n messageKeysUpdated(): void {\n setTimeout(() => {\n this.redrawTrigger = !this.redrawTrigger;\n });\n }\n\n //this is a polymer hook\n ready(): void {\n this.redrawTrigger = true;\n }\n\n attached(): void {\n this.classList.add('pds-widget');\n this.setAttribute('pds-widget', 'pds-widget');\n }\n\n detached(): void {\n if (this.observeredPaths != null) {\n // disable each property observer\n for (let key of Object.keys(this.observeredPaths)) {\n this.observeredPaths[key].disable();\n }\n\n // reset the observered paths\n this.observeredPaths = {};\n }\n }\n\n /* The following are functions that get attached as DOM element functions. */\n querySelector(param: string): any {\n //to be overridden by an overriding element.\n console.error('this should never have been called');\n //NOTE: It should be deleted in pdsMain and then inherited from the DOM element.\n }\n\n /* The following are functions that get attached as DOM element functions. */\n querySelectorAll(param: string): any {\n //to be overridden by an overriding element.\n console.error('this should never have been called');\n //NOTE: It should be deleted in pdsMain and then inherited from the DOM element.\n }\n\n dispatchEvent(e: Event): void {\n //to be overridden by an overriding element.\n console.error('this should never have been called');\n //NOTE: It should be deleted in pdsMain and then inherited from the DOM element.\n }\n\n hasAttribute(name: string): boolean {\n console.error('this should never have been called');\n return false;\n }\n\n setAttribute(attr: string, value: string): void {\n console.error('this should never have been called');\n }\n\n appendChild(node: Node): Node {\n console.error('this should never have been called');\n return node;\n }\n\n verifyNamePresent(): void {\n if (this.name == null) {\n console.error(this.is + ' component is missing the name attribute.');\n }\n }\n\n /* The following are functions made to make Polymer template syntax suck less*/\n logicalAnd(...value: Array): boolean {\n\n let answer = true === value.reduce((v1: boolean | undefined, v2: boolean | undefined) => {\n return v1 && v2;\n });\n //console.log('Anding: ' + value[0] + ' ' + value[1] + ' answer: ' + answer);\n return answer;\n }\n\n /**\n * sub for updateStyles();\n * for some reason updateStyle as followed from the polymer docs wouldnt work, go figure.\n */\n\n updateStyles(styleName: string, styleValue: string): void {\n this.setAttribute('style', `${styleName}: ${styleValue}`);\n }\n\n /**\n * Created so we don't have to create so many getClass functions.\n * Examples:\n * {{conditionClass('pds-is-active', isShowing)}}\n * {{conditionClass('pds-is-active', user, '!= null')}}\n * {{conditionClass('pds-is-active', myAge, '<', yourAge)}}\n */\n conditionalClass(className: string, value1: any, operator?: string, value2?: any): string | undefined {\n if (operator == null) {\n if (value1) {\n return className;\n }\n } else if (operator.trim() === '!') {\n if (!value1) {\n return className;\n }\n } else if (this.compare(value1, operator, value2)) {\n return className;\n }\n }\n\n /**\n * this function is an alias of conditional class\n * bsed upon a condition and an attribute value\n * @param attributeValue\n */\n\n conditionalAttribute(attributeValue: string, value1: any, operator?: string, value2?: any): string | undefined {\n return this.conditionalClass(attributeValue, value1, operator, value2);\n }\n\n compare(value1: any, operator: string, value2?: any): boolean {\n switch (operator.trim()) {\n case 'is-blank':\n return value1 == null || value1.length === 0;\n case 'has-letters':\n //The idea here is \"will the string show up in an element?\" So it has to be non-white space and not null.\n return value1 != null && /[^\\s]/.test(value1);\n case '== null':\n case '==null':\n return value1 == null;\n case '!= null':\n case '!=null':\n return value1 != null;\n case '=== false':\n case '===false':\n return value1 === false;\n case '=== true':\n case '===true':\n return value1 === true;\n /* tslint:disable */\n case '==':\n return value1 == value2;\n case '!=':\n return value1 != value2;\n /* tslint:enable */\n case '===':\n return value1 === value2;\n case '!==':\n return value1 !== value2;\n case '<':\n return value1 < value2;\n case '<=':\n return value1 <= value2;\n case '>':\n return value1 > value2;\n case '>=':\n return value1 >= value2;\n case '!': //This the \"not\" case since you cannot run conditionalClass('myClass', !myVar)\n return !value1;\n default:\n throw 'operator not found';\n }\n }\n\n /**\n * compare doesn't work when you pass in undefined values. This will let us check for undefined values\n * because the property name is passed in as a string. However, this isn't going\n * to be called if the contents of the propertyName gets changed, only when the context changes.\n * @param propertyName\n * @param context\n * @returns {boolean} true if it's != null, false other wise.\n */\n isDefined(propertyName: string, context?: any): boolean {\n\n if (context == null) {\n context = this;\n }\n\n return context[propertyName] != null;\n }\n\n //redrawTrigger isn't used to do any calculations.\n //It's just used to trigger the function to get called.\n translate(redrawTrigger: any, key: any, ...params: Array): any {\n\n //NOTE: This does not get called if this.redrawTrigger == null.\n //A lot of times the issue is that the component does not call super.ready() in its overridden ready function.\n let args = {};\n if (params != null && params.length > 0) {\n for (let i = 0; i < params.length; i++) {\n args['arg' + i] = params[i];\n }\n }\n return pdsI18n.getText(key, args);\n }\n\n /**\n * Force the polymer component to redraw anything that references the object or array at 'path', which should follow polymer path notation.\n * Example: this.options is an array used in a dom-repeat to display a list of checkboxes. redraw('options') will redraw the list of checkboxes.\n * See https://polymer-library.polymer-project.org/1.0/docs/devguide/model-data for details on the path notation pattern and overriding dirty checking.\n */\n redraw(path: string): void {\n let opts = this[path];\n this[path] = null;\n this[path] = opts;\n }\n\n /**\n * How many swear words have you said trying to get Polymer to redraw an array when just one of the properties in the\n * array were mutated? If the answer is \"LOTS\" then this function is for you.\n *\n * This function will force polymer to update the DOM when you have mutated one of the properties of the object.\n *\n * If you pass in the target, it will do it only for that target, otherwise it will do it for all of the elements in\n * the array (which executes slower).\n *\n * @param pathOfArray (required) something like 'items' or 'wizard.items'\n * @param target (optional) The target object to update. This MUST be one of the items in the array.\n * If you pass nothing in, then this function will update ALL of the objects.\n * @param mutatedProperties (optional) An array of property names on the object to update.\n * Defaults to all of the properties of the object.\n */\n redrawArray(pathOfArray: string, target?: Object | undefined, mutatedProperties?: Array): void {\n\n let resolvedToken: any = this;\n for (let token of pathOfArray.split('.')) {\n resolvedToken = resolvedToken[token];\n }\n\n if (resolvedToken instanceof Array) {\n let arrayToUpdate: Array = resolvedToken;\n\n let startIndex = 0;\n let endIndex: number = arrayToUpdate.length;\n\n if (target != null) {\n //We have a target, just tell polymer to update for this specific Array item.\n if (mutatedProperties == null) {\n mutatedProperties = Object.keys(target);\n }\n\n //If the target is specified, then we only want to loop one time in the outer loop.\n let index = arrayToUpdate.indexOf(target);\n if (index < 0) {\n return;\n }\n for (let prop of mutatedProperties) {\n //This is where the magic happens. We tell polymer to go update the DOM for that array element.\n this.notifyPath(pathOfArray + '.' + index + '.' + prop);\n }\n } else if (arrayToUpdate.length > 0) {\n //We don't have a target. Let's tell polymer to update for all the items in the array!\n if (mutatedProperties == null) {\n mutatedProperties = Object.keys(arrayToUpdate[0]);\n }\n\n //Loop on all of the objects in the array\n for (let i = 0; i < arrayToUpdate.length; i++) {\n for (let prop of mutatedProperties) {\n //This is where the magic happens. We tell polymer to go update the DOM for that array element.\n this.notifyPath(pathOfArray + '.' + i + '.' + prop);\n }\n }\n }\n }\n }\n\n /**\n * In polymer we often bind an object to a button or link. We then need to extract that object\n * out of the button. But the event may have come from clicking on an icon inside the button. This method\n * will traverse up the DOM until it finds the button, and then gets the contents of the property and\n * returns it.\n * @param event - The event that came from the click event.\n * @param tagWithProperty - The tag name that has the object bound to it. Most likely 'a' or 'button'.\n * @param property - The property name that you bound to the element.\n * @returns {any} - Any object that you bound to the element.\n */\n extractProperty(event: Event, tagWithProperty: string, property: string): any | undefined {\n let element = this.extractElement(event, tagWithProperty);\n if (element != null && property != null) {\n return element[property];\n }\n }\n /**\n * In polymer we often set an attribute on a button or link. We then need to extract that attribute\n * from the button. But the event may have come from clicking on an icon inside the button. This method\n * will traverse up the DOM until it finds the button, and then gets the contents of the attribute and\n * returns it.\n * @param event - The event that came from the click event.\n * @param tagWithProperty - The tag name that has the object bound to it. Most likely 'a' or 'button'.\n * @param attribute - The attribute name that you set on the element.\n * @returns {string | undefined} - the attribute, or undefined if it does not exist.\n */\n extractAttribute(event: Event, tagWithAttribute: string, attribute: string): string | undefined {\n let element = this.extractElement(event, tagWithAttribute);\n if (element != null && attribute != null) {\n return element.getAttribute(attribute) as any as string;\n }\n }\n\n /**\n * It is possible to create read-only properties on a polymer component so that they cannot be changed by the outside world.\n * See https://polymer-library.polymer-project.org/1.0/docs/devguide/properties#read-only\n * This allows for default value of null to set on them if they end up needing to be accessed in the template which is pretty nice.\n * However, to set the property you have to use the format this._setMyVariableName(value) which is a pain because TypeScript won't\n * recognize it. This function allows us to set the private property without needing to fight typescript.\n * Example this.setPrivatePolymerPropertyValue('myVariableName', 'hello world');\n */\n setPrivatePolymerPropertyValue(property: string, value: any): void {\n let privateSetterName: string = '_set' + property.charAt(0).toUpperCase() + property.slice(1);\n if (typeof this[privateSetterName] === 'function') {\n this[privateSetterName](value);\n } else {\n //The private setter function isn't available when the unit tests run so we just need to set the property right\n //on the object.\n this[property] = value;\n }\n }\n\n /**\n * Polymer does not automatically detect changes to sub properties. This function will create a PropertyObserver for a given\n * subproperty, which will notify polymer when it detects changes to the specified sub property.\n * See https://polymer-library.polymer-project.org/1.0/docs/devguide/data-system#observable-changes for details on why this is necessary\n */\n watch(path: string): PropertyObserver {\n //Define it if it hasn't been used yet.\n if (this.observeredPaths == null) {\n this.observeredPaths = {};\n }\n // if an observer already exists for the path, recreate it\n if (this.observeredPaths[path] != null) {\n this.observeredPaths[path].disable();\n delete this.observeredPaths[path];\n }\n\n // create the property observer\n let observer = new PropertyObserver(this, path);\n\n // turn on the property observer\n observer.enable();\n\n // keep track of the new observer so it can be destroyed on detach\n this.observeredPaths[path] = observer;\n\n // return the observer so the invoker can destroy it as they please\n return observer;\n }\n\n cancelSubscriptions(): void {\n for (let subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n this.subscriptions.length = 0;\n }\n\n //used by both extractProperty and extractAttribute\n private extractElement(event: Event, tagWithProperty: string): HTMLElement | undefined {\n if (event.target == null || tagWithProperty == null) {\n return;\n }\n let targetElement: HTMLElement = event.target as HTMLElement;\n if (!pdsUtils.is(event.target as HTMLElement, tagWithProperty)) {\n targetElement = pdsUtils.getClosest(event.target as HTMLElement, tagWithProperty) as HTMLElement;\n if (targetElement == null) {\n return;\n }\n }\n return targetElement;\n }\n}\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\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: Subscription = (function(empty: any) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n /** @internal */\n protected _parent: Subscription = null;\n /** @internal */\n protected _parents: Subscription[] = null;\n /** @internal */\n private _subscriptions: SubscriptionLike[] = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n ( this)._unsubscribe = unsubscribe;\n\n }\n }\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 hasErrors = false;\n let errors: any[];\n\n if (this.closed) {\n return;\n }\n\n let { _parent, _parents, _unsubscribe, _subscriptions } = ( this);\n\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n let index = -1;\n let len = _parents ? _parents.length : 0;\n\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n\n if (isFunction(_unsubscribe)) {\n let trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (\n errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]\n );\n }\n }\n\n if (isArray(_subscriptions)) {\n\n index = -1;\n len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n let trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n let err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n } else {\n errors.push(err);\n }\n }\n }\n }\n }\n\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n\n if (teardown === this) {\n return this;\n }\n\n let subscription = ( teardown);\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void) > teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n\n const subscriptions = this._subscriptions || (this._subscriptions = []);\n\n subscriptions.push(subscription);\n subscription._addParent(this);\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n\n /** @internal */\n private _addParent(parent: Subscription) {\n let { _parent, _parents } = this;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n } else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n } else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","// typeof any so that it we don't have to cast when comparing a result to the error object\nexport const errorObject: any = { e: {} };","import { I18nUtil } from 'common-utils';\n\nimport { pdsLocalStorage } from './pds-local-storage';\nimport { pdsUtils } from './pds-utils';\n\n//TODO Import CKEDITOR rather than rely on CKEDITOR being a part of the global scope\ndeclare let CKEDITOR: any;\n\n// this is not exported because we want pds to only expose a singleton object not a class.\nclass PdsI18n extends I18nUtil {\n pds = undefined;\n newMessageKeys: { [key: string]: string } = {};\n ckEditorEnglishMessages: { [key: string]: string } = {};\n\n setLocale(locale): void {\n this.locale = locale;\n\n let elements = document.querySelectorAll('.pds-widget');\n for (let i = 0; i < elements.length; i++) {\n let element: any = elements[i];\n if (typeof element.messageKeysUpdated === 'function') {\n element.messageKeysUpdated();\n }\n }\n }\n\n /**\n * This function is intended for developers to use from the console to get access to the message keys that are being\n * used that are not coming from the server.\n */\n getNewMessageKeys(): string {\n let result = '';\n for (let key of Object.keys(this.newMessageKeys)) {\n result += `\"${key}\": \"${this.newMessageKeys[key]}\",\\n`;\n }\n return result;\n }\n\n /**\n * Takes a key like 'pds|a late assignment|late' and turns it into 'late'.\n */\n stripContextFromKey(key: string): string | undefined {\n let message = super.stripContextFromKey(key);\n if (message != null && pdsLocalStorage.getPersistedBoolean('dev-mode')) {\n this.newMessageKeys[key] = message;\n }\n return message;\n }\n\n /**\n * This function replaces the english strings inside a ckEditor messageKeysTree with localized strings from what the\n * i18n-message service returns. CK Editor never knows that it is showing anything other than English strings.\n *\n * This function is recursive so that it can traverse down the branches of the tree.\n * @param messageKeysTree\n * @param scope - The bread crumbs for how far down we are in the messageKeysTree. Ex: 'CKEDITOR.lang.en.buttons.OK\n */\n updateCKEditorMessageKeys(messageKeysTree: Object, scope = ''): void {\n for (let key of Object.keys(messageKeysTree)) {\n let current: string | Object = messageKeysTree[key];\n if (typeof current === 'string') {\n let message: string = current;\n let englishMessagesKey = scope + '.' + key;\n if (!this.ckEditorEnglishMessages.hasOwnProperty(englishMessagesKey)) {\n //only assign this once because the message will only be in\n //English (for sure) the first time through this loop.\n this.ckEditorEnglishMessages[englishMessagesKey] = message;\n }\n\n let englishMessage = this.ckEditorEnglishMessages[englishMessagesKey];\n let messageKey = 'pds|ckeditor|' + englishMessage;\n\n //Replace the message string with a localized string.\n //This means that we are replacing the English string with the selected language string.\n //CK Editor still thinks it's working with English.\n messageKeysTree[key] = this.getText(messageKey);\n } else {\n this.updateCKEditorMessageKeys(current, scope + '.' + key);\n }\n }\n }\n}\n\n// flattening this object so that we don't have a prototype inheritance hierarchy\nexport let pdsI18n = pdsUtils.createFlattenedClassInstance(PdsI18n);\n\n//This is where we define the default message keys for Polymer that use arguments.\n//This is also the place for any other message keys that have a different text than the key.\npdsI18n.messageKeys['pds|popover|Navigating From Single Element'] = 'Alert: navigating away from this entry will close the popup menu';\npdsI18n.messageKeys['pds|popover|Forwards From Last Element'] = 'Alert: navigating past the last entry will close the popup menu';\npdsI18n.messageKeys['pds|popover|Backwards From First Element'] = 'Alert: navigating backwards past the first entry will close the popup menu';\npdsI18n.messageKeys['pds|copyright clause|Copyright Clause'] = '© 2010-2018 PowerSchool Group LLC and/or its affiliate(s). All rights reserved. All trademarks are either owned or licensed by PowerSchool Group LLC and/or its affiliates.';\npdsI18n.messageKeys['pds|close-message'] = 'Close {{arg0}} Navigation';\npdsI18n.messageKeys['pds|class picker|xx Classes'] = '{{arg0}} Classes';\npdsI18n.messageKeys['pds|circular progress|xx% Complete'] = '{{percent}}% Complete';\npdsI18n.messageKeys['pds|circular progress|xx of xx'] = '{{value}} of {{max}}';\npdsI18n.messageKeys['pds|class picker|xx - xx Classes'] = '{{arg0}} - {{arg1}} Classes';\npdsI18n.messageKeys['pds|grid widget|Select xx'] = 'Select {{selectCriteria}}';\npdsI18n.messageKeys['pds|grid widget|Remove Filter xx yy'] = 'Remove Filter {{filterName}} {{filterValue}}';\npdsI18n.messageKeys['pds|grid widget|xx Results'] = '{{number}} Results';\npdsI18n.messageKeys['pds|notifications|Messages regarding xx'] = 'Messages regarding {{name}}';\npdsI18n.messageKeys['pds|search|student dropped xx classes'] = 'student dropped {{arg0}} classes';\npdsI18n.messageKeys['pds|search|xx photo'] = '{{arg0}}\\'s photo';\npdsI18n.messageKeys['global|Select Previous xx'] = 'Select Previous {{item}}';\npdsI18n.messageKeys['global|Select Next xx'] = 'Select Next {{item}}';\npdsI18n.messageKeys['pds|global create menu widget|Navigate to xx xx'] = 'Navigate to {{arg0}} {{arg1}}';\npdsI18n.messageKeys['pds|global create menu widget|Set xx xx to default action'] = 'Set {{arg0}} {{arg1}} as default action';\npdsI18n.messageKeys['cu|multi-select|Remove Selection Status xx'] = 'Remove Selection Status {{selectionStatus}}';\npdsI18n.messageKeys['pds|logout|Sign out of all xx Authenticated applications'] = 'Sign out of all {{authenticationType}} Authenticated applications';\n","import { CalendarDay } from './interfaces/calendar-day';\nimport { AjaxSettings } from './interfaces/ajax-settings';\nimport { AjaxStatus } from './interfaces/AjaxStatus';\nimport {\n DownloadFileMediaType,\n DownloadFileParams,\n DownloadFileCharset,\n TypeExtensionMap } from './interfaces/download-file-params';\nimport { sanitizeHtmlString } from './pds-xss';\nimport { StringUtil, EmailUtil, NumberUtil } from 'common-utils';\nimport { pdsLocalStorage } from './pds-local-storage';\nimport { StringBoolean } from './pds-widget';\nimport { BoundingBox } from './interfaces/bounding-box';\nimport { Offset } from './interfaces/offset';\nimport { Subject, Observable } from 'rxjs';\n\ndeclare let unescape;\ndeclare let global;\n\n/**\n * This function works just like Object.getOwnPropertyDescriptor but it gets the property descriptor\n * even if it's inherited. It is defined here to keep it private.\n * @param object - The object to get the property off of.\n * @param prop - The property to get a descriptor for.\n * @returns {PropertyDescriptor} The property descriptor of the property.\n */\nfunction getPropertyDescriptor(object: any, prop: string): PropertyDescriptor {\n let objectDescriptor: PropertyDescriptor | undefined = Object.getOwnPropertyDescriptor(object, prop);\n if (objectDescriptor == null) {\n return getPropertyDescriptor(Object.getPrototypeOf(object), prop);\n } else {\n return objectDescriptor;\n }\n}\n\n/* Creating a placeholder div element to be used by strip HTML utility function.\n Declared it outside export as we only need one instance of this element.*/\nlet placeholderDivToStripHTML = document.createElement('div');\nplaceholderDivToStripHTML.setAttribute('id', 'divToStripHTML_NotMeantForDOM');\n\nlet ajaxStatusStream: Subject = new Subject();\nlet ajaxActiveRequestsCount = 0;\n\nexport let pdsUtils = {\n window: window, //using this so it can be mocked for unit tests.\n pds: undefined,\n ESCAPE_USER_INPUT_REGEX: /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\n ESCAPE_EXCLUDE_CHARS_REGEX: StringUtil.ESCAPE_EXCLUDE_CHARS_REGEX,\n TIME_STRING_AM_PM_SPACING_REGEX: /(\\d)(pm|am)/i,\n sanitizeHtmlString: sanitizeHtmlString,\n TAB_ELEMENTS: [\n 'input',\n 'select',\n 'a[href]',\n 'textarea',\n 'button',\n '[tabindex]'\n ].map((selector: string) => selector + ':not([disabled])'),\n markedElements: [],\n\n /**\n * This function strips HTML tags from text.\n * @param value - The string to strip HTML tags from.\n * @return Plain text\n */\n stripHtml(value: string | undefined): string | undefined {\n if (value == null) {\n return '';\n }\n placeholderDivToStripHTML.innerHTML = value;\n return placeholderDivToStripHTML.textContent || placeholderDivToStripHTML.innerText;\n },\n\n escapeUserInput: function (userInput: string): string {\n if (userInput == null) {\n return userInput;\n }\n return userInput.replace(this.ESCAPE_USER_INPUT_REGEX, '\\\\$&');\n },\n\n /** This function is deprecated, please use the pds-local-storage instead */\n getPersistedBoolean: function (key: string, defaultResult = false): boolean {\n return pdsLocalStorage.getPersistedBoolean(key, defaultResult);\n },\n\n /**\n * This function copies text to the user's clipboard.\n * @param text - The string to copy to user's clipboard.\n * @param returnFocusHandler - callback to handle returning focus to correct element\n */\n copyTextToClipboard(text: string, returnFocusId: string): void {\n let textArea = document.createElement('textarea');\n textArea.setAttribute('id', 'textToCopy');\n textArea.style.display = 'hidden';\n textArea.value = text;\n document.body.appendChild(textArea);\n\n (textArea).contentEditable = true;\n textArea.readOnly = false;\n\n if (navigator.userAgent.match(/ipad|ipod|iphone/i)) {\n //mac way\n let range: Range = document.createRange();\n range.selectNodeContents(textArea);\n let s: any = window.getSelection();\n s.removeAllRanges();\n s.addRange(range);\n textArea.setSelectionRange(0, text.length);\n } else {\n //Everything else way.\n textArea.select(); //pc way\n }\n\n try {\n document.execCommand('copy');\n } catch (err) {\n console.error('Unable to copy');\n }\n\n // 8) remove the old element and put the focus back.\n document.body.removeChild(textArea);\n\n let returnFocusElement = document.getElementById(returnFocusId);\n if (returnFocusElement != null) {\n returnFocusElement.focus();\n }\n },\n\n /**\n * This function appends\n * to a stack of elements that can be focused upon\n * after a certain operation is done.\n * @param focusedElement\n */\n\n markFocusableElement(elementToMark: HTMLElement): void {\n if (elementToMark != null && typeof elementToMark.focus === 'function') {\n this.markedElements.push(elementToMark);\n }\n },\n\n /**\n * Gets the list of marked elements\n */\n\n getListOfMarkedElements(): any {\n return this.markedElements;\n },\n\n /**\n * This function gets the last marked element in the stack of elements.\n * if there are no elements that have been marked, return the current activeElement\n * if there is an element that has been marked, return the last marked element\n * @return The last element that has been marked.\n */\n\n getLastMarkedElement(): HTMLElement | undefined {\n let lengthOfMarkedElements = this.markedElements.length;\n if (lengthOfMarkedElements > 0) {\n return this.markedElements.pop();\n } else {\n return undefined;\n }\n },\n\n /**\n * This function allows the user to peek into the stack of last marked elements to see whats inside\n */\n\n peekLastMarkedElement(): HTMLElement {\n return this.markedElements.length > 0 ? this.markedElements[this.markedElements.length - 1] : undefined;\n },\n\n /**\n * finds the last element within an HTMLElement\n * @param myHTMLElement\n */\n findLastNode(myHTMLElement: HTMLElement): HTMLElement {\n let myElements = myHTMLElement.querySelectorAll(':last-child');\n return myElements[myElements.length - 1];\n },\n\n /**\n * Recursively finds the first element within the dom tree\n * @param myHTMLElement\n */\n\n findFirstNode(myHTMLElement: HTMLElement): HTMLElement {\n if (myHTMLElement.childElementCount < 1) { // base case\n return myHTMLElement;\n } else {\n return this.findFirstNode(myHTMLElement.firstElementChild);\n }\n },\n\n /**\n * Within an html element, this function returns all the tabbale elements\n * @param element\n */\n\n getAllTabbableElements(element: HTMLElement | undefined | null): any {\n if (element != null) {\n return element.querySelectorAll(this.TAB_ELEMENTS);\n }\n },\n\n /**\n * given an index and a list of tabbable elements, this function returns an html element at the index\n * so long that the index is less than or equal to the index of the last element available.\n * @param listOfTabbableElements - a list of tabbable elements\n * @param index - index of anywhere in the list\n */\n getTabbableElementAtIndex(listOfTabbableElements: any, index: number): any {\n if (listOfTabbableElements != null && index != null) {\n if (index <= listOfTabbableElements.length - 1) {\n return listOfTabbableElements[index];\n }\n }\n },\n\n /**\n * given an element reference and a list of tabbable elements,\n * this finds the next tabbable element with respect to the element reference.\n *\n * This function does NOT wrap back to the start if you pick the last element of the array.\n * It simply returns undefined\n * @param listOfTabbableElements\n * @param elementReference\n */\n\n getNextTabbableElement(listOfTabbableElements: any, elementReference: any): any {\n if (listOfTabbableElements != null && elementReference != null) {\n let index = listOfTabbableElements.indexOf(elementReference);\n if (index !== -1) {\n if (index < listOfTabbableElements.length - 1) {\n return listOfTabbableElements[index + 1];\n }\n }\n }\n },\n\n fireMessageEvent(element: HTMLElement, message: string, type: 'SUCCESS' | 'INFO' | 'WARNING' | 'ERROR', timeout?: number): void {\n if (element == null || message == null || message.length === 0 || type == null) {\n return;\n }\n\n //Set default of 3 seconds\n if (timeout == null) {\n timeout = 3000;\n }\n\n let event: Event = new Event('pdsMessageEvent', { bubbles: true });\n\n (event as any).detail = { message, type, timeout };\n\n //attach all information to the event\n element.dispatchEvent(event);\n },\n\n /**\n * Returns true if a mobile browser is in use.\n * All mobile browser checking should call here so that we can change the way we detect mobile users\n * as well as identify areas where we do this easily.\n *\n * This method should be used as a last resort! For example, events which need to be\n * called for mobile users in order to provide a good user experience but harm the desktop experience.\n */\n isMobile: function(): boolean {\n return this.window.orientation != null;\n },\n /**\n * Returns true if email is of a valid format.\n * Regex pattern picked up from a site which claims 99.99% verification: http://emailregex.com/\n */\n isValidEmail: function (email: string): boolean {\n return EmailUtil.validateEmail(email);\n },\n /**\n * Gets the number of milliseconds since that date in the 70s.\n * @param date\n * @returns {number}\n */\n dateToTime: function (date: Date): number | undefined {\n //Yes, it's supposed to be a date, but this can be called from outside typescript so we check to make sure\n //getTime is really there before we call it.\n if (date != null && typeof date.getTime === 'function') {\n return date.getTime();\n }\n },\n /**\n * element and selector are required to get this function to work properly. Passing in undefined to either of them will\n * simply make the function return undefined. We built it this way because sometimes this function will be called with\n * \"optional\"\n * Sub for $.closest()\n * @param element\n * @param selector\n * @returns {any}\n */\n getClosest: function (element: HTMLElement | undefined | null, selector: string | undefined): { querySelector: (string) => any } | undefined {\n if (element == null || typeof element.matches !== 'function' || selector == null) {\n return;\n }\n\n while (element != null) {\n try {\n if (element.matches(selector)) {\n return element;\n }\n } catch (e) {\n // error with matches, may be caused by an invalid selector\n return;\n }\n\n element = element.parentElement;\n }\n },\n prepend: function(newNode: HTMLElement, referenceNode: HTMLElement): void {\n this.insertBefore(newNode, referenceNode.firstChild);\n },\n append: function(newNode: HTMLElement, referenceNode: HTMLElement): void {\n referenceNode.appendChild(newNode);\n },\n insertBefore: function (newNode: HTMLElement, referenceNode: HTMLElement): void {\n if (referenceNode.parentNode != null) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n }\n },\n insertAfter: function (newNode: HTMLElement, referenceNode: HTMLElement): void {\n if (referenceNode.parentNode != null) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n }\n },\n is: function (element: HTMLElement, selector: string): boolean | undefined {\n if (element == null || typeof element.matches !== 'function' || selector == null) {\n return;\n }\n\n try {\n return element.matches(selector);\n } catch (e) {\n // error with matches, may be caused by an invalid selector\n return;\n }\n },\n /**\n * Sub for $.addClass()\n * @param element a DOM element.\n * @param className The class name to add.\n */\n addClass: function (element: HTMLElement | null | undefined, className: string): void {\n if (element == null || className == null || className.trim().length === 0) {\n return;\n }\n element.classList.add(className);\n },\n\n /**\n * Checks to see if an element contains a class...\n * Includes some extra checks that should be done\n * @param element\n */\n\n containsClass: function (element: HTMLElement | null | undefined, className: string): boolean {\n if (element == null || className == null) {\n return false;\n } else if (className.trim().length === 0) {\n return false;\n } else {\n return element.classList.contains(className);\n }\n },\n\n /**\n * Sub for $.removeClass()\n * @param element a DOM element\n * @param className The class name to remove.\n */\n removeClass: function (element: HTMLElement | null | undefined, className: string): void {\n if (element == null || className == null || className.trim().length === 0) {\n return;\n }\n element.classList.remove(className);\n },\n /**\n * Stupid IE doesn't toggle classes correctly on a classList object when the force option is passed in\n * so we wrote our own.\n *\n * If you do not pass one or all of the inputs into the method then it will simply return false and not blow up.\n *\n * @param element - The element to toggle the class on.\n * @param className - The class name to toggle on or off.\n * @returns true if the class is present, false if the class is not present.\n */\n toggleClass: function(element: HTMLElement | null | undefined, className: string, force?: boolean): boolean {\n if (element == null || className == null || className.trim().length === 0) {\n return false;\n }\n\n if (force == null) {\n return element.classList.toggle(className);\n }\n\n if (force) {\n element.classList.add(className);\n } else {\n element.classList.remove(className);\n }\n\n return force;\n },\n /**\n * Removes an element from the DOM. Does not blow up if you pass in undefined.\n * @param element\n */\n remove: function(element: HTMLElement | null | undefined): void {\n if (element != null && element.parentNode != null) {\n element.parentNode.removeChild(element);\n }\n },\n /**\n * Sub for _.flatten()\n * @param arry\n * @returns {Array}\n */\n flatten: function (arry: Array): Array {\n let result: Array = [];\n if (arry != null && arry instanceof Array) {\n arry.forEach((arrayElement: any) => {\n if (arrayElement instanceof Array) {\n this.flatten(arrayElement).forEach((flattenedElement: any) => {\n result.push(flattenedElement);\n });\n } else {\n result.push(arrayElement);\n }\n });\n }\n return result;\n },\n //Given a date, generate all the numbers.\n generateDays: function(year: number, month: number, fillBlankDays = false): Array {\n if (typeof year !== 'number' || typeof month !== 'number') {\n return [];\n }\n\n let dateTimes: Array = [];\n //create a new date with the same year and month, but start on the first.\n let dateItr = new Date(year, month, 1);\n\n //subroutine for adding blanks\n let addBlanks = function (loopTimes: number, computeDates: boolean, ascending: boolean): void {\n let alterDate: Date | undefined;\n if (computeDates) {\n if (ascending) {\n //Start (Loop times) before the first day of the month.\n alterDate = new Date(year, month, -1 * loopTimes + 1);\n } else {\n //Start on First Day of next month\n alterDate = new Date(year, month + 1, 1);\n }\n }\n\n let sizeModSeven;\n for (let i = 0; i < loopTimes; i++) {\n sizeModSeven = (dateTimes.length) % 7;\n if (computeDates && alterDate != null) {\n dateTimes.push({\n dayNum: alterDate.getDate(),\n dateTimeNum: alterDate.getTime(),\n isWeekend: sizeModSeven === 0 || sizeModSeven === 6,\n isFilled: true,\n dashCaseDate: `${alterDate.getFullYear()}-${('0' + (alterDate.getMonth() + 1)).slice(-2)}-${('0' + alterDate.getDate()).slice(-2)}`\n });\n alterDate.setDate(alterDate.getDate() + 1);\n } else {\n dateTimes.push({\n isWeekend: sizeModSeven === 0 || sizeModSeven === 6,\n isFilled: true\n });\n }\n }\n };\n //Day of week for first day of month => number of blanks.\n addBlanks(dateItr.getDay(), fillBlankDays, true);\n\n let sizeModSeven;\n do {\n sizeModSeven = (dateTimes.length) % 7;\n dateTimes.push({\n dayNum: dateItr.getDate(),\n dateTimeNum: dateItr.getTime(),\n isWeekend: sizeModSeven === 0 || sizeModSeven === 6,\n dashCaseDate: `${dateItr.getFullYear()}-${('0' + (dateItr.getMonth() + 1)).slice(-2)}-${('0' + dateItr.getDate()).slice(-2)}`\n });\n dateItr.setDate(dateItr.getDate() + 1);\n }\n while (dateItr.getMonth() === month);\n\n if (dateTimes.length % 7 > 0) {\n addBlanks(7 - (dateTimes.length % 7), fillBlankDays, false);\n }\n\n return dateTimes;\n },\n getpageYOffsetLimit: function (): number {\n return Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) - this.window.innerHeight;\n },\n getUniqueId: function (theId: string): string {\n let curNumber = 1;\n let curId = `${theId}_${curNumber}`;\n if (document.getElementById(theId) == null) {\n return theId;\n }\n while (document.getElementById(curId) != null) {\n curNumber += 1;\n curId = `${theId}_${curNumber}`;\n }\n return curId;\n },\n sort: function (array: Array, valueExtractor: (value: any) => any): void {\n if (array == null || array.length === 0) {\n return;\n }\n\n array.sort(function (a, b): number {\n let varA = valueExtractor(a);\n let varB = valueExtractor(b);\n\n if (varA < varB) {\n return -1;\n } else if (varA > varB) {\n return 1;\n } else {\n return 0;\n }\n });\n },\n TOKEN_REGEX: /{[^}]+}/g, // examples: {something}, {somethingElse}, etc\n /**\n * returns a string with tokens replaced by values.\n * @param theString - the string that context is applied to. Any tokens in the string will be replaced by\n * the proper values from the context parameter. A token is defined as a word surrounded by {}.\n * Example theString value: 'Hi my name is {name}.'\n * @param context - the object that has the context to apply to the string. If it is a string there should only\n * be one token in theString.\n * note: tokens are case-insensitive. So, {someThing} is the same as {something}.\n * Examples: {name:'shane'}, 'shane'\n * @returns {string} - theString with context applied to it.\n * Example using example parameters: 'Hi my name is shane'\n */\n replaceTokensInString: function (theString: string, context: string | Object): string {\n if (theString == null || context == null || theString === '') { //handle null strings\n return theString;\n }\n if (typeof context === 'string') {\n let allTokens = theString.match(this.TOKEN_REGEX);\n if (allTokens == null) { // if there are no tokens we can just return theString\n return theString;\n }\n let valid = allTokens.every((_token) => { // if context is a string there should only be one distinct token\n // the ! is needed here because typescript doesn't pick up on the null check's\n // semantics and thinks allTokens could be null\n return _token === allTokens![0];\n });\n if (!valid) {\n throw 'replaceTokensInString called with invalid parameters.';\n }\n return theString.replace(this.TOKEN_REGEX, context);\n }\n\n for (let key in context) { // context must be an object so loop through it's keys and apply their values to theString\n if (context.hasOwnProperty(key)) {\n let re = new RegExp(`{${key}}`, 'ig');\n theString = theString.replace(re, context[key]);\n }\n }\n return theString;\n },\n getUrlSearchParams: function (): { [key: string]: string } {\n let params = {};\n\n let search = this.window.location.search;\n\n if (search != null && search.length > 1) {\n let parts;\n //remove the ?\n search = search.substring(1);\n for (let token of search.split('&')) {\n parts = token.split('=');\n if (parts != null && parts.length > 0) {\n params[parts[0]] = parts[1];\n }\n }\n }\n return params;\n },\n /**\n * If one of your url params contains an object in JSON notation, run it through this to parse it.\n * Is great for calling after getUrlSearchParams.\n */\n parseUrlSearchObjectParam: function(param: string, paramEncoded = true): Object {\n try {\n let paramString = unescape(param);\n if (paramEncoded) {\n paramString = decodeURIComponent(atob(paramString));\n // paramString = atob(paramString);\n }\n let parsedParam = JSON.parse(paramString);\n return parsedParam;\n } catch (err) {\n //Default to just returning an empty object.\n return {};\n }\n },\n stringifyUrlSearchObjectParam: function (param: Object, encodeParam = true): string {\n let p: string = JSON.stringify(param);\n if (encodeParam) {\n try {\n p = btoa(encodeURIComponent(p));\n // p = btoa(p);\n } catch (err) {\n console.error('could not base 64 encode string: ' + p);\n p = btoa(JSON.stringify({}));\n }\n }\n return p;\n },\n removeContextMarkerFromUrl: function (url: string): string {\n let ucCtx = 'ucCtx=\\{unifiedClassroomContext\\}';\n return url.replace(new RegExp('&' + ucCtx), '')\n .replace(new RegExp('\\\\?' + ucCtx + '&'), '?')\n .replace(new RegExp('\\\\?' + ucCtx), '');\n },\n getSectionColorForClass: function (sectionOrGroup: any): string {\n let colorNumber = 1;\n if (sectionOrGroup == null) {\n return 'color-' + colorNumber;\n }\n if (sectionOrGroup && sectionOrGroup.sourceSystemId != null && sectionOrGroup.courseNumber != null) {\n if (isNaN(parseInt(sectionOrGroup.courseNumber))) {\n colorNumber = (Number(sectionOrGroup.sourceSystemId) % 4) + 1;\n } else {\n colorNumber = (parseInt(sectionOrGroup.courseNumber) % 4) + 1;\n }\n } else if (sectionOrGroup && sectionOrGroup.sectionUids != null) {\n colorNumber = (sectionOrGroup.sectionUids.length % 4) + 1;\n }\n return 'color-' + colorNumber;\n },\n /**\n * fixTimeStringSpacing\n * @param timeString - a string that can be validated with pdsi18n.timeRegexString\n * @returns {string} - a string that has spacing between time and am/pm so that the following parses correctly:\n * new Date('1/1/2001 ' + fixTimeStringSpacing(someTimeString));\n */\n fixTimeStringSpacing: function (timeString: string): string {\n if (timeString != null) {\n return timeString.replace(this.TIME_STRING_AM_PM_SPACING_REGEX, '$1 $2');\n } else {\n return timeString;\n }\n },\n\n /**\n * Performs an asynchronous HTTP (Ajax) request.\n * @param url - A string containing the URL to which the request is sent.\n * @param settings - A set of key/value pairs that configure the Ajax request. All settings are optional. See AjaxSettings interface for more details.\n */\n ajax: function (url: string, settings?: AjaxSettings): XMLHttpRequest | undefined {\n // If no settings are passed in, we want to create an empty settings object to populate.\n if (settings == null) {\n settings = {};\n }\n // Default settings required to make a request\n let async = settings.async || true;\n let method = settings.method || 'GET';\n let headers = settings.headers || {};\n let xhrFields = settings.xhrFields || {};\n let data = settings.data;\n let success = settings.success;\n let error = settings.error;\n let complete = settings.complete;\n let xhr = settings.xhr ? settings.xhr() : new XMLHttpRequest();\n let disableAjaxStatus = settings.disableAjaxStatus || false;\n try {\n xhr.open(\n method,\n url,\n async\n );\n if (!disableAjaxStatus) {\n fireAjaxStatus({ status: 'START', url, payload: data });\n }\n for (let key in xhrFields) {\n if (xhrFields.hasOwnProperty(key)) {\n xhr[key] = xhrFields[key];\n }\n }\n for (let key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n xhr.onreadystatechange = function (): void {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n if (xhr.status === 200 || xhr.status === 304) {\n if (success != null) {\n success(xhr.response, xhr, xhr.statusText);\n if (!disableAjaxStatus) {\n fireAjaxStatus({ status: 'SUCCESS', url, payload: data });\n }\n }\n } else {\n if (error != null) {\n error(xhr, xhr.statusText);\n if (!disableAjaxStatus) {\n fireAjaxStatus({ status: 'ERROR', url, payload: data });\n }\n }\n }\n if (complete != null) {\n complete(xhr, xhr.statusText);\n if (!disableAjaxStatus) {\n fireAjaxStatus({ status: 'COMPLETE', url, payload: data });\n }\n }\n }\n };\n xhr.send(data);\n return xhr;\n } catch (e) {\n console.error(e);\n if (!disableAjaxStatus) {\n fireAjaxStatus({ status: 'ERROR', url, payload: data });\n }\n }\n },\n /**\n * This function returns XHR Request behavior subject as an Observable\n * to prevent callers from triggering the next() function on behavior subject.\n */\n getAjaxStatusStream: function (): Observable {\n return ajaxStatusStream.asObservable();\n },\n hasActiveAjaxRequests: function(): boolean {\n return ajaxActiveRequestsCount > 0;\n },\n /**\n * This function takes the constructor generated by\n * typescript, and returns a new object instance that has all of the properties and functions all defined\n * as non-inherited properties of a new instance of the passed in constructor.\n *\n * Note for polymer:\n * Polymer needs an object definition with all properties on the same object with no inheritance tree. It\n * also needs an actual object, not an object constructor. Using TypeScript to create Polymer definitions\n * is super convenient because it allows us to take advantage of inheritance, but it gives us back an object\n * that is a constructor, and has an inheritance tree.\n */\n createFlattenedClassInstance: function (token: any): any {\n let tsObject = new token();\n let definition = {};\n let objectDef;\n /* tslint:disable */\n for (let prop in tsObject) {\n /* tslint:enable */\n objectDef = getPropertyDescriptor(tsObject, prop);\n if (objectDef != null && objectDef.hasOwnProperty('get')) {\n Object.defineProperty(definition, prop, objectDef);\n } else {\n definition[prop] = tsObject[prop];\n }\n }\n return definition;\n },\n /* groupBy is like lodash's groupBy but without expression parsing - not in common-utils because backend uses lodash\n https://lodash.com/docs/4.17.4#groupBy\n */\n groupBy(items: Array, key: (item) => string): { [key: string]: any } {\n let groups = {};\n\n for (let item of items) {\n if (groups[key(item)] == null) {\n groups[key(item)] = [item];\n } else {\n groups[key(item)].push(item);\n }\n }\n\n return groups;\n },\n /**\n * Gets element that currently has focus. document.activeElement should work for most browsers, but in case not, we try using a querySelector.\n * @returns {HTMLElement} The HTMLElement that has the focus.\n */\n getElementInFocus(): HTMLElement {\n\n let elementInFocus = (\n document.hasFocus() &&\n document.activeElement !== document.body &&\n document.activeElement !== document.documentElement &&\n document.activeElement\n ) as HTMLElement || null;\n\n elementInFocus = elementInFocus || document.querySelector(':focus') as HTMLElement;\n return elementInFocus;\n },\n /**\n * Takes in a DOM node and grabs an element with the given query.\n * If the element is found we focus on it and return true, otherwise we return false.\n * @param context The DOM node we want to query\n * @param query The query used to search the DOM node\n */\n focus(query: string, context: Element | Document): boolean {\n let element = (context.querySelector(query));\n if (element != null) {\n element.focus();\n return true;\n } else {\n return false;\n }\n },\n /**\n * Throws the exception, but first prints the actual stack trace because Angular prints non useful stack traces.\n */\n throw: function(errorMessage: string): void {\n // tslint:disable-next-line\n console.trace(errorMessage);\n throw errorMessage;\n },\n roundNumber(value: number, precision: number): number {\n return NumberUtil.round(value, precision);\n },\n getStringBooleanValue(value: StringBoolean): boolean {\n return value && value.toLowerCase() === 'true' || false;\n },\n /**\n * Build a download anchor element that can be inserted into the DOM.\n *\n * @param params\n */\n buildDownloadAnchor(params: DownloadFileParams): any {\n // Create the download anchor (including data URI) and put it into the div\n let downloadAnchor = document.createElement('a');\n // The correct way to create a data URI that should work properly and without\n // data size limits is to use a blob and then use window.URL.createObjectURL()\n // to build the href from the blob.\n downloadAnchor.href = window.URL.createObjectURL(new Blob([params.content],\n {type: `${params.mediaType != null ? params.mediaType : DownloadFileMediaType.TEXT_PLAIN}`}));\n // Set the download file name attribute\n downloadAnchor.setAttribute('download', (params.downloadFileName != null ?\n params.downloadFileName : pdsUtils.DEFAULT_DOWNLOAD_FILENAME)\n + '.' + TypeExtensionMap.get(computeMediaType(params.mediaType)));\n return downloadAnchor;\n },\n /**\n * Utility function triggers a download of the provided content as a\n * file specifically in the IE browser.\n *\n * @param params\n */\n startBrowserSaveStringAsFileIE(params: DownloadFileParams): void {\n // Invoke save of content as blob in IE\n window.navigator.msSaveOrOpenBlob(new Blob([params.content],\n {type: `${params.mediaType != null ? params.mediaType : DownloadFileMediaType.TEXT_PLAIN}`}),\n (params.downloadFileName != null ? params.downloadFileName : pdsUtils.DEFAULT_DOWNLOAD_FILENAME)\n + '.' + TypeExtensionMap.get(computeMediaType(params.mediaType)));\n },\n /**\n * This utility function triggers a download of the provided content as a\n * file in the browser.\n *\n * @param params Parameters for the process, including content\n */\n startBrowserSaveStringAsFile(params: DownloadFileParams): void {\n // Check whether browser is IE\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n // Handle an IE scenario for downloading a blob as a file\n pdsUtils.startBrowserSaveStringAsFileIE(params);\n } else {\n // This path is for downloading a blob as a file for all other supported browsers\n // First, build download anchor\n let downloadAnchor = pdsUtils.buildDownloadAnchor(params);\n // Then, make anchor hidden\n downloadAnchor.setAttribute('style', 'display:none;');\n // Now put the download anchor div into the DOM\n document.body.appendChild(downloadAnchor);\n // Trigger the download in the browser\n downloadAnchor.click();\n // Delete download link after download\n pdsUtils.remove(downloadAnchor);\n }\n },\n /**\n * Default name to use for download file, in case one a name is not provided\n * in the params object by code calling downloadFile function.\n */\n DEFAULT_DOWNLOAD_FILENAME: 'Download',\n // translate a Css value to px so that we can compare normalized values\n getCssValueInPx(style: string | null): number {\n if (style == null) {\n return NaN;\n }\n\n // matches \n let match = style.match(/^(\\d+\\.?\\d*)([^\\d]+)$/);\n if (match == null) {\n throw new Error(`Unrecognized style value: ${style}`);\n }\n\n let units = match[2];\n let value;\n switch (units) {\n case 'px':\n value = parseFloat(style);\n break;\n case 'pt':\n // 1 pt is typically 4/3 of 1 px\n // 1em = 12pt = 16px = 100%\n // https://kyleschaeffer.com/css-font-size-em-vs-px-vs-pt-vs-percent\n value = parseFloat(style) * (4 / 3);\n break;\n default:\n throw new Error(`Unrecognized unit: ${units}`);\n }\n\n return value;\n },\n // get the bounding box for a text node\n getTextNodeBoundingBox(textNode: Node): BoundingBox {\n // text node positioning can be found by create a range, selecting the text, then combining each line's positioning\n let range = document.createRange();\n range.selectNodeContents(textNode);\n let rects = range.getClientRects();\n\n if (rects.length === 0) {\n throw new Error('The node does not have any text!');\n }\n\n // initialize from the first line of text\n let left = rects[0].left;\n let top = rects[0].top;\n let right = rects[0].right;\n let bottom = rects[0].bottom;\n\n // go through each line of text and expand the bounding box to encompass the new line of text\n for (let i = 1; i < rects.length; i++) {\n let rect = rects[i];\n\n left = Math.min(rect.left, left);\n top = Math.min(rect.top, top);\n right = Math.max(rect.right, right);\n bottom = Math.max(rect.bottom, bottom);\n }\n\n // the position so far is offset from the screen - change that to page offset\n let leftPageOffset = window.pageXOffset - (document.documentElement.clientLeft || 0);\n let topPageOffset = window.pageYOffset - (document.documentElement.clientTop || 0);\n\n left += leftPageOffset;\n right += leftPageOffset;\n top += topPageOffset;\n bottom += topPageOffset;\n\n // return the page offset values\n return { left, top, right, bottom };\n },\n // gets the element offset\n getOffset(element: HTMLElement, includeMargins = false): Offset {\n let rect = element.getBoundingClientRect();\n\n // the offset so far is from the screen - change that to page offset\n let left = rect.left + window.pageXOffset - (document.documentElement.clientLeft || 0);\n let top = rect.top + window.pageYOffset - (document.documentElement.clientTop || 0);\n\n // if we're including margins, in the offset, we need to grab the px value and correct the position\n if (includeMargins) {\n let style = getComputedStyle(element);\n\n if (style.marginLeft && style.marginLeft !== '0px') {\n let marginLeft = pdsUtils.getCssValueInPx(style.marginLeft);\n left -= marginLeft;\n }\n\n if (style.marginTop && style.marginTop !== '0px') {\n let marginTop = pdsUtils.getCssValueInPx(style.marginTop);\n top -= marginTop;\n }\n }\n\n return { left, top };\n },\n // gets a bounding box that represents the offset from a container along with the length and width of the box\n getTextNodeBoundingBoxOffsetFromContainer(container: HTMLElement, node: Node): BoundingBox {\n // start with the bounding box for the node, positioned based on the page\n let box = pdsUtils.getTextNodeBoundingBox(node);\n let left = box.left;\n let top = box.top;\n\n let width = box.right - box.left;\n let height = box.bottom - box.top;\n\n // then get the offset for the container, positioned based on the page\n let containerOffset = pdsUtils.getOffset(container);\n\n // use the difference between the two to determine the container -> node offset\n left -= containerOffset.left;\n top -= containerOffset.top;\n\n // determine the new right/bottom points based on the original width and height\n let right = left + width;\n let bottom = top + height;\n\n return { left, top, right, bottom };\n },\n // gets a bounding box that represents the offset from a container along with the length and width of the box\n getBoundingBoxOffsetFromContainer(container: HTMLElement, element: HTMLElement, includeMargins = false): BoundingBox {\n // start with the offset for the element, positioned based on the page\n let offset = pdsUtils.getOffset(element, includeMargins);\n let left = offset.left;\n let top = offset.top;\n\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n // if we're including margins, process the margin styles and add them as appropriate\n if (includeMargins) {\n let style = getComputedStyle(element);\n\n if (style.marginLeft && style.marginLeft !== '0px') {\n let marginLeft = pdsUtils.getCssValueInPx(style.marginLeft);\n width += marginLeft;\n }\n\n if (style.marginTop && style.marginTop !== '0px') {\n let marginTop = pdsUtils.getCssValueInPx(style.marginTop);\n height += marginTop;\n }\n\n if (style.marginRight && style.marginRight !== '0px') {\n width += pdsUtils.getCssValueInPx(style.marginRight);\n }\n\n if (style.marginBottom && style.marginBottom !== '0px') {\n height += pdsUtils.getCssValueInPx(style.marginBottom);\n }\n }\n\n // then get the offset for the container, positioned based on the page\n let containerOffset = pdsUtils.getOffset(container);\n\n // use the difference between the two to determine the container -> element offset\n left -= containerOffset.left;\n top -= containerOffset.top;\n\n // determine the new right/bottom points based on the original width and height\n let right = left + width;\n let bottom = top + height;\n\n return { left, top, right, bottom };\n },\n /**\n * Returns true if the css display property is inline, inline-block, inline-flex, or any other display values with inline in the name.\n * @param element\n * @returns {boolean}\n */\n isInline(element: HTMLElement): boolean {\n let style = getComputedStyle(element);\n return style.display == null || style.display.includes('inline');\n }\n};\n\n/**\n * Compute the media type.\n *\n * @param mediaType\n */\nfunction computeMediaType(mediaType?: DownloadFileMediaType): DownloadFileMediaType {\n // Was media type not specified?\n if (mediaType == null) {\n return DownloadFileMediaType.TEXT_PLAIN;\n }\n return mediaType;\n}\n\n/**\n * Helper function that tracks the number of active ajax requests and fires ajax status event.\n * @param ajaxStatus\n */\nfunction fireAjaxStatus(ajaxStatus: AjaxStatus): void {\n if (ajaxStatus) {\n switch (ajaxStatus.status) {\n case 'START':\n ajaxActiveRequestsCount++;\n break;\n\n case 'SUCCESS':\n case 'ERROR':\n case 'COMPLETE':\n default:\n if (ajaxActiveRequestsCount > 0) {\n ajaxActiveRequestsCount--;\n }\n break;\n }\n ajaxStatusStream.next(ajaxStatus);\n }\n}\n\n//Polyfill for .matches function. Gives IE compatibility.\n//I found this on Stack Overflow. Seems to work...\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n Element.prototype.matches =\n (Element.prototype).matchesSelector ||\n (Element.prototype).mozMatchesSelector ||\n (Element.prototype).msMatchesSelector ||\n (Element.prototype).oMatchesSelector ||\n (Element.prototype).webkitMatchesSelector ||\n function (s: any): boolean {\n let matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {\n }\n return i > -1;\n };\n}\n//Polyfill for Date.pdsToDateWidgetAttr method. This will be used for\n//validation attributes in PdsDateWidget.\nif (!(Date).prototype.pdsToDateWidgetAttr) {\n (Date).prototype.pdsToDateWidgetAttr = function (): string {\n return (this.getMonth() + 1) + '/' + this.getDate() + '/' + this.getFullYear();\n };\n}\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * @class Subject\n */\nexport class Subject extends Observable implements SubscriptionLike {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n /**@nocollapse */\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value?: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n","/**\n *

PDS Logger

\n *

\n * There are several components where having the ability to turn on console logging for debugging purposes would be really nice.\n * Especially for component specific logging rather than global logging. The logger utility allows for just that sort of thing.\n *

\n *\n *

Component Specific Loggers

\n *

Set Up

\n * //import pds\n * import pds from 'powerschool-design-system/tool-kit';\n * //require the logger in every file that will use it.\n * let feedLog = pds.logger.requiresLogger('feed');\n * let duLog = pds.logger.requiresLogger('dateUtils');\n *\n *

Use

\n * pds.log.feed('this message is from the feed logger');\n * pds.log.dateUtils('this message is from the dateUtils logger');\n *\n * OR\n *\n * feedLog('this message is from the feed logger');\n * duLog('this message is from the dateUtils logger');\n *\n *

General Logging (console.log() replacement)

\n * Instead of using console.log, you can use pds.log.\n *

Set Up

\n * import pds from 'powerschool-design-system/tool-kit';\n *\n *

Use

\n * pds.log('hello world');\n *\n *\n *

Turn on logging during runtime

\n * The logger persists your decision to localStorage which allows you to turn it on and restart your page in order to get the logging.\n * powerschoolDesignSystemToolkit.logger.setLoggerStatus('feed', true);\n * powerschoolDesignSystemToolkit.logger.setLoggerStatus('dateUtils', true);\n * powerschoolDesignSystemToolkit.logger.setLoggerStatus('log', true);\n *\n *\n * //Turn the grid widget logger on like this:\n * pds.logger.setLoggerStatus('gridWidget', true);\n */\nimport { pdsLocalStorage } from './pds-local-storage';\n\nexport let pdsLogger = {\n //Key: the logger name. Value: true if logs will show up, false if they will not show up.\n loggerStatus: {},\n //Turn on the logger like this: pds.logger.setLoggerStatus('gridWidget', true);\n setLoggerStatus: function (loggerName: string, showMessages: boolean): string {\n this.loggerStatus[loggerName] = showMessages;\n try {\n if (showMessages) {\n pdsLocalStorage.setItem('PDS-LOGGER-' + loggerName, 'true');\n } else {\n pdsLocalStorage.removeItem('PDS-LOGGER-' + loggerName);\n }\n } catch (e) {\n //If this fails, it isn't a big deal.\n }\n return 'Logger \"' + loggerName + '\" set set to ' + (showMessages ? 'show' : 'hide') + ' messages.\\n NOTE: this persists to localStorage';\n },\n /**\n * This gets called at the top of every file that needs to use a component specific logger. It registers the logger\n * function and also returns it so the developer can use which ever option is more convenient.\n * @param functionName\n * @returns log function.\n */\n requiresLogger: function (functionName: string): (msg: any, ...params: Array) => void {\n //only register things that are here.\n if (this.log[functionName] == null) {\n let loggerFunction = function (msg: any, ...params: Array): void {\n if (this.loggerStatus[functionName]) {\n console.log.apply(console, arguments);\n }\n };\n this.log[functionName] = loggerFunction.bind(this);\n //We only want to turn it off if someone has not said they want it.\n if (!this.loggerStatus.hasOwnProperty(functionName)) {\n this.loggerStatus[functionName] = false;\n }\n }\n\n return this.log[functionName];\n },\n prependLogger: function(logFunction: (msg: any, ...params: Array) => void, prependString: string): (msg: any, ...params: Array) => void {\n return function(): void {\n let args = Array.from(arguments);\n args.unshift(prependString + ' - ');\n logFunction.apply(logFunction, args);\n };\n },\n /**\n * This log function doubles as two different things.\n * 1) This is the general pds log function. pds.log('something') and can be turned on and off using setLoggerStatus.\n * 2) This is used as the map object that holds key value pairs where the value is a log function its self.\n * Key: component name, value: log function.\n * Example: pds.log.gw('this is the grid widget logger function');\n * @param msg Same as the first argument in console.log\n * @param params Same as the rest of the arguments in console.log\n */\n log: function (msg: any, ...params: Array): void {\n if ((this.loggerStatus).log) {\n console.log.apply(console, arguments);\n }\n },\n init(): void {\n //Pull the persisted turned on loggers from localStorage.\n try {\n this.loggerStatus = {};\n let pdsLoggerRegex = /^PDS-LOGGER-/;\n for (let key of Object.keys(localStorage)) {\n if (pdsLoggerRegex.test(key)) {\n if (pdsLocalStorage.getUserPersistedBoolean(key)) {\n this.loggerStatus[key.slice(11)] = true;\n }\n }\n }\n } catch (e) {\n //If this fails, it isn't a big deal.\n }\n }\n};\n\n//Bind the function to the logger so it will always execute within that context.\npdsLogger.log = pdsLogger.log.bind(pdsLogger);\n\npdsLogger.init();\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * The same Observable instance returned by any call to {@link empty} without a\n * `scheduler`. It is preferrable to use this over `empty()`.\n */\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n * \n *\n * ![](empty.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then complete\n * ```javascript\n * const result = empty().pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'\n * ```javascript\n * const interval$ = interval(1000);\n * result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throwError}\n *\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @return {Observable} An \"empty\" Observable: emits only the complete\n * notification.\n * @static true\n * @name empty\n * @owner Observable\n * @deprecated Deprecated in favor of using EMPTY constant.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nexport function emptyScheduled(scheduler: SchedulerLike) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\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 * ```javascript\n * const task = () => console.log('it works!');\n *\n * Rx.Scheduler.async.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```javascript\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 * Rx.Scheduler.async.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 * @static true\n * @name async\n * @owner Scheduler\n */\n\nexport const async = new AsyncScheduler(AsyncAction);\n","export const isArray = Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number');\n","import { SchedulerLike } from '../types';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && typeof (value).schedule === 'function';\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AnimationFrameAction extends AsyncAction {\n\n constructor(protected scheduler: AnimationFrameScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(\n () => scheduler.flush(null)));\n }\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested animation frame and\n // set the scheduled flag to undefined so the next AnimationFrameAction will\n // request its own.\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```javascript\n * const div = document.querySelector('.some-div');\n *\n * Rx.Scheduler.animationFrame.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see .some-div element growing in height\n * ```\n *\n * @static true\n * @name animationFrame\n * @owner Scheduler\n */\n\nexport const animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { SchedulerAction } from '../types';\n\nexport class VirtualTimeScheduler extends AsyncScheduler {\n\n protected static frameTimeFactor: number = 10;\n\n public frame: number = 0;\n public index: number = -1;\n\n constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any,\n public maxFrames: number = Number.POSITIVE_INFINITY) {\n super(SchedulerAction, () => this.frame);\n }\n\n /**\n * Prompt the Scheduler to execute all of its queued actions, therefore\n * clearing its queue.\n * @return {void}\n */\n public flush(): void {\n\n const {actions, maxFrames} = this;\n let error: any, action: AsyncAction;\n\n while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @nodoc\n */\nexport class VirtualAction extends AsyncAction {\n\n protected active: boolean = true;\n\n constructor(protected scheduler: VirtualTimeScheduler,\n protected work: (this: SchedulerAction, state?: T) => void,\n protected index: number = scheduler.index += 1) {\n super(scheduler, work);\n this.index = scheduler.index = index;\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (!this.id) {\n return super.schedule(state, delay);\n }\n this.active = false;\n // If an action is rescheduled, we save allocations by mutating its state,\n // pushing it to the end of the scheduler queue, and recycling the action.\n // But since the VirtualTimeScheduler is used for testing, VirtualActions\n // must be immutable so they can be inspected later.\n const action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n\n protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n this.delay = scheduler.frame + delay;\n const {actions} = scheduler;\n actions.push(this);\n (actions as Array>).sort(VirtualAction.sortActions);\n return true;\n }\n\n protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {\n return undefined;\n }\n\n protected _execute(state: T, delay: number): any {\n if (this.active === true) {\n return super._execute(state, delay);\n }\n }\n\n public static sortActions(a: VirtualAction, b: VirtualAction) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n } else if (a.index > b.index) {\n return 1;\n } else {\n return -1;\n }\n } else if (a.delay > b.delay) {\n return 1;\n } else {\n return -1;\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\n\n/**\n * Tests to see if the object is an RxJS {@link Observable}\n * @param obj the object to test\n */\nexport function isObservable(obj: any): obj is Observable {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\n\n// tslint:disable:max-line-length\n/** @deprecated resultSelector is no longer supported, use a mapping function. */\nexport function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\n\nexport function bindCallback(callbackFunc: (...args: Array
any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\nexport function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable;\n\nexport function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\n// tslint:enable:max-line-length\n\n/**\n * Converts a callback API to a function that returns an Observable.\n *\n * Give it a function `f` of type `f(x, callback)` and\n * it will return a function `g` that when called as `g(x)` will output an\n * Observable.\n *\n * `bindCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters, the\n * last parameter must be a callback function that `func` calls when it is\n * done.\n *\n * The output of `bindCallback` is a function that takes the same parameters\n * as `func`, except the last one (the callback). When the output function\n * is called with arguments it will return an Observable. If function `func`\n * calls its callback with one argument the Observable will emit that value.\n * If on the other hand the callback is called with multiple values the resulting\n * Observable will emit an array with said values as arguments.\n *\n * It is very important to remember that input function `func` is not called\n * when the output function is, but rather when the Observable returned by the output\n * function is subscribed. This means if `func` makes an AJAX request, that request\n * will be made every time someone subscribes to the resulting Observable, but not before.\n *\n * The last optional parameter - `scheduler` - can be used to control when the call\n * to `func` happens after someone subscribes to Observable, as well as when results\n * passed to callback will be emitted. By default, the subscription to an Observable calls `func`\n * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`,\n * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you use the async Scheduler\n * and call `subscribe` on the output Observable all function calls that are currently executing\n * will end before `func` is invoked.\n *\n * By default results passed to the callback are emitted immediately after `func` invokes the callback.\n * In particular, if the callback is called synchronously the subscription of the resulting Observable\n * will call the `next` function synchronously as well. If you want to defer that call,\n * you may use {@link asyncScheduler} just as before. This means that by using `Scheduler.async` you can\n * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo.\n *\n * Note that the Observable created by the output function will always emit a single value\n * and then complete immediately. If `func` calls the callback multiple times, values from subsequent\n * calls will not appear in the stream. If you need to listen for multiple calls,\n * you probably want to use {@link fromEvent} or {@link fromEventPattern} instead.\n *\n * If `func` depends on some context (`this` property) and is not already bound the context of `func`\n * will be the context that the output function has at call time. In particular, if `func`\n * is called as a method of some objec and if `func` is not already bound, in order to preserve the context\n * it is recommended that the context of the output function is set to that object as well.\n *\n * If the input function calls its callback in the \"node style\" (i.e. first argument to callback is\n * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback}\n * provides convenient error handling and probably is a better choice.\n * `bindCallback` will treat such functions the same as any other and error parameters\n * (whether passed or not) will always be interpreted as regular callback argument.\n *\n * ## Examples\n *\n * ### Convert jQuery's getJSON to an Observable API\n * ```javascript\n * // Suppose we have jQuery.getJSON('/my/url', callback)\n * var getJSONAsObservable = bindCallback(jQuery.getJSON);\n * var result = getJSONAsObservable('/my/url');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Receive an array of arguments passed to a callback\n * ```javascript\n * someFunction((a, b, c) => {\n * console.log(a); // 5\n * console.log(b); // 'some string'\n * console.log(c); // {someProperty: 'someValue'}\n * });\n *\n * const boundSomeFunction = bindCallback(someFunction);\n * boundSomeFunction().subscribe(values => {\n * console.log(values) // [5, 'some string', {someProperty: 'someValue'}]\n * });\n * ```\n *\n * ### Compare behaviour with and without async Scheduler\n * ```javascript\n * function iCallMyCallbackSynchronously(cb) {\n * cb();\n * }\n *\n * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);\n * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);\n *\n * boundSyncFn().subscribe(() => console.log('I was sync!'));\n * boundAsyncFn().subscribe(() => console.log('I was async!'));\n * console.log('This happened...');\n *\n * // Logs:\n * // I was sync!\n * // This happened...\n * // I was async!\n * ```\n *\n * ### Use bindCallback on an object method\n * ```javascript\n * const boundMethod = bindCallback(someObject.methodWithCallback);\n * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject\n * .subscribe(subscriber);\n * ```\n *\n * @see {@link bindNodeCallback}\n * @see {@link from}\n *\n * @param {function} func A function with a callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the callback would deliver.\n * @name bindCallback\n */\nexport function bindCallback(\n callbackFunc: Function,\n resultSelector?: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe(\n map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)),\n );\n }\n }\n\n return function (this: any, ...args: any[]): Observable {\n const context = this;\n let subject: AsyncSubject;\n const params = {\n context,\n subject,\n callbackFunc,\n scheduler,\n };\n return new Observable(subscriber => {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n } else {\n const state: DispatchState = {\n args, subscriber, params,\n };\n return scheduler.schedule>(dispatch, 0, state);\n }\n });\n };\n}\n\ninterface DispatchState {\n args: any[];\n subscriber: Subscriber;\n params: ParamsContext;\n}\n\ninterface ParamsContext {\n callbackFunc: Function;\n scheduler: SchedulerLike;\n context: any;\n subject: AsyncSubject;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const self = this;\n const { args, subscriber, params } = state;\n const { callbackFunc, context, scheduler } = params;\n let { subject } = params;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n subject.error(err);\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface NextState {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(this: SchedulerAction>, state: NextState) {\n const { value, subject } = state;\n subject.next(value);\n subject.complete();\n}\n\ninterface ErrorState {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(this: SchedulerAction>, state: ErrorState) {\n const { err, subject } = state;\n subject.error(err);\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { Subscriber } from '../Subscriber';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { map } from '../operators/map';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable;\nexport function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable;\n\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable;\nexport function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; /* tslint:enable:max-line-length */\n\nexport function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable;\n/**\n * Converts a Node.js-style callback API to a function that returns an\n * Observable.\n *\n * It's just like {@link bindCallback}, but the\n * callback is expected to be of type `callback(error, result)`.\n *\n * `bindNodeCallback` is not an operator because its input and output are not\n * Observables. The input is a function `func` with some parameters, but the\n * last parameter must be a callback function that `func` calls when it is\n * done. The callback function is expected to follow Node.js conventions,\n * where the first argument to the callback is an error object, signaling\n * whether call was successful. If that object is passed to callback, it means\n * something went wrong.\n *\n * The output of `bindNodeCallback` is a function that takes the same\n * parameters as `func`, except the last one (the callback). When the output\n * function is called with arguments, it will return an Observable.\n * If `func` calls its callback with error parameter present, Observable will\n * error with that value as well. If error parameter is not passed, Observable will emit\n * second parameter. If there are more parameters (third and so on),\n * Observable will emit an array with all arguments, except first error argument.\n *\n * Note that `func` will not be called at the same time output function is,\n * but rather whenever resulting Observable is subscribed. By default call to\n * `func` will happen synchronously after subscription, but that can be changed\n * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike}\n * can also control when values from callback will be emitted by Observable.\n * To find out more, check out documentation for {@link bindCallback}, where\n * {@link SchedulerLike} works exactly the same.\n *\n * As in {@link bindCallback}, context (`this` property) of input function will be set to context\n * of returned function, when it is called.\n *\n * After Observable emits value, it will complete immediately. This means\n * even if `func` calls callback again, values from second and consecutive\n * calls will never appear on the stream. If you need to handle functions\n * that call callbacks multiple times, check out {@link fromEvent} or\n * {@link fromEventPattern} instead.\n *\n * Note that `bindNodeCallback` can be used in non-Node.js environments as well.\n * \"Node.js-style\" callbacks are just a convention, so if you write for\n * browsers or any other environment and API you use implements that callback style,\n * `bindNodeCallback` can be safely used on that API functions as well.\n *\n * Remember that Error object passed to callback does not have to be an instance\n * of JavaScript built-in `Error` object. In fact, it does not even have to an object.\n * Error parameter of callback function is interpreted as \"present\", when value\n * of that parameter is truthy. It could be, for example, non-zero number, non-empty\n * string or boolean `true`. In all of these cases resulting Observable would error\n * with that value. This means usually regular style callbacks will fail very often when\n * `bindNodeCallback` is used. If your Observable errors much more often then you\n * would expect, check if callback really is called in Node.js-style and, if not,\n * switch to {@link bindCallback} instead.\n *\n * Note that even if error parameter is technically present in callback, but its value\n * is falsy, it still won't appear in array emitted by Observable.\n *\n * ## Examples\n * ### Read a file from the filesystem and get the data as an Observable\n * ```javascript\n * import * as fs from 'fs';\n * const readFileAsObservable = bindNodeCallback(fs.readFile);\n * const result = readFileAsObservable('./roadNames.txt', 'utf8');\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```\n *\n * ### Use on function calling callback with multiple arguments\n * ```javascript\n * someFunction((err, a, b) => {\n * console.log(err); // null\n * console.log(a); // 5\n * console.log(b); // \"some string\"\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(value => {\n * console.log(value); // [5, \"some string\"]\n * });\n * ```\n *\n * ### Use on function calling callback in regular style\n * ```javascript\n * someFunction(a => {\n * console.log(a); // 5\n * });\n * const boundSomeFunction = bindNodeCallback(someFunction);\n * boundSomeFunction()\n * .subscribe(\n * value => {} // never gets called\n * err => console.log(err) // 5\n * );\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {function} func Function with a Node.js-style callback as the last parameter.\n * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the\n * callbacks.\n * @return {function(...params: *): Observable} A function which returns the\n * Observable that delivers the same values the Node.js callback would\n * deliver.\n * @name bindNodeCallback\n */\nexport function bindNodeCallback(\n callbackFunc: Function,\n resultSelector: Function|SchedulerLike,\n scheduler?: SchedulerLike\n): (...args: any[]) => Observable {\n\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n // DEPRECATED PATH\n return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n }\n\n return function(this: any, ...args: any[]): Observable {\n const params: ParamsState = {\n subject: undefined,\n args,\n callbackFunc,\n scheduler,\n context: this,\n };\n return new Observable(subscriber => {\n const { context } = params;\n let { subject } = params;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n\n if (err) {\n subject.error(err);\n return;\n }\n\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n } else {\n return scheduler.schedule>(dispatch, 0, { params, subscriber, context });\n }\n });\n };\n}\n\ninterface DispatchState {\n subscriber: Subscriber;\n context: any;\n params: ParamsState;\n}\n\ninterface ParamsState {\n callbackFunc: Function;\n args: any[];\n scheduler: SchedulerLike;\n subject: AsyncSubject;\n context: any;\n}\n\nfunction dispatch(this: SchedulerAction>, state: DispatchState) {\n const { params, subscriber, context } = state;\n const { callbackFunc, args, scheduler } = params;\n let subject = params.subject;\n\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n const handler = (...innerArgs: any[]) => {\n const err = innerArgs.shift();\n if (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n } else {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule>(dispatchNext, 0, { value, subject }));\n }\n };\n\n try {\n callbackFunc.apply(context, [...args, handler]);\n } catch (err) {\n this.add(scheduler.schedule>(dispatchError, 0, { err, subject }));\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\ninterface DispatchNextArg {\n subject: AsyncSubject;\n value: T;\n}\n\nfunction dispatchNext(arg: DispatchNextArg) {\n const { value, subject } = arg;\n subject.next(value);\n subject.complete();\n}\n\ninterface DispatchErrorArg {\n subject: AsyncSubject;\n err: any;\n}\n\nfunction dispatchError(arg: DispatchErrorArg) {\n const { err, subject } = arg;\n subject.error(err);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\n// forkJoin([a$, b$, c$]);\nexport function forkJoin(sources: [ObservableInput]): Observable;\nexport function forkJoin(sources: [ObservableInput, ObservableInput]): Observable<[T, T2]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput]): Observable<[T, T2, T3]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[T, T2, T3, T4]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[T, T2, T3, T4, T5]>;\nexport function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[T, T2, T3, T4, T5, T6]>;\nexport function forkJoin(sources: Array>): Observable;\n\n// forkJoin(a$, b$, c$)\nexport function forkJoin(v1: ObservableInput): Observable;\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>;\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>;\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>;\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>;\nexport function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>;\n\n/** @deprecated resultSelector is deprecated, pipe to map instead */\nexport function forkJoin(...args: Array|Function>): Observable;\nexport function forkJoin(...sources: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Joins last values emitted by passed Observables.\n *\n * Wait for Observables to complete and then combine last values they emitted.\n *\n * ![](forkJoin.png)\n *\n * `forkJoin` is an operator that takes any number of Observables which can be passed either as an array\n * or directly as arguments. If no input Observables are provided, resulting stream will complete\n * immediately.\n *\n * `forkJoin` will wait for all passed Observables to complete and then it will emit an array with last\n * values from corresponding Observables. So if you pass `n` Observables to the operator, resulting\n * array will have `n` values, where first value is the last thing emitted by the first Observable,\n * second value is the last thing emitted by the second Observable and so on. That means `forkJoin` will\n * not emit more than once and it will complete after that. If you need to emit combined values not only\n * at the end of lifecycle of passed Observables, but also throughout it, try out {@link combineLatest}\n * or {@link zip} instead.\n *\n * In order for resulting array to have the same length as the number of input Observables, whenever any of\n * that Observables completes without emitting any value, `forkJoin` will complete at that moment as well\n * and it will not emit anything either, even if it already has some last values from other Observables.\n * Conversely, if there is an Observable that never completes, `forkJoin` will never complete as well,\n * unless at any point some other Observable completes without emitting value, which brings us back to\n * the previous case. Overall, in order for `forkJoin` to emit a value, all Observables passed as arguments\n * have to emit something at least once and complete.\n *\n * If any input Observable errors at some point, `forkJoin` will error as well and all other Observables\n * will be immediately unsubscribed.\n *\n * Optionally `forkJoin` accepts project function, that will be called with values which normally\n * would land in emitted array. Whatever is returned by project function, will appear in output\n * Observable instead. This means that default project can be thought of as a function that takes\n * all its arguments and puts them into an array. Note that project function will be called only\n * when output Observable is supposed to emit a result.\n *\n * ## Examples\n * ### Use forkJoin with operator emitting immediately\n * ```javascript\n * import { forkJoin, of } from 'rxjs';\n *\n * const observable = forkJoin(\n * of(1, 2, 3, 4),\n * of(5, 6, 7, 8),\n * );\n * observable.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('This is how it ends!'),\n * );\n *\n * // Logs:\n * // [4, 8]\n * // \"This is how it ends!\"\n * ```\n *\n * ### Use forkJoin with operator emitting after some time\n * ```javascript\n * import { forkJoin, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const observable = forkJoin(\n * interval(1000).pipe(take(3)), // emit 0, 1, 2 every second and complete\n * interval(500).pipe(take(4)), // emit 0, 1, 2, 3 every half a second and complete\n * );\n * observable.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('This is how it ends!'),\n * );\n *\n * // Logs:\n * // [2, 3] after 3 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * ### Use forkJoin with project function\n * ```javascript\n * import { jorkJoin, interval } from 'rxjs';\n * import { take } from 'rxjs/operators';\n *\n * const observable = forkJoin(\n * interval(1000).pipe(take(3)), // emit 0, 1, 2 every second and complete\n * interval(500).pipe(take(4)), // emit 0, 1, 2, 3 every half a second and complete\n * ).pipe(\n * map(([n, m]) => n + m),\n * );\n * observable.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('This is how it ends!'),\n * );\n *\n * // Logs:\n * // 5 after 3 seconds\n * // \"This is how it ends!\" immediately after\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n *\n * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments\n * passed directly to the operator.\n * @param {function} [project] Function that takes values emitted by input Observables and returns value\n * that will appear in resulting Observable instead of default array.\n * @return {Observable} Observable emitting either an array of last values emitted by passed Observables\n * or value from project function.\n */\nexport function forkJoin(\n ...sources: Array | ObservableInput[] | Function>\n): Observable {\n\n let resultSelector: Function;\n if (typeof sources[sources.length - 1] === 'function') {\n // DEPRECATED PATH\n resultSelector = sources.pop() as Function;\n }\n\n // if the first and only other argument is an array\n // assume it's been called with `forkJoin([obs1, obs2, obs3])`\n if (sources.length === 1 && isArray(sources[0])) {\n sources = sources[0] as Array>;\n }\n\n if (sources.length === 0) {\n return EMPTY;\n }\n\n if (resultSelector) {\n // DEPRECATED PATH\n return forkJoin(sources).pipe(\n map(args => resultSelector(...args))\n );\n }\n\n return new Observable(subscriber => {\n return new ForkJoinSubscriber(subscriber, sources as Array>);\n });\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ForkJoinSubscriber extends OuterSubscriber {\n private completed = 0;\n private values: T[];\n private haveValues = 0;\n\n constructor(destination: Subscriber,\n private sources: Array>) {\n super(destination);\n\n const len = sources.length;\n this.values = new Array(len);\n\n for (let i = 0; i < len; i++) {\n const source = sources[i];\n const innerSubscription = subscribeToResult(this, source, null, i);\n\n if (innerSubscription) {\n this.add(innerSubscription);\n }\n }\n }\n\n notifyNext(outerValue: any, innerValue: T,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.values[outerIndex] = innerValue;\n if (!(innerSub as any)._hasValue) {\n (innerSub as any)._hasValue = true;\n this.haveValues++;\n }\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n const { destination, haveValues, values } = this;\n const len = values.length;\n\n if (!(innerSub as any)._hasValue) {\n destination.complete();\n return;\n }\n\n this.completed++;\n\n if (this.completed !== len) {\n return;\n }\n\n if (haveValues === len) {\n destination.next(values);\n }\n\n destination.complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\nconst toString: Function = Object.prototype.toString;\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\nexport interface JQueryStyleEventEmitter {\n on: (eventName: string, handler: Function) => void;\n off: (eventName: string, handler: Function) => void;\n}\n\nexport interface HasEventTargetAddRemove {\n addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\n\nexport type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\n\nexport type FromEventTarget = EventTargetLike | ArrayLike>;\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\n/* tslint:disable:max-line-length */\nexport function fromEvent(target: FromEventTarget, eventName: string): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, resultSelector: (...args: any[]) => T): Observable;\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.\n *\n * ![](fromEvent.png)\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 * ### Emits clicks happening on the DOM document\n * ```javascript\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 * ```javascript\n * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * const clicksInDiv = fromEvent(someDivInDocument, '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} 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}\n * @name fromEvent\n */\nexport function fromEvent(\n target: FromEventTarget,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: ((...args: any[]) => T)\n): Observable {\n\n if (isFunction(options)) {\n // DEPRECATED PATH\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEvent(target, eventName, options).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n function handler(e: T) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n } else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);\n });\n}\n\nfunction setupSubscription(sourceObj: FromEventTarget, eventName: string,\n handler: (...args: any[]) => void, subscriber: Subscriber,\n options?: EventListenerOptions) {\n let unsubscribe: () => void;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n } else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n } else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler as NodeEventHandler);\n unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);\n } else if (sourceObj && (sourceObj as any).length) {\n for (let i = 0, len = (sourceObj as any).length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n } else {\n throw new TypeError('Invalid event target');\n }\n\n subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { fromEvent } from './fromEvent';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\nexport function fromEventPattern(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEventPattern(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable from an API based on addHandler/removeHandler\n * functions.\n *\n * Converts any addHandler/removeHandler API to an\n * Observable.\n *\n * ![](fromEventPattern.png)\n *\n * Creates an Observable by using the `addHandler` and `removeHandler`\n * functions to add and remove the handlers. The `addHandler` is\n * called when the output Observable is subscribed, and `removeHandler` is\n * called when the Subscription is unsubscribed.\n *\n * ## Example\n * ### Emits clicks happening on the DOM document\n * ```javascript\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * const clicks = fromEventPattern(\n * addClickHandler,\n * removeClickHandler,\n * );\n * clicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link from}\n * @see {@link fromEvent}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, signal?: any): void} [removeHandler] An optional function that\n * takes a `handler` function as argument and removes it in case it was\n * previously attached using `addHandler`. if addHandler returns signal to teardown when remove,\n * removeHandler function will forward it.\n * @return {Observable}\n * @name fromEventPattern\n */\nexport function fromEventPattern(addHandler: (handler: Function) => any,\n removeHandler?: (handler: Function, signal?: any) => void,\n resultSelector?: (...args: any[]) => T): Observable {\n\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEventPattern(addHandler, removeHandler).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable(subscriber => {\n const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);\n\n let retValue: any;\n try {\n retValue = addHandler(handler);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n\n return () => removeHandler(handler, retValue) ;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { identity } from '../util/identity';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\n\nexport type ConditionFunc = (state: S) => boolean;\nexport type IterateFunc = (state: S) => S;\nexport type ResultFunc = (state: S) => T;\n\ninterface SchedulerState {\n needIterate?: boolean;\n state: S;\n subscriber: Subscriber;\n condition?: ConditionFunc;\n iterate: IterateFunc;\n resultSelector: ResultFunc;\n}\n\nexport interface GenerateBaseOptions {\n /**\n * Initial state.\n */\n initialState: S;\n /**\n * Condition function that accepts state and returns boolean.\n * When it returns false, the generator stops.\n * If not specified, a generator never stops.\n */\n condition?: ConditionFunc;\n /**\n * Iterate function that accepts state and returns new state.\n */\n iterate: IterateFunc;\n /**\n * SchedulerLike to use for generation process.\n * By default, a generator starts immediately.\n */\n scheduler?: SchedulerLike;\n}\n\nexport interface GenerateOptions extends GenerateBaseOptions {\n /**\n * Result selection function that accepts state and returns a value to emit.\n */\n resultSelector: ResultFunc;\n}\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate(0, x => x < 10, x => x + 1, x => x);\n *\n * @example Using asap scheduler, produces sequence of 2, 3, 5, then completes.\n * const res = generate(1, x => x < 5, x => * 2, x => x + 1, asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable} The generated sequence.\n */\n export function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n resultSelector: ResultFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload uses state as an emitted value.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate(0, x => x < 10, x => x + 1);\n *\n * @example Using asap scheduler, produces sequence of 1, 2, 4, then completes.\n * const res = generate(1, x => x < 5, x => x * 2, Rx.Scheduler.asap);\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {S} initialState Initial state.\n * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).\n * @param {function (state: S): S} iterate Iteration step function.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(initialState: S,\n condition: ConditionFunc,\n iterate: IterateFunc,\n scheduler?: SchedulerLike): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateBaseOptions): Observable;\n\n/**\n * Generates an observable sequence by running a state-driven loop\n * producing the sequence's elements, using the specified scheduler\n * to send out observer messages.\n * The overload accepts options object that might contain initial state, iterate,\n * condition, result selector and scheduler.\n *\n * ![](generate.png)\n *\n * @example Produces sequence of 0, 1, 2, ... 9, then completes.\n * const res = generate({\n * initialState: 0,\n * condition: x => x < 10,\n * iterate: x => x + 1,\n * resultSelector: x => x,\n * });\n *\n * @see {@link from}\n * @see {@link Observable}\n *\n * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.\n * @returns {Observable} The generated sequence.\n */\nexport function generate(options: GenerateOptions): Observable;\n\nexport function generate(initialStateOrOptions: S | GenerateOptions,\n condition?: ConditionFunc,\n iterate?: IterateFunc,\n resultSelectorOrObservable?: (ResultFunc) | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n\n let resultSelector: ResultFunc;\n let initialState: S;\n\n if (arguments.length == 1) {\n const options = initialStateOrOptions as GenerateOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity as ResultFunc;\n scheduler = options.scheduler;\n } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions as S;\n resultSelector = identity as ResultFunc;\n scheduler = resultSelectorOrObservable as SchedulerLike;\n } else {\n initialState = initialStateOrOptions as S;\n resultSelector = resultSelectorOrObservable as ResultFunc;\n }\n\n return new Observable(subscriber => {\n let state = initialState;\n if (scheduler) {\n return scheduler.schedule>(dispatch, 0, {\n subscriber,\n iterate,\n condition,\n resultSelector,\n state\n });\n }\n\n do {\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n let value: T;\n try {\n value = resultSelector(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n\n return undefined;\n });\n}\n\nfunction dispatch(this: SchedulerAction>, state: SchedulerState) {\n const { subscriber, condition } = state;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } else {\n state.needIterate = true;\n }\n if (condition) {\n let conditionResult: boolean;\n try {\n conditionResult = condition(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n let value: T;\n try {\n value = state.resultSelector(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nimport { SubscribableOrPromise } from '../types';\n\n/**\n * Decides at subscription time which Observable will actually be subscribed.\n *\n * `If` statement for Observables.\n *\n * `iif` accepts a condition function and two Observables. When\n * an Observable returned by the operator is subscribed, condition function will be called.\n * Based on what boolean it returns at that moment, consumer will subscribe either to\n * the first Observable (if condition was true) or to the second (if condition was false). Condition\n * function may also not return anything - in that case condition will be evaluated as false and\n * second Observable will be subscribed.\n *\n * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that\n * was left undefined, resulting stream will simply complete immediately. That allows you to, rather\n * then controlling which Observable will be subscribed, decide at runtime if consumer should have access\n * to given Observable or not.\n *\n * If you have more complex logic that requires decision between more than two Observables, {@link defer}\n * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}\n * and exists only for convenience and readability reasons.\n *\n *\n * ## Examples\n * ### Change at runtime which Observable will be subscribed\n * ```javascript\n * let subscribeToFirst;\n * const firstOrSecond = iif(\n * () => subscribeToFirst,\n * of('first'),\n * of('second'),\n * );\n *\n * subscribeToFirst = true;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"first\"\n *\n * subscribeToFirst = false;\n * firstOrSecond.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"second\"\n *\n * ```\n *\n * ### Control an access to an Observable\n * ```javascript\n * let accessGranted;\n * const observableIfYouHaveAccess = iif(\n * () => accessGranted,\n * of('It seems you have an access...'), // Note that only one Observable is passed to the operator.\n * );\n *\n * accessGranted = true;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"It seems you have an access...\"\n * // \"The end\"\n *\n * accessGranted = false;\n * observableIfYouHaveAccess.subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('The end'),\n * );\n *\n * // Logs:\n * // \"The end\"\n * ```\n *\n * @see {@link defer}\n *\n * @param {function(): boolean} condition Condition which Observable should be chosen.\n * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.\n * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.\n * @return {Observable} Either first or second Observable, depending on condition.\n * @static true\n * @name iif\n * @owner Observable\n */\nexport function iif(\n condition: () => boolean,\n trueResult: SubscribableOrPromise = EMPTY,\n falseResult: SubscribableOrPromise = EMPTY\n): Observable {\n return defer(() => condition() ? trueResult : falseResult);\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { isNumeric } from '../util/isNumeric';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * Emits incremental numbers periodically in time.\n * \n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n * Emits ascending numbers, one every second (1000ms)\n * ```javascript\n * const numbers = interval(1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n * @static true\n * @name interval\n * @owner Observable\n */\nexport function interval(period = 0,\n scheduler: SchedulerLike = async): Observable {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n subscriber.add(\n scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })\n );\n return subscriber;\n });\n}\n\nfunction dispatch(this: SchedulerAction, state: IntervalState) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n\ninterface IntervalState {\n subscriber: Subscriber;\n counter: number;\n period: number;\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\n\n/**\n * An Observable that emits no items to the Observer and never completes.\n *\n * ![](never.png)\n *\n * A simple Observable that emits neither values nor errors nor the completion\n * notification. It can be used for testing purposes or for composing with other\n * Observables. Please note that by never emitting a complete notification, this\n * Observable keeps the subscription from being disposed automatically.\n * Subscriptions need to be manually disposed.\n *\n * ## Example\n * ### Emit the number 7, then never emit anything else (not even complete)\n * ```javascript\n * function info() {\n * console.log('Will not be called');\n * }\n * const result = NEVER.pipe(startWith(7));\n * result.subscribe(x => console.log(x), info, info);\n *\n * ```\n *\n * @see {@link Observable}\n * @see {@link index/EMPTY}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const NEVER = new Observable(noop);\n\n/**\n * @deprecated Deprecated in favor of using NEVER constant.\n */\nexport function never () {\n return NEVER;\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(v: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNext(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order.\n * If the source it's subscribed to emits an error or completes, it will move to the next source\n * without error.\n *\n * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}.\n *\n * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its\n * sources emits an error.\n *\n * Note that there is no way to handle any errors thrown by sources via the resuult of\n * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can\n * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`.\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```javascript\n * import { onErrorResumeNext, of } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * onErrorResumeNext(\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) throw Error();\n * return 10 / x;\n * })\n * ),\n * of(1, 2, 3),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('done'),\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"done\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array.\n * @return {Observable} An Observable that concatenates all sources, one after the other,\n * ignoring all errors, such that any error causes it to move on to the next source.\n */\nexport function onErrorResumeNext(...sources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n\n if (sources.length === 0) {\n return EMPTY;\n }\n\n const [ first, ...remainder ] = sources;\n\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext(...first);\n }\n\n return new Observable(subscriber => {\n const subNext = () => subscriber.add(\n onErrorResumeNext(...remainder).subscribe(subscriber)\n );\n\n return from(first).subscribe({\n next(value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\n/**\n * Convert an object into an observable sequence of [key, value] pairs\n * using an optional {@link SchedulerLike} to enumerate the object.\n *\n * ## Example\n * Converts a javascript object to an Observable\n * ```javascript\n * const obj = {\n * foo: 42,\n * bar: 56,\n * baz: 78,\n * };\n *\n * const source = pairs(obj);\n *\n * const subscription = source.subscribe(\n * x => console.log('Next: %s', x),\n * err => console.log('Error: %s', err),\n * () => console.log('Completed'),\n * );\n * ```\n *\n * @param {Object} obj The object to inspect and turn into an\n * Observable sequence.\n * @param {SchedulerLike} [scheduler] An optional {@link SchedulerLike} to run the\n * enumeration of the input sequence on.\n * @returns {(Observable<[string, T]>)} An observable sequence of\n * [key, value] pairs from the object.\n */\nexport function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> {\n if (!scheduler) {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length && !subscriber.closed; i++) {\n const key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n } else {\n return new Observable<[string, T]>(subscriber => {\n const keys = Object.keys(obj);\n const subscription = new Subscription();\n subscription.add(\n scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }>\n (dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));\n return subscription;\n });\n }\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction,\n state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) {\n const { keys, index, subscriber, subscription, obj } = state;\n if (!subscriber.closed) {\n if (index < keys.length) {\n const key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));\n } else {\n subscriber.complete();\n }\n }\n}\n","import { SchedulerAction, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\n\n/**\n * Creates an Observable that emits a sequence of numbers within a specified\n * range.\n *\n * Emits a sequence of numbers in a range.\n *\n * ![](range.png)\n *\n * `range` operator emits a range of sequential integers, in order, where you\n * select the `start` of the range and its `length`. By default, uses no\n * {@link SchedulerLike} and just delivers the notifications synchronously, but may use\n * an optional {@link SchedulerLike} to regulate those deliveries.\n *\n * ## Example\n * Emits the numbers 1 to 10\n * ```javascript\n * const numbers = range(1, 10);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link timer}\n * @see {@link index/interval}\n *\n * @param {number} [start=0] The value of the first integer in the sequence.\n * @param {number} [count=0] The number of sequential integers to generate.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emissions of the notifications.\n * @return {Observable} An Observable of numbers that emits a finite range of\n * sequential integers.\n * @static true\n * @name range\n * @owner Observable\n */\nexport function range(start: number = 0,\n count: number = 0,\n scheduler?: SchedulerLike): Observable {\n return new Observable(subscriber => {\n let index = 0;\n let current = start;\n\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index, count, start, subscriber\n });\n } else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n\n return undefined;\n });\n}\n\n/** @internal */\nexport function dispatch(this: SchedulerAction, state: any) {\n const { start, index, count, subscriber } = state;\n\n if (index >= count) {\n subscriber.complete();\n return;\n }\n\n subscriber.next(start);\n\n if (subscriber.closed) {\n return;\n }\n\n state.index = index + 1;\n state.start = start + 1;\n\n this.schedule(state);\n}\n","import { Observable } from '../Observable';\nimport { Unsubscribable, ObservableInput } from '../types';\nimport { from } from './from'; // from from from! LAWL\nimport { EMPTY } from './empty';\n\n/**\n * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.\n *\n * Use it when you catch yourself cleaning up after an Observable.\n *\n * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.\n * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with\n * that object and should return an Observable. That Observable can use resource object during its execution.\n * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor\n * resource object will be shared in any way between subscriptions.\n *\n * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed\n * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output\n * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,\n * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which\n * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone\n * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make\n * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.\n *\n * @see {@link defer}\n *\n * @param {function(): ISubscription} resourceFactory A function which creates any resource object\n * that implements `unsubscribe` method.\n * @param {function(resource: ISubscription): Observable} observableFactory A function which\n * creates an Observable, that can use injected resource object.\n * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but\n * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.\n */\nexport function using(resourceFactory: () => Unsubscribable | void,\n observableFactory: (resource: Unsubscribable | void) => ObservableInput | void): Observable {\n return new Observable(subscriber => {\n let resource: Unsubscribable | void;\n\n try {\n resource = resourceFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n let result: ObservableInput | void;\n try {\n result = observableFactory(resource);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n const source = result ? from(result) : EMPTY;\n const subscription = source.subscribe(subscriber);\n return () => {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n","/* Observable */\nexport { Observable } from './internal/Observable';\nexport { ConnectableObservable } from './internal/observable/ConnectableObservable';\nexport { GroupedObservable } from './internal/operators/groupBy';\nexport { Operator } from './internal/Operator';\nexport { observable } from './internal/symbol/observable';\n\n/* Subjects */\nexport { Subject } from './internal/Subject';\nexport { BehaviorSubject } from './internal/BehaviorSubject';\nexport { ReplaySubject } from './internal/ReplaySubject';\nexport { AsyncSubject } from './internal/AsyncSubject';\n\n/* Schedulers */\nexport { asap as asapScheduler } from './internal/scheduler/asap';\nexport { async as asyncScheduler } from './internal/scheduler/async';\nexport { queue as queueScheduler } from './internal/scheduler/queue';\nexport { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';\nexport { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';\nexport { Scheduler } from './internal/Scheduler';\n\n/* Subscription */\nexport { Subscription } from './internal/Subscription';\nexport { Subscriber } from './internal/Subscriber';\n\n/* Notification */\nexport { Notification } from './internal/Notification';\n\n/* Utils */\nexport { pipe } from './internal/util/pipe';\nexport { noop } from './internal/util/noop';\nexport { identity } from './internal/util/identity';\nexport { isObservable } from './internal/util/isObservable';\n\n/* Error types */\nexport { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';\nexport { EmptyError } from './internal/util/EmptyError';\nexport { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';\nexport { UnsubscriptionError } from './internal/util/UnsubscriptionError';\nexport { TimeoutError } from './internal/util/TimeoutError';\n\n/* Static observable creation exports */\nexport { bindCallback } from './internal/observable/bindCallback';\nexport { bindNodeCallback } from './internal/observable/bindNodeCallback';\nexport { combineLatest } from './internal/observable/combineLatest';\nexport { concat } from './internal/observable/concat';\nexport { defer } from './internal/observable/defer';\nexport { empty } from './internal/observable/empty';\nexport { forkJoin } from './internal/observable/forkJoin';\nexport { from } from './internal/observable/from';\nexport { fromEvent } from './internal/observable/fromEvent';\nexport { fromEventPattern } from './internal/observable/fromEventPattern';\nexport { generate } from './internal/observable/generate';\nexport { iif } from './internal/observable/iif';\nexport { interval } from './internal/observable/interval';\nexport { merge } from './internal/observable/merge';\nexport { never } from './internal/observable/never';\nexport { of } from './internal/observable/of';\nexport { onErrorResumeNext } from './internal/observable/onErrorResumeNext';\nexport { pairs } from './internal/observable/pairs';\nexport { race } from './internal/observable/race';\nexport { range } from './internal/observable/range';\nexport { throwError } from './internal/observable/throwError';\nexport { timer } from './internal/observable/timer';\nexport { using } from './internal/observable/using';\nexport { zip } from './internal/observable/zip';\n\n/* Constants */\nexport { EMPTY } from './internal/observable/empty';\nexport { NEVER } from './internal/observable/never';\n\n/* Types */\nexport * from './internal/types';\n\n/* Config */\nexport { config } from './internal/config';\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\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 * 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.\n *\n * ![](map.png)\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 * Map every click to the clientX position of that click\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\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 {Observable} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nexport function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction {\n return function mapOperation(source: Observable): Observable {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\n\nexport class MapOperator implements Operator {\n constructor(private project: (value: T, index: number) => R, private thisArg: any) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapSubscriber extends Subscriber {\n count: number = 0;\n private thisArg: any;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => R,\n thisArg: any) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n protected _next(value: T) {\n let result: any;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { errorObject } from './errorObject';\n\nlet tryCatchTarget: Function;\n\nfunction tryCatcher(this: any): any {\n try {\n return tryCatchTarget.apply(this, arguments);\n } catch (e) {\n errorObject.e = e;\n return errorObject;\n }\n}\n\nexport function tryCatch(fn: T): T {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n/**\n * Ignores source values for a duration determined by another Observable, then\n * emits the most recent value from the source Observable, then repeats this\n * process.\n *\n * It's like {@link auditTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](audit.png)\n *\n * `audit` is similar to `throttle`, but emits the last value from the silenced\n * time window, instead of the first value. `audit` emits the most recent value\n * from the source Observable on the output Observable as soon as its internal\n * timer becomes disabled, and ignores source values while the timer is enabled.\n * Initially, the timer is disabled. As soon as the first source value arrives,\n * the timer is enabled by calling the `durationSelector` function with the\n * source value, which returns the \"duration\" Observable. When the duration\n * Observable emits a value or completes, the timer is disabled, then the most\n * recent source value is emitted on the output Observable, and this process\n * repeats for the next source value.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(audit(ev => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration, returned as an Observable or a Promise.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method audit\n * @owner Observable\n */\nexport function audit(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return function auditOperatorFunction(source: Observable) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\n\nclass AuditOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass AuditSubscriber extends OuterSubscriber {\n\n private value: T;\n private hasValue: boolean = false;\n private throttled: Subscription;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n const duration = tryCatch(this.durationSelector)(value);\n if (duration === errorObject) {\n this.destination.error(errorObject.e);\n } else {\n const innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n } else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n }\n\n clearThrottle() {\n const { value, hasValue, throttled } = this;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number): void {\n this.clearThrottle();\n }\n\n notifyComplete(): void {\n this.clearThrottle();\n }\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/**\n * Ignores source values for `duration` milliseconds, then emits the most recent\n * value from the source Observable, then repeats this process.\n *\n * When it sees a source values, it ignores that plus\n * the next ones for `duration` milliseconds, and then it emits the most recent\n * value from the source.\n *\n * ![](auditTime.png)\n *\n * `auditTime` is similar to `throttleTime`, but emits the last value from the\n * silenced time window, instead of the first value. `auditTime` emits the most\n * recent value from the source Observable on the output Observable as soon as\n * its internal timer becomes disabled, and ignores source values while the\n * timer is enabled. Initially, the timer is disabled. As soon as the first\n * source value arrives, the timer is enabled. After `duration` milliseconds (or\n * the time unit determined internally by the optional `scheduler`) has passed,\n * the timer is disabled, then the most recent source value is emitted on the\n * output Observable, and this process repeats for the next source value.\n * Optionally takes a {@link SchedulerLike} for managing timers.\n *\n * ## Example\n *\n * Emit clicks at a rate of at most one click per second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(auditTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} duration Time to wait before emitting the most recent source\n * value, measured in milliseconds or the time unit determined internally\n * by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the rate-limiting behavior.\n * @return {Observable} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method auditTime\n * @owner Observable\n */\nexport function auditTime(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return audit(() => timer(duration, scheduler));\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Buffers the source Observable values until `closingNotifier` emits.\n *\n * Collects values from the past as an array, and emits\n * that array only when another Observable emits.\n *\n * ![](buffer.png)\n *\n * Buffers the incoming Observable values until the given `closingNotifier`\n * Observable emits a value, at which point it emits the buffer on the output\n * Observable and starts a new buffer internally, awaiting the next time\n * `closingNotifier` emits.\n *\n * ## Example\n *\n * On every click, emit array of most recent interval events\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const interval = interval(1000);\n * const buffered = interval.pipe(buffer(clicks));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link window}\n *\n * @param {Observable} closingNotifier An Observable that signals the\n * buffer to be emitted on the output Observable.\n * @return {Observable} An Observable of buffers, which are arrays of\n * values.\n * @method buffer\n * @owner Observable\n */\nexport function buffer(closingNotifier: Observable): OperatorFunction {\n return function bufferOperatorFunction(source: Observable) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\n\nclass BufferOperator implements Operator {\n\n constructor(private closingNotifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSubscriber extends OuterSubscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, closingNotifier: Observable) {\n super(destination);\n this.add(subscribeToResult(this, closingNotifier));\n }\n\n protected _next(value: T) {\n this.buffer.push(value);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Buffers the source Observable values until the size hits the maximum\n * `bufferSize` given.\n *\n * Collects values from the past as an array, and emits\n * that array only when its size reaches `bufferSize`.\n *\n * ![](bufferCount.png)\n *\n * Buffers a number of values from the source Observable by `bufferSize` then\n * emits the buffer and clears it, and starts a new buffer each\n * `startBufferEvery` values. If `startBufferEvery` is not provided or is\n * `null`, then new buffers are started immediately at the start of the source\n * and when each buffer closes and is emitted.\n *\n * ## Examples\n *\n * Emit the last two click events as an array\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * On every click, emit the last two click events as an array\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferCount(2, 1));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link pairwise}\n * @see {@link windowCount}\n *\n * @param {number} bufferSize The maximum size of the buffer emitted.\n * @param {number} [startBufferEvery] Interval at which to start a new buffer.\n * For example if `startBufferEvery` is `2`, then a new buffer will be started\n * on every other value from the source. A new buffer is started at the\n * beginning of the source by default.\n * @return {Observable} An Observable of arrays of buffered values.\n * @method bufferCount\n * @owner Observable\n */\nexport function bufferCount(bufferSize: number, startBufferEvery: number = null): OperatorFunction {\n return function bufferCountOperatorFunction(source: Observable) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\n\nclass BufferCountOperator implements Operator {\n private subscriberClass: any;\n\n constructor(private bufferSize: number, private startBufferEvery: number) {\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n } else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferCountSubscriber extends Subscriber {\n private buffer: T[] = [];\n\n constructor(destination: Subscriber, private bufferSize: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const buffer = this.buffer;\n\n buffer.push(value);\n\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n }\n\n protected _complete(): void {\n const buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferSkipCountSubscriber extends Subscriber {\n private buffers: Array = [];\n private count: number = 0;\n\n constructor(destination: Subscriber, private bufferSize: number, private startBufferEvery: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const { bufferSize, startBufferEvery, buffers, count } = this;\n\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n\n for (let i = buffers.length; i--; ) {\n const buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n }\n\n protected _complete(): void {\n const { buffers, destination } = this;\n\n while (buffers.length > 0) {\n let buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n super._complete();\n }\n\n}\n","import { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerAction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction;\nexport function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Buffers the source Observable values for a specific time period.\n *\n * Collects values from the past as an array, and emits\n * those arrays periodically in time.\n *\n * ![](bufferTime.png)\n *\n * Buffers values from the source for a specific time duration `bufferTimeSpan`.\n * Unless the optional argument `bufferCreationInterval` is given, it emits and\n * resets the buffer every `bufferTimeSpan` milliseconds. If\n * `bufferCreationInterval` is given, this operator opens the buffer every\n * `bufferCreationInterval` milliseconds and closes (emits and resets) the\n * buffer every `bufferTimeSpan` milliseconds. When the optional argument\n * `maxBufferSize` is specified, the buffer will be closed either after\n * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements.\n *\n * ## Examples\n *\n * Every second, emit an array of the recent click events\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(1000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds, emit the click events from the next 2 seconds\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferTime(2000, 5000));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link windowTime}\n *\n * @param {number} bufferTimeSpan The amount of time to fill each buffer array.\n * @param {number} [bufferCreationInterval] The interval at which to start new\n * buffers.\n * @param {number} [maxBufferSize] The maximum buffer size.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine buffer boundaries.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferTime\n * @owner Observable\n */\nexport function bufferTime(bufferTimeSpan: number): OperatorFunction {\n let length: number = arguments.length;\n\n let scheduler: SchedulerLike = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n\n let bufferCreationInterval: number = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n\n let maxBufferSize: number = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n\n return function bufferTimeOperatorFunction(source: Observable) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\n\nclass BufferTimeOperator implements Operator {\n constructor(private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferTimeSubscriber(\n subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler\n ));\n }\n}\n\nclass Context {\n buffer: T[] = [];\n closeAction: Subscription;\n}\n\ninterface DispatchCreateArg {\n bufferTimeSpan: number;\n bufferCreationInterval: number;\n subscriber: BufferTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface DispatchCloseArg {\n subscriber: BufferTimeSubscriber;\n context: Context;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferTimeSubscriber extends Subscriber {\n private contexts: Array> = [];\n private timespanOnly: boolean;\n\n constructor(destination: Subscriber,\n private bufferTimeSpan: number,\n private bufferCreationInterval: number,\n private maxBufferSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n const context = this.openContext();\n this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (this.timespanOnly) {\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n } else {\n const closeState = { subscriber: this, context };\n const creationState: DispatchCreateArg = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };\n this.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n }\n\n protected _next(value: T) {\n const contexts = this.contexts;\n const len = contexts.length;\n let filledBufferContext: Context;\n for (let i = 0; i < len; i++) {\n const context = contexts[i];\n const buffer = context.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context;\n }\n }\n\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n }\n\n protected _error(err: any) {\n this.contexts.length = 0;\n super._error(err);\n }\n\n protected _complete() {\n const { contexts, destination } = this;\n while (contexts.length > 0) {\n const context = contexts.shift();\n destination.next(context.buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.contexts = null;\n }\n\n protected onBufferFull(context: Context) {\n this.closeContext(context);\n const closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n const bufferTimeSpan = this.bufferTimeSpan;\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n }\n\n openContext(): Context {\n const context: Context = new Context();\n this.contexts.push(context);\n return context;\n }\n\n closeContext(context: Context) {\n this.destination.next(context.buffer);\n const contexts = this.contexts;\n\n const spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n }\n}\n\nfunction dispatchBufferTimeSpanOnly(this: SchedulerAction, state: any) {\n const subscriber: BufferTimeSubscriber = state.subscriber;\n\n const prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\n\nfunction dispatchBufferCreation(this: SchedulerAction>, state: DispatchCreateArg) {\n const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;\n const context = subscriber.openContext();\n const action = >>this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\n\nfunction dispatchBufferClose(arg: DispatchCloseArg) {\n const { subscriber, context } = arg;\n subscriber.closeContext(context);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { OperatorFunction, SubscribableOrPromise } from '../types';\n\n/**\n * Buffers the source Observable values starting from an emission from\n * `openings` and ending when the output of `closingSelector` emits.\n *\n * Collects values from the past as an array. Starts\n * collecting only when `opening` emits, and calls the `closingSelector`\n * function to get an Observable that tells when to close the buffer.\n *\n * ![](bufferToggle.png)\n *\n * Buffers values from the source by opening the buffer via signals from an\n * Observable provided to `openings`, and closing and sending the buffers when\n * a Subscribable or Promise returned by the `closingSelector` function emits.\n *\n * ## Example\n *\n * Every other second, emit the click events from the next 500ms\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const buffered = clicks.pipe(bufferToggle(openings, i =>\n * i % 2 ? interval(500) : empty()\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferWhen}\n * @see {@link windowToggle}\n *\n * @param {SubscribableOrPromise} openings A Subscribable or Promise of notifications to start new\n * buffers.\n * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns a Subscribable or Promise,\n * which, when it emits, signals that the associated buffer should be emitted\n * and cleared.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferToggle\n * @owner Observable\n */\nexport function bufferToggle(\n openings: SubscribableOrPromise,\n closingSelector: (value: O) => SubscribableOrPromise\n): OperatorFunction {\n return function bufferToggleOperatorFunction(source: Observable) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\n\nclass BufferToggleOperator implements Operator {\n\n constructor(private openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n }\n}\n\ninterface BufferContext {\n buffer: T[];\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferToggleSubscriber extends OuterSubscriber {\n private contexts: Array> = [];\n\n constructor(destination: Subscriber,\n private openings: SubscribableOrPromise,\n private closingSelector: (value: O) => SubscribableOrPromise | void) {\n super(destination);\n this.add(subscribeToResult(this, openings));\n }\n\n protected _next(value: T): void {\n const contexts = this.contexts;\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n }\n\n protected _error(err: any): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift();\n context.subscription.unsubscribe();\n context.buffer = null;\n context.subscription = null;\n }\n this.contexts = null;\n super._error(err);\n }\n\n protected _complete(): void {\n const contexts = this.contexts;\n while (contexts.length > 0) {\n const context = contexts.shift();\n this.destination.next(context.buffer);\n context.subscription.unsubscribe();\n context.buffer = null;\n context.subscription = null;\n }\n this.contexts = null;\n super._complete();\n }\n\n notifyNext(outerValue: any, innerValue: O,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.closeBuffer(( innerSub).context);\n }\n\n private openBuffer(value: O): void {\n try {\n const closingSelector = this.closingSelector;\n const closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n } catch (err) {\n this._error(err);\n }\n }\n\n private closeBuffer(context: BufferContext): void {\n const contexts = this.contexts;\n\n if (contexts && context) {\n const { buffer, subscription } = context;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n }\n\n private trySubscribe(closingNotifier: any): void {\n const contexts = this.contexts;\n\n const buffer: Array = [];\n const subscription = new Subscription();\n const context = { buffer, subscription };\n contexts.push(context);\n\n const innerSubscription = subscribeToResult(this, closingNotifier, context);\n\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n } else {\n ( innerSubscription).context = context;\n\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.\n *\n * ![](bufferWhen.png)\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * ## Example\n *\n * Emit an array of the last clicks every [1-5] random seconds\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const buffered = clicks.pipe(bufferWhen(() =>\n * interval(1000 + Math.random() * 4000)\n * ));\n * buffered.subscribe(x => console.log(x));\n * ```\n *\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n */\nexport function bufferWhen(closingSelector: () => Observable): OperatorFunction {\n return function (source: Observable) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\n\nclass BufferWhenOperator implements Operator {\n\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass BufferWhenSubscriber extends OuterSubscriber {\n private buffer: T[];\n private subscribing: boolean = false;\n private closingSubscription: Subscription;\n\n constructor(destination: Subscriber, private closingSelector: () => Observable) {\n super(destination);\n this.openBuffer();\n }\n\n protected _next(value: T) {\n this.buffer.push(value);\n }\n\n protected _complete() {\n const buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.buffer = null;\n this.subscribing = false;\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openBuffer();\n }\n\n notifyComplete(): void {\n if (this.subscribing) {\n this.complete();\n } else {\n this.openBuffer();\n }\n }\n\n openBuffer() {\n\n let { closingSubscription } = this;\n\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n\n const buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n\n this.buffer = [];\n\n const closingNotifier = tryCatch(this.closingSelector)();\n\n if (closingNotifier === errorObject) {\n this.error(errorObject.e);\n } else {\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n }\n }\n}\n","import {Operator} from '../Operator';\nimport {Subscriber} from '../Subscriber';\nimport {Observable} from '../Observable';\n\nimport {OuterSubscriber} from '../OuterSubscriber';\nimport {subscribeToResult} from '../util/subscribeToResult';\nimport {ObservableInput, OperatorFunction, MonoTypeOperatorFunction} from '../types';\n\n/**\n * Catches errors on the observable to be handled by returning a new observable or throwing an error.\n *\n * ![](catch.png)\n *\n * ## Examples\n * Continues with a different Observable when there's an error\n *\n * ```javascript\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n == 4) {\n * \t throw 'four!';\n * }\n *\t return n;\n * }),\n * catchError(err => of('I', 'II', 'III', 'IV', 'V')),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, I, II, III, IV, V\n * ```\n *\n * Retries the caught source Observable again in case of error, similar to retry() operator\n *\n * ```javascript\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * \t if (n === 4) {\n * \t throw 'four!';\n * }\n * \t return n;\n * }),\n * catchError((err, caught) => caught),\n * take(30),\n * )\n * .subscribe(x => console.log(x));\n * // 1, 2, 3, 1, 2, 3, ...\n * ```\n *\n * Throws a new error when the source Observable throws an error\n *\n * ```javascript\n * of(1, 2, 3, 4, 5).pipe(\n * map(n => {\n * if (n == 4) {\n * throw 'four!';\n * }\n * return n;\n * }),\n * catchError(err => {\n * throw 'error in source. Details: ' + err;\n * }),\n * )\n * .subscribe(\n * x => console.log(x),\n * err => console.log(err)\n * );\n * // 1, 2, 3, error in source. Details: four!\n * ```\n *\n * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which\n * is the source observable, in case you'd like to \"retry\" that observable by returning it again. Whatever observable\n * is returned by the `selector` will be used to continue the observable chain.\n * @return {Observable} An observable that originates from either the source or the observable returned by the\n * catch `selector` function.\n * @name catchError\n */\nexport function catchError(selector: (err: any, caught: Observable) => never): MonoTypeOperatorFunction;\nexport function catchError(selector: (err: any, caught: Observable) => ObservableInput): OperatorFunction;\nexport function catchError(selector: (err: any, caught: Observable) => ObservableInput): OperatorFunction {\n return function catchErrorOperatorFunction(source: Observable): Observable {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught as Observable);\n };\n}\n\nclass CatchOperator implements Operator {\n caught: Observable;\n\n constructor(private selector: (err: any, caught: Observable) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CatchSubscriber extends OuterSubscriber {\n constructor(destination: Subscriber,\n private selector: (err: any, caught: Observable) => ObservableInput,\n private caught: Observable) {\n super(destination);\n }\n\n // NOTE: overriding `error` instead of `_error` because we don't want\n // to have this flag this subscriber as `isStopped`. We can mimic the\n // behavior of the RetrySubscriber (from the `retry` operator), where\n // we unsubscribe from our source chain, reset our Subscriber flags,\n // then subscribe to the selector result.\n error(err: any) {\n if (!this.isStopped) {\n let result: any;\n try {\n result = this.selector(err, this.caught);\n } catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n this.add(subscribeToResult(this, result));\n }\n }\n}\n","import { CombineLatestOperator } from '../observable/combineLatest';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function combineAll(): OperatorFunction, T[]>;\nexport function combineAll(): OperatorFunction;\nexport function combineAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function combineAll(project: (...values: Array) => R): OperatorFunction;\nexport function combineAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new CombineLatestOperator(project));\n}\n","\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\nconst none = {};\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[]): OperatorFunction>;\n/** @deprecated Deprecated in favor of static combineLatest. */\nexport function combineLatest(array: ObservableInput[], project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static combineLatest.\n */\nexport function combineLatest(...observables: Array |\n Array> |\n ((...values: Array) => R)>): OperatorFunction {\n let project: (...values: Array) => R = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = <(...values: Array) => R>observables.pop();\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = (observables[0]).slice();\n }\n\n return (source: Observable) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project));\n}\n","import { concat as concatStatic } from '../observable/concat';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static concat. */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static concat.\n */\nexport function concat(...observables: Array | SchedulerLike>): OperatorFunction {\n return (source: Observable) => source.lift.call(concatStatic(source, ...observables));\n}\n","import { mergeMap } from './mergeMap';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMap(project: (value: T, index: number) => ObservableInput): OperatorFunction;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap(project: (value: T, index: number) => ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function concatMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, in a serialized fashion waiting for each one to complete before\n * merging the next.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link concatAll}.\n *\n * ![](concatMap.png)\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 (so-called \"inner\") Observable. Each new inner Observable is\n * concatenated with the previous inner Observable.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMap(ev => interval(1000).pipe(take(4)),\n * );\n * result.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 concat}\n * @see {@link concatAll}\n * @see {@link concatMapTo}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\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 * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking values from each projected inner\n * Observable sequentially.\n * @method concatMap\n * @owner Observable\n */\nexport function concatMap(\n project: (value: T, index: number) => ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R\n): OperatorFunction {\n return mergeMap(project, resultSelector, 1);\n}\n","import { concatMap } from './concatMap';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function concatMapTo(observable: ObservableInput): OperatorFunction;\n/** @deprecated */\nexport function concatMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated */\nexport function concatMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in a serialized fashion on the output Observable.\n *\n * It's like {@link concatMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](concatMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. Each new `innerObservable`\n * instance emitted on the output Observable is concatenated with the previous\n * `innerObservable` instance.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter\n * set to `1`.\n *\n * ## Example\n * For each click event, tick every second from 0 to 3, with no concurrency\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * concatMapTo(interval(1000).pipe(take(4))),\n * );\n * result.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 concat}\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link mergeMapTo}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An observable of values merged together by joining the\n * passed observable with itself, one after the other, for each value emitted\n * from the source.\n * @method concatMapTo\n * @owner Observable\n */\nexport function concatMapTo(\n innerObservable: ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R\n): OperatorFunction {\n return concatMap(() => innerObservable, resultSelector);\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Observer, OperatorFunction } from '../types';\nimport { Subscriber } from '../Subscriber';\n/**\n * Counts the number of emissions on the source and emits that number when the\n * source completes.\n *\n * Tells how many values were emitted, when the source\n * completes.\n *\n * ![](count.png)\n *\n * `count` transforms an Observable that emits values into an Observable that\n * emits a single value that represents the number of values emitted by the\n * source Observable. If the source Observable terminates with an error, `count`\n * will pass this error notification along without emitting a value first. If\n * the source Observable does not terminate at all, `count` will neither emit\n * a value nor terminate. This operator takes an optional `predicate` function\n * as argument, in which case the output emission will represent the number of\n * source values that matched `true` with the `predicate`.\n *\n * ## Examples\n *\n * Counts how many seconds have passed before the first click happened\n * ```javascript\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));\n * const result = secondsBeforeClick.pipe(count());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Counts how many odd numbers are there between 1 and 7\n * ```javascript\n * const numbers = range(1, 7);\n * const result = numbers.pipe(count(i => i % 2 === 1));\n * result.subscribe(x => console.log(x));\n * // Results in:\n * // 4\n * ```\n *\n * @see {@link max}\n * @see {@link min}\n * @see {@link reduce}\n *\n * @param {function(value: T, i: number, source: Observable): boolean} [predicate] A\n * boolean function to select what values are to be counted. It is provided with\n * arguments of:\n * - `value`: the value from the source Observable.\n * - `index`: the (zero-based) \"index\" of the value from the source Observable.\n * - `source`: the source Observable instance itself.\n * @return {Observable} An Observable of one number that represents the count as\n * described above.\n * @method count\n * @owner Observable\n */\n\nexport function count(predicate?: (value: T, index: number, source: Observable) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new CountOperator(predicate, source));\n}\n\nclass CountOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass CountSubscriber extends Subscriber {\n private count: number = 0;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.predicate) {\n this._tryPredicate(value);\n } else {\n this.count++;\n }\n }\n\n private _tryPredicate(value: T) {\n let result: any;\n\n try {\n result = this.predicate(value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (result) {\n this.count++;\n }\n }\n\n protected _complete(): void {\n this.destination.next(this.count);\n this.destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.\n *\n * ![](debounce.png)\n *\n * `debounce` delays values emitted by the source Observable, but drops previous\n * pending delayed emissions if a new value arrives on the source Observable.\n * This operator keeps track of the most recent value from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The value is emitted only when the duration\n * Observable emits a value or completes, and if no other value was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * value appears before the duration Observable emits, the previous value will\n * be dropped and will not be emitted on the output Observable.\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 * Emit the most recent click after a burst of clicks\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(debounce(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n * @see {@link throttle}\n *\n * @param {function(value: T): SubscribableOrPromise} 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 {Observable} An Observable that delays the emissions of the source\n * Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n * @method debounce\n * @owner Observable\n */\nexport function debounce(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceOperator(durationSelector));\n}\n\nclass DebounceOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceSubscriber extends OuterSubscriber {\n private value: T;\n private hasValue: boolean = false;\n private durationSubscription: Subscription = null;\n\n constructor(destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise) {\n super(destination);\n }\n\n protected _next(value: T): void {\n try {\n const result = this.durationSelector.call(this, value);\n\n if (result) {\n this._tryNext(value, result);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.emitValue();\n this.destination.complete();\n }\n\n private _tryNext(value: T, duration: SubscribableOrPromise): void {\n let subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue(): void {\n if (this.hasValue) {\n const value = this.value;\n const subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively if the duration selector Observable\n // emits synchronously\n this.value = null;\n this.hasValue = false;\n super._next(value);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits a value from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * It's like {@link delay}, but passes only the most\n * recent value from each burst of emissions.\n *\n * ![](debounceTime.png)\n *\n * `debounceTime` delays values emitted by the source Observable, but drops\n * previous pending delayed emissions if a new value arrives on the source\n * Observable. This operator keeps track of the most recent value from the\n * source Observable, and emits that only when `dueTime` enough time has passed\n * without any other value appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous value will be dropped\n * and will not be emitted on the output Observable.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * value 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 * Emit the most recent click after a burst of clicks\n * ```javascript\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 auditTime}\n * @see {@link debounce}\n * @see {@link delay}\n * @see {@link sampleTime}\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 {Observable} An Observable that delays the emissions of the source\n * Observable by the specified `dueTime`, and may drop some values if they occur\n * too frequently.\n * @method debounceTime\n * @owner Observable\n */\nexport function debounceTime(dueTime: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\n\nclass DebounceTimeOperator implements Operator {\n constructor(private dueTime: number, private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DebounceTimeSubscriber extends Subscriber {\n private debouncedSubscription: Subscription = null;\n private lastValue: T = null;\n private hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private dueTime: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n\n protected _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n\n debouncedNext(): void {\n this.clearDebounce();\n\n if (this.hasValue) {\n const { lastValue } = this;\n // This must be done *before* passing the value\n // along to the destination because it's possible for\n // the value to synchronously re-enter this operator\n // recursively when scheduled with things like\n // VirtualScheduler/TestScheduler.\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n\n private clearDebounce(): void {\n const debouncedSubscription = this.debouncedSubscription;\n\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\n\nfunction dispatchNext(subscriber: DebounceTimeSubscriber) {\n subscriber.debouncedNext();\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function defaultIfEmpty(defaultValue?: T): MonoTypeOperatorFunction;\nexport function defaultIfEmpty(defaultValue?: R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * If the source Observable turns out to be empty, then\n * this operator will emit a default value.\n *\n * ![](defaultIfEmpty.png)\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * ## Example\n * If no clicks happen in 5 seconds, then emit \"no clicks\"\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));\n * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param {any} [defaultValue=null] The default value used if the source\n * Observable is empty.\n * @return {Observable} An Observable that emits either the specified\n * `defaultValue` if the source Observable emits no items, or the values emitted\n * by the source Observable.\n * @method defaultIfEmpty\n * @owner Observable\n */\nexport function defaultIfEmpty(defaultValue: R = null): OperatorFunction {\n return (source: Observable) => source.lift(new DefaultIfEmptyOperator(defaultValue)) as Observable;\n}\n\nclass DefaultIfEmptyOperator implements Operator {\n\n constructor(private defaultValue: R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DefaultIfEmptySubscriber extends Subscriber {\n private isEmpty: boolean = true;\n\n constructor(destination: Subscriber, private defaultValue: R) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.isEmpty = false;\n this.destination.next(value);\n }\n\n protected _complete(): void {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","export function isDate(value: any): value is Date {\n return value instanceof Date && !isNaN(+value);\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * Time shifts each item by some specified amount of\n * milliseconds.\n *\n * ![](delay.png)\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * ## Examples\n * Delay each click by one second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * Delay all clicks until a future date happens\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const date = new Date('March 15, 2050 12:00:00'); // in the future\n * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n *\n * @param {number|Date} delay The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the time-shift for each item.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified timeout or Date.\n * @method delay\n * @owner Observable\n */\nexport function delay(delay: number|Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source: Observable) => source.lift(new DelayOperator(delayFor, scheduler));\n}\n\nclass DelayOperator implements Operator {\n constructor(private delay: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\n\ninterface DelayState {\n source: DelaySubscriber;\n destination: PartialObserver;\n scheduler: SchedulerLike;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelaySubscriber extends Subscriber {\n private queue: Array> = [];\n private active: boolean = false;\n private errored: boolean = false;\n\n private static dispatch(this: SchedulerAction>, state: DelayState): void {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n } else {\n this.unsubscribe();\n source.active = false;\n }\n }\n\n constructor(destination: Subscriber,\n private delay: number,\n private scheduler: SchedulerLike) {\n super(destination);\n }\n\n private _schedule(scheduler: SchedulerLike): void {\n this.active = true;\n this.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n\n private scheduleNotification(notification: Notification): void {\n if (this.errored === true) {\n return;\n }\n\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n\n protected _next(value: T) {\n this.scheduleNotification(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n }\n\n protected _complete() {\n this.scheduleNotification(Notification.createComplete());\n }\n}\n\nclass DelayMessage {\n constructor(public readonly time: number,\n public readonly notification: Notification) {\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */\nexport function delayWhen(delayDurationSelector: (value: T) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\nexport function delayWhen(delayDurationSelector: (value: T) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction;\n/* tslint:disable:max-line-length */\n\n/**\n * Delays the emission of items from the source Observable by a given time span\n * determined by the emissions of another Observable.\n *\n * It's like {@link delay}, but the time span of the\n * delay duration is determined by a second Observable.\n *\n * ![](delayWhen.png)\n *\n * `delayWhen` time shifts each emitted value from the source Observable by a\n * time span determined by another Observable. When the source emits a value,\n * the `delayDurationSelector` function is called with the source value as\n * argument, and should return an Observable, called the \"duration\" Observable.\n * The source value is emitted on the output Observable only when the duration\n * Observable emits a value or completes.\n * The completion of the notifier triggering the emission of the source value\n * is deprecated behavior and will be removed in future versions.\n *\n * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which\n * is an Observable. When `subscriptionDelay` emits its first value or\n * completes, the source Observable is subscribed to and starts behaving like\n * described in the previous paragraph. If `subscriptionDelay` is not provided,\n * `delayWhen` will subscribe to the source Observable as soon as the output\n * Observable is subscribed.\n *\n * ## Example\n * Delay each click by a random amount of time, between 0 and 5 seconds\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const delayedClicks = clicks.pipe(\n * delayWhen(event => interval(Math.random() * 5000)),\n * );\n * delayedClicks.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link debounce}\n * @see {@link delay}\n *\n * @param {function(value: T): Observable} delayDurationSelector A function that\n * returns an Observable for each value emitted by the source Observable, which\n * is then used to delay the emission of that item on the output Observable\n * until the Observable returned from this function emits a value.\n * @param {Observable} subscriptionDelay An Observable that triggers the\n * subscription to the source Observable once it emits any value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by an amount of time specified by the Observable returned by\n * `delayDurationSelector`.\n * @method delayWhen\n * @owner Observable\n */\nexport function delayWhen(delayDurationSelector: (value: T) => Observable,\n subscriptionDelay?: Observable): MonoTypeOperatorFunction {\n if (subscriptionDelay) {\n return (source: Observable) =>\n new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n }\n return (source: Observable) => source.lift(new DelayWhenOperator(delayDurationSelector));\n}\n\nclass DelayWhenOperator implements Operator {\n constructor(private delayDurationSelector: (value: T) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DelayWhenSubscriber extends OuterSubscriber {\n private completed: boolean = false;\n private delayNotifierSubscriptions: Array = [];\n\n constructor(destination: Subscriber,\n private delayDurationSelector: (value: T) => Observable) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n const value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n }\n\n protected _next(value: T): void {\n try {\n const delayNotifier = this.delayDurationSelector(value);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.completed = true;\n this.tryComplete();\n }\n\n private removeSubscription(subscription: InnerSubscriber): T {\n subscription.unsubscribe();\n\n const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n\n return subscription.outerValue;\n }\n\n private tryDelay(delayNotifier: Observable, value: T): void {\n const notifierSubscription = subscribeToResult(this, delayNotifier, value);\n\n if (notifierSubscription && !notifierSubscription.closed) {\n this.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n }\n\n private tryComplete(): void {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelayObservable extends Observable {\n constructor(public source: Observable, private subscriptionDelay: Observable) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SubscriptionDelaySubscriber extends Subscriber {\n private sourceSubscribed: boolean = false;\n\n constructor(private parent: Subscriber, private source: Observable) {\n super();\n }\n\n protected _next(unused: any) {\n this.subscribeToSource();\n }\n\n protected _error(err: any) {\n this.unsubscribe();\n this.parent.error(err);\n }\n\n protected _complete() {\n this.subscribeToSource();\n }\n\n private subscribeToSource(): void {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Converts an Observable of {@link Notification} objects into the emissions\n * that they represent.\n *\n * Unwraps {@link Notification} objects as actual `next`,\n * `error` and `complete` emissions. The opposite of {@link materialize}.\n *\n * ![](dematerialize.png)\n *\n * `dematerialize` is assumed to operate an Observable that only emits\n * {@link Notification} objects as `next` emissions, and does not emit any\n * `error`. Such Observable is the output of a `materialize` operation. Those\n * notifications are then unwrapped using the metadata they contain, and emitted\n * as `next`, `error`, and `complete` on the output Observable.\n *\n * Use this operator in conjunction with {@link materialize}.\n *\n * ## Example\n * Convert an Observable of Notifications to an actual Observable\n * ```javascript\n * const notifA = new Notification('N', 'A');\n * const notifB = new Notification('N', 'B');\n * const notifE = new Notification('E', undefined,\n * new TypeError('x.toUpperCase is not a function')\n * );\n * const materialized = of(notifA, notifB, notifE);\n * const upperCase = materialized.pipe(dematerialize());\n * upperCase.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Results in:\n * // A\n * // B\n * // TypeError: x.toUpperCase is not a function\n * ```\n *\n * @see {@link Notification}\n * @see {@link materialize}\n *\n * @return {Observable} An Observable that emits items and notifications\n * embedded in Notification objects emitted by the source Observable.\n * @method dematerialize\n * @owner Observable\n */\nexport function dematerialize(): OperatorFunction, T> {\n return function dematerializeOperatorFunction(source: Observable>) {\n return source.lift(new DeMaterializeOperator());\n };\n}\n\nclass DeMaterializeOperator, R> implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DeMaterializeSubscriber> extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T) {\n value.observe(this.destination);\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.\n *\n * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will\n * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the\n * source observable directly with an equality check against previous values.\n *\n * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.\n *\n * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the\n * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`\n * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so\n * that the internal `Set` can be \"flushed\", basically clearing it of values.\n *\n * ## Examples\n * A simple example with numbers\n * ```javascript\n * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(\n * distinct(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 3, 4\n * ```\n *\n * An example using a keySelector function\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * ).pipe(\n * distinct((p: Person) => p.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * ```\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [keySelector] Optional function to select which value you want to check as distinct.\n * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinct\n * @owner Observable\n */\nexport function distinct(keySelector?: (value: T) => K,\n flushes?: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctOperator(keySelector, flushes));\n}\n\nclass DistinctOperator implements Operator {\n constructor(private keySelector: (value: T) => K, private flushes: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class DistinctSubscriber extends OuterSubscriber {\n private values = new Set();\n\n constructor(destination: Subscriber, private keySelector: (value: T) => K, flushes: Observable) {\n super(destination);\n\n if (flushes) {\n this.add(subscribeToResult(this, flushes));\n }\n }\n\n notifyNext(outerValue: T, innerValue: T,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.values.clear();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n protected _next(value: T): void {\n if (this.keySelector) {\n this._useKeySelector(value);\n } else {\n this._finalizeNext(value, value);\n }\n }\n\n private _useKeySelector(value: T): void {\n let key: K;\n const { destination } = this;\n try {\n key = this.keySelector(value);\n } catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n }\n\n private _finalizeNext(key: K|T, value: T) {\n const { values } = this;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n }\n\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilChanged(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction;\nexport function distinctUntilChanged(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * ## Example\n * A simple example with numbers\n * ```javascript\n * of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4).pipe(\n * distinctUntilChanged(),\n * )\n * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4\n * ```\n *\n * An example using a compare function\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilChanged((p: Person, q: Person) => p.name === q.name),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nexport function distinctUntilChanged(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\n\nclass DistinctUntilChangedOperator implements Operator {\n constructor(private compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass DistinctUntilChangedSubscriber extends Subscriber {\n private key: K;\n private hasKey: boolean = false;\n\n constructor(destination: Subscriber,\n compare: (x: K, y: K) => boolean,\n private keySelector: (x: T) => K) {\n super(destination);\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n\n private compare(x: any, y: any): boolean {\n return x === y;\n }\n\n protected _next(value: T): void {\n\n const keySelector = this.keySelector;\n let key: any = value;\n\n if (keySelector) {\n key = tryCatch(this.keySelector)(value);\n if (key === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n\n let result: any = false;\n\n if (this.hasKey) {\n result = tryCatch(this.compare)(this.key, key);\n if (result === errorObject) {\n return this.destination.error(errorObject.e);\n }\n } else {\n this.hasKey = true;\n }\n\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n }\n}\n","import { distinctUntilChanged } from './distinctUntilChanged';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function distinctUntilKeyChanged(key: string): MonoTypeOperatorFunction;\nexport function distinctUntilKeyChanged(key: string, compare: (x: K, y: K) => boolean): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,\n * using a property accessed by using the key provided to check if the two items are distinct.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * ## Examples\n * An example comparing the name of persons\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'},\n * { age: 6, name: 'Foo'},\n * ).pipe(\n * distinctUntilKeyChanged('name'),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n * ```\n *\n * An example comparing the first letters of the name\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * of(\n * { age: 4, name: 'Foo1'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo2'},\n * { age: 6, name: 'Foo3'},\n * ).pipe(\n * distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3)),\n * )\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo1' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo2' }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n *\n * @param {string} key String key for object property lookup on each item.\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified.\n * @method distinctUntilKeyChanged\n * @owner Observable\n */\nexport function distinctUntilKeyChanged(key: string, compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction {\n return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function filter(predicate: (value: T, index: number) => value is S,\n thisArg?: any): OperatorFunction;\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * 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.\n *\n * ![](filter.png)\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 * Emit only click events whose target was a DIV element\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => 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 {function(value: T, index: number): boolean} 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 {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nexport function filter(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction {\n return function filterOperatorFunction(source: Observable): Observable {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\n\nclass FilterOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean,\n private thisArg?: any) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FilterSubscriber extends Subscriber {\n\n count: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean,\n private thisArg: any) {\n super(destination);\n }\n\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n protected _next(value: T) {\n let result: any;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, PartialObserver, TeardownLogic } from '../types';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\nexport function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction;\nexport function tap(observer: PartialObserver): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source as long as errors don't occur.\n *\n * ![](do.png)\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `tap` is not subscribed, the side effects specified by the\n * Observer will never happen. `tap` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * ## Example\n * Map every click to the clientX position of that click, while also logging the click event\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(\n * tap(ev => console.log(ev)),\n * map(ev => ev.clientX),\n * );\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n * @see {@link Observable#subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @name tap\n */\nexport function tap(nextOrObserver?: PartialObserver | ((x: T) => void),\n error?: (e: any) => void,\n complete?: () => void): MonoTypeOperatorFunction {\n return function tapOperatorFunction(source: Observable): Observable {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\n\nclass DoOperator implements Operator {\n constructor(private nextOrObserver?: PartialObserver | ((x: T) => void),\n private error?: (e: any) => void,\n private complete?: () => void) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\n\nclass TapSubscriber extends Subscriber {\n private _context: any;\n\n private _tapNext: ((value: T) => void) = noop;\n\n private _tapError: ((err: any) => void) = noop;\n\n private _tapComplete: (() => void) = noop;\n\n constructor(destination: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super(destination);\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n } else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n\n _next(value: T) {\n try {\n this._tapNext.call(this._context, value);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n\n _error(err: any) {\n try {\n this._tapError.call(this._context, err);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n\n _complete() {\n try {\n this._tapComplete.call(this._context, );\n } catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { tap } from './tap';\nimport { EmptyError } from '../util/EmptyError';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n * ```javascript\n * const click$ = fromEvent(button, 'click');\n *\n * clicks$.pipe(\n * takeUntil(timer(1000)),\n * throwIfEmpty(\n * () => new Error('the button was not clicked within 1 second')\n * ),\n * )\n * .subscribe({\n * next() { console.log('The button was clicked'); },\n * error(err) { console.error(err); },\n * });\n * ```\n *\n * @param {Function} [errorFactory] A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n */\nexport const throwIfEmpty =\n (errorFactory: (() => any) = defaultErrorFactory) => tap({\n hasValue: false,\n next() { this.hasValue = true; },\n complete() {\n if (!this.hasValue) {\n throw errorFactory();\n }\n }\n } as any);\n\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * Takes the first `count` values from the source, then\n * completes.\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n * Take the first 5 seconds of an infinite 1-second interval Observable\n * ```javascript\n * const interval = interval(1000);\n * const five = interval.pipe(take(5));\n * five.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nexport function take(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\n\nclass TakeOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeSubscriber extends Subscriber {\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\n\n/**\n * Emits the single value at the specified `index` in a sequence of emissions\n * from the source Observable.\n *\n * Emits only the i-th value, then completes.\n *\n * ![](elementAt.png)\n *\n * `elementAt` returns an Observable that emits the item at the specified\n * `index` in the source Observable, or a default value if that `index` is out\n * of range and the `default` argument is provided. If the `default` argument is\n * not given and the `index` is out of range, the output Observable will emit an\n * `ArgumentOutOfRangeError` error.\n *\n * ## Example\n * Emit only the third click event\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(elementAt(2));\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // click 1 = nothing\n * // click 2 = nothing\n * // click 3 = MouseEvent object logged to console\n * ```\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link skip}\n * @see {@link single}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the\n * Observable has completed before emitting the i-th `next` notification.\n *\n * @param {number} index Is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {T} [defaultValue] The default value returned for missing indices.\n * @return {Observable} An Observable that emits a single item, if it is found.\n * Otherwise, will emit the default value if given. If not, then emits an error.\n * @method elementAt\n * @owner Observable\n */\nexport function elementAt(index: number, defaultValue?: T): MonoTypeOperatorFunction {\n if (index < 0) { throw new ArgumentOutOfRangeError(); }\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n filter((v, i) => i === index),\n take(1),\n hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(() => new ArgumentOutOfRangeError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function endWith(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, v2: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, v2: T, v3: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, v2: T, v3: T, v4: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, v2: T, v3: T, v4: T, v5: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(v1: T, v2: T, v3: T, v4: T, v5: T, v6: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function endWith(...array: Array): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments after it finishes emitting\n * items emitted by the source Observable.\n *\n * ![](endWith.png)\n *\n * ## Example\n * ### After the source observable completes, appends an emission and then completes too.\n *\n * ```javascript\n * of('hi', 'how are you?', 'sorry, I have to go now').pipe(\n * endWith('goodbye!'),\n * )\n * .subscribe(word => console.log(word));\n * // result:\n * // 'hi'\n * // 'how are you?'\n * // 'sorry, I have to go now'\n * // 'goodbye!'\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit last.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items emitted by the source Observable\n * and then emits the items in the specified Iterable.\n * @method endWith\n * @owner Observable\n */\nexport function endWith(...array: Array): MonoTypeOperatorFunction {\n return (source: Observable) => {\n let scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n } else {\n scheduler = null;\n }\n\n const len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(source, scalar(array[0] as T));\n } else if (len > 0) {\n return concatStatic(source, fromArray(array as T[], scheduler));\n } else {\n return concatStatic(source, empty(scheduler) as any);\n }\n };\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.\n *\n * ## Example\n * A simple example emitting true if all elements are less than 5, false otherwise\n * ```javascript\n * of(1, 2, 3, 4, 5, 6).pipe(\n * every(x => x < 5),\n * )\n * .subscribe(x => console.log(x)); // -> false\n * ```\n *\n * @param {function} predicate A function for determining if an item meets a specified condition.\n * @param {any} [thisArg] Optional object to use for `this` in the callback.\n * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.\n * @method every\n * @owner Observable\n */\nexport function every(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new EveryOperator(predicate, thisArg, source));\n}\n\nclass EveryOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg?: any,\n private source?: Observable) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass EverySubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private thisArg: any,\n private source?: Observable) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n private notifyComplete(everyValueMatch: boolean): void {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n }\n\n protected _next(value: T): void {\n let result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (!result) {\n this.notifyComplete(false);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, TeardownLogic } from '../types';\n\nexport function exhaust(): OperatorFunction, T>;\nexport function exhaust(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by dropping\n * inner Observables while the previous inner Observable has not yet completed.\n *\n * Flattens an Observable-of-Observables by dropping the\n * next inner Observables while the current inner is still executing.\n *\n * ![](exhaust.png)\n *\n * `exhaust` subscribes to an Observable that emits Observables, also known as a\n * higher-order Observable. Each time it observes one of these emitted inner\n * Observables, the output Observable begins emitting the items emitted by that\n * inner Observable. So far, it behaves like {@link mergeAll}. However,\n * `exhaust` ignores every new inner Observable if the previous Observable has\n * not yet completed. Once that one completes, it will accept and flatten the\n * next inner Observable and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(5))),\n * );\n * const result = higherOrder.pipe(exhaust());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeAll}\n * @see {@link exhaustMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable that takes a source of Observables and propagates the first observable\n * exclusively until it completes before subscribing to the next.\n * @method exhaust\n * @owner Observable\n */\nexport function exhaust(): OperatorFunction {\n return (source: Observable) => source.lift(new SwitchFirstOperator());\n}\n\nclass SwitchFirstOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchFirstSubscriber extends OuterSubscriber {\n private hasCompleted: boolean = false;\n private hasSubscription: boolean = false;\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n }\n\n notifyComplete(innerSub: Subscription): void {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function exhaustMap(project: (value: T, index: number) => ObservableInput): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Use inner map instead. */\nexport function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable only if the previous projected Observable has completed.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link exhaust}.\n *\n * ![](exhaustMap.png)\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 (so-called \"inner\") Observable. When it projects a source value to\n * an Observable, the output Observable begins emitting the items emitted by\n * that projected Observable. However, `exhaustMap` ignores every new projected\n * Observable if the previous projected Observable has not yet completed. Once\n * that one completes, it will accept and flatten the next projected Observable\n * and repeat this process.\n *\n * ## Example\n * Run a finite timer for each click, only if there is no currently active timer\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * exhaustMap((ev) => interval(1000).pipe(take(5))),\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaust}\n * @see {@link mergeMap}\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 * @return {Observable} An Observable containing projected Observables\n * of each item of the source, ignoring projected Observables that start before\n * their preceding Observable has completed.\n * @method exhaustMap\n * @owner Observable\n */\nexport function exhaustMap(\n project: (value: T, index: number) => ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction {\n if (resultSelector) {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n exhaustMap((a, i) => from(project(a, i)).pipe(\n map((b, ii) => resultSelector(a, b, i, ii)),\n )),\n );\n }\n return (source: Observable) =>\n source.lift(new ExhauseMapOperator(project));\n}\n\nclass ExhauseMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ExhaustMapSubscriber extends OuterSubscriber {\n private hasSubscription = false;\n private hasCompleted = false;\n private index = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n }\n\n private tryNext(value: T): void {\n const index = this.index++;\n const destination = this.destination;\n try {\n const result = this.project(value, index);\n this.hasSubscription = true;\n this.add(subscribeToResult(this, result, value, index));\n } catch (err) {\n destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyError(err: any): void {\n this.destination.error(err);\n }\n\n notifyComplete(innerSub: Subscription): void {\n this.remove(innerSub);\n\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\nexport function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Recursively projects each source value to an Observable which is merged in\n * the output Observable.\n *\n * It's similar to {@link mergeMap}, but applies the\n * projection function to every source value as well as every output value.\n * It's recursive.\n *\n * ![](expand.png)\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. *Expand* will re-emit on the output\n * Observable every source value. Then, each output value is given to the\n * `project` function which returns an inner Observable to be merged on the\n * output Observable. Those output values resulting from the projection are also\n * given to the `project` function to produce new output values. This is how\n * *expand* behaves recursively.\n *\n * ## Example\n * Start emitting the powers of two on every click, at most 10 of them\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const powersOfTwo = clicks.pipe(\n * mapTo(1),\n * expand(x => of(2 * x).pipe(delay(1000))),\n * take(10),\n * );\n * powersOfTwo.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n *\n * @param {function(value: T, index: number) => Observable} project A function\n * that, when applied to an item emitted by the source or the output Observable,\n * returns an Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each projected inner Observable.\n * @return {Observable} An Observable that emits the source values and also\n * result of applying the projection function to each value emitted on the\n * output Observable and and merging the results of the Observables obtained\n * from this transformation.\n * @method expand\n * @owner Observable\n */\nexport function expand(project: (value: T, index: number) => ObservableInput,\n concurrent: number = Number.POSITIVE_INFINITY,\n scheduler: SchedulerLike = undefined): OperatorFunction {\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n\n return (source: Observable) => source.lift(new ExpandOperator(project, concurrent, scheduler));\n}\n\nexport class ExpandOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n }\n}\n\ninterface DispatchArg {\n subscriber: ExpandSubscriber;\n result: ObservableInput;\n value: any;\n index: number;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ExpandSubscriber extends OuterSubscriber {\n private index: number = 0;\n private active: number = 0;\n private hasCompleted: boolean = false;\n private buffer: any[];\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number,\n private scheduler: SchedulerLike) {\n super(destination);\n if (concurrent < Number.POSITIVE_INFINITY) {\n this.buffer = [];\n }\n }\n\n private static dispatch(arg: DispatchArg): void {\n const {subscriber, result, value, index} = arg;\n subscriber.subscribeToProjection(result, value, index);\n }\n\n protected _next(value: any): void {\n const destination = this.destination;\n\n if (destination.closed) {\n this._complete();\n return;\n }\n\n const index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n let result = tryCatch(this.project)(value, index);\n if (result === errorObject) {\n destination.error(errorObject.e);\n } else if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n } else {\n const state: DispatchArg = { subscriber: this, result, value, index };\n this.add(this.scheduler.schedule>(ExpandSubscriber.dispatch, 0, state));\n }\n } else {\n this.buffer.push(value);\n }\n }\n\n private subscribeToProjection(result: any, value: T, index: number): void {\n this.active++;\n this.add(subscribeToResult(this, result, value, index));\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this._next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable, but will call a specified function when\n * the source terminates on complete or error.\n * @param {function} callback Function to be called when source terminates.\n * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.\n * @method finally\n * @owner Observable\n */\nexport function finalize(callback: () => void): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new FinallyOperator(callback));\n}\n\nclass FinallyOperator implements Operator {\n constructor(private callback: () => void) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass FinallySubscriber extends Subscriber {\n constructor(destination: Subscriber, callback: () => void) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import {Observable} from '../Observable';\nimport {Operator} from '../Operator';\nimport {Subscriber} from '../Subscriber';\nimport {OperatorFunction, MonoTypeOperatorFunction} from '../types';\n\nexport function find(predicate: (value: T, index: number, source: Observable) => value is S,\n thisArg?: any): OperatorFunction;\nexport function find(predicate: (value: T, index: number) => value is S,\n thisArg?: any): OperatorFunction;\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): MonoTypeOperatorFunction;\nexport function find(predicate: (value: T, index: number) => boolean,\n thisArg?: any): MonoTypeOperatorFunction;\n/**\n * Emits only the first value emitted by the source Observable that meets some\n * condition.\n *\n * Finds the first value that passes some test and emits\n * that.\n *\n * ![](find.png)\n *\n * `find` searches for the first item in the source Observable that matches the\n * specified condition embodied by the `predicate`, and returns the first\n * occurrence in the source. Unlike {@link first}, the `predicate` is required\n * in `find`, and does not emit an error if a valid value is not found.\n *\n * ## Example\n * Find and emit the first click that happens on a DIV element\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(find(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link first}\n * @see {@link findIndex}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method find\n * @owner Observable\n */\nexport function find(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): MonoTypeOperatorFunction {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, false, thisArg));\n}\n\nexport class FindValueOperator implements Operator {\n constructor(private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class FindValueSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number, source: Observable) => boolean,\n private source: Observable,\n private yieldIndex: boolean,\n private thisArg?: any) {\n super(destination);\n }\n\n private notifyComplete(value: any): void {\n const destination = this.destination;\n\n destination.next(value);\n destination.complete();\n }\n\n protected _next(value: T): void {\n const {predicate, thisArg} = this;\n const index = this.index++;\n try {\n const result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n }\n}\n","import { Observable } from '../Observable';\nimport { FindValueOperator } from '../operators/find';\nimport { OperatorFunction } from '../types';\n/**\n * Emits only the index of the first value emitted by the source Observable that\n * meets some condition.\n *\n * It's like {@link find}, but emits the index of the\n * found value, not the value itself.\n *\n * ![](findIndex.png)\n *\n * `findIndex` searches for the first item in the source Observable that matches\n * the specified condition embodied by the `predicate`, and returns the\n * (zero-based) index of the first occurrence in the source. Unlike\n * {@link first}, the `predicate` is required in `findIndex`, and does not emit\n * an error if a valid value is not found.\n *\n * ## Example\n * Emit the index of first click that happens on a DIV element\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link first}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the index of the first item that\n * matches the condition.\n * @method find\n * @owner Observable\n */\nexport function findIndex(predicate: (value: T, index: number, source: Observable) => boolean,\n thisArg?: any): OperatorFunction {\n return (source: Observable) => source.lift(new FindValueOperator(predicate, source, true, thisArg)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function first(\n predicate?: null,\n defaultValue?: T\n): MonoTypeOperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: T\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: T\n): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * Emits only the first value. Or emits only the first\n * value that passes some test.\n *\n * ![](first.png)\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. It\n * may also take a `resultSelector` function to produce the output value from\n * the input value, and a `defaultValue` to emit in case the source completes\n * before it is able to emit a valid value. Throws an error if `defaultValue`\n * was not provided and a matching element is not found.\n *\n * ## Examples\n * Emit only the first click that happens on the DOM\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Emits the first click that happens on a DIV\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n *\n * @param {function(value: T, index: number, source: Observable): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {R} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return {Observable} An Observable of the first item that matches the\n * condition.\n * @method first\n * @owner Observable\n */\nexport function first(\n predicate?: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: T\n): MonoTypeOperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n take(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * ![](ignoreElements.png)\n *\n * ## Examples\n * ### Ignores emitted values, reacts to observable's completion.\n * ```javascript\n * of('you', 'talking', 'to', 'me').pipe(\n * ignoreElements(),\n * )\n * .subscribe(\n * word => console.log(word),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'the end'\n * ```\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nexport function ignoreElements(): OperatorFunction {\n return function ignoreElementsOperatorFunction(source: Observable) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\n\nclass IgnoreElementsOperator implements Operator {\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IgnoreElementsSubscriber extends Subscriber {\n protected _next(unused: T): void {\n // Do nothing\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\nexport function isEmpty(): OperatorFunction {\n return (source: Observable) => source.lift(new IsEmptyOperator());\n}\n\nclass IsEmptyOperator implements Operator {\n call (observer: Subscriber, source: any): any {\n return source.subscribe(new IsEmptySubscriber(observer));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass IsEmptySubscriber extends Subscriber {\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n private notifyComplete(isEmpty: boolean): void {\n const destination = this.destination;\n\n destination.next(isEmpty);\n destination.complete();\n }\n\n protected _next(value: boolean) {\n this.notifyComplete(false);\n }\n\n protected _complete() {\n this.notifyComplete(true);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * Remembers the latest `count` values, then emits those\n * only when the source completes.\n *\n * ![](takeLast.png)\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * ## Example\n * Take the last 3 values of an Observable with many values\n * ```javascript\n * const many = range(1, 100);\n * const lastThree = many.pipe(takeLast(3));\n * lastThree.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nexport function takeLast(count: number): MonoTypeOperatorFunction {\n return function takeLastOperatorFunction(source: Observable): Observable {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\n\nclass TakeLastOperator implements Operator {\n constructor(private total: number) {\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeLastSubscriber extends Subscriber {\n private ring: Array = new Array();\n private count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n\n if (ring.length < total) {\n ring.push(value);\n } else {\n const index = count % total;\n ring[index] = value;\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n let count = this.count;\n\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n\n destination.complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../../internal/types';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\n\n/* tslint:disable:max-line-length */\nexport function last(\n predicate?: null,\n defaultValue?: T\n): MonoTypeOperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: T\n): OperatorFunction;\nexport function last(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: T\n): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits only the last item emitted by the source Observable.\n * It optionally takes a predicate function as a parameter, in which case, rather than emitting\n * the last item from the source Observable, the resulting Observable will emit the last item\n * from the source Observable that satisfies the predicate.\n *\n * ![](last.png)\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {function} [predicate] - The condition any source emitted item has to satisfy.\n * @param {any} [defaultValue] - An optional default value to provide if last\n * predicate isn't met or no values were emitted.\n * @return {Observable} An Observable that emits only the last item satisfying the given condition\n * from the source, or an NoSuchElementException if no such items are emitted.\n * @throws - Throws if no items that match the predicate are emitted by the source Observable.\n */\nexport function last(\n predicate?: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: T\n): MonoTypeOperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) => source.pipe(\n predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n takeLast(1),\n hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()),\n );\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * Like {@link map}, but it maps every source value to\n * the same output value every time.\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n * Map every click to the string 'Hi'\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nexport function mapTo(value: R): OperatorFunction {\n return (source: Observable) => source.lift(new MapToOperator(value));\n}\n\nclass MapToOperator implements Operator {\n\n value: R;\n\n constructor(value: R) {\n this.value = value;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapToSubscriber extends Subscriber {\n\n value: R;\n\n constructor(destination: Subscriber, value: R) {\n super(destination);\n this.value = value;\n }\n\n protected _next(x: T) {\n this.destination.next(this.value);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { OperatorFunction } from '../types';\n\n/**\n * Represents all of the notifications from the source Observable as `next`\n * emissions marked with their original types within {@link Notification}\n * objects.\n *\n * Wraps `next`, `error` and `complete` emissions in\n * {@link Notification} objects, emitted as `next` on the output Observable.\n * \n *\n * ![](materialize.png)\n *\n * `materialize` returns an Observable that emits a `next` notification for each\n * `next`, `error`, or `complete` emission of the source Observable. When the\n * source Observable emits `complete`, the output Observable will emit `next` as\n * a Notification of type \"complete\", and then it will emit `complete` as well.\n * When the source Observable emits `error`, the output will emit `next` as a\n * Notification of type \"error\", and then `complete`.\n *\n * This operator is useful for producing metadata of the source Observable, to\n * be consumed as `next` emissions. Use it in conjunction with\n * {@link dematerialize}.\n *\n * ## Example\n * Convert a faulty Observable to an Observable of Notifications\n * ```javascript\n * const letters = of('a', 'b', 13, 'd');\n * const upperCase = letters.pipe(map(x => x.toUpperCase()));\n * const materialized = upperCase.pipe(materialize());\n * materialized.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - Notification {kind: \"N\", value: \"A\", error: undefined, hasValue: true}\n * // - Notification {kind: \"N\", value: \"B\", error: undefined, hasValue: true}\n * // - Notification {kind: \"E\", value: undefined, error: TypeError:\n * // x.toUpperCase is not a function at MapSubscriber.letters.map.x\n * // [as project] (http://1…, hasValue: false}\n * ```\n *\n * @see {@link Notification}\n * @see {@link dematerialize}\n *\n * @return {Observable>} An Observable that emits\n * {@link Notification} objects that wrap the original emissions from the source\n * Observable with metadata.\n * @method materialize\n * @owner Observable\n */\nexport function materialize(): OperatorFunction> {\n return function materializeOperatorFunction(source: Observable) {\n return source.lift(new MaterializeOperator());\n };\n}\n\nclass MaterializeOperator implements Operator> {\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MaterializeSubscriber extends Subscriber {\n constructor(destination: Subscriber>) {\n super(destination);\n }\n\n protected _next(value: T) {\n this.destination.next(Notification.createNext(value));\n }\n\n protected _error(err: any) {\n const destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n }\n\n protected _complete() {\n const destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function scan(accumulator: (acc: T[], value: T, index: number) => T[], seed?: T[]): OperatorFunction;\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed?: R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns each\n * intermediate result, with an optional seed value.\n *\n * It's like {@link reduce}, but emits the current\n * accumulation whenever the source emits a value.\n *\n * ![](scan.png)\n *\n * Combines together all values emitted on the source, using an accumulator\n * function that knows how to join a new source value into the accumulation from\n * the past. Is similar to {@link reduce}, but emits the intermediate\n * accumulations.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const ones = clicks.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.pipe(scan((acc, one) => acc + one, seed));\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link reduce}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator\n * The accumulator function called on each source value.\n * @param {T|R} [seed] The initial accumulation value.\n * @return {Observable} An observable of the accumulated values.\n * @method scan\n * @owner Observable\n */\nexport function scan(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction {\n let hasSeed = false;\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n\n return function scanOperatorFunction(source: Observable): Observable {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\n\nclass ScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T, index: number) => R, private seed?: T | R, private hasSeed: boolean = false) {}\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ScanSubscriber extends Subscriber {\n private index: number = 0;\n\n get seed(): T | R {\n return this._seed;\n }\n\n set seed(value: T | R) {\n this.hasSeed = true;\n this._seed = value;\n }\n\n constructor(destination: Subscriber, private accumulator: (acc: R, value: T, index: number) => R, private _seed: T | R,\n private hasSeed: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n } else {\n return this._tryNext(value);\n }\n }\n\n private _tryNext(value: T): void {\n const index = this.index++;\n let result: any;\n try {\n result = this.accumulator(this.seed, value, index);\n } catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { OperatorFunction, MonoTypeOperatorFunction } from '../types';\nimport { pipe } from '../util/pipe';\n\n/* tslint:disable:max-line-length */\nexport function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction;\nexport function reduce(accumulator: (acc: T[], value: T, index: number) => T[], seed: T[]): OperatorFunction;\nexport function reduce(accumulator: (acc: R, value: T, index: number) => R, seed?: R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.\n *\n * ![](reduce.png)\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n * Count the number of click events that happened in 5 seconds\n * ```javascript\n * const clicksInFiveSeconds = fromEvent(document, 'click').pipe(\n * takeUntil(interval(5000)),\n * );\n * const ones = clicksInFiveSeconds.pipe(mapTo(1));\n * const seed = 0;\n * const count = ones.reduce((acc, one) => acc + one, seed);\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function\n * called on each source value.\n * @param {R} [seed] The initial accumulation value.\n * @return {Observable} An Observable that emits a single value that is the\n * result of accumulating the values emitted by the source Observable.\n * @method reduce\n * @owner Observable\n */\nexport function reduce(accumulator: (acc: R, value: T, index?: number) => R, seed?: R): OperatorFunction {\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source: Observable): Observable {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source: Observable): Observable {\n return pipe(scan((acc, value, index) => {\n return accumulator(acc, value, index + 1);\n }), takeLast(1))(source) as Observable;\n };\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the largest value.\n *\n * ![](max.png)\n *\n * ## Examples\n * Get the maximal value of a series of numbers\n * ```javascript\n * of(5, 4, 7, 2, 8).pipe(\n * max(),\n * )\n * .subscribe(x => console.log(x)); // -> 8\n * ```\n *\n * Use a comparer function to get the maximal item\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * max((a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'\n * ```\n *\n * @see {@link min}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the largest value.\n * @method max\n * @owner Observable\n */\nexport function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const max: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) > 0 ? x : y\n : (x, y) => x > y ? x : y;\n\n return reduce(max);\n}\n","import { merge as mergeStatic } from '../observable/merge';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static merge. */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static merge.\n */\nexport function merge(...observables: Array | SchedulerLike | number>): OperatorFunction {\n return (source: Observable) => source.lift.call(mergeStatic(source, ...observables));\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction } from '../../internal/types';\nimport { mergeMap } from './mergeMap';\nimport { ObservableInput } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function mergeMapTo(innerObservable: ObservableInput, concurrent?: number): OperatorFunction;\n/** @deprecated */\nexport function mergeMapTo(innerObservable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in the output Observable.\n *\n * It's like {@link mergeMap}, but maps each value always\n * to the same inner Observable.\n *\n * ![](mergeMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then merges those resulting Observables into one\n * single Observable, which is the output Observable.\n *\n * ## Example\n * For each click event, start an interval Observable ticking every 1 second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(mergeMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n * @see {@link switchMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable`\n * @method mergeMapTo\n * @owner Observable\n */\nexport function mergeMapTo(\n innerObservable: ObservableInput,\n resultSelector?: ((outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction {\n if (typeof resultSelector === 'function') {\n return mergeMap(() => innerObservable, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(() => innerObservable, concurrent);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/**\n * Applies an accumulator function over the source Observable where the\n * accumulator function itself returns an Observable, then each intermediate\n * Observable returned is merged into the output Observable.\n *\n * It's like {@link scan}, but the Observables returned\n * by the accumulator are merged into the outer Observable.\n *\n * ## Example\n * Count the number of click events\n * ```javascript\n * const click$ = fromEvent(document, 'click');\n * const one$ = click$.pipe(mapTo(1));\n * const seed = 0;\n * const count$ = one$.pipe(\n * mergeScan((acc, one) => of(acc + one), seed),\n * );\n * count$.subscribe(x => console.log(x));\n *\n * // Results:\n * 1\n * 2\n * 3\n * 4\n * // ...and so on for each click\n * ```\n *\n * @param {function(acc: R, value: T): Observable} accumulator\n * The accumulator function called on each source value.\n * @param seed The initial accumulation value.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of\n * input Observables being subscribed to concurrently.\n * @return {Observable} An observable of the accumulated values.\n * @method mergeScan\n * @owner Observable\n */\nexport function mergeScan(accumulator: (acc: R, value: T) => ObservableInput,\n seed: R,\n concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction {\n return (source: Observable) => source.lift(new MergeScanOperator(accumulator, seed, concurrent));\n}\n\nexport class MergeScanOperator implements Operator {\n constructor(private accumulator: (acc: R, value: T) => ObservableInput,\n private seed: R,\n private concurrent: number) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MergeScanSubscriber(\n subscriber, this.accumulator, this.seed, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeScanSubscriber extends OuterSubscriber {\n private hasValue: boolean = false;\n private hasCompleted: boolean = false;\n private buffer: Observable[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private accumulator: (acc: R, value: T) => ObservableInput,\n private acc: R,\n private concurrent: number) {\n super(destination);\n }\n\n protected _next(value: any): void {\n if (this.active < this.concurrent) {\n const index = this.index++;\n const ish = tryCatch(this.accumulator)(this.acc, value);\n const destination = this.destination;\n if (ish === errorObject) {\n destination.error(errorObject.e);\n } else {\n this.active++;\n this._innerSub(ish, value, index);\n }\n } else {\n this.buffer.push(value);\n }\n }\n\n private _innerSub(ish: any, value: T, index: number): void {\n this.add(subscribeToResult(this, ish, value, index));\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const { destination } = this;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n }\n}\n","import { reduce } from './reduce';\nimport { MonoTypeOperatorFunction } from '../types';\n\n/**\n * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),\n * and when source Observable completes it emits a single item: the item with the smallest value.\n *\n * ![](min.png)\n *\n * ## Examples\n * Get the minimal value of a series of numbers\n * ```javascript\n * of(5, 4, 7, 2, 8).pipe(\n * min(),\n * )\n * .subscribe(x => console.log(x)); // -> 2\n * ```\n *\n * Use a comparer function to get the minimal item\n * ```typescript\n * interface Person {\n * age: number,\n * name: string\n * }\n * of(\n * {age: 7, name: 'Foo'},\n * {age: 5, name: 'Bar'},\n * {age: 9, name: 'Beer'},\n * ).pipe(\n * min( (a: Person, b: Person) => a.age < b.age ? -1 : 1),\n * )\n * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'\n * ```\n * @see {@link max}\n *\n * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the\n * value of two items.\n * @return {Observable} An Observable that emits item with the smallest value.\n * @method min\n * @owner Observable\n */\nexport function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction {\n const min: (x: T, y: T) => T = (typeof comparer === 'function')\n ? (x, y) => comparer(x, y) < 0 ? x : y\n : (x, y) => x < y ? x : y;\n return reduce(min);\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { ConnectableObservable, connectableObservableDescriptor } from '../observable/ConnectableObservable';\nimport { FactoryOrValue, MonoTypeOperatorFunction, OperatorFunction, UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function multicast(subjectOrSubjectFactory: FactoryOrValue>): UnaryFunction, ConnectableObservable>;\nexport function multicast(SubjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast(SubjectFactory: (this: Observable) => Subject, selector?: MonoTypeOperatorFunction): MonoTypeOperatorFunction;\nexport function multicast(SubjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>;\nexport function multicast(SubjectFactory: (this: Observable) => Subject, selector?: OperatorFunction): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * ![](multicast.png)\n *\n * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} [selector] - Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} An Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nexport function multicast(subjectOrSubjectFactory: Subject | (() => Subject),\n selector?: (source: Observable) => Observable): OperatorFunction {\n return function multicastOperatorFunction(source: Observable): Observable {\n let subjectFactory: () => Subject;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = <() => Subject>subjectOrSubjectFactory;\n } else {\n subjectFactory = function subjectFactory() {\n return >subjectOrSubjectFactory;\n };\n }\n\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n\n const connectable: any = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n\n return > connectable;\n };\n}\n\nexport class MulticastOperator implements Operator {\n constructor(private subjectFactory: () => Subject,\n private selector: (source: Observable) => Observable) {\n }\n call(subscriber: Subscriber, source: any): any {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Observable } from '../Observable';\nimport { from } from '../observable/from';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNext(v: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\nexport function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\nexport function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\nexport function onErrorResumeNext(array: ObservableInput[]): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one\n * that was passed.\n *\n * Execute series of Observables no matter what, even if it means swallowing errors.\n *\n * ![](onErrorResumeNext.png)\n *\n * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as\n * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same\n * as the source.\n *\n * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable.\n * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext`\n * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting\n * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another\n * Observable in provided series, no matter if previous Observable completed or ended with an error. This will\n * be happening until there is no more Observables left in the series, at which point returned Observable will\n * complete - even if the last subscribed stream ended with an error.\n *\n * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive\n * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable\n * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with\n * an error.\n *\n * Note that you do not get any access to errors emitted by the Observables. In particular do not\n * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take\n * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead.\n *\n *\n * ## Example\n * Subscribe to the next Observable after map fails\n * ```javascript\n * of(1, 2, 3, 0).pipe(\n * map(x => {\n * if (x === 0) { throw Error(); }\n return 10 / x;\n * }),\n * onErrorResumeNext(of(1, 2, 3)),\n * )\n * .subscribe(\n * val => console.log(val),\n * err => console.log(err), // Will never be called.\n * () => console.log('that\\'s it!')\n * );\n *\n * // Logs:\n * // 10\n * // 5\n * // 3.3333333333333335\n * // 1\n * // 2\n * // 3\n * // \"that's it!\"\n * ```\n *\n * @see {@link concat}\n * @see {@link catchError}\n *\n * @param {...ObservableInput} observables Observables passed either directly or as an array.\n * @return {Observable} An Observable that emits values from source Observable, but - if it errors - subscribes\n * to the next passed Observable and so on, until it completes or runs out of Observables.\n * @method onErrorResumeNext\n * @owner Observable\n */\n\nexport function onErrorResumeNext(...nextSources: Array |\n Array> |\n ((...values: Array) => R)>): OperatorFunction {\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = >>nextSources[0];\n }\n\n return (source: Observable) => source.lift(new OnErrorResumeNextOperator(nextSources));\n}\n\n/* tslint:disable:max-line-length */\nexport function onErrorResumeNextStatic(v: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable;\nexport function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable;\n\nexport function onErrorResumeNextStatic(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function onErrorResumeNextStatic(array: ObservableInput[]): Observable;\n/* tslint:enable:max-line-length */\n\nexport function onErrorResumeNextStatic(...nextSources: Array |\n Array> |\n ((...values: Array) => R)>): Observable {\n let source: ObservableInput = null;\n\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = >>nextSources[0];\n }\n source = nextSources.shift();\n\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\n\nclass OnErrorResumeNextOperator implements Operator {\n constructor(private nextSources: Array>) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n }\n}\n\nclass OnErrorResumeNextSubscriber extends OuterSubscriber {\n constructor(protected destination: Subscriber,\n private nextSources: Array>) {\n super(destination);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this.subscribeToNextSource();\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.subscribeToNextSource();\n }\n\n protected _error(err: any): void {\n this.subscribeToNextSource();\n }\n\n protected _complete(): void {\n this.subscribeToNextSource();\n }\n\n private subscribeToNextSource(): void {\n const next = this.nextSources.shift();\n if (next) {\n this.add(subscribeToResult(this, next));\n } else {\n this.destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\n\n/**\n * Groups pairs of consecutive emissions together and emits them as an array of\n * two values.\n *\n * Puts the current value and previous value together as\n * an array, and emits that.\n *\n * ![](pairwise.png)\n *\n * The Nth emission from the source Observable will cause the output Observable\n * to emit an array [(N-1)th, Nth] of the previous and the current value, as a\n * pair. For this reason, `pairwise` emits on the second and subsequent\n * emissions from the source Observable, but not on the first emission, because\n * there is no previous value in that case.\n *\n * ## Example\n * On every click (starting from the second), emit the relative distance to the previous click\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const pairs = clicks.pipe(pairwise());\n * const distance = pairs.pipe(\n * map(pair => {\n * const x0 = pair[0].clientX;\n * const y0 = pair[0].clientY;\n * const x1 = pair[1].clientX;\n * const y1 = pair[1].clientY;\n * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));\n * }),\n * );\n * distance.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n *\n * @return {Observable>} An Observable of pairs (as arrays) of\n * consecutive values from the source Observable.\n * @method pairwise\n * @owner Observable\n */\nexport function pairwise(): OperatorFunction {\n return (source: Observable) => source.lift(new PairwiseOperator());\n}\n\nclass PairwiseOperator implements Operator {\n call(subscriber: Subscriber<[T, T]>, source: any): any {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass PairwiseSubscriber extends Subscriber {\n private prev: T;\n private hasPrev: boolean = false;\n\n constructor(destination: Subscriber<[T, T]>) {\n super(destination);\n }\n\n _next(value: T): void {\n if (this.hasPrev) {\n this.destination.next([this.prev, value]);\n } else {\n this.hasPrev = true;\n }\n\n this.prev = value;\n }\n}\n","export function not(pred: Function, thisArg: any): Function {\n function notPred(): any {\n return !(( notPred).pred.apply(( notPred).thisArg, arguments));\n }\n ( notPred).pred = pred;\n ( notPred).thisArg = thisArg;\n return notPred;\n}","import { not } from '../util/not';\nimport { filter } from './filter';\nimport { Observable } from '../Observable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.\n *\n * ![](partition.png)\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * ## Example\n * Partition click events into those on DIV elements and those elsewhere\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));\n * const clicksOnDivs = parts[0];\n * const clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n * ```\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable, Observable]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n */\nexport function partition(predicate: (value: T, index: number) => boolean,\n thisArg?: any): UnaryFunction, [Observable, Observable]> {\n return (source: Observable) => [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg) as any)(source)\n ] as [Observable, Observable];\n}\n","import { Observable } from '../Observable';\nimport { map } from './map';\nimport { OperatorFunction } from '../types';\n\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.\n *\n * ![](pluck.png)\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * ## Example\n * Map every click to the tagName of the clicked target element\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const tagNames = clicks.pipe(pluck('target', 'tagName'));\n * tagNames.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} A new Observable of property values from the source values.\n * @method pluck\n * @owner Observable\n */\nexport function pluck(...properties: string[]): OperatorFunction {\n const length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return (source: Observable) => map(plucker(properties, length))(source as any);\n}\n\nfunction plucker(props: string[], length: number): (x: string) => any {\n const mapper = (x: string) => {\n let currentProp = x;\n for (let i = 0; i < length; i++) {\n const p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n } else {\n return undefined;\n }\n }\n return currentProp;\n };\n\n return mapper;\n}\n","import { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publish(): UnaryFunction, ConnectableObservable>;\nexport function publish(selector: OperatorFunction): OperatorFunction;\nexport function publish(selector: MonoTypeOperatorFunction): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called\n * before it begins emitting items to those Observers that have subscribed to it.\n *\n * ![](publish.png)\n *\n * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times\n * as needed, without causing multiple subscriptions to the source sequence.\n * Subscribers to the given source will receive all notifications of the source from the time of the subscription on.\n * @return A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.\n * @method publish\n * @owner Observable\n */\nexport function publish(selector?: OperatorFunction): MonoTypeOperatorFunction | OperatorFunction {\n return selector ?\n multicast(() => new Subject(), selector) :\n multicast(new Subject());\n}\n","import { Observable } from '../Observable';\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * @param value\n * @return {ConnectableObservable}\n * @method publishBehavior\n * @owner Observable\n */\nexport function publishBehavior(value: T): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new BehaviorSubject(value))(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction } from '../types';\n\n/**\n * Returns a connectable observable sequence that shares a single subscription to the\n * underlying sequence containing only the last notification.\n *\n * ![](publishLast.png)\n *\n * Similar to {@link publish}, but it waits until the source observable completes and stores\n * the last emitted value.\n * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last\n * value even if it has no more subscribers. If subsequent subscriptions happen, they will\n * immediately get that last stored value and complete.\n *\n * ## Example\n *\n * ```js\n * const connectable =\n * interval(1000)\n * .pipe(\n * tap(x => console.log(\"side effect\", x)),\n * take(3),\n * publishLast());\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. A\", x),\n * err => console.log(\"Sub. A Error\", err),\n * () => console.log( \"Sub. A Complete\"));\n *\n * connectable.subscribe(\n * x => console.log( \"Sub. B\", x),\n * err => console.log(\"Sub. B Error\", err),\n * () => console.log( \"Sub. B Complete\"));\n *\n * connectable.connect();\n *\n * // Results:\n * // \"side effect 0\"\n * // \"side effect 1\"\n * // \"side effect 2\"\n * // \"Sub. A 2\"\n * // \"Sub. B 2\"\n * // \"Sub. A Complete\"\n * // \"Sub. B Complete\"\n * ```\n *\n * @see {@link ConnectableObservable}\n * @see {@link publish}\n * @see {@link publishReplay}\n * @see {@link publishBehavior}\n *\n * @return {ConnectableObservable} An observable sequence that contains the elements of a\n * sequence produced by multicasting the source sequence.\n * @method publishLast\n * @owner Observable\n */\n\nexport function publishLast(): UnaryFunction, ConnectableObservable> {\n return (source: Observable) => multicast(new AsyncSubject())(source);\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function publishReplay(bufferSize?: number, windowTime?: number, selector?: OperatorFunction, scheduler?: SchedulerLike): OperatorFunction;\nexport function publishReplay(bufferSize?: number, windowTime?: number, selector?: MonoTypeOperatorFunction, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\nexport function publishReplay(bufferSize?: number,\n windowTime?: number,\n selectorOrScheduler?: SchedulerLike | OperatorFunction,\n scheduler?: SchedulerLike): UnaryFunction, ConnectableObservable> {\n\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n\n const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n const subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n\n return (source: Observable) => multicast(() => subject, selector)(source) as ConnectableObservable;\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { MonoTypeOperatorFunction, OperatorFunction } from '../types';\nimport { race as raceStatic } from '../observable/race';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(observables: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): MonoTypeOperatorFunction;\n/** @deprecated Deprecated in favor of static race. */\nexport function race(...observables: Array | Array>>): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item\n * from the combination of this Observable and supplied Observables.\n * @param {...Observables} ...observables Sources used to race for which Observable emits first.\n * @return {Observable} An Observable that mirrors the output of the first Observable to emit an item.\n * @method race\n * @owner Observable\n * @deprecated Deprecated in favor of static race.\n */\nexport function race(...observables: Array | Array>>): MonoTypeOperatorFunction {\n return function raceOperatorFunction(source: Observable) {\n // if the only argument is an array, it was most likely called with\n // `pair([obs1, obs2, ...])`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = >>observables[0];\n }\n\n return source.lift.call(raceStatic(source, ...observables));\n };\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { empty } from '../observable/empty';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that repeats the stream of items emitted by the source Observable at most count times.\n *\n * ![](repeat.png)\n *\n * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield\n * an empty Observable.\n * @return {Observable} An Observable that repeats the stream of items emitted by the source Observable at most\n * count times.\n * @method repeat\n * @owner Observable\n */\nexport function repeat(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => {\n if (count === 0) {\n return empty();\n } else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n } else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\n\nclass RepeatOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatSubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n complete() {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.complete();\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source\n * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable\n * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise\n * this method will resubscribe to the source Observable.\n *\n * ![](repeatWhen.png)\n *\n * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with\n * which a user can `complete` or `error`, aborting the repetition.\n * @return {Observable} The source Observable modified with repeat logic.\n * @method repeatWhen\n * @owner Observable\n */\nexport function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RepeatWhenOperator(notifier));\n}\n\nclass RepeatWhenOperator implements Operator {\n constructor(protected notifier: (notifications: Observable) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RepeatWhenSubscriber extends OuterSubscriber {\n\n private notifications: Subject;\n private retries: Observable;\n private retriesSubscription: Subscription;\n private sourceIsBeingSubscribedTo: boolean = true;\n\n constructor(destination: Subscriber,\n private notifier: (notifications: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n if (this.sourceIsBeingSubscribedTo === false) {\n return super.complete();\n }\n }\n\n complete() {\n this.sourceIsBeingSubscribedTo = false;\n\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return super.complete();\n }\n\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { notifications, retriesSubscription } = this;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null;\n super._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n return this;\n }\n\n private subscribeToRetries() {\n this.notifications = new Subject();\n const retries = tryCatch(this.notifier)(this.notifications);\n if (retries === errorObject) {\n return super.complete();\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given\n * as a number parameter) rather than propagating the `error` call.\n *\n * ![](retry.png)\n *\n * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted\n * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second\n * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications\n * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].\n * @param {number} count - Number of retry attempts before failing.\n * @return {Observable} The source Observable modified with the retry logic.\n * @method retry\n * @owner Observable\n */\nexport function retry(count: number = -1): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryOperator(count, source));\n}\n\nclass RetryOperator implements Operator {\n constructor(private count: number,\n private source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetrySubscriber extends Subscriber {\n constructor(destination: Subscriber,\n private count: number,\n private source: Observable) {\n super(destination);\n }\n error(err: any) {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.error(err);\n } else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable\n * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.\n * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child\n * subscription. Otherwise this method will resubscribe to the source Observable.\n *\n * ![](retryWhen.png)\n *\n * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a\n * user can `complete` or `error`, aborting the retry.\n * @return {Observable} The source Observable modified with retry logic.\n * @method retryWhen\n * @owner Observable\n */\nexport function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new RetryWhenOperator(notifier, source));\n}\n\nclass RetryWhenOperator implements Operator {\n constructor(protected notifier: (errors: Observable) => Observable,\n protected source: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass RetryWhenSubscriber extends OuterSubscriber {\n\n private errors: Subject;\n private retries: Observable;\n private retriesSubscription: Subscription;\n\n constructor(destination: Subscriber,\n private notifier: (errors: Observable) => Observable,\n private source: Observable) {\n super(destination);\n }\n\n error(err: any) {\n if (!this.isStopped) {\n\n let errors = this.errors;\n let retries: any = this.retries;\n let retriesSubscription = this.retriesSubscription;\n\n if (!retries) {\n errors = new Subject();\n retries = tryCatch(this.notifier)(errors);\n if (retries === errorObject) {\n return super.error(errorObject.e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n } else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n\n this._unsubscribeAndRecycle();\n\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n\n errors.next(err);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { errors, retriesSubscription } = this;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const { _unsubscribe } = this;\n\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n\n this.source.subscribe(this);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits the most recently emitted value from the source Observable whenever\n * another Observable, the `notifier`, emits.\n *\n * It's like {@link sampleTime}, but samples whenever\n * the `notifier` Observable emits something.\n *\n * ![](sample.png)\n *\n * Whenever the `notifier` Observable emits a value or completes, `sample`\n * looks at the source Observable and emits whichever value it has most recently\n * emitted since the previous sampling, unless the source has not emitted\n * anything since the previous sampling. The `notifier` is subscribed to as soon\n * as the output Observable is subscribed.\n *\n * ## Example\n * On every click, sample the most recent \"seconds\" timer\n * ```javascript\n * const seconds = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = seconds.pipe(sample(clicks));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {Observable} notifier The Observable to use for sampling the\n * source Observable.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable whenever the notifier Observable\n * emits value or completes.\n * @method sample\n * @owner Observable\n */\nexport function sample(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleOperator(notifier));\n}\n\nclass SampleOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const sampleSubscriber = new SampleSubscriber(subscriber);\n const subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleSubscriber extends OuterSubscriber {\n private value: T;\n private hasValue: boolean = false;\n\n protected _next(value: T) {\n this.value = value;\n this.hasValue = true;\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.emitValue();\n }\n\n notifyComplete(): void {\n this.emitValue();\n }\n\n emitValue() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Emits the most recently emitted value from the source Observable within\n * periodic time intervals.\n *\n * Samples the source Observable at periodic time\n * intervals, emitting what it samples.\n *\n * ![](sampleTime.png)\n *\n * `sampleTime` periodically looks at the source Observable and emits whichever\n * value it has most recently emitted since the previous sampling, unless the\n * source has not emitted anything since the previous sampling. The sampling\n * happens periodically in time every `period` milliseconds (or the time unit\n * defined by the optional `scheduler` argument). The sampling starts as soon as\n * the output Observable is subscribed.\n *\n * ## Example\n * Every second, emit the most recent click at most once\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(sampleTime(1000));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {number} period The sampling period expressed in milliseconds or the\n * time unit determined internally by the optional `scheduler`.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the sampling.\n * @return {Observable} An Observable that emits the results of sampling the\n * values emitted by the source Observable at the specified time interval.\n * @method sampleTime\n * @owner Observable\n */\nexport function sampleTime(period: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SampleTimeOperator(period, scheduler));\n}\n\nclass SampleTimeOperator implements Operator {\n constructor(private period: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SampleTimeSubscriber extends Subscriber {\n lastValue: T;\n hasValue: boolean = false;\n\n constructor(destination: Subscriber,\n private period: number,\n private scheduler: SchedulerLike) {\n super(destination);\n this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));\n }\n\n protected _next(value: T) {\n this.lastValue = value;\n this.hasValue = true;\n }\n\n notifyNext() {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n }\n}\n\nfunction dispatchNotification(this: SchedulerAction, state: any) {\n let { subscriber, period } = state;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\n\nimport { Observer, OperatorFunction } from '../types';\n\n/**\n * Compares all values of two observables in sequence using an optional comparor function\n * and returns an observable of a single boolean value representing whether or not the two sequences\n * are equal.\n *\n * Checks to see of all values emitted by both observables are equal, in order.\n *\n * ![](sequenceEqual.png)\n *\n * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either\n * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom\n * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the\n * observables completes, the operator will wait for the other observable to complete; If the other\n * observable emits before completing, the returned observable will emit `false` and complete. If one observable never\n * completes or emits after the other complets, the returned observable will never complete.\n *\n * ## Example\n * figure out if the Konami code matches\n * ```javascript\n * const codes = from([\n * 'ArrowUp',\n * 'ArrowUp',\n * 'ArrowDown',\n * 'ArrowDown',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'ArrowLeft',\n * 'ArrowRight',\n * 'KeyB',\n * 'KeyA',\n * 'Enter', // no start key, clearly.\n * ]);\n *\n * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));\n * const matches = keys.pipe(\n * bufferCount(11, 1),\n * mergeMap(\n * last11 => from(last11).pipe(sequenceEqual(codes)),\n * ),\n * );\n * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));\n * ```\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} compareTo The observable sequence to compare the source sequence to.\n * @param {function} [comparor] An optional function to compare each value pair\n * @return {Observable} An Observable of a single boolean value representing whether or not\n * the values emitted by both observables were equal in sequence.\n * @method sequenceEqual\n * @owner Observable\n */\nexport function sequenceEqual(compareTo: Observable,\n comparor?: (a: T, b: T) => boolean): OperatorFunction {\n return (source: Observable) => source.lift(new SequenceEqualOperator(compareTo, comparor));\n}\n\nexport class SequenceEqualOperator implements Operator {\n constructor(private compareTo: Observable,\n private comparor: (a: T, b: T) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SequenceEqualSubscriber extends Subscriber {\n private _a: T[] = [];\n private _b: T[] = [];\n private _oneComplete = false;\n\n constructor(destination: Observer,\n private compareTo: Observable,\n private comparor: (a: T, b: T) => boolean) {\n super(destination);\n this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));\n }\n\n protected _next(value: T): void {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n } else {\n this._a.push(value);\n this.checkValues();\n }\n }\n\n public _complete(): void {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n }\n\n checkValues() {\n const { _a, _b, comparor } = this;\n while (_a.length > 0 && _b.length > 0) {\n let a = _a.shift();\n let b = _b.shift();\n let areEqual = false;\n if (comparor) {\n areEqual = tryCatch(comparor)(a, b);\n if (areEqual === errorObject) {\n this.destination.error(errorObject.e);\n }\n } else {\n areEqual = a === b;\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n }\n\n emit(value: boolean) {\n const { destination } = this;\n destination.next(value);\n destination.complete();\n }\n\n nextB(value: T) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n } else {\n this._b.push(value);\n this.checkValues();\n }\n }\n}\n\nclass SequenceEqualCompareToSubscriber extends Subscriber {\n constructor(destination: Observer, private parent: SequenceEqualSubscriber) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this.parent.nextB(value);\n }\n\n protected _error(err: any): void {\n this.parent.error(err);\n }\n\n protected _complete(): void {\n this.parent._complete();\n }\n}\n","import { Observable } from '../Observable';\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\n\nimport { MonoTypeOperatorFunction } from '../types';\n\nfunction shareSubjectFactory() {\n return new Subject();\n}\n\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for `multicast(() => new Subject()), refCount()`.\n *\n * ![](share.png)\n *\n * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nexport function share(): MonoTypeOperatorFunction {\n return (source: Observable) => refCount()(multicast(shareSubjectFactory)(source)) as Observable;\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * @method shareReplay\n * @owner Observable\n */\nexport function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike ): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(shareReplayOperator(bufferSize, windowTime, scheduler));\n}\n\nfunction shareReplayOperator(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike) {\n let subject: ReplaySubject;\n let refCount = 0;\n let subscription: Subscription;\n let hasError = false;\n let isComplete = false;\n\n return function shareReplayOperation(this: Subscriber, source: Observable) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next(value) { subject.next(value); },\n error(err) {\n hasError = true;\n subject.error(err);\n },\n complete() {\n isComplete = true;\n subject.complete();\n },\n });\n }\n\n const innerSub = subject.subscribe(this);\n\n return () => {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && refCount === 0 && isComplete) {\n subscription.unsubscribe();\n }\n };\n };\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\n\nimport { Observer, MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that emits the single item emitted by the source Observable that matches a specified\n * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no\n * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable\n * emits items but none match the specified predicate then `undefined` is emiited.\n *\n * ![](single.png)\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.\n * @return {Observable} An Observable that emits the single item emitted by the source Observable that matches\n * the predicate or `undefined` when no items match.\n *\n * @method single\n * @owner Observable\n */\nexport function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SingleOperator(predicate, source));\n}\n\nclass SingleOperator implements Operator {\n constructor(private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SingleSubscriber extends Subscriber {\n private seenValue: boolean = false;\n private singleValue: T;\n private index: number = 0;\n\n constructor(destination: Observer,\n private predicate?: (value: T, index: number, source: Observable) => boolean,\n private source?: Observable) {\n super(destination);\n }\n\n private applySingleValue(value: T): void {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n } else {\n this.seenValue = true;\n this.singleValue = value;\n }\n }\n\n protected _next(value: T): void {\n const index = this.index++;\n\n if (this.predicate) {\n this.tryNext(value, index);\n } else {\n this.applySingleValue(value);\n }\n }\n\n private tryNext(value: T, index: number): void {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n }\n\n protected _complete(): void {\n const destination = this.destination;\n\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n } else {\n destination.error(new EmptyError);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * ![](skip.png)\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nexport function skip(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipOperator(count));\n}\n\nclass SkipOperator implements Operator {\n constructor(private total: number) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipSubscriber extends Subscriber {\n count: number = 0;\n\n constructor(destination: Subscriber, private total: number) {\n super(destination);\n }\n\n protected _next(x: T) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { Observable } from '../Observable';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Skip the last `count` values emitted by the source Observable.\n *\n * ![](skipLast.png)\n *\n * `skipLast` returns an Observable that accumulates a queue with a length\n * enough to store the first `count` values. As more values are received,\n * values are taken from the front of the queue and produced on the result\n * sequence. This causes values to be delayed.\n *\n * ## Example\n * Skip the last 2 values of an Observable with many values\n * ```javascript\n * const many = range(1, 5);\n * const skipLastTwo = many.pipe(skipLast(2));\n * skipLastTwo.subscribe(x => console.log(x));\n *\n * // Results in:\n * // 1 2 3\n * ```\n *\n * @see {@link skip}\n * @see {@link skipUntil}\n * @see {@link skipWhile}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws\n * ArgumentOutOrRangeError if `i < 0`.\n *\n * @param {number} count Number of elements to skip from the end of the source Observable.\n * @returns {Observable} An Observable that skips the last count values\n * emitted by the source Observable.\n * @method skipLast\n * @owner Observable\n */\nexport function skipLast(count: number): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipLastOperator(count));\n}\n\nclass SkipLastOperator implements Operator {\n constructor(private _skipCount: number) {\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n if (this._skipCount === 0) {\n // If we don't want to skip any values then just subscribe\n // to Subscriber without any further logic.\n return source.subscribe(new Subscriber(subscriber));\n } else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipLastSubscriber extends Subscriber {\n private _ring: T[];\n private _count: number = 0;\n\n constructor(destination: Subscriber, private _skipCount: number) {\n super(destination);\n this._ring = new Array(_skipCount);\n }\n\n protected _next(value: T): void {\n const skipCount = this._skipCount;\n const count = this._count++;\n\n if (count < skipCount) {\n this._ring[count] = value;\n } else {\n const currentIndex = count % skipCount;\n const ring = this._ring;\n const oldValue = ring[currentIndex];\n\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { MonoTypeOperatorFunction, TeardownLogic, ObservableInput } from '../types';\nimport { Subscription } from '../Subscription';\n\n/**\n * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.\n *\n * ![](skipUntil.png)\n *\n * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to\n * be mirrored by the resulting Observable.\n * @return {Observable} An Observable that skips items from the source Observable until the second Observable emits\n * an item, then emits the remaining items.\n * @method skipUntil\n * @owner Observable\n */\nexport function skipUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipUntilOperator(notifier));\n}\n\nclass SkipUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(destination: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipUntilSubscriber extends OuterSubscriber {\n\n private hasValue: boolean = false;\n private innerSubscription: Subscription;\n\n constructor(destination: Subscriber, notifier: ObservableInput) {\n super(destination);\n this.add(this.innerSubscription = subscribeToResult(this, notifier));\n }\n\n protected _next(value: T) {\n if (this.hasValue) {\n super._next(value);\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n }\n\n notifyComplete() {\n /* do nothing */\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds\n * true, but emits all further source items as soon as the condition becomes false.\n *\n * ![](skipWhile.png)\n *\n * @param {Function} predicate - A function to test each item emitted from the source Observable.\n * @return {Observable} An Observable that begins emitting items emitted by the source Observable when the\n * specified predicate becomes false.\n * @method skipWhile\n * @owner Observable\n */\nexport function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new SkipWhileOperator(predicate));\n}\n\nclass SkipWhileOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SkipWhileSubscriber extends Subscriber {\n private skipping: boolean = true;\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n\n if (!this.skipping) {\n destination.next(value);\n }\n }\n\n private tryCallPredicate(value: T): void {\n try {\n const result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n } catch (err) {\n this.destination.error(err);\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function startWith(v1: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(v1: T, v2: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(v1: T, v2: T, v3: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(v1: T, v2: T, v3: T, v4: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(v1: T, v2: T, v3: T, v4: T, v5: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(v1: T, v2: T, v3: T, v4: T, v5: T, v6: T, scheduler?: SchedulerLike): MonoTypeOperatorFunction;\nexport function startWith(...array: Array): MonoTypeOperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Returns an Observable that emits the items you specify as arguments before it begins to emit\n * items emitted by the source Observable.\n *\n * First emits its arguments in order, and then any\n * emissions from the source.\n *\n * ![](startWith.png)\n *\n * ## Examples\n *\n * Start the chain of emissions with `\"first\"`, `\"second\"`\n *\n * ```javascript\n * of(\"from source\")\n * .pipe(startWith(\"first\", \"second\"))\n * .subscribe(x => console.log(x));\n *\n * // results:\n * // \"first\"\n * // \"second\"\n * // \"from source\"\n * ```\n *\n * @param {...T} values - Items you want the modified Observable to emit first.\n * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nexport function startWith(...array: Array): MonoTypeOperatorFunction {\n return (source: Observable) => {\n let scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n } else {\n scheduler = null;\n }\n\n const len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(scalar(array[0] as T), source);\n } else if (len > 0) {\n return concatStatic(fromArray(array as T[], scheduler), source);\n } else {\n return concatStatic(empty(scheduler) as any, source);\n }\n };\n}\n","import { SchedulerLike, SchedulerAction } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\n\nexport interface DispatchArg {\n source: Observable;\n subscriber: Subscriber;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nexport class SubscribeOnObservable extends Observable {\n /** @nocollapse */\n static create(source: Observable, delay: number = 0, scheduler: SchedulerLike = asap): Observable {\n return new SubscribeOnObservable(source, delay, scheduler);\n }\n\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: DispatchArg): Subscription {\n const { source, subscriber } = arg;\n return this.add(source.subscribe(subscriber));\n }\n\n constructor(public source: Observable,\n private delayTime: number = 0,\n private scheduler: SchedulerLike = asap) {\n super();\n if (!isNumeric(delayTime) || delayTime < 0) {\n this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n this.scheduler = asap;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const delay = this.delayTime;\n const source = this.source;\n const scheduler = this.scheduler;\n\n return scheduler.schedule>(SubscribeOnObservable.dispatch, delay, {\n source, subscriber\n });\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * ![](subscribeOn.png)\n *\n * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.\n * @return {Observable} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.\n .\n * @method subscribeOn\n * @owner Observable\n */\nexport function subscribeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function subscribeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\n\nclass SubscribeOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike,\n private delay: number) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return new SubscribeOnObservable(\n source, this.delay, this.scheduler\n ).subscribe(subscriber);\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function switchMap(project: (value: T, index: number) => ObservableInput): OperatorFunction;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap(project: (value: T, index: number) => ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector is no longer supported, use inner map instead */\nexport function switchMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * Maps each value to an Observable, then flattens all of\n * these inner Observables.\n *\n * ![](switchMap.png)\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 (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * ## Example\n * Rerun an interval Observable on every click event\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMap((ev) => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchAll}\n * @see {@link switchMapTo}\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 * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nexport function switchMap(\n project: (value: T, index: number) => ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R,\n): OperatorFunction {\n if (typeof resultSelector === 'function') {\n return (source: Observable) => source.pipe(\n switchMap((a, i) => from(project(a, i)).pipe(\n map((b, ii) => resultSelector(a, b, i, ii))\n ))\n );\n }\n return (source: Observable) => source.lift(new SwitchMapOperator(project));\n}\n\nclass SwitchMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass SwitchMapSubscriber extends OuterSubscriber {\n private index: number = 0;\n private innerSubscription: Subscription;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput) {\n super(destination);\n }\n\n protected _next(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n }\n\n private _innerSub(result: ObservableInput, value: T, index: number) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult(this, result, value, index));\n }\n\n protected _complete(): void {\n const {innerSubscription} = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n }\n\n protected _unsubscribe() {\n this.innerSubscription = null;\n }\n\n notifyComplete(innerSub: Subscription): void {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n super._complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n}\n","import { OperatorFunction, ObservableInput } from '../types';\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\n\nexport function switchAll(): OperatorFunction, T>;\nexport function switchAll(): OperatorFunction;\n\nexport function switchAll(): OperatorFunction, T> {\n return switchMap(identity);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { switchMap } from './switchMap';\n\n/* tslint:disable:max-line-length */\nexport function switchMapTo(observable: ObservableInput): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction;\n/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */\nexport function switchMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switchMap} in the output Observable.\n *\n * It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.\n *\n * ![](switchMapTo.png)\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * ## Example\n * Rerun an interval Observable on every click event\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMapTo(interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMapTo}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through `resultSelector`) every\n * time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nexport function switchMapTo(\n innerObservable: ObservableInput,\n resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R\n): OperatorFunction {\n return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * Lets values pass until a second Observable,\n * `notifier`, emits a value. Then, it completes.\n *\n * ![](takeUntil.png)\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 * Tick every second until the first click happens\n * ```javascript\n * const interval = interval(1000);\n * const clicks = fromEvent(document, 'click');\n * const result = interval.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 {Observable} An Observable that emits the values from the source\n * Observable until such time as `notifier` emits its first value.\n * @method takeUntil\n * @owner Observable\n */\nexport function takeUntil(notifier: Observable): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new TakeUntilOperator(notifier));\n}\n\nclass TakeUntilOperator implements Operator {\n constructor(private notifier: Observable) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !notifierSubscription.closed) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeUntilSubscriber extends OuterSubscriber {\n\n constructor(destination: Subscriber, ) {\n super(destination);\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.complete();\n }\n\n notifyComplete(): void {\n // noop\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\n\n/**\n * Emits values emitted by the source Observable so long as each value satisfies\n * the given `predicate`, and then completes as soon as this `predicate` is not\n * satisfied.\n *\n * Takes values from the source only while they pass the\n * condition given. When the first value does not satisfy, it completes.\n *\n * ![](takeWhile.png)\n *\n * `takeWhile` subscribes and begins mirroring the source Observable. Each value\n * emitted on the source is given to the `predicate` function which returns a\n * boolean, representing a condition to be satisfied by the source values. The\n * output Observable emits the source values until such time as the `predicate`\n * returns false, at which point `takeWhile` stops mirroring the source\n * Observable and completes the output Observable.\n *\n * ## Example\n * Emit click events only while the clientX property is greater than 200\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates a value emitted by the source Observable and returns a boolean.\n * Also takes the (zero-based) index as the second argument.\n * @return {Observable} An Observable that emits the values from the source\n * Observable so long as each value satisfies the condition defined by the\n * `predicate`, then completes.\n * @method takeWhile\n * @owner Observable\n */\nexport function takeWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new TakeWhileOperator(predicate));\n}\n\nclass TakeWhileOperator implements Operator {\n constructor(private predicate: (value: T, index: number) => boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TakeWhileSubscriber extends Subscriber {\n private index: number = 0;\n\n constructor(destination: Subscriber,\n private predicate: (value: T, index: number) => boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n const destination = this.destination;\n let result: boolean;\n try {\n result = this.predicate(value, this.index++);\n } catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n\n private nextOrComplete(value: T, predicateResult: boolean): void {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n } else {\n destination.complete();\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\n\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\nimport { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';\n\nexport interface ThrottleConfig {\n leading?: boolean;\n trailing?: boolean;\n}\n\nexport const defaultThrottleConfig: ThrottleConfig = {\n leading: true,\n trailing: false\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 * It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.\n *\n * ![](throttle.png)\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 or completes, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * ## Example\n * Emit clicks at a rate of at most one click per second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttle(ev => interval(1000)));\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 {function(value: T): SubscribableOrPromise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults\n * to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttle\n * @owner Observable\n */\nexport function throttle(durationSelector: (value: T) => SubscribableOrPromise,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing));\n}\n\nclass ThrottleOperator implements Operator {\n constructor(private durationSelector: (value: T) => SubscribableOrPromise,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleSubscriber extends OuterSubscriber {\n private _throttled: Subscription;\n private _sendValue: T;\n private _hasValue = false;\n\n constructor(protected destination: Subscriber,\n private durationSelector: (value: T) => SubscribableOrPromise,\n private _leading: boolean,\n private _trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T): void {\n this._hasValue = true;\n this._sendValue = value;\n\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n } else {\n this.throttle(value);\n }\n }\n }\n\n private send() {\n const { _hasValue, _sendValue } = this;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n }\n\n private throttle(value: T): void {\n const duration = this.tryDurationSelector(value);\n if (duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n }\n\n private tryDurationSelector(value: T): SubscribableOrPromise {\n try {\n return this.durationSelector(value);\n } catch (err) {\n this.destination.error(err);\n return null;\n }\n }\n\n private throttlingDone() {\n const { _throttled, _trailing } = this;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n\n if (_trailing) {\n this.send();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.throttlingDone();\n }\n\n notifyComplete(): void {\n this.throttlingDone();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { ThrottleConfig, defaultThrottleConfig } from './throttle';\nimport { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';\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 * Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.\n *\n * ![](throttleTime.png)\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 * ## Example\n * Emit clicks at a rate of at most one click per second\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(throttleTime(1000));\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 {number} 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 {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for\n * managing the timers that handle the throttling.\n * @param {Object} config a configuration object to define `leading` and\n * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.\n * @return {Observable} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttleTime\n * @owner Observable\n */\nexport function throttleTime(duration: number,\n scheduler: SchedulerLike = async,\n config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction {\n return (source: Observable) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));\n}\n\nclass ThrottleTimeOperator implements Operator {\n constructor(private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(\n new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)\n );\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ThrottleTimeSubscriber extends Subscriber {\n private throttled: Subscription;\n private _hasTrailingValue: boolean = false;\n private _trailingValue: T = null;\n\n constructor(destination: Subscriber,\n private duration: number,\n private scheduler: SchedulerLike,\n private leading: boolean,\n private trailing: boolean) {\n super(destination);\n }\n\n protected _next(value: T) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n } else {\n this.add(this.throttled = this.scheduler.schedule>(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n }\n }\n\n protected _complete() {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n } else {\n this.destination.complete();\n }\n }\n\n clearThrottle() {\n const throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n }\n}\n\ninterface DispatchArg {\n subscriber: ThrottleTimeSubscriber;\n}\n\nfunction dispatchNext(arg: DispatchArg) {\n const { subscriber } = arg;\n subscriber.clearThrottle();\n}\n","\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { SchedulerLike, OperatorFunction } from '../types';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\n\nexport function timeInterval(scheduler: SchedulerLike = async): OperatorFunction> {\n return (source: Observable) => defer(() => {\n return source.pipe(\n // HACK: the typings seem off with scan\n scan(\n ({ current }, value) => ({ value, current: scheduler.now(), last: current }),\n { current: scheduler.now(), value: undefined, last: undefined }\n ) as any,\n map>(({ current, last, value }) => new TimeInterval(value, current - last)),\n );\n });\n}\n\nexport class TimeInterval {\n constructor(public value: T, public interval: number) {}\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { Observable } from '../Observable';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function timeoutWith(due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n *\n * Errors if Observable does not emit a value in given time span, in case of which\n * subscribes to the second Observable.\n *\n * It's a version of `timeout` operator that let's you specify fallback Observable.\n *\n * ![](timeoutWith.png)\n *\n * `timeoutWith` is a variation of `timeout` operator. It behaves exactly the same,\n * still accepting as a first argument either a number or a Date, which control - respectively -\n * when values of source Observable should be emitted or when it should complete.\n *\n * The only difference is that it accepts a second, required parameter. This parameter\n * should be an Observable which will be subscribed when source Observable fails any timeout check.\n * So whenever regular `timeout` would emit an error, `timeoutWith` will instead start re-emitting\n * values from second Observable. Note that this fallback Observable is not checked for timeouts\n * itself, so it can emit values and complete at arbitrary points in time. From the moment of a second\n * subscription, Observable returned from `timeoutWith` simply mirrors fallback stream. When that\n * stream completes, it completes as well.\n *\n * Scheduler, which in case of `timeout` is provided as as second argument, can be still provided\n * here - as a third, optional parameter. It still is used to schedule timeout checks and -\n * as a consequence - when second Observable will be subscribed, since subscription happens\n * immediately after failing check.\n *\n * ## Example\n * Add fallback observable\n * ```javascript\n * const seconds = interval(1000);\n * const minutes = interval(60 * 1000);\n *\n * seconds.pipe(timeoutWith(900, minutes))\n * .subscribe(\n * value => console.log(value), // After 900ms, will start emitting `minutes`,\n * // since first value of `seconds` will not arrive fast enough.\n * err => console.log(err), // Would be called after 900ms in case of `timeout`,\n * // but here will never be called.\n * );\n * ```\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {Observable} withObservable Observable which will be subscribed if source fails timeout check.\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source or, when timeout check fails, of an Observable\n * passed as a second parameter.\n * @method timeoutWith\n * @owner Observable\n */\nexport function timeoutWith(due: number | Date,\n withObservable: ObservableInput,\n scheduler: SchedulerLike = async): OperatorFunction {\n return (source: Observable) => {\n let absoluteTimeout = isDate(due);\n let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\n\nclass TimeoutWithOperator implements Operator {\n constructor(private waitFor: number,\n private absoluteTimeout: boolean,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new TimeoutWithSubscriber(\n subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass TimeoutWithSubscriber extends OuterSubscriber {\n\n private action: SchedulerAction> = null;\n\n constructor(destination: Subscriber,\n private absoluteTimeout: boolean,\n private waitFor: number,\n private withObservable: ObservableInput,\n private scheduler: SchedulerLike) {\n super(destination);\n this.scheduleTimeout();\n }\n\n private static dispatchTimeout(subscriber: TimeoutWithSubscriber): void {\n const { withObservable } = subscriber;\n ( subscriber)._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n }\n\n private scheduleTimeout(): void {\n const { action } = this;\n if (action) {\n // Recycle the action if we've already scheduled one. All the production\n // Scheduler Actions mutate their state/delay time and return themeselves.\n // VirtualActions are immutable, so they create and return a clone. In this\n // case, we need to set the action reference to the most recent VirtualAction,\n // to ensure that's the one we clone from next time.\n this.action = (>> action.schedule(this, this.waitFor));\n } else {\n this.add(this.action = (>> this.scheduler.schedule>(\n TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this\n )));\n }\n }\n\n protected _next(value: T): void {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n super._next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n }\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\n\n/**\n *\n * Errors if Observable does not emit a value in given time span.\n *\n * Timeouts on Observable that doesn't emit values fast enough.\n *\n * ![](timeout.png)\n *\n * `timeout` operator accepts as an argument either a number or a Date.\n *\n * If number was provided, it returns an Observable that behaves like a source\n * Observable, unless there is a period of time where there is no value emitted.\n * So if you provide `100` as argument and first value comes after 50ms from\n * the moment of subscription, this value will be simply re-emitted by the resulting\n * Observable. If however after that 100ms passes without a second value being emitted,\n * stream will end with an error and source Observable will be unsubscribed.\n * These checks are performed throughout whole lifecycle of Observable - from the moment\n * it was subscribed to, until it completes or errors itself. Thus every value must be\n * emitted within specified period since previous value.\n *\n * If provided argument was Date, returned Observable behaves differently. It throws\n * if Observable did not complete before provided Date. This means that periods between\n * emission of particular values do not matter in this case. If Observable did not complete\n * before provided Date, source Observable will be unsubscribed. Other than that, resulting\n * stream behaves just as source Observable.\n *\n * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)\n * when returned Observable will check if source stream emitted value or completed.\n *\n * ## Examples\n * Check if ticks are emitted within certain timespan\n * ```javascript\n * const seconds = interval(1000);\n *\n * seconds.pipe(timeout(1100)) // Let's use bigger timespan to be safe,\n * // since `interval` might fire a bit later then scheduled.\n * .subscribe(\n * value => console.log(value), // Will emit numbers just as regular `interval` would.\n * err => console.log(err), // Will never be called.\n * );\n *\n * seconds.pipe(timeout(900))\n * .subscribe(\n * value => console.log(value), // Will never be called.\n * err => console.log(err), // Will emit error before even first value is emitted,\n * // since it did not arrive within 900ms period.\n * );\n * ```\n *\n * Use Date to check if Observable completed\n * ```javascript\n * const seconds = interval(1000);\n *\n * seconds.pipe(\n * timeout(new Date(\"December 17, 2020 03:24:00\")),\n * )\n * .subscribe(\n * value => console.log(value), // Will emit values as regular `interval` would\n * // until December 17, 2020 at 03:24:00.\n * err => console.log(err) // On December 17, 2020 at 03:24:00 it will emit an error,\n * // since Observable did not complete by then.\n * );\n * ```\n * @see {@link timeoutWith}\n *\n * @param {number|Date} due Number specifying period within which Observable must emit values\n * or Date specifying before when Observable should complete\n * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.\n * @return {Observable} Observable that mirrors behaviour of source, unless timeout checks fail.\n * @method timeout\n * @owner Observable\n */\nexport function timeout(due: number | Date,\n scheduler: SchedulerLike = async): MonoTypeOperatorFunction {\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n","\nimport { async } from '../scheduler/async';\nimport { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';\nimport { map } from './map';\n\n/**\n * @param scheduler\n * @return {Observable>|WebSocketSubject|Observable}\n * @method timestamp\n * @owner Observable\n */\nexport function timestamp(scheduler: SchedulerLike = async): OperatorFunction> {\n return map((value: T) => new Timestamp(value, scheduler.now()));\n // return (source: Observable) => source.lift(new TimestampOperator(scheduler));\n}\n\nexport class Timestamp implements TimestampInterface {\n constructor(public value: T, public timestamp: number) {\n }\n}\n","import { reduce } from './reduce';\nimport { OperatorFunction } from '../types';\n\nfunction toArrayReducer(arr: T[], item: T, index: number) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\n\nexport function toArray(): OperatorFunction {\n return reduce(toArrayReducer, []) as OperatorFunction;\n}\n","import { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\nimport { Subject } from '../Subject';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { Operator } from '../Operator';\n\n/**\n * Branch out the source Observable values as a nested Observable whenever\n * `windowBoundaries` emits.\n *\n * It's like {@link buffer}, but emits a nested Observable\n * instead of an array.\n *\n * ![](window.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping\n * windows. It emits the current window and opens a new one whenever the\n * Observable `windowBoundaries` emits an item. Because each window is an\n * Observable, the output is a higher-order Observable.\n *\n * ## Example\n * In every window of 1 second each, emit at most 2 click events\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const interval = interval(1000);\n * const result = clicks.pipe(\n * window(interval),\n * map(win => win.take(2)), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link buffer}\n *\n * @param {Observable} windowBoundaries An Observable that completes the\n * previous window and starts a new window.\n * @return {Observable>} An Observable of windows, which are\n * Observables emitting values of the source Observable.\n * @method window\n * @owner Observable\n */\nexport function window(windowBoundaries: Observable): OperatorFunction> {\n return function windowOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\n\nclass WindowOperator implements Operator> {\n\n constructor(private windowBoundaries: Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n const windowSubscriber = new WindowSubscriber(subscriber);\n const sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends OuterSubscriber {\n\n private window: Subject = new Subject();\n\n constructor(destination: Subscriber>) {\n super(destination);\n destination.next(this.window);\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openWindow();\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this._complete();\n }\n\n protected _next(value: T): void {\n this.window.next(value);\n }\n\n protected _error(err: any): void {\n this.window.error(err);\n this.destination.error(err);\n }\n\n protected _complete(): void {\n this.window.complete();\n this.destination.complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n this.window = null;\n }\n\n private openWindow(): void {\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n const destination = this.destination;\n const newWindow = this.window = new Subject();\n destination.next(newWindow);\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable with each\n * nested Observable emitting at most `windowSize` values.\n *\n * It's like {@link bufferCount}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowCount.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows every `startWindowEvery`\n * items, each containing no more than `windowSize` items. When the source\n * Observable completes or encounters an error, the output Observable emits\n * the current window and propagates the notification from the source\n * Observable. If `startWindowEvery` is not provided, then new windows are\n * started immediately at the start of the source and when each window completes\n * with size `windowSize`.\n *\n * ## Examples\n * Ignore every 3rd click event, starting from the first one\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(3)),\n * map(win => win.skip(1)), // skip first of every 3 clicks\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Ignore every 3rd click event, starting from the third one\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowCount(2, 3),\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferCount}\n *\n * @param {number} windowSize The maximum number of values emitted by each\n * window.\n * @param {number} [startWindowEvery] Interval at which to start a new window.\n * For example if `startWindowEvery` is `2`, then a new window will be started\n * on every other value from the source. A new window is started at the\n * beginning of the source by default.\n * @return {Observable>} An Observable of windows, which in turn\n * are Observable of values.\n * @method windowCount\n * @owner Observable\n */\nexport function windowCount(windowSize: number,\n startWindowEvery: number = 0): OperatorFunction> {\n return function windowCountOperatorFunction(source: Observable) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\n\nclass WindowCountOperator implements Operator> {\n\n constructor(private windowSize: number,\n private startWindowEvery: number) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowCountSubscriber extends Subscriber {\n private windows: Subject[] = [ new Subject() ];\n private count: number = 0;\n\n constructor(protected destination: Subscriber>,\n private windowSize: number,\n private startWindowEvery: number) {\n super(destination);\n destination.next(this.windows[0]);\n }\n\n protected _next(value: T) {\n const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n const destination = this.destination;\n const windowSize = this.windowSize;\n const windows = this.windows;\n const len = windows.length;\n\n for (let i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n const c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n const window = new Subject();\n windows.push(window);\n destination.next(window);\n }\n }\n\n protected _error(err: any) {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n }\n\n protected _complete() {\n const windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n }\n\n protected _unsubscribe() {\n this.count = 0;\n this.windows = null;\n }\n}\n","import { Subject } from '../Subject';\nimport { Operator } from '../Operator';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { OperatorFunction, SchedulerLike, SchedulerAction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable periodically\n * in time.\n *\n * It's like {@link bufferTime}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowTime.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable starts a new window periodically, as\n * determined by the `windowCreationInterval` argument. It emits each window\n * after a fixed timespan, specified by the `windowTimeSpan` argument. When the\n * source Observable completes or encounters an error, the output Observable\n * emits the current window and propagates the notification from the source\n * Observable. If `windowCreationInterval` is not provided, the output\n * Observable starts a new window when the previous window of duration\n * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window\n * will emit at most fixed number of values. Window will complete immediately\n * after emitting last value and next one still will open as specified by\n * `windowTimeSpan` and `windowCreationInterval` arguments.\n *\n * ## Examples\n * In every window of 1 second each, emit at most 2 click events\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000),\n * map(win => win.take(2)), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000),\n * map(win => win.take(2)), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Same as example above but with maxWindowCount instead of take\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowTime(1000, 5000, 2), // each window has still at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferTime}\n *\n * @param {number} windowTimeSpan The amount of time to fill each window.\n * @param {number} [windowCreationInterval] The interval at which to start new\n * windows.\n * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of\n * values each window can emit before completion.\n * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine window boundaries.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowTime\n * @owner Observable\n */\nexport function windowTime(windowTimeSpan: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n scheduler?: SchedulerLike): OperatorFunction>;\nexport function windowTime(windowTimeSpan: number,\n windowCreationInterval: number,\n maxWindowSize: number,\n scheduler?: SchedulerLike): OperatorFunction>;\n\nexport function windowTime(windowTimeSpan: number): OperatorFunction> {\n let scheduler: SchedulerLike = async;\n let windowCreationInterval: number = null;\n let maxWindowSize: number = Number.POSITIVE_INFINITY;\n\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n } else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n } else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n\n return function windowTimeOperatorFunction(source: Observable) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\n\nclass WindowTimeOperator implements Operator> {\n\n constructor(private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowTimeSubscriber(\n subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler\n ));\n }\n}\n\ninterface CreationState {\n windowTimeSpan: number;\n windowCreationInterval: number;\n subscriber: WindowTimeSubscriber;\n scheduler: SchedulerLike;\n}\n\ninterface TimeSpanOnlyState {\n window: CountedSubject;\n windowTimeSpan: number;\n subscriber: WindowTimeSubscriber;\n }\n\ninterface CloseWindowContext {\n action: SchedulerAction>;\n subscription: Subscription;\n}\n\ninterface CloseState {\n subscriber: WindowTimeSubscriber;\n window: CountedSubject;\n context: CloseWindowContext;\n}\n\nclass CountedSubject extends Subject {\n private _numberOfNextedValues: number = 0;\n\n next(value?: T): void {\n this._numberOfNextedValues++;\n super.next(value);\n }\n\n get numberOfNextedValues(): number {\n return this._numberOfNextedValues;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowTimeSubscriber extends Subscriber {\n private windows: CountedSubject[] = [];\n\n constructor(protected destination: Subscriber>,\n private windowTimeSpan: number,\n private windowCreationInterval: number | null,\n private maxWindowSize: number,\n private scheduler: SchedulerLike) {\n super(destination);\n\n const window = this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n const closeState: CloseState = { subscriber: this, window, context: null };\n const creationState: CreationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler };\n this.add(scheduler.schedule>(dispatchWindowClose, windowTimeSpan, closeState));\n this.add(scheduler.schedule>(dispatchWindowCreation, windowCreationInterval, creationState));\n } else {\n const timeSpanOnlyState: TimeSpanOnlyState = { subscriber: this, window, windowTimeSpan };\n this.add(scheduler.schedule>(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n }\n\n protected _next(value: T): void {\n const windows = this.windows;\n const len = windows.length;\n for (let i = 0; i < len; i++) {\n const window = windows[i];\n if (!window.closed) {\n window.next(value);\n if (window.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window);\n }\n }\n }\n }\n\n protected _error(err: any): void {\n const windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const windows = this.windows;\n while (windows.length > 0) {\n const window = windows.shift();\n if (!window.closed) {\n window.complete();\n }\n }\n this.destination.complete();\n }\n\n public openWindow(): CountedSubject {\n const window = new CountedSubject();\n this.windows.push(window);\n const destination = this.destination;\n destination.next(window);\n return window;\n }\n\n public closeWindow(window: CountedSubject): void {\n window.complete();\n const windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n }\n}\n\nfunction dispatchWindowTimeSpanOnly(this: SchedulerAction>, state: TimeSpanOnlyState): void {\n const { subscriber, windowTimeSpan, window } = state;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\n\nfunction dispatchWindowCreation(this: SchedulerAction>, state: CreationState): void {\n const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state;\n const window = subscriber.openWindow();\n const action = this;\n let context: CloseWindowContext = { action, subscription: null };\n const timeSpanState: CloseState = { subscriber, window, context };\n context.subscription = scheduler.schedule>(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\n\nfunction dispatchWindowClose(state: CloseState): void {\n const { subscriber, window, context } = state;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable starting from\n * an emission from `openings` and ending when the output of `closingSelector`\n * emits.\n *\n * It's like {@link bufferToggle}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowToggle.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows that contain those items\n * emitted by the source Observable between the time when the `openings`\n * Observable emits an item and when the Observable returned by\n * `closingSelector` emits an item.\n *\n * ## Example\n * Every other second, emit the click events from the next 500ms\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const openings = interval(1000);\n * const result = clicks.pipe(\n * windowToggle(openings, i => i % 2 ? interval(500) : empty()),\n * mergeAll(),\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowWhen}\n * @see {@link bufferToggle}\n *\n * @param {Observable} openings An observable of notifications to start new\n * windows.\n * @param {function(value: O): Observable} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns an Observable,\n * which, when it emits (either `next` or `complete`), signals that the\n * associated window should complete.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowToggle\n * @owner Observable\n */\nexport function windowToggle(openings: Observable,\n closingSelector: (openValue: O) => Observable): OperatorFunction> {\n return (source: Observable) => source.lift(new WindowToggleOperator(openings, closingSelector));\n}\n\nclass WindowToggleOperator implements Operator> {\n\n constructor(private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowToggleSubscriber(\n subscriber, this.openings, this.closingSelector\n ));\n }\n}\n\ninterface WindowContext {\n window: Subject;\n subscription: Subscription;\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowToggleSubscriber extends OuterSubscriber {\n private contexts: WindowContext[] = [];\n private openSubscription: Subscription;\n\n constructor(destination: Subscriber>,\n private openings: Observable,\n private closingSelector: (openValue: O) => Observable) {\n super(destination);\n this.add(this.openSubscription = subscribeToResult(this, openings, openings as any));\n }\n\n protected _next(value: T) {\n const { contexts } = this;\n if (contexts) {\n const len = contexts.length;\n for (let i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n }\n\n protected _error(err: any) {\n\n const { contexts } = this;\n this.contexts = null;\n\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n\n while (++index < len) {\n const context = contexts[index];\n context.window.error(err);\n context.subscription.unsubscribe();\n }\n }\n\n super._error(err);\n }\n\n protected _complete() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.complete();\n context.subscription.unsubscribe();\n }\n }\n super._complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { contexts } = this;\n this.contexts = null;\n if (contexts) {\n const len = contexts.length;\n let index = -1;\n while (++index < len) {\n const context = contexts[index];\n context.window.unsubscribe();\n context.subscription.unsubscribe();\n }\n }\n }\n\n notifyNext(outerValue: any, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n\n if (outerValue === this.openings) {\n\n const { closingSelector } = this;\n const closingNotifier = tryCatch(closingSelector)(innerValue);\n\n if (closingNotifier === errorObject) {\n return this.error(errorObject.e);\n } else {\n const window = new Subject();\n const subscription = new Subscription();\n const context = { window, subscription };\n this.contexts.push(context);\n const innerSubscription = subscribeToResult(this, closingNotifier, context as any);\n\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n } else {\n ( innerSubscription).context = context;\n subscription.add(innerSubscription);\n }\n\n this.destination.next(window);\n\n }\n } else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n }\n\n notifyError(err: any): void {\n this.error(err);\n }\n\n notifyComplete(inner: Subscription): void {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(( inner).context));\n }\n }\n\n private closeWindow(index: number): void {\n if (index === -1) {\n return;\n }\n\n const { contexts } = this;\n const context = contexts[index];\n const { window, subscription } = context;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OperatorFunction } from '../types';\n\n/**\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.\n *\n * ![](windowWhen.png)\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * ## Example\n * Emit only the first two clicks events in every window of [1-5] random seconds\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(\n * windowWhen(() => interval(1000 + Math.random() * 4000)),\n * map(win => win.pipe(take(2))), // each window has at most 2 emissions\n * mergeAll(), // flatten the Observable-of-Observables\n * );\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n */\nexport function windowWhen(closingSelector: () => Observable): OperatorFunction> {\n return function windowWhenOperatorFunction(source: Observable) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\n\nclass WindowOperator implements Operator> {\n constructor(private closingSelector: () => Observable) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WindowSubscriber extends OuterSubscriber {\n private window: Subject;\n private closingNotification: Subscription;\n\n constructor(protected destination: Subscriber>,\n private closingSelector: () => Observable) {\n super(destination);\n this.openWindow();\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n notifyError(error: any, innerSub: InnerSubscriber): void {\n this._error(error);\n }\n\n notifyComplete(innerSub: InnerSubscriber): void {\n this.openWindow(innerSub);\n }\n\n protected _next(value: T): void {\n this.window.next(value);\n }\n\n protected _error(err: any): void {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n }\n\n protected _complete(): void {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n }\n\n private unsubscribeClosingNotification(): void {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n }\n\n private openWindow(innerSub: InnerSubscriber = null): void {\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n\n const window = this.window = new Subject();\n this.destination.next(window);\n\n const closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n const err = errorObject.e;\n this.destination.error(err);\n this.window.error(err);\n } else {\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function withLatestFrom(project: (v1: T) => R): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\nexport function withLatestFrom(v2: ObservableInput): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\nexport function withLatestFrom(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\nexport function withLatestFrom(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[]): OperatorFunction;\nexport function withLatestFrom(array: ObservableInput[], project: (...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.\n *\n * ![](withLatestFrom.png)\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * ## Example\n * On every click event, emit an array with the latest timer event plus the click event\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const result = clicks.pipe(withLatestFrom(timer));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatest}\n *\n * @param {ObservableInput} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nexport function withLatestFrom(...args: Array | ((...values: Array) => R)>): OperatorFunction {\n return (source: Observable) => {\n let project: any;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = []>args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\n\nclass WithLatestFromOperator implements Operator {\n constructor(private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass WithLatestFromSubscriber extends OuterSubscriber {\n private values: any[];\n private toRespond: number[] = [];\n\n constructor(destination: Subscriber,\n private observables: Observable[],\n private project?: (...values: any[]) => Observable) {\n super(destination);\n const len = observables.length;\n this.values = new Array(len);\n\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n\n notifyComplete() {\n // noop\n }\n\n protected _next(value: T) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n } else {\n this.destination.next(args);\n }\n }\n }\n\n private _tryProject(args: any[]) {\n let result: any;\n try {\n result = this.project.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { zip as zipStatic } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { ObservableInput, OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(project: (v1: T) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>): OperatorFunction;\n/** @deprecated Deprecated in favor of static zip. */\nexport function zip(array: Array>, project: (v1: T, ...values: Array) => R): OperatorFunction;\n/* tslint:enable:max-line-length */\n\n/**\n * @deprecated Deprecated in favor of static zip.\n */\nexport function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction {\n return function zipOperatorFunction(source: Observable) {\n return source.lift.call(zipStatic(source, ...observables));\n };\n}","import { ZipOperator } from '../observable/zip';\nimport { Observable } from '../Observable';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function zipAll(): OperatorFunction, T[]>;\nexport function zipAll(): OperatorFunction;\nexport function zipAll(project: (...values: T[]) => R): OperatorFunction, R>;\nexport function zipAll(project: (...values: Array) => R): OperatorFunction;\n\nexport function zipAll(project?: (...values: Array) => R): OperatorFunction {\n return (source: Observable) => source.lift(new ZipOperator(project));\n}\n","\n/* Operator exports */\nexport { audit } from '../internal/operators/audit';\nexport { auditTime } from '../internal/operators/auditTime';\nexport { buffer } from '../internal/operators/buffer';\nexport { bufferCount } from '../internal/operators/bufferCount';\nexport { bufferTime } from '../internal/operators/bufferTime';\nexport { bufferToggle } from '../internal/operators/bufferToggle';\nexport { bufferWhen } from '../internal/operators/bufferWhen';\nexport { catchError } from '../internal/operators/catchError';\nexport { combineAll } from '../internal/operators/combineAll';\nexport { combineLatest } from '../internal/operators/combineLatest';\nexport { concat } from '../internal/operators/concat';\nexport { concatAll } from '../internal/operators/concatAll';\nexport { concatMap } from '../internal/operators/concatMap';\nexport { concatMapTo } from '../internal/operators/concatMapTo';\nexport { count } from '../internal/operators/count';\nexport { debounce } from '../internal/operators/debounce';\nexport { debounceTime } from '../internal/operators/debounceTime';\nexport { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';\nexport { delay } from '../internal/operators/delay';\nexport { delayWhen } from '../internal/operators/delayWhen';\nexport { dematerialize } from '../internal/operators/dematerialize';\nexport { distinct } from '../internal/operators/distinct';\nexport { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';\nexport { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';\nexport { elementAt } from '../internal/operators/elementAt';\nexport { endWith } from '../internal/operators/endWith';\nexport { every } from '../internal/operators/every';\nexport { exhaust } from '../internal/operators/exhaust';\nexport { exhaustMap } from '../internal/operators/exhaustMap';\nexport { expand } from '../internal/operators/expand';\nexport { filter } from '../internal/operators/filter';\nexport { finalize } from '../internal/operators/finalize';\nexport { find } from '../internal/operators/find';\nexport { findIndex } from '../internal/operators/findIndex';\nexport { first } from '../internal/operators/first';\nexport { groupBy } from '../internal/operators/groupBy';\nexport { ignoreElements } from '../internal/operators/ignoreElements';\nexport { isEmpty } from '../internal/operators/isEmpty';\nexport { last } from '../internal/operators/last';\nexport { map } from '../internal/operators/map';\nexport { mapTo } from '../internal/operators/mapTo';\nexport { materialize } from '../internal/operators/materialize';\nexport { max } from '../internal/operators/max';\nexport { merge } from '../internal/operators/merge';\nexport { mergeAll } from '../internal/operators/mergeAll';\nexport { mergeMap } from '../internal/operators/mergeMap';\nexport { mergeMap as flatMap } from '../internal/operators/mergeMap';\nexport { mergeMapTo } from '../internal/operators/mergeMapTo';\nexport { mergeScan } from '../internal/operators/mergeScan';\nexport { min } from '../internal/operators/min';\nexport { multicast } from '../internal/operators/multicast';\nexport { observeOn } from '../internal/operators/observeOn';\nexport { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';\nexport { pairwise } from '../internal/operators/pairwise';\nexport { partition } from '../internal/operators/partition';\nexport { pluck } from '../internal/operators/pluck';\nexport { publish } from '../internal/operators/publish';\nexport { publishBehavior } from '../internal/operators/publishBehavior';\nexport { publishLast } from '../internal/operators/publishLast';\nexport { publishReplay } from '../internal/operators/publishReplay';\nexport { race } from '../internal/operators/race';\nexport { reduce } from '../internal/operators/reduce';\nexport { repeat } from '../internal/operators/repeat';\nexport { repeatWhen } from '../internal/operators/repeatWhen';\nexport { retry } from '../internal/operators/retry';\nexport { retryWhen } from '../internal/operators/retryWhen';\nexport { refCount } from '../internal/operators/refCount';\nexport { sample } from '../internal/operators/sample';\nexport { sampleTime } from '../internal/operators/sampleTime';\nexport { scan } from '../internal/operators/scan';\nexport { sequenceEqual } from '../internal/operators/sequenceEqual';\nexport { share } from '../internal/operators/share';\nexport { shareReplay } from '../internal/operators/shareReplay';\nexport { single } from '../internal/operators/single';\nexport { skip } from '../internal/operators/skip';\nexport { skipLast } from '../internal/operators/skipLast';\nexport { skipUntil } from '../internal/operators/skipUntil';\nexport { skipWhile } from '../internal/operators/skipWhile';\nexport { startWith } from '../internal/operators/startWith';\nexport { subscribeOn } from '../internal/operators/subscribeOn';\nexport { switchAll } from '../internal/operators/switchAll';\nexport { switchMap } from '../internal/operators/switchMap';\nexport { switchMapTo } from '../internal/operators/switchMapTo';\nexport { take } from '../internal/operators/take';\nexport { takeLast } from '../internal/operators/takeLast';\nexport { takeUntil } from '../internal/operators/takeUntil';\nexport { takeWhile } from '../internal/operators/takeWhile';\nexport { tap } from '../internal/operators/tap';\nexport { throttle } from '../internal/operators/throttle';\nexport { throttleTime } from '../internal/operators/throttleTime';\nexport { throwIfEmpty } from '../internal/operators/throwIfEmpty';\nexport { timeInterval } from '../internal/operators/timeInterval';\nexport { timeout } from '../internal/operators/timeout';\nexport { timeoutWith } from '../internal/operators/timeoutWith';\nexport { timestamp } from '../internal/operators/timestamp';\nexport { toArray } from '../internal/operators/toArray';\nexport { window } from '../internal/operators/window';\nexport { windowCount } from '../internal/operators/windowCount';\nexport { windowTime } from '../internal/operators/windowTime';\nexport { windowToggle } from '../internal/operators/windowToggle';\nexport { windowWhen } from '../internal/operators/windowWhen';\nexport { withLatestFrom } from '../internal/operators/withLatestFrom';\nexport { zip } from '../internal/operators/zip';\nexport { zipAll } from '../internal/operators/zipAll';\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { subscribeToPromise } from '../util/subscribeToPromise';\n\nexport function fromPromise(input: PromiseLike, scheduler?: SchedulerLike) {\n if (!scheduler) {\n return new Observable(subscribeToPromise(input));\n } else {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(\n value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n },\n err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n }\n )));\n return sub;\n });\n }\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { subscribeToIterable } from '../util/subscribeToIterable';\n\nexport function fromIterable(input: Iterable, scheduler: SchedulerLike) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n if (!scheduler) {\n return new Observable(subscribeToIterable(input));\n } else {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator: Iterator;\n sub.add(() => {\n // Finalize generators\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value: T;\n let done: boolean;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n } catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n } else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n }\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToObservable } from '../util/subscribeToObservable';\nimport { InteropObservable, SchedulerLike, Subscribable } from '../types';\n\nexport function fromObservable(input: InteropObservable, scheduler: SchedulerLike) {\n if (!scheduler) {\n return new Observable(subscribeToObservable(input));\n } else {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable: Subscribable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n }\n}\n","import { Observable } from '../Observable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isIterable } from '../util/isIterable';\nimport { fromArray } from './fromArray';\nimport { fromPromise } from './fromPromise';\nimport { fromIterable } from './fromIterable';\nimport { fromObservable } from './fromObservable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { ObservableInput, SchedulerLike } from '../types';\n\nexport function from(input: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function from(input: ObservableInput>, scheduler?: SchedulerLike): Observable>;\nexport function from(input: ObservableInput, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromObservable(input, scheduler);\n } else if (isPromise(input)) {\n return fromPromise(input, scheduler);\n } else if (isArrayLike(input)) {\n return fromArray(input, scheduler);\n } else if (isIterable(input) || typeof input === 'string') {\n return fromIterable(input, scheduler);\n }\n }\n\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscription } from '../Subscription';\nimport { subscribeToArray } from '../util/subscribeToArray';\n\nexport function fromArray(input: ArrayLike, scheduler?: SchedulerLike) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n } else {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n }\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined as 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 BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value: boolean) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","export function identity(x: T): T {\n return x;\n}\n","import { PartialObserver } from './types';\nimport { Observable } from './Observable';\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\n\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification\n */\nexport class Notification {\n hasValue: boolean;\n\n constructor(public kind: string, public value?: T, public error?: any) {\n this.hasValue = kind === 'N';\n }\n\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n observe(observer: PartialObserver): any {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {\n if (nextOrObserver && typeof (>nextOrObserver).next === 'function') {\n return this.observe(>nextOrObserver);\n } else {\n return this.do(<(value: T) => void>nextOrObserver, error, complete);\n }\n }\n\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n toObservable(): Observable {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n\n private static completeNotification: Notification = new Notification('C');\n private static undefinedValueNotification: Notification = new Notification('N', undefined);\n\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification} The \"next\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createNext(value: T): Notification {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification} The \"error\" Notification representing the\n * argument.\n * @nocollapse\n */\n static createError(err?: any): Notification {\n return new Notification('E', undefined, err);\n }\n\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification} The valueless \"complete\" Notification.\n * @nocollapse\n */\n static createComplete(): Notification {\n return Notification.completeNotification;\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\n/**\n * @deprecated use {@link iterator} instead\n */\nexport const $$iterator = iterator;\n","import {PdsWidget} from './pds-widget';\nimport {Validator} from 'common-utils/interfaces';\nimport { pdsValidationRulesEngine } from './pds-validation-rules-engine';\nimport { pdsI18n } from './pds-i18n';\nimport { pdsUtils } from './pds-utils';\nimport { pdsLogger } from './pds-logger';\nimport {ValidationResult} from 'common-utils/dist/interfaces';\nlet log = pdsLogger.prependLogger(pdsLogger.requiresLogger('input-widgets'), 'pds-abstract-input-widget.ts');\n\n//Doing a querySelectorAll on this string will provide all input widgets on the page.\nexport let allInputTagsSelector = 'pds-number-widget,pds-date-widget,pds-select-widget,pds-text-widget,pds-time-widget,pds-rich-text-editor,pds-file-picker-widget,pds-radio-button-widget,pds-checkbox-widget,pds-textarea-widget,pds-multi-select-widget';\nconst tabKey = 9;\n\nexport interface InputSelectorResult {\n value: string | undefined | null;\n modelValue: any;\n}\n\nexport abstract class PdsAbstractInputWidget extends PdsWidget {\n name: string;\n\n errorMessage: string;\n isValid: boolean;\n invalidRule: string | undefined;\n isAttached: boolean;\n isBadgeElevated: boolean;\n\n //Validation rules\n dataIsreadonly: string;\n dataIsrequired: string;\n dataCustomvalidate: string;\n\n //Show additional validation indicator if true. Used in the central layout views for login and account forms\n dataUseValidIndicator: 'false' | 'true' | 'loading';\n\n //Validation Options\n dataHideUnelevatedBadge: string;\n dataDisableInvalidBadgeElevation: string;\n\n //Visibility Flags\n isBadgeHidden: boolean;\n showTooltip: boolean;\n dataUseAlternateColorScheme: string;\n //right now the only things that make that happen are focusLost and pds.validation.validateElements\n showValidIndicator: boolean; // is false until field has focusLost.\n //Text labels\n dataLabelText: string;\n dataBadgeText: string;\n dataHelperText: string;\n dataFieldHelpText: string;\n dataPlaceholderText: string;\n dataTooltipText: string;\n disabled: string;\n\n //toggle to show the labels.\n\n dataShowLabel: string;\n\n originalBadgeText: string;\n\n validators: Array;\n\n actionIcon: string;\n\n // each input widget must have a reference to its own error field, so that we can\n // add the hidden class to dynamically show and hide the error.\n\n myErrorField: HTMLElement;\n\n // this variable is initially set to false and corresponds to the on-blur property of an input field\n // on-blur is tied to a function that (on-blur=\"functionName\") fires a FocusEvent.\n // inside that function, we set this value to true only if there are any validation errors.\n errorPresentWhenBlurOccurred = false;\n\n blurInterceptor: Function;\n\n // this variable will allow for the data-label-text attribute error message to be hidden from the console\n // this has been specifically added for registration as they already have a way to show these errors\n disableErrorMessageLabelText: boolean | undefined;\n\n // this variable will allow for the option name/value warning messsages to be hidden from the console\n // this has been specifically added for registration as they already have a way to show these warnings\n disableWarningMessageDuplicateOption: boolean | undefined;\n\n attributeChanged(): void {\n //this is a polymer hook\n log('attributeChange() called');\n this.generateValidationRules();\n }\n\n ready(): void { //this is a polymer hook\n log('ready() called');\n super.ready();\n\n //Initialize all of the member variables here because it doesn't\n //work right to do that in the place where the variables are defined.\n this.errorMessage = '';\n this.isValid = true;\n this.invalidRule = '';\n this.isAttached = false;\n this.isBadgeElevated = false;\n\n this.isBadgeHidden = true;\n this.showTooltip = false;\n this.showValidIndicator = false;\n\n this.originalBadgeText = '';\n this.messageKeysUpdated();\n this.generateValidationRules();\n // grab a reference to both the input field and the error field.\n this.myErrorField = this.querySelector('.pds-validation');\n this.showErrorMessage(false);\n\n /**\n * Waiting for angular to finish its cycle before checking the data label text\n */\n setTimeout(() => {\n if (!this.disableErrorMessageLabelText && (this.dataLabelText == null || this.dataLabelText.length === 0)) {\n console.error('There needs to be a data-label-text attribute to this input widget', this);\n }\n });\n }\n\n /**\n * Gets the input element. Defaults to using query selector to find the first child input.\n */\n inputSelector(): InputSelectorResult {\n return this.querySelector('input');\n }\n\n inputChange(): void {\n log('inputChange() called');\n this.validateWidget();\n this.setValue(this.value);\n (this).dispatchEvent(new Event('modelValueChange', {bubbles: true}));\n }\n\n /**\n * When the user enters data into this field and the focus is lost, the widget calls this function on blur and fires\n * a focus event. We check if there is an error message, if there is an error message,\n * then we start allowing the error messages to be shown\n */\n focusLost(event: any): void {\n log('focus lost');\n if (this.blurInterceptor != null) {\n this.blurInterceptor(this);\n }\n this.validateWidget(true, true);\n this.dispatchEvent(new Event('blur'));\n }\n\n /**\n * This allows the user to focus on an error message if one is diisplayed in the input widget\n * if there is an error message (errorMessage.length > 0) - visibility is true\n * if there is not an error message (errorMessage.length == 0) - visibility is false\n *\n * Note: this is bad practice but to ensure screen readers pick this up.\n * @param visibility\n */\n showErrorMessage(makeVisible: boolean): void {\n log(`showErrorMessage(${makeVisible}) called. this.errorMessage: ${this.errorMessage}`);\n if (this.myErrorField == null) {\n return;\n }\n\n //We hide it if there is no error message or we are making it invisible (not visible).\n pdsUtils.toggleClass(this.myErrorField, 'sr-only', this.errorMessage.length === 0 || !makeVisible);\n this.myErrorField.textContent = this.errorMessage;\n }\n\n get value(): any {\n let result = this.inputSelector();\n if (result != null) {\n log(`get value() called - value: ${result.value}`);\n return result.value;\n }\n log('get value() called - inputSelector not there yet');\n }\n\n set value(value) {\n log(`set value(${value}) called`);\n this.setValue(value);\n this.setReadonlyText();\n }\n\n get modelValue(): any {\n let result = this.inputSelector();\n\n if (result != null) {\n log(`get modelValue() called - value: ${result.modelValue}`);\n //In the Angular 2+ event listener, we grab event.target.modelValue\n return result.modelValue;\n }\n\n log('get modelValue() called - inputSelector not there yet');\n }\n\n set modelValue(value) {\n log(`set modelValue(${value})`);\n let modelValueChanged = this.setModelValue(value);\n if (modelValueChanged) {\n //only show the validation message IF an error message is already showing.\n let showValidationResult = this.isErrorMessageShowing();\n this.validateWidget(showValidationResult);\n }\n this.setReadonlyText();\n }\n\n /**\n * Returns true if an error message string is currently showing up in the UI. If a required badge is elevated, then\n * this would not show up.\n * @returns {boolean}\n */\n isErrorMessageShowing(): boolean {\n return this.myErrorField != null && !this.myErrorField.classList.contains('sr-only');\n }\n\n /**\n * Validates the widget and sets the isValid flag.\n * If the widget is valid, then it will always remove the error message.\n * Optionally, it can make the error message show up if the widget is invalid.\n * @param showValidationResult: True - will make the error message show up.\n * False - will make sure the error message will not show up.\n * undefined - will show the error message if this.errorPresentWhenBlurOccurred === true\n * @param fromBlur: True - means that you called this method from the blur handler. Otherwise defaults to false.\n * @returns {boolean} - True means the widget is valid. False means the widget is invalid.\n */\n validateWidget(showValidationResult?: boolean, fromBlur?: boolean): boolean {\n log(`validateWidget(${showValidationResult}, ${fromBlur}) called.`);\n //default fromBlur to false.\n if (fromBlur == null) {\n fromBlur = false;\n }\n\n let validationResult = this.runValidationEngine();\n this.isValid = validationResult.isValid;\n if (showValidationResult === true || fromBlur) {\n this.showValidIndicator = true;\n }\n if (this.isValid) {\n this.setError('');\n this.invalidRule = '';\n } else {\n this.invalidRule = validationResult.invalidRule;\n if (validationResult.invalidRule === 'isRequired') {\n this.setError('');\n } else {\n this.setError(validationResult.errorMessage);\n }\n }\n this.setUpBadge();\n\n //At this point we know if the widget is valid and what the error message should be.\n //So we can decide whether to show the error messages or not.\n let showErrorMessages = false;\n\n //It's gotta be invalid and have an actual error message in order to have a chance at showing an error message.\n if (!this.isValid && this.errorMessage.length > 0) {\n if (fromBlur && !this.errorPresentWhenBlurOccurred) {\n //This flag should only get set when this is called through the focusLost function.\n this.errorPresentWhenBlurOccurred = true;\n }\n\n if (showValidationResult == null) {\n showErrorMessages = this.errorPresentWhenBlurOccurred;\n } else {\n showErrorMessages = showValidationResult;\n }\n }\n\n //We always update the error message span each time we validate.\n //This ensures that it is always up to date.\n this.showErrorMessage(showErrorMessages);\n\n return this.isValid;\n }\n\n /**\n * This was refactored out to support the pds-mutlti-select-widget's ability to override the validateWidget function.\n */\n protected runValidationEngine(): ValidationResult {\n return pdsValidationRulesEngine.validate(this.value, this.validators);\n }\n\n setError(errorMsg): void {\n if (errorMsg != null && errorMsg.trim() !== '') {\n this.errorMessage = errorMsg;\n } else {\n this.errorMessage = '';\n }\n }\n\n abstract setValue(value: any, skip?: boolean): void;\n\n abstract setModelValue(value: any, skip?: boolean): void;\n\n abstract generateValidationRules(): void;\n\n attached(): void { //this is a polymer hook\n log('attached() called');\n let valueAttr = (this).getAttribute('value');\n if (valueAttr != null) {\n (this).removeAttribute('value');\n this.value = valueAttr;\n }\n this.isAttached = true;\n //Initialize the badge\n this.setUpBadge();\n }\n\n setReadonlyText(): void {\n if (this.dataIsreadonly != null && this.value != null) {\n let readOnlyEle = this.querySelector('.pds-readonly-data');\n if (readOnlyEle == null) {\n return;\n }\n\n if (this.dataIsreadonly === 'true') {\n readOnlyEle.innerText = this.value;\n } else {\n readOnlyEle.innerText = '';\n }\n }\n }\n\n setUpBadge(): void {\n log('setUpBadge() called. isValid: ' + this.isValid);\n if (this.isAttached) { // if attached hasn't fired yet this won't work\n //calculate parameters\n let isElevated = !this.isValid && this.dataDisableInvalidBadgeElevation !== 'true'\n && this.invalidRule === 'isRequired' && this.dataIsrequired === 'true';\n let isBadgeTextConfigured = (this.hasAttribute('data-badge-text')\n && this.dataBadgeText != null && this.dataBadgeText.length > 0);\n let hidingUnelevated = this.dataHideUnelevatedBadge === 'true' && !isElevated;\n let isRequired = this.dataIsrequired === 'true';\n\n //set badge elevation\n this.isBadgeElevated = isElevated;\n\n //set original badge text\n if (this.dataBadgeText != null && this.dataBadgeText != null\n && this.dataBadgeText.length > 0 && this.originalBadgeText === '') {\n this.originalBadgeText = this.dataBadgeText;\n }\n\n //set badge text\n if (this.dataIsrequired === 'true') {\n this.dataBadgeText = pdsI18n.getText('pds|common|Required');\n } else if (!isBadgeTextConfigured) {\n this.originalBadgeText = '';\n } else if (isBadgeTextConfigured) {\n this.dataBadgeText = this.originalBadgeText;\n }\n\n //set badge visibility\n if (!hidingUnelevated && (isRequired || isBadgeTextConfigured)) {\n this.isBadgeHidden = false;\n } else {\n this.isBadgeHidden = true;\n }\n }\n }\n\n /**\n * This gets called when the input fields need to be reset.\n * This forces the input field to behave as if the user initially arrived to that field.\n */\n\n resetInputWidgetState(): void {\n log('resetInputWidgetState() called');\n this.errorPresentWhenBlurOccurred = false;\n this.showErrorMessage(false);\n this.isValid = true;\n }\n\n showLabel(dataShowLabel: string, dataLabelText: string): boolean {\n return (dataLabelText != null && dataLabelText.length > 0 && dataShowLabel !== 'false');\n }\n\n showFieldHelp(dataFieldHelpText: string): boolean {\n return (this.dataTooltipText != null && this.dataTooltipText.length > 0);\n }\n\n showHelperText(dataHelperText: string): boolean {\n return (this.dataHelperText != null && this.dataHelperText.length > 0);\n }\n\n // Validation is not triggered until the user interacts with the field\n canShowIndicator(useValidIndicator: string, showValidIndicator: boolean): boolean {\n return useValidIndicator === 'true' && showValidIndicator;\n }\n //The validation that occurs within the validation widgets is SYNCHRONOUS. The loading icon gets triggered by the external controller, which is responsible for setting this.dataUseValidIndicator to \"true\" when the REST call finishes.\n canShowLoadingIndicator(useValidIndicator: string, showValidIndicator: boolean): boolean {\n return useValidIndicator === 'loading' && showValidIndicator;\n }\n\n actionButtonClickHandler(event: Event): void {\n this.fire('actionButtonEvent', event);\n }\n\n //Fires the input event so everyone who is listening will know (e.g. pds-form angular directive)\n dispatchInputEvent(inputElement: HTMLElement): void {\n let inputEvent: any = new Event('input', { bubbles: true });\n inputElement.dispatchEvent(inputEvent);\n }\n\n isDisabled(): string | null {\n return this.disabled === 'true' || this.disabled === 'disabled' ? 'disabled' : null;\n }\n\n getDisabledTextIfDisabled(disabled?: 'true' | 'false' | 'disabled'): string {\n if (this.isDisabled()) {\n return pdsI18n.getText('pds|common|Disabled field ');\n } else {\n return '';\n }\n }\n}\n","import {ValidationRulesEngine} from 'common-utils';\nimport {pdsUtils} from './pds-utils';\nimport {pdsI18n} from './pds-i18n';\n\nlet flattenedPdsValidationRulesEngine = pdsUtils.createFlattenedClassInstance(ValidationRulesEngine);\nflattenedPdsValidationRulesEngine.setI18n(pdsI18n);\n\nexport let pdsValidationRulesEngine = flattenedPdsValidationRulesEngine;\n","import { root } from '../util/root';\n\n/** Symbol.observable addition */\n/* Note: This will add Symbol.observable globally for all TypeScript users,\n however, we are no longer polyfilling Symbol.observable */\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\n/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\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 class ObjectUnsubscribedError extends Error {\n\n public readonly name = 'ObjectUnsubscribedError';\n\n constructor() {\n super('object unsubscribed');\n (Object as any).setPrototypeOf(this, ObjectUnsubscribedError.prototype);\n }\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\n\n/* tslint:disable:max-line-length */\nexport function concat(v1: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(v1: ObservableInput, v2: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable;\nexport function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.\n *\n * ![](concat.png)\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 * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n * ```javascript\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 an array of 3 Observables\n * ```javascript\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 * const result = concat([timer1, timer2, timer3]); // note that array is passed\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 * ```javascript\n * const timer = interval(1000).pipe(take(2));\n * *\n * concat(timer, timer) // concatenating the same Observable!\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => 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 *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nexport function concat(...observables: Array | SchedulerLike>): Observable {\n if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) {\n return from(observables[0]);\n }\n return concatAll()(of(...observables));\n}\n","import {Time} from '../interfaces/time';\r\nimport {SimpleTime} from '../models/simple-time';\r\n/**\r\n * If you don't need to extend i18n to suit your own needs then just do: import i18n from 'common-utils'; to get a singleton object.\r\n * If you need to extend it import the class and then extend it: import {I18nUtil} from 'common-utils';\r\n * If you choose to import the class it will be up to the consuming application to maintain a singleton object.\r\n */\r\n\r\nlet defaultLocaleObject = {\r\n 'LOCALE': 'en_US',\r\n 'DATETIME_FORMATS': {\r\n 'MONTH': ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\r\n 'SHORTMONTH': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n 'medium': 'MM/dd/yyyy hh:mm:ss a',\r\n 'mediumDateText': 'MM/DD/YYYY',\r\n 'shortDateText': 'MM/DD/YY',\r\n 'AMPMS': ['AM', 'PM'],\r\n 'mediumDate': 'MM/dd/yyyy',\r\n 'mediumTime': 'hh:mm:ss a',\r\n 'shortTime': 'hh:mm a',\r\n 'short': 'M/d/yy hh:mm a',\r\n 'SHORTDAY': ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'],\r\n 'DAY': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n 'shortDate': 'M/d/yy'\r\n },\r\n '$BREACH_MITIGATION': 'XRFmEENA55t627cN',\r\n 'NUMBER_FORMATS': {\r\n 'DECIMAL_SEP': '.',\r\n 'number_regex': '([-]?(([0-9]{1,3}(,[0-9]{3})*(\\\\.[0-9]+)?|\\\\.[0-9]+)|([0-9]*(\\\\.[0-9]+)?)))',\r\n 'CURRENCY_SYM': '$',\r\n 'GROUP_SEP': ',',\r\n 'PATTERNS': [{\r\n 'negSuf': '',\r\n 'posSuf': '',\r\n 'lgSize': '3',\r\n 'minFrac': 0,\r\n 'minInt': 1,\r\n 'negPre': '-',\r\n 'gSize': 3,\r\n 'maxFrac': 9,\r\n 'macFrac': '0',\r\n 'posPre': ''\r\n }],\r\n 'number_format': '#,###.#########'\r\n }\r\n};\r\n\r\nconst PIPE_REGEX = /\\|([^|]+$)/;\r\nconst AM_PM_TIME_REGEX = /^ *(0?[1-9]|10|11|12) *: *([0-5]\\d) *(am|pm|AM|PM) *$/;\r\nconst TWENTY_FOUR_HOUR_TIME_REGEX = /^ *(0?[0-9]|1[0-9]|2[0-3]) *: *([0-5]\\d) *$/;\r\n\r\nexport class I18nUtil {\r\n public twoDigitRegex: RegExp = /^\\d{2}$/;\r\n // public timeRegexString: string = '^(0?[1-9]|10|11|12) *: *([0-5]\\\\d) *(am|pm)$'; //Commenting out on 11/13/2017. Delete in 2018 if no one is complaining.\r\n public messageKeys: Object = {\r\n 'cu|validation engine|The number must be greater than or equal to xx': 'The number must be greater than or equal to {{minValue}}',\r\n 'cu|validation engine|The number must be less than or equal to xx': 'The number must be less than or equal to {{maxValue}}',\r\n 'cu|validation engine|The number must be less than xx': 'The number must be less than {{maxValue}}',\r\n 'cu|validation engine|The number must be greater than xx': 'The number must be greater than {{minValue}}',\r\n 'cu|validation engine|xx is not a valid integer.': '{{input}} is not a valid integer.',\r\n 'cu|validation engine|The number cannot have exceed xx decimal places.': 'The number cannot exceed {{maxDecimals}} decimal places.',\r\n 'cu|validation engine|The number must have xx or more digits.': 'The number must have {{minLength}} or more digits.',\r\n 'cu|validation engine|The number must have xx or less digits.': 'The number must have {{maxLength}} or less digits.',\r\n 'cu|validation engine|The date must be on or after xx': 'The date must be on or after {{minDate}}',\r\n 'cu|validation engine|The date must be on or before xx': 'The date must be on or before {{maxDate}}',\r\n 'cu|validation engine|The text must have xx or more characters.': 'The text must have {{minLength}} or more characters.',\r\n 'cu|validation engine|The text must have xx or less characters.': 'The text must have {{maxLength}} or less characters.',\r\n 'cu|validation engine|Must not contain any characters in xx': 'Must not contain any characters in {{excludeChars}}',\r\n 'cu|validation engine|The time must be on or before xx': 'The time must be on or before {{maxTime}}',\r\n 'cu|validation engine|The time must be on or after xx': 'The time must be on or after {{minTime}}',\r\n 'cu|validation engine|The email is not in the correct format.': 'The email is not in the correct format.',\r\n 'global|Today': 'Today',\r\n 'global|Tomorrow': 'Tomorrow',\r\n 'global|Yesterday': 'Yesterday',\r\n 'cu|date utils|xx at xx': '{{theDate}} at {{theTime}}'\r\n };\r\n\r\n public locale: any = defaultLocaleObject;\r\n private getTextOverwriteFunction;\r\n\r\n overWriteGetText(getTextOverwriteFunction): void {\r\n this.getTextOverwriteFunction = getTextOverwriteFunction;\r\n }\r\n\r\n getShortFormat(): string {\r\n return this.locale.DATETIME_FORMATS.shortDate;\r\n }\r\n\r\n getDateFormat(): string {\r\n return this.locale.DATETIME_FORMATS.mediumDate;\r\n }\r\n\r\n getDateText(): string {\r\n return this.locale.DATETIME_FORMATS.mediumDateText;\r\n }\r\n\r\n /**\r\n * This function is expceded to be overridden by applications using Angular.\r\n * @param key, this should be a string unless getTextOverwriteFunction is not null.\r\n * @param params, this should be a string or map of strings unless getTextOverwriteFunction is not null.\r\n * @returns {any}, this will be a string unless getTextOverwriteFunction is not null.\r\n */\r\n getText(key?: any, params?: {[key: string]: any} | string | number | boolean): any {\r\n //This is for Angular2 to use ng-translate instead of the default function.\r\n if (this.getTextOverwriteFunction != null) {\r\n return this.getTextOverwriteFunction(key, params);\r\n }\r\n\r\n if (typeof key !== 'string') {\r\n return;\r\n }\r\n\r\n let msg = this.messageKeys[key];\r\n if (msg == null) {\r\n msg = this.stripContextFromKey(key);\r\n }\r\n\r\n if (msg == null) {\r\n msg = key;\r\n }\r\n\r\n if (params != null) {\r\n if (typeof params === 'string' ||\r\n typeof params === 'boolean' ||\r\n typeof params === 'number') {\r\n msg = msg.replace(/{{[^}]+}}/g, String(params));\r\n } else {\r\n for (let k of Object.keys(params)) {\r\n let regex = new RegExp('\\\\{\\\\{' + k + '}}', 'g');\r\n msg = msg.replace(regex, params[k]);\r\n }\r\n }\r\n }\r\n\r\n return msg;\r\n }\r\n\r\n stripContextFromKey(key: string): string | undefined {\r\n let result: RegExpExecArray | null = PIPE_REGEX.exec(key);\r\n if (result != null && result.length > 1) {\r\n return result[1];\r\n }\r\n\r\n return key;\r\n }\r\n\r\n getNow(): Date {\r\n //TODO: We may need to figure out how to get this to return the \"now\" of the server.\r\n return new Date();\r\n }\r\n\r\n /**\r\n * @param date: The date object to format\r\n * @param useMonthAbbeviations: Set to false for a date the screen readers can read nicely.\r\n * @returns String: The formatted date string.\r\n */\r\n localizeDatePretty(date: Date, useMonthAbbeviations = true): string {\r\n if (!(date instanceof Date)) {\r\n return '';\r\n }\r\n let now: Date = this.getNow();\r\n let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);\r\n let yesterday = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);\r\n\r\n if (now.getDate() === date.getDate() &&\r\n now.getMonth() === date.getMonth() &&\r\n now.getFullYear() === date.getFullYear()) {\r\n return this.getText('global|Today');\r\n } else if (tomorrow.getDate() === date.getDate() &&\r\n tomorrow.getMonth() === date.getMonth() &&\r\n tomorrow.getFullYear() === date.getFullYear()) {\r\n return this.getText('global|Tomorrow');\r\n } else if (yesterday.getDate() === date.getDate() &&\r\n yesterday.getMonth() === date.getMonth() &&\r\n yesterday.getFullYear() === date.getFullYear()) {\r\n return this.getText('global|Yesterday');\r\n }\r\n\r\n let dateString: string;\r\n let dateFormat: string = this.locale.DATETIME_FORMATS.mediumDate.toLowerCase();\r\n let startType: string = dateFormat.charAt(0); //'y' | 'm' | 'd'\r\n let endType: string = dateFormat.charAt(dateFormat.length - 1);\r\n let useYear: boolean = now.getFullYear() !== date.getFullYear();\r\n\r\n let month: string;\r\n let day: number = date.getDate();\r\n let year: number = date.getFullYear();\r\n if (useMonthAbbeviations) {\r\n month = this.locale.DATETIME_FORMATS.SHORTMONTH[date.getMonth()];\r\n } else {\r\n month = this.locale.DATETIME_FORMATS.MONTH[date.getMonth()];\r\n }\r\n\r\n switch (startType) {\r\n case 'd':\r\n if (endType === 'y') {\r\n //d m y\r\n dateString = day + ' ' + month;\r\n if (useYear) {\r\n dateString += ' ' + year;\r\n }\r\n } else {\r\n //d, y m\r\n if (useYear) {\r\n dateString = day + ', ' + year + ' ' + month;\r\n } else {\r\n dateString = day + ' ' + month;\r\n }\r\n }\r\n break;\r\n default:\r\n case 'm':\r\n if (endType === 'y') {\r\n //m d, y\r\n dateString = month + ' ' + day;\r\n if (useYear) {\r\n dateString += ', ' + year;\r\n }\r\n } else {\r\n //m y, d\r\n if (useYear) {\r\n dateString = month + ' ' + year + ', ' + day;\r\n } else {\r\n dateString = month + ' ' + day;\r\n }\r\n }\r\n break;\r\n case 'y':\r\n if (useYear) {\r\n if (endType === 'm') {\r\n //y, d m\r\n dateString = year + ', ' + day + ' ' + month;\r\n } else {\r\n //y m d\r\n dateString = year + ' ' + month + ' ' + day;\r\n }\r\n } else {\r\n if (endType === 'm') {\r\n //d m\r\n dateString = day + ' ' + month;\r\n } else {\r\n //m d\r\n dateString = month + ' ' + day;\r\n }\r\n }\r\n break;\r\n }\r\n return dateString;\r\n }\r\n\r\n localizeDate(d: Date, fmt?: 'mmdd' | undefined): string {\r\n if (d == null) {\r\n return '';\r\n }\r\n\r\n if (!this.isValidDateObject(d)) {\r\n return String(d);\r\n }\r\n\r\n let seperator = this.locale.DATETIME_FORMATS.mediumDate.match(/[^A-Za-z]/);\r\n let patternPieces = this.locale.DATETIME_FORMATS.mediumDate.split(seperator[0]);\r\n let localizedStrings: Array = [];\r\n\r\n for (let i = 0; i < 3; i++) {\r\n switch (patternPieces[i]) {\r\n case 'd':\r\n localizedStrings.push(d.getDate());\r\n break;\r\n case 'dd':\r\n localizedStrings.push(d.getDate());\r\n break;\r\n case 'M':\r\n localizedStrings.push(d.getMonth() + 1);\r\n break;\r\n case 'MM':\r\n localizedStrings.push(d.getMonth() + 1);\r\n break;\r\n case 'yy':\r\n if (fmt !== 'mmdd') {\r\n localizedStrings.push(d.getFullYear());\r\n }\r\n break;\r\n case 'yyyy':\r\n if (fmt !== 'mmdd') {\r\n localizedStrings.push(d.getFullYear());\r\n }\r\n break;\r\n default:\r\n console.error('Unexpected format while localizing date');\r\n }\r\n }\r\n return localizedStrings.join(seperator);\r\n }\r\n\r\n deLocalizeDate(localizedDateString: string): Date | undefined {\r\n if (localizedDateString == null || localizedDateString === '') {\r\n return;\r\n }\r\n let seperator = this.locale.DATETIME_FORMATS.mediumDate.match(/[^A-Za-z]/);\r\n let patternPieces = this.locale.DATETIME_FORMATS.mediumDate.split(seperator[0]);\r\n let localizedPieces = localizedDateString.split(seperator);\r\n if (localizedPieces.length === 3) {\r\n let day;\r\n let month;\r\n let year;\r\n for (let i = 0; i < 3; i++) {\r\n switch (patternPieces[i]) {\r\n case 'd':\r\n case 'dd':\r\n day = localizedPieces[i];\r\n break;\r\n case 'M':\r\n case 'MM':\r\n month = localizedPieces[i];\r\n break;\r\n case 'yy':\r\n case 'yyyy':\r\n year = localizedPieces[i];\r\n if (this.twoDigitRegex.test(year)) {\r\n if (parseInt(year) > 50) {\r\n year = '19' + year;\r\n } else {\r\n year = '20' + year;\r\n }\r\n }\r\n break;\r\n default:\r\n console.error('Unexpected format when delocalizing date.');\r\n }\r\n }\r\n // /.-,\r\n let d = new Date(year, month - 1, day, 0, 0, 0);\r\n if (isNaN(year) || isNaN(month) || isNaN(day) ||\r\n d.getFullYear() !== Number(year) ||\r\n d.getMonth() !== Number(month - 1) ||\r\n d.getDate() !== Number(day)) {\r\n return;\r\n }\r\n if (this.isValidDateObject(d)) {\r\n return d;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @param d - a javascript date object\r\n */\r\n isValidDateObject(d: Date| undefined): boolean {\r\n if (d instanceof Date) {\r\n return !isNaN(d.getTime()); //invalid date object will return NaN for getTime\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Is the localized date string a valid date?\r\n * TODO - Should passing in '' evaluate to a valid date? Maybe not so much.\r\n * @param localizedDate\r\n * @returns {any}\r\n */\r\n isValidDate(localizedDate: string): boolean {\r\n if (localizedDate !== '') {\r\n let parsedDate: Date | undefined = this.deLocalizeDate(localizedDate);\r\n return this.isValidDateObject(parsedDate);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * @param psJsonDateString - String - in the form of yyyy-mm-dd or yyyy-mm-dd hh:mm:ss\r\n * @param preserceTimeOfDay - boolean - optional param to retain hh:mm:ss in returned date\r\n * object. Default is false if not passed.\r\n * @returns {*}\r\n */\r\n parseJsonDate(psJsonDateString: string, preserveTimeOfDay?: boolean): Date | undefined {\r\n if (psJsonDateString == null) {\r\n return;\r\n }\r\n\r\n let year = 0;\r\n let month = 0;\r\n let date = 0;\r\n let hours = 0;\r\n let minutes = 0;\r\n let seconds = 0;\r\n\r\n let split = psJsonDateString.split('-');\r\n if (split.length < 3) {\r\n return;\r\n }\r\n //a valid jsonDateString may contain a time of date hour/minute/seccond\r\n let dayTimeOfDay = split[2].split(' ');\r\n if (dayTimeOfDay.length === 2) {\r\n //time of day is present\r\n split[2] = dayTimeOfDay[0];\r\n if (preserveTimeOfDay) {\r\n let timeOfDay = dayTimeOfDay[1].split(':');\r\n if (timeOfDay.length === 3) {\r\n hours = parseInt(timeOfDay[0]);\r\n minutes = parseInt(timeOfDay[1]);\r\n seconds = parseInt(timeOfDay[2]);\r\n }\r\n //else invalid hh:mm:ss - ignore it\r\n }\r\n }\r\n year = parseInt(split[0]);\r\n month = parseInt(split[1]) - 1;\r\n date = parseInt(split[2]);\r\n let returnDate = new Date(year, month, date, hours, minutes, seconds);\r\n if (isNaN(returnDate.getTime())) {\r\n return;\r\n }\r\n return returnDate;\r\n }\r\n\r\n /**\r\n * Sister function of parseJsonDate. Converts a date object into the JsonDateString format\r\n * necessary for XTE.\r\n */\r\n getJsonDate(javascriptDateObject: Date, preserveTimeOfDay?: boolean): string | undefined {\r\n if (javascriptDateObject == null) {\r\n return;\r\n }\r\n\r\n if (isNaN(javascriptDateObject.getTime())) {\r\n return;\r\n }\r\n\r\n let psJsonDateString = javascriptDateObject.getFullYear() + '-' +\r\n this.padZeros((javascriptDateObject.getMonth() + 1), 2) + '-' +\r\n this.padZeros(javascriptDateObject.getDate(), 2);\r\n\r\n if (preserveTimeOfDay) {\r\n psJsonDateString += ' ' + this.padZeros(javascriptDateObject.getHours(), 2) + ':' +\r\n this.padZeros(javascriptDateObject.getMinutes(), 2) + ':' +\r\n this.padZeros(javascriptDateObject.getSeconds(), 2);\r\n }\r\n\r\n return psJsonDateString;\r\n }\r\n\r\n /**\r\n * Converts a JSON date to a non localized date\r\n * @param psJsonDateString - String - in the form of yyyy-mm-dd\r\n * @returns - String in the form of MM/DD/YYYY\r\n */\r\n parseJsonDateToNonLocalized(psJsonDateString: string): string {\r\n let date = this.parseJsonDate(psJsonDateString);\r\n if (date != null) {\r\n return this.getMmDdYyyyDateString(date);\r\n }\r\n return psJsonDateString;\r\n }\r\n\r\n /**\r\n * Gets the date in the form MM/DD/YYYY\r\n * @param date The date object to convert.\r\n */\r\n getMmDdYyyyDateString(date: Date): string {\r\n return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();\r\n }\r\n\r\n addDaysToDate(date, numDays): Date {\r\n date.setDate(date.getDate() + numDays);\r\n return date;\r\n }\r\n\r\n getLocalizedDayOfWeek(date): string {\r\n return this.locale.DATETIME_FORMATS.DAY[date.getDay()];\r\n }\r\n\r\n getNumericFormat(): { // TODO MAKE INTERFACE FOR THIS\r\n format: string,\r\n size: string,\r\n gs: string,\r\n ds: string,\r\n regex: string\r\n } {\r\n //{ format: '#,##0.#########', size: '3', gs: ',', ds: '.', regex: '([-]?(([0-9]{1,3}(,[0-9]{3})*(\\.[0-9]+)?|\\.[0-9]+)|([0-9]*(\\.[0-9]+)?)))' }\r\n return {\r\n format: this.locale.NUMBER_FORMATS.number_format,\r\n size: this.locale.NUMBER_FORMATS.PATTERNS[0].gSize,\r\n gs: this.locale.NUMBER_FORMATS.GROUP_SEP,\r\n ds: this.locale.NUMBER_FORMATS.DECIMAL_SEP,\r\n regex: this.locale.NUMBER_FORMATS.number_regex\r\n };\r\n }\r\n\r\n /**\r\n * Generate a localized time string from a javascript date object.\r\n * @param time - javascript date object\r\n * @returns {string}\r\n * compact variable is to diplay time more compact 11:00 AM becomes 11am -- 11:30 PM becomes 11:30pm\r\n * compact is overwritten if show24Hours is true.\r\n */\r\n localizeTime(time: Time | Date | undefined, padWithZero = true, compact = false): string | undefined {\r\n if (time == null) {\r\n return;\r\n }\r\n\r\n let separator = ':';\r\n let ampmNames = this.locale.DATETIME_FORMATS.AMPMS;\r\n let show24Hours = this.locale.DATETIME_FORMATS.shortTime === 'HH:mm';\r\n let hours: number = time.getHours();\r\n let mins: number = time.getMinutes();\r\n let hoursString: string;\r\n let minsString: string;\r\n\r\n if (show24Hours) {\r\n padWithZero = true;\r\n compact = false;\r\n } else {\r\n hours = ((hours + 11) % 12) + 1;\r\n }\r\n\r\n if (padWithZero && hours < 10 && !compact) {\r\n hoursString = '0' + hours;\r\n } else {\r\n hoursString = String(hours);\r\n }\r\n\r\n if (mins < 10) {\r\n minsString = '0' + mins;\r\n } else {\r\n minsString = String(mins);\r\n }\r\n\r\n if (compact) {\r\n if (mins === 0) {\r\n return hoursString + ampmNames[time.getHours() < 12 ? 0 : 1].toLowerCase();\r\n } else {\r\n return hoursString + separator + minsString + ampmNames[time.getHours() < 12 ? 0 : 1].toLowerCase();\r\n }\r\n } else {\r\n return hoursString + separator + minsString + (show24Hours ? '' : ' ' + ampmNames[time.getHours() < 12 ? 0 : 1]);\r\n }\r\n\r\n }\r\n\r\n deLocalizeTime(time: string): Time | undefined {\r\n if (time == null) {\r\n return;\r\n }\r\n\r\n let hours: number;\r\n let minutes: number;\r\n\r\n let timeTokens: {length: number} | null;\r\n if (this.locale.DATETIME_FORMATS.shortTime.endsWith('a')) {\r\n //AM PM time\r\n timeTokens = AM_PM_TIME_REGEX.exec(time);\r\n if (timeTokens == null || timeTokens.length < 4) {\r\n return;\r\n }\r\n\r\n hours = Number(timeTokens[1]);\r\n minutes = Number(timeTokens[2]);\r\n if (timeTokens[3].toLowerCase() === 'pm') {\r\n if (hours < 12) {\r\n hours += 12;\r\n }\r\n } else {\r\n if (hours === 12) {\r\n hours = 0;\r\n }\r\n }\r\n } else {\r\n //24 hour time\r\n return this.parse24HourTime(time);\r\n }\r\n\r\n return new SimpleTime(hours, minutes);\r\n }\r\n\r\n parse24HourTime(time: string): Time | undefined {\r\n let timeTokens = time.split(':');\r\n if (timeTokens.length !== 2) {\r\n return;\r\n }\r\n\r\n let hours = Number(timeTokens[0]);\r\n let minutes = Number(timeTokens[1]);\r\n\r\n if (isNaN(hours) || isNaN(minutes)) {\r\n return;\r\n }\r\n return new SimpleTime(hours, minutes);\r\n }\r\n\r\n isValidTime(localizedTime: string): boolean {\r\n let show24Hours = this.locale.DATETIME_FORMATS.shortTime === 'HH:mm';\r\n if (show24Hours) {\r\n return TWENTY_FOUR_HOUR_TIME_REGEX.test(localizedTime);\r\n } else {\r\n return AM_PM_TIME_REGEX.test(localizedTime);\r\n }\r\n }\r\n\r\n /**\r\n * Localize a number, and optionally round it to a specific number of decimal places\r\n * @param number, number to localize\r\n * @param decimalPlaces (optional), number of decimal places to round to\r\n * @param strictDecimals (optional), appends zeroes if number has fewer decimal places\r\n * @returns the localized version of the number\r\n */\r\n localizeNumber(number: number, decimalPlaces?: number, strictDecimals?: boolean): string | undefined {\r\n if (number == null || isNaN(number)) {\r\n return;\r\n }\r\n\r\n if (decimalPlaces != null && !isNaN(decimalPlaces)) {\r\n // round the number to n decimal places before localizing\r\n let multiplier = 1;\r\n for (let i = 0; i < decimalPlaces; i++) {\r\n multiplier *= 10;\r\n }\r\n number = Math.round(number * multiplier) / multiplier;\r\n }\r\n\r\n let formattedNumber = this.formatNumber(this.getNumericFormat(), number);\r\n\r\n if (strictDecimals === true && decimalPlaces > 0) {\r\n //Add zeroes and an appropriate decimal separator as padding to the localized number\r\n let numDecimals = 0;\r\n if (String(formattedNumber).includes(this.locale.NUMBER_FORMATS.DECIMAL_SEP)) {\r\n let parts = String(formattedNumber).split(this.locale.NUMBER_FORMATS.DECIMAL_SEP);\r\n numDecimals = parts[parts.length - 1].length;\r\n }\r\n if (numDecimals === 0) {\r\n formattedNumber = formattedNumber + this.locale.NUMBER_FORMATS.DECIMAL_SEP;\r\n }\r\n formattedNumber = formattedNumber + ('0').repeat(decimalPlaces - numDecimals);\r\n }\r\n\r\n return formattedNumber;\r\n }\r\n\r\n deLocalizeNumber(number: string): number | undefined {\r\n return this.removeNumberFormat(this.getNumericFormat(), number);\r\n }\r\n\r\n deLocalizeNumberToString(number: string): string | undefined {\r\n let result = this.removeNumberFormat(this.getNumericFormat(), number);\r\n if (result == null) {\r\n return;\r\n }\r\n return String(result);\r\n }\r\n\r\n removeNumberFormat(format: any, number: any): number | undefined {\r\n if (number == null) {\r\n return;\r\n }\r\n\r\n // IE does not like instantiating RegExp objects with empty values, so we have to\r\n // check for valid values in the grouping separator before using it in a RegExp.\r\n let gsNotBlank = (format.gs === '.' || format.gs === ',' || format.gs === ' ');\r\n number = number.toString();\r\n // We also want to check that only valid characters are present.\r\n let regexString = '^' + format.regex + '$';\r\n let validNumber = new RegExp(regexString, 'g');\r\n if (number !== '' && number.match(validNumber) != null) {\r\n if (gsNotBlank) {\r\n let gs = new RegExp('\\\\' + format.gs, 'g');\r\n number = number.replace(gs, '');\r\n }\r\n let ds = new RegExp('\\\\' + format.ds, 'g'); //The decimal separator is not expected to be empty\r\n number = parseFloat(number.replace(ds, '.'));\r\n } else {\r\n return;\r\n }\r\n\r\n if (!isNaN(number)) {\r\n return number;\r\n }\r\n }\r\n\r\n isValidNumber(numValue: string): boolean {\r\n if (numValue !== '') {\r\n let regexString = '^' + this.locale.NUMBER_FORMATS.number_regex + '$';\r\n let regex = new RegExp(regexString, 'g');\r\n if (regex.test(numValue)) {\r\n return (this.deLocalizeNumber(numValue) != null);\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Adds a new field for an object with the value localized.\r\n * This function will add a new field to the obejct with the localized value.\r\n * @param object An object with a number value that needs to be localized\r\n * @param key The key of the value that needs to be localized.\r\n */\r\n localizeNumericObject(object: Object, key: string): void {\r\n object['_i18n_' + key] = this.localizeNumber(object[key]);\r\n }\r\n\r\n /**\r\n * This is the sister function of localizeNumericObject. If the localized value\r\n * can be parsed, it will update the original value with the deLocalized version.\r\n * @param object An object with a number value that has been localized using localizeNumericObject\r\n * @param key The key of the value that got localized.\r\n */\r\n deLocalizeNumericObject(object: Object, key: string): void {\r\n if (!object.hasOwnProperty('_i18n_' + key)) {\r\n return;\r\n }\r\n\r\n if (object['_i18n_' + key] == null || object['_i18n_' + key] === '') {\r\n object[key] = '';\r\n return;\r\n }\r\n\r\n object[key] = this.deLocalizeNumber(object['_i18n_' + key]);\r\n }\r\n\r\n /**\r\n * @deprecated Use localizeTime() instead.\r\n */\r\n makeStrFromTime(time: Date, padWithZero = true): string {\r\n return this.localizeTime.apply(this, arguments);\r\n }\r\n\r\n //TODO: Add unit tests\r\n /**\r\n * Creates a new Date object with the same day, month, and year of the passed in Date combined with the hours and minutes\r\n * of the time object.\r\n * @param date\r\n * @param time\r\n * @returns {Date} - A brand new date object.\r\n */\r\n combineDateAndTime(date: Date, time: Time): Date | undefined {\r\n if (date == null) {\r\n return;\r\n }\r\n\r\n if (time == null) {\r\n time = new SimpleTime(0, 0);\r\n }\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes());\r\n }\r\n\r\n //TODO: Add unit tests\r\n /**\r\n * Creates a time object based on the hours and minutes in the date object.\r\n * @param date\r\n * @returns Time\r\n */\r\n extractTime(date: Date): Time {\r\n return new SimpleTime(date.getHours(), date.getMinutes());\r\n }\r\n\r\n /**\r\n * This is the function to format a time for display.\r\n */\r\n formatTime(time: Time, formatType: 'TIME' | 'TIME_PAD_ZEROS' | 'TIME_COMPACT'): string | undefined {\r\n if (time == null || formatType == null) {\r\n return '';\r\n }\r\n\r\n switch (formatType) {\r\n default: \r\n case 'TIME':\r\n return this.localizeTime(time, false);\r\n case 'TIME_PAD_ZEROS':\r\n return this.localizeTime(time, true);\r\n case 'TIME_COMPACT':\r\n return this.localizeTime(time, false, true);\r\n }\r\n }\r\n\r\n /**\r\n * This is the function to format a date for display.\r\n */\r\n formatDate(date: Date, formatType: 'DATE' | 'DATE_PRETTY' | 'DATE_SR' | 'DATE_TIME' | 'DATE_TIME_PRETTY' | 'DATE_TIME_SR'): string {\r\n if (date == null) {\r\n return '';\r\n }\r\n\r\n switch (formatType) {\r\n case 'DATE_TIME':\r\n return this.getText('cu|date utils|xx at xx', {\r\n theDate: this.localizeDate(date),\r\n theTime: this.localizeTime(date)\r\n });\r\n case 'DATE_TIME_SR':\r\n return this.getText('cu|date utils|xx at xx', {\r\n theDate: this.localizeDatePretty(date, false) ,\r\n theTime: this.localizeTime(date, false)\r\n });\r\n case 'DATE_TIME_PRETTY':\r\n return this.getText('cu|date utils|xx at xx', {\r\n theDate: this.localizeDatePretty(date) ,\r\n theTime: this.localizeTime(date, false)\r\n });\r\n case 'DATE':\r\n return this.localizeDate(date);\r\n case 'DATE_SR':\r\n return this.localizeDatePretty(date, false);\r\n case 'DATE_PRETTY':\r\n default:\r\n return this.localizeDatePretty(date);\r\n }\r\n }\r\n\r\n private formatNumber(format, number: number): string | undefined {\r\n let ds = format.ds; // decimal separator\r\n let result = '';\r\n\r\n //curiously, isNaN(null) returns false.\r\n if (isNaN(number) || number == null) {\r\n if (number == null) {\r\n return;\r\n }\r\n\r\n return String(number);\r\n } else {\r\n result = number.toString();\r\n result = result.replace('.', ds);\r\n return result;\r\n }\r\n }\r\n\r\n private padZeros(number: number, padding: number): string | undefined {\r\n let paddedString = '';\r\n if (isNaN(number) || isNaN(padding) || number == null || padding == null) {\r\n if (number == null) {\r\n return;\r\n }\r\n\r\n return String(number);\r\n } else {\r\n paddedString = number.toString();\r\n while (paddedString.length < padding) {\r\n paddedString = '0' + paddedString;\r\n }\r\n\r\n return paddedString;\r\n }\r\n }\r\n}\r\n\r\nexport let i18n = new I18nUtil();\r\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { ObservableInput, OperatorFunction } from '../types';\nimport { map } from './map';\nimport { from } from '../observable/from';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap(project: (value: T, index: number) => ObservableInput, concurrent?: number): OperatorFunction;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap(project: (value: T, index: number) => ObservableInput, resultSelector: undefined, concurrent?: number): OperatorFunction;\n/** @deprecated resultSelector no longer supported, use inner map instead */\nexport function mergeMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction;\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 * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.\n *\n * ![](mergeMap.png)\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 * Map and flatten each letter to an Observable ticking every 1 second\n * ```javascript\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n * mergeMap(x => interval(1000).pipe(map(i => x+i))),\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 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=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and merging the results of the Observables obtained\n * from this transformation.\n * @method mergeMap\n * @owner Observable\n */\nexport function mergeMap(\n project: (value: T, index: number) => ObservableInput,\n resultSelector?: ((outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Number.POSITIVE_INFINITY\n): OperatorFunction {\n if (typeof resultSelector === 'function') {\n // DEPRECATED PATH\n return (source: Observable) => source.pipe(\n mergeMap((a, i) => from(project(a, i)).pipe(\n map((b, ii) => resultSelector(a, b, i, ii)),\n ), concurrent)\n );\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source: Observable) => source.lift(new MergeMapOperator(project, concurrent));\n}\n\nexport class MergeMapOperator implements Operator {\n constructor(private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n }\n\n call(observer: Subscriber, source: any): any {\n return source.subscribe(new MergeMapSubscriber(\n observer, this.project, this.concurrent\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class MergeMapSubscriber extends OuterSubscriber {\n private hasCompleted: boolean = false;\n private buffer: T[] = [];\n private active: number = 0;\n protected index: number = 0;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => ObservableInput,\n private concurrent: number = Number.POSITIVE_INFINITY) {\n super(destination);\n }\n\n protected _next(value: T): void {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n } else {\n this.buffer.push(value);\n }\n }\n\n protected _tryNext(value: T) {\n let result: ObservableInput;\n const index = this.index++;\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n }\n\n private _innerSub(ish: ObservableInput, value: T, index: number): void {\n this.add(subscribeToResult(this, ish, value, index));\n }\n\n protected _complete(): void {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.destination.next(innerValue);\n }\n\n notifyComplete(innerSub: Subscription): void {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nexport class ArgumentOutOfRangeError extends Error {\n\n public readonly name = 'ArgumentOutOfRangeError';\n\n constructor() {\n super('argument out of range');\n (Object as any).setPrototypeOf(this, ArgumentOutOfRangeError.prototype);\n }\n}\n","export function isFunction(x: any): x is Function {\n return typeof x === 'function';\n}\n","module.exports = require('./dist/index');","/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nexport class EmptyError extends Error {\n\n public readonly name = 'EmptyError';\n\n constructor() {\n super('no elements in sequence');\n (Object as any).setPrototypeOf(this, EmptyError.prototype);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\n\nexport class AsyncScheduler extends Scheduler {\n public static delegate?: Scheduler;\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @deprecated internal use only\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 * @deprecated internal use only\n */\n public scheduled: any = undefined;\n\n constructor(SchedulerAction: typeof Action,\n now: () => number = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n } else {\n return now();\n }\n });\n }\n\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n } else {\n return super.schedule(work, delay, state);\n }\n }\n\n public flush(action: AsyncAction): void {\n\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 { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * @class AsyncSubject\n */\nexport class AsyncSubject extends Subject {\n private value: T = null;\n private hasNext: boolean = false;\n private hasCompleted: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n\n next(value: T): void {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n\n error(error: any): void {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n\n complete(): void {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\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 extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, 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 { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsyncAction extends Action {\n\n public id: any;\n public state: T;\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n\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?: any, delay: number = 0): any {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any {\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 return clearInterval(id) && undefined || 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\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 = undefined;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n\n if (index !== -1) {\n actions.splice(index, 1);\n }\n\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null;\n }\n}\n","import { isArray } from './isArray';\n\nexport function isNumeric(val: any): val is number {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","import {GridWidgetFilter} from './grid-widget-filter';\nimport {DataField} from '../data-field';\n\nexport enum DisableFilterOption {\n both,\n advancedOnly,\n simpleOnly\n}\nexport abstract class GridWidgetDataField extends DataField {\n //used for sorting the select boxes that the DataFields show up in.\n //IF it is filled in.\n sortKey: number | undefined;\n\n //When this field is set to true, the field will be the default filter to show up.\n //I don't recommend setting more than one of these to true or you will get unexpected\n //results.\n defaultFilterOption = false;\n\n //This is placeholder text that will populate an empty field to help the user know what to enter. e.g. 'Enter Your Mother's Name'\n placeholderText: string;\n\n validationRules: any = {};\n\n //When left undefined, this will not disable the filter capability for this field.\n //new feature in GridWidget 2\n filterDisabled: DisableFilterOption;\n\n //This is used for determine whether to export the field to a file or not.\n fieldExportDisabled = false;\n\n /**\n * The sort order is the order they will show up in the drop downs.\n * @param id 0 similar to an html id in that it needs to be unique for the page you are using it for. Should contain\n * a-z 0-9 and -. this may show up in the DOM.\n * @param objectLookup\n * @param sortOrder\n */\n constructor(id: string, objectLookup: string | ((Object) => any), title: string, sortOrder?: number) {\n super(id, objectLookup, title);\n if (this.id == null || this.id.startsWith('+') || this.id.startsWith('-')) {\n throw 'there must be an id, and it can not start with + or -';\n }\n this.sortKey = sortOrder;\n }\n\n toString(): string {\n return 'GridWidgetDataField: ' + this.id;\n }\n\n setPlaceholderText(placeholderText: string): void {\n this.placeholderText = placeholderText;\n }\n\n setDefaultFilterOption(): void {\n this.defaultFilterOption = true;\n }\n\n //TODO write unit tests for this.\n //Make sure to especially test with numberOfAvailableFilters\n disableFiltering(option: DisableFilterOption = DisableFilterOption.both): void {\n this.filterDisabled = option;\n }\n\n /**\n * Calling this function will exclude this field from exporting to the csv file.\n */\n disableExport(): void {\n this.fieldExportDisabled = true;\n }\n\n /**\n * During the filter process, the Filter Task creates a filter instance for each of the available\n * fields to be 'quick filters'. These are separate instances from the advanced filter instances\n * that get created when the user presses the + button.\n */\n abstract getFilterInstance(): GridWidgetFilter;\n\n /**\n * Each individual field should make a type for the rules object that gets passed in.\n */\n setValidationRules(rules: any): void {\n throw 'validation rules have not been implemented for this field type';\n }\n}\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n setTimeout(() => { throw err; });\n}","export const rxSubscriber =\n (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('rxSubscriber')\n : '@@rxSubscriber';\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n","let userPrefix = '';\nlet getPrefixedKey = function (key: string): string {\n return userPrefix === '' ? key : `${userPrefix}-${key}`;\n};\n\nexport let pdsLocalStorage = {\n // Overridden by Object.defineProperty at the end of the file\n userPrefix: '',\n /**\n * Gets an item from local storage with the specified key\n */\n getItem(key: string): string | undefined {\n return localStorage.getItem(key) || undefined;\n },\n\n /**\n * Gets a persisted boolean from local storage, returns defaultResult if the value doesn't exist\n */\n getPersistedBoolean: function (key: string, defaultResult = false): boolean {\n let item = this.getItem(key);\n if (item == null) {\n return defaultResult;\n }\n\n return item === 'true';\n },\n\n /**\n * Removes an item from local storage with the specified key\n */\n removeItem(key: string): void {\n localStorage.removeItem(key);\n },\n\n /**\n * Sets an item with the specified key to the specified value. Returns true if localStorage is available, false if not.\n */\n setItem(key: string, value: string): boolean {\n // localStorage is not available in Safari private browsing mode so wrap setItem in a try catch block\n try {\n localStorage.setItem(key, value);\n return true;\n } catch (err) {\n console.error(`Browser local storage is not available`);\n return false;\n }\n },\n\n /**\n * User functions are equivelent to the non-user functions when userPrefix is empty string.\n * When userPrefix is not an empty string, user functions automatically add a prefix to the key.\n */\n getUserItem(key: string): string | undefined {\n return this.getItem(getPrefixedKey(key));\n },\n\n getUserPersistedBoolean (key: string, defaultResult = false): boolean {\n return this.getPersistedBoolean(getPrefixedKey(key), defaultResult);\n },\n\n removeUserItem(key: string): void {\n this.removeItem(getPrefixedKey(key));\n },\n\n setUserItem(key: string, value: string): boolean {\n return this.setItem(getPrefixedKey(key), value);\n }\n };\n\nObject.defineProperty(pdsLocalStorage, 'userPrefix', {\n get: function(): string {\n return userPrefix;\n },\n set: function(value: string): void {\n userPrefix = value;\n }\n});\n","import {pdsUtils} from './pds-utils';\nimport {AjaxSettings} from './interfaces/ajax-settings';\nimport {Observable} from 'rxjs';\nimport {AjaxResponse} from './interfaces/AjaxResponse';\nimport { pdsLocalStorage } from './pds-local-storage';\n\ntype QueryParamMap = {[paramName: string]: string};\ntype HeaderMap = {[headerName: string]: string};\n\n/*\n This object is meant to be a utility for wrapping ajax calls in observables.\n It is not exposed on the pds toolkit yet as it is only meant to be used internally in PDS.\n When it comes time to use this outside of PDS we will have to expose it through the PDS toolkit object.\n*/\nexport let pdsHttpUtils = {\n\n get(url: string, queryParameters?: QueryParamMap, headers?: HeaderMap, disableAjaxStatus?: boolean): Observable {\n let ajaxOptions = {\n headers: headers,\n method: 'GET',\n disableAjaxStatus: disableAjaxStatus\n };\n return request(url, ajaxOptions, queryParameters);\n },\n\n post(url: string, data: any, queryParameters?: QueryParamMap, headers: HeaderMap = {}, disableAjaxStatus?: boolean): Observable {\n if (headers['content-type'] == null) { // if content type is not defined default to json\n headers['content-type'] = 'application/json';\n }\n let ajaxOptions: AjaxSettings = {\n headers: headers,\n method: 'POST',\n data: JSON.stringify(data), // data should be a string\n disableAjaxStatus: disableAjaxStatus\n };\n return request(url, ajaxOptions, queryParameters);\n },\n\n addUCAuthHeader(headers: HeaderMap): HeaderMap {\n (headers).Authorization = `Bearer ${pdsLocalStorage.getItem('auth_token')}`; // the application needs to set this in local storage\n return headers;\n }\n};\n\n// these methods are not part of the exported object to keep them private\n\nfunction request(url: string, settings: AjaxSettings = {}, queryParameters?: QueryParamMap): Observable {\n if (queryParameters != null && Object.keys(queryParameters).length > 0) {\n url = addQueryParams(url, queryParameters);\n\n }\n\n return Observable.create((observer) => {\n settings.success = (data: any, xhr: XMLHttpRequest, status: string) => {\n observer.next({data: xhr.responseText, status: xhr.status});\n observer.complete();\n };\n\n settings.error = (xhr: XMLHttpRequest, status: string) => {\n observer.error(({data: xhr.responseText, status: xhr.status}));\n observer.complete();\n };\n\n pdsUtils.ajax(url, settings);\n });\n}\n\nfunction addQueryParams(url: string, queryParameters?: QueryParamMap): string {\n if (queryParameters != null) {\n let queryParameterKeys = Object.keys(queryParameters);\n url += '?';\n for (let i = 0; i < queryParameterKeys.length; i++) {\n let key = queryParameterKeys[i];\n url += (key + '=' + queryParameters![key]);\n if (i !== queryParameterKeys.length - 1) {\n url += '&';\n }\n }\n }\n return url;\n}\n","/**\n * These are for getting data out of the GridWidget and turning into a REST call.\n */\nexport class RestArgument {\n field: string;\n comparator: string;\n value: any;\n valueAsString: string;\n\n constructor(field: string, comparator: string, value: any, valueAsString?: string) {\n this.field = field;\n this.comparator = comparator;\n this.value = value;\n if (valueAsString != null) {\n this.valueAsString = valueAsString;\n } else {\n this.valueAsString = String(value);\n }\n }\n\n toString(): string {\n return this.field + this.comparator + this.valueAsString;\n }\n}\n","import {LinkedListNode} from '../../utils/grid-widget/linked-list-node';\nimport {Observable} from 'rxjs';\nimport {gridWidgetLogger} from '../../utils/grid-widget/grid-widget-logger';\nimport {RestArgument} from './rest-argument';\nimport {Persistable} from './persistable';\n/**\n * Something that GridWidgetTask is a task that the grid widget will run during it's execution chain.\n */\nexport abstract class GridWidgetTask implements LinkedListNode, Persistable {\n /**\n * The results of the last run will be stored here.\n */\n result: Array;\n\n /**\n * The name of the task. Something like 'Filter', 'Paginate', or 'Sort'\n */\n name: string;\n\n /**\n * When this task is off, the task will be skipped in the filter chain.\n */\n gridWidgetTaskActive = true;\n\n nextNode: GridWidgetTask;\n\n previousNode: GridWidgetTask;\n\n logColor = '#000000';\n\n static get DATA_TASK_PRIORITY(): number {\n return 0;\n }\n\n static get BEFORE_FILTER_TASK_PRIORITY(): number {\n return 500;\n }\n\n static get FILTER_TASK_PRIORITY(): number {\n return 1000;\n }\n\n static get AFTER_FILTER_TASK_PRIORITY(): number {\n return 1500;\n }\n\n static get RESET_PAGINATION_TASK_PRIORITY(): number {\n return 1750;\n }\n\n static get SORT_TASK_PRIORITY(): number {\n return 2000;\n }\n\n static get AFTER_SORT_TASK_PRIORITY(): number {\n return 2500;\n }\n\n static get PAGINATE_TASK_PRIORITY(): number {\n return 3000;\n }\n\n static get AFTER_PAGINATE_TASK_PRIORITY(): number {\n return 3500;\n }\n\n static get COMPLETE_TASK_PRIORITY(): number {\n return 4000;\n }\n\n //These should be set during preRunSetup if the task is turned off.\n //As they are for serverside mode.\n restArguments: Array;\n\n abstract getPriority(): number;\n\n /**\n * The main function to exectute.\n */\n abstract run(data: Array): Array | Observable>;\n\n isGridWidgetTaskActive(): boolean {\n return this.gridWidgetTaskActive;\n }\n\n setGridWidgetTaskActive(value): void {\n this.gridWidgetTaskActive = value;\n }\n\n /**\n * A function that the execute task will run prior to calling run.\n * This will be called regardless of whether the task is active.\n * This gets run each time the task chain executes.\n */\n preRunSetup(): void {\n }\n\n /**\n * This is a live cycle hook that will be called when one or more of the task chain prerequisites fail.\n */\n taskChainCanceled(): void {\n }\n\n /**\n * Kicks off the task chain starting with this task.\n * An Asynchronous function.\n */\n execute(): void {\n let logResult = (result: Array, isSynchronous) => {\n let logString = '* * * ' + (isSynchronous ? '' : 'ASYNCHRONOUS ') + 'task complete: \"' + this.name + '\"';\n if (result == null) {\n logString += ' result: null';\n } else {\n logString += ' result.length: ' + result.length;\n }\n logString += ' * * *';\n\n gridWidgetLogger.log(logString, this.logColor);\n };\n\n //Runs whether the task is active or not.\n this.preRunSetup();\n\n if (this.isGridWidgetTaskActive()) {\n let result: Array | Observable> = this.run(this.previousNode.result);\n if (result == null) {\n result = [];\n }\n\n if (result instanceof Array) {\n this.result = >result;\n logResult(this.result, true);\n this.executeNext();\n } else {\n //Must be an observable. Subscribe to it.\n let runSubscription = (< Observable> >result).subscribe((response: Array) => {\n //In case we get the same observable object every time, we unsubscribe so there\n //won't be a build up of subscriptions. However, the observalbe coming back\n //will likely be from an Angular 2 REST call so we would probably get a new one every time.\n runSubscription.unsubscribe();\n\n this.result = response;\n logResult(this.result, false);\n this.executeNext();\n }, (error) => {\n console.error('An error occurred while running ' + this.name);\n console.error(error);\n this.result = [];\n this.executeNext();\n });\n }\n } else {\n this.result = this.previousNode.result;\n this.executeNext();\n }\n }\n\n /**\n * You MUST be able to call JSON.stringify on the returned object.\n */\n getPersistenceObject(): Object | undefined {\n return;\n }\n\n restoreFromPersistenceObject(value: Object): void { }\n\n private executeNext(): void {\n if (this.nextNode != null) {\n this.nextNode.execute();\n }\n }\n}\n","import {GridWidgetDataField} from './grid-widget-data-field';\nimport {RestArgument} from './rest-argument';\nimport {Persistable} from './persistable';\n\nexport interface ComparatorSetting {\n comparator: string;\n isVisible: boolean;\n messageKey: string;\n}\n\nexport abstract class GridWidgetFilter implements Persistable {\n\n //Be mindful that this has a pointer to the dataField. If the dataField is removed\n //we need to be sure to remove this object as well.\n dataField: GridWidgetDataField;\n\n constructor(dataField: GridWidgetDataField) {\n this.dataField = dataField;\n }\n\n abstract isBlank(): boolean;\n\n abstract internalPassesFilter(dataFromDataRow: any): boolean;\n\n /**\n * Returns the tag name associated with the filter component that will be drawn.\n * If you have created a custom Angular component and are returning a class token from getProviderToken(),\n * then this can simply return an empty string from this method.\n */\n abstract getTagName(): string;\n\n /**\n * Shim to continue supporting Angular.\n * This could still be used in custom filters and it can be overridden to return actual GridWidgetFilter class token.\n */\n getProviderToken(): any {\n //Defaults to tag name, but can be overidden.\n return this.getTagName();\n }\n\n /**\n * Determines if the dataRow passes the \"this\" filter object.\n * @param dataRow - A javascrcript object that represents a row in the table\n * being wrapped by the grid widget.\n * @param defaultValue - boolean - The value to return in the case of parse issues\n * in the GridWidgetFilter object.\n * Insight: advanced filters use true because a parse error should make it act as if it's blank, which passes everything).\n * simple filters pass in false because a parse error means that it did not pass the filter, and it's doing\n * a logical OR on the results of all filters.\n *\n * @returns boolean - true if the value in dataRow passes the filter\n * false if the value in dataRow does not pass the filter\n */\n passesFilter(dataRow): boolean {\n if (this.isBlank()) {\n return true;\n }\n\n let dataFromDataRow = this.dataField.resolve(dataRow);\n if (dataFromDataRow instanceof Array) {\n if (dataFromDataRow.length === 0) {\n //You don't pass any of the filters if there is no data\n //to pass.\n return false;\n }\n\n return (>dataFromDataRow).find((dataItem) => {\n return this.internalPassesFilter(dataItem);\n }) != null;\n } else {\n return this.internalPassesFilter(dataFromDataRow);\n }\n }\n\n /**\n * This function will be called once. Then passesFilter will be called hundreds of times.\n * So this function can set up search regexes based on the filter criteria for the user.\n */\n abstract preFilterUpdate(): void;\n\n /**\n * Takes user selections from an existing filter and applies them to this instance of the filter.\n */\n useDataFromExistingFilter(existingFilter: GridWidgetFilter): void {\n }\n\n /**\n * Sets up the quick filter.\n *\n * @param text The thing to search for.\n * @returns true if the quick filter is valid for filtering.\n * Example putting 'hello' into a text filter would return true.\n * putting '456' into a number filter would return true.\n * putting 'hello' into a number filter would return false.\n * putting null, undefined, or '' into any filter should return false.\n */\n abstract setQuickSearchValue(text: string): boolean;\n\n /**\n * Returns an array of objects that describe what the filter is working on.\n * This is used for server side Sorting, Filtering, and Pagination.\n */\n abstract getRestArguments(): Array;\n\n abstract getTagText(): string;\n\n abstract getPersistenceObject(): Object | undefined;\n\n abstract restoreFromPersistenceObject(value: Object): void;\n}\n","import { noop } from './noop';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe(): UnaryFunction;\nexport function pipe(op1: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction): UnaryFunction;\nexport function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction): UnaryFunction;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/* @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (!fns) {\n return noop as UnaryFunction;\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) => fn(prev), input as any);\n };\n}\n","/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport class UnsubscriptionError extends Error {\n\n public readonly name = 'UnsubscriptionError';\n\n constructor(public errors: any[]) {\n super(errors ?\n `${errors.length} errors occurred during unsubscription:\n ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '');\n (Object as any).setPrototypeOf(this, UnsubscriptionError.prototype);\n }\n}\n","import {GridWidgetService} from './grid-widget-service';\nimport {WizardService} from './wizard-service';\nimport {MessageService} from './message-service';\nclass ServiceInstances {\n\n private gridWidgetService: GridWidgetService | undefined;\n private wizardService: WizardService | undefined;\n\n private messageService: MessageService | undefined;\n\n getGridWidgetService(): GridWidgetService {\n if (this.gridWidgetService == null) {\n this.gridWidgetService = new GridWidgetService();\n }\n\n return this.gridWidgetService;\n }\n\n getMessageService(): MessageService {\n if (this.messageService == null) {\n this.messageService = new MessageService();\n }\n\n return this.messageService;\n }\n\n getWizardService(): WizardService {\n if (this.wizardService == null) {\n this.wizardService = new WizardService();\n }\n\n return this.wizardService;\n }\n}\n\nexport let serviceInstances: ServiceInstances = new ServiceInstances();\n","export class OrderedMap {\n //The array allows you to quickly iterate over all the items IN ORDER.\n //This is especially useful in Angular templates.\n //If I knew how to mark this READ ONLY I would. This thing should only be read, by the\n public array: Array<{key: string, value: T}> = [];\n\n private map: {[key: string]: {key: string, value: T}} = {};\n\n constructor(values?: Array<{key: string, value: any}>) {\n this.putAll(values);\n }\n\n put(key: string, value: T, index?: number): void {\n let item;\n\n item = this.map[key];\n\n if (item == null) {\n //If the item does not exist yet, create one.\n item = {\n key: key,\n value: value\n };\n this.map[key] = item;\n\n if (index == null || index >= this.array.length) {\n this.array.push(item);\n } else {\n if (index < 0) {\n index = 0;\n }\n\n this.array.splice(index, 0, item);\n }\n } else {\n item.value = value;\n if (index != null && this.array[index] !== item) {\n //They said they want this at a particular index and it's different\n //First, remove it from where it was before....\n this.array.splice(this.array.indexOf(item), 1);\n //Next, splice it in at the index.\n this.array.splice(index, 0, item);\n }\n }\n }\n\n putAll(values?: Array<{key: string, value: any}>): void {\n if (values != null) {\n values.forEach((token: {key: string, value: any}) => {\n this.put(token.key, token.value);\n });\n }\n }\n\n /**\n * Gets the value for the key.\n */\n get(key: string): T | undefined {\n let item: {key: string, value: T} = this.map[key];\n if (item != null) {\n let value: T = item.value;\n return value;\n }\n }\n\n /**\n * Removes the item in the map for the particular key\n * @param key\n * @returns {any} Returns the item removed\n */\n remove(key: string): T | undefined {\n // let item = this.array.find((obj) => {\n // return obj.key === key;\n // });\n\n let item = this.map[key];\n\n if (item != null) {\n this.array.splice(this.array.indexOf(item), 1);\n delete this.map[key];\n return item.value;\n }\n }\n\n /**\n * Removes all items from the sortable map.\n */\n clear(): void {\n // tslint:disable-next-line:forin\n for (let key in this.map) {\n delete this.map[key];\n }\n this.array.length = 0;\n }\n\n /**\n * Gets the number of items in the sortable map\n */\n get length(): number {\n return this.array.length;\n }\n\n /**\n * Gets the key values in standard object form. (Which is essentially a Map).\n */\n getMap(): {[key: string]: T} {\n let map: {[key: string]: T} = {};\n this.array.forEach((item) => {\n map[item.key] = item.value;\n });\n return map;\n }\n\n /**\n * Gets an array of the values in the map\n */\n values(): Array {\n return this.array.map((item) => {\n return item.value;\n });\n }\n\n /**\n * Gets the keys of the sortable map.\n */\n keys(): Array {\n return this.array.map((item) => {\n return item.key;\n });\n }\n\n /**\n * Works just like Array.prototype.forEach\n */\n forEach(callback: (value: T, key: string, index: number) => any): void {\n this.array.forEach((item, index) => {\n callback(item.value, item.key, index);\n });\n }\n\n /**\n * Works just like Array.prototype.find\n */\n find(callback: (value: T, key?: string, index?: number) => any): { key: string; value: T; } | undefined {\n return this.array.find((item, index) => {\n return callback(item.value, item.key, index);\n });\n }\n\n /**\n * Gets the first value in the sortable map.\n * Handy for initializing things.\n * @returns {T}\n */\n getFirstValue(): T | undefined {\n if (this.length > 0) {\n return this.array[0].value;\n }\n }\n\n /**\n * Gets the first key in the sortable map.\n * Handy for initializing UI things.\n * @returns {String}\n */\n getFirstKey(): string | undefined {\n if (this.length > 0) {\n return this.array[0].key;\n }\n }\n\n /**\n * Gets the value from the OrderedMap at the passed in index.\n * @param index - The index to get the value from.\n * @returns {T} - The value at that index. Undefined if the index does not exist.\n */\n getValueAt(index: number): T | undefined {\n let tuple: { key: string, value: T } | undefined = this.array[index];\n if (tuple != null) {\n return tuple.value;\n }\n }\n\n /**\n * Gets the index of the value if it exists in the OrderedMap. Returns -1 otherwise/\n * @param value - The value to search for.\n * @returns {number} - The index of the value if the value exists in the array. -1 otherwise.\n */\n indexOf(value: T): number {\n for (let i = 0; i < this.array.length; i++) {\n if (this.array[i].value === value) {\n return i;\n }\n }\n return -1;\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction, TeardownLogic } from '../types';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { Observable } from '../Observable';\n\nexport function refCount(): MonoTypeOperatorFunction {\n return function refCountOperatorFunction(source: ConnectableObservable): Observable {\n return source.lift(new RefCountOperator(source));\n } as MonoTypeOperatorFunction;\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // )\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subject } from './Subject';\nimport { SchedulerLike } from './types';\nimport { queue } from './scheduler/queue';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n/**\n * @class ReplaySubject\n */\nexport class ReplaySubject extends Subject {\n private _events: (ReplayEvent | T)[] = [];\n private _bufferSize: number;\n private _windowTime: number;\n private _infiniteTimeWindow: boolean = false;\n\n constructor(bufferSize: number = Number.POSITIVE_INFINITY,\n windowTime: number = Number.POSITIVE_INFINITY,\n private scheduler?: SchedulerLike) {\n super();\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n } else {\n this.next = this.nextTimeWindow;\n }\n }\n\n private nextInfiniteTimeWindow(value: T): void {\n const _events = this._events;\n _events.push(value);\n // Since this method is invoked in every next() call than the buffer\n // can overgrow the max size only by one item\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n\n super.next(value);\n }\n\n private nextTimeWindow(value: T): void {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n\n super.next(value);\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n // When `_infiniteTimeWindow === true` then the buffer is already trimmed\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription: Subscription;\n\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n } else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next((>_events[i]).value);\n }\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n\n return subscription;\n }\n\n _getNow(): number {\n return (this.scheduler || queue).now();\n }\n\n private _trimBufferThenGetEvents(): ReplayEvent[] {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = []>this._events;\n\n const eventsCount = _events.length;\n let spliceCount = 0;\n\n // Trim events that fall out of the time window.\n // Start at the front of the list. Break early once\n // we encounter an event that falls within the window.\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n\n return _events;\n }\n\n}\n\nclass ReplayEvent {\n constructor(public time: number, public value: T) {\n }\n}\n","import { SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { empty } from './empty';\nimport { scalar } from './scalar';\nimport { Observable } from '../Observable';\n\n/* tslint:disable:max-line-length */\nexport function of(a: T, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, c: T3, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler?: SchedulerLike): Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler?: SchedulerLike):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler?: SchedulerLike):\n Observable;\nexport function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler?: SchedulerLike):\n Observable;\nexport function of(...args: Array): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * Each argument becomes a `next` notification.\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```javascript\n * of(10, 20, 30)\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: 10'\n * // 'next: 20'\n * // 'next: 30'\n *\n * ```\n *\n * Emit the array `[1,2,3]`\n *\n * ```javascript\n * of([1,2,3])\n * .subscribe(\n * next => console.log('next:', next),\n * err => console.log('error:', err),\n * () => console.log('the end'),\n * );\n * // result:\n * // 'next: [1,2,3]'\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n * @method of\n * @owner Observable\n */\n\nexport function of(...args: Array): Observable {\n let scheduler = args[args.length - 1] as SchedulerLike;\n if (isScheduler(scheduler)) {\n args.pop();\n } else {\n scheduler = undefined;\n }\n switch (args.length) {\n case 0:\n return empty(scheduler);\n case 1:\n return scheduler ? fromArray(args as T[], scheduler) : scalar(args[0] as T);\n default:\n return fromArray(args as T[], scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits an error notification.\n *\n * Just emits 'error', and nothing else.\n * \n *\n * ![](throw.png)\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the error notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n * ### Emit the number 7, then emit an error\n * ```javascript\n * import { throwError, concat, of } from 'rxjs';\n *\n * const result = concat(of(7), throwError(new Error('oops!')));\n * result.subscribe(x => console.log(x), e => console.error(e));\n * ```javascript\n *\n * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 13\n * ```javascript\n * import { throwError, interval, of } from 'rxjs';\n * import { mergeMap } from 'rxjs/operators';\n *\n * interval(1000).pipe(\n * mergeMap(x => x === 13\n * ? throwError('Thirteens are bad')\n * : of('a', 'b', 'c')\n * ),\n * ).subscribe(x => console.log(x), e => console.error(e));\n * ```\n * @see {@link Observable}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link of}\n *\n * @param {any} error The particular Error to pass to the error notification.\n * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling\n * the emission of the error notification.\n * @return {Observable} An error Observable: emits only the error notification\n * using the given error argument.\n * @static true\n * @name throw\n * @owner Observable\n */\nexport function throwError(error: any, scheduler?: SchedulerLike): Observable {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n } else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\n\ninterface DispatchArg {\n error: any;\n subscriber: Subscriber;\n}\n\nfunction dispatch({ error, subscriber }: DispatchArg) {\n subscriber.error(error);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { Operator } from '../Operator';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\n\nconst NONE = {};\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, resultSelector: (v1: T) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, resultSelector: (v1: T, v2: T2) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R, scheduler?: SchedulerLike): Observable;\n\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, scheduler?: SchedulerLike): Observable<[T, T2]>;\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): Observable<[T, T2, T3]>;\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): Observable<[T, T2, T3, T4]>;\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): Observable<[T, T2, T3, T4, T5]>;\nexport function combineLatest(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): Observable<[T, T2, T3, T4, T5, T6]>;\n\nexport function combineLatest(array: ObservableInput[], scheduler?: SchedulerLike): Observable;\nexport function combineLatest(array: ObservableInput[], scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(array: ObservableInput[], resultSelector: (...values: Array) => R, scheduler?: SchedulerLike): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function combineLatest(array: ObservableInput[], resultSelector: (...values: Array) => R, scheduler?: SchedulerLike): Observable;\nexport function combineLatest(...observables: Array | SchedulerLike>): Observable;\nexport function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable;\nexport function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.\n *\n * ![](combineLatest.png)\n *\n * `combineLatest` combines the values from all the Observables passed as\n * arguments. This is done by subscribing to each Observable in order and,\n * whenever any Observable emits, collecting an array of the most recent\n * values from each Observable. So if you pass `n` Observables to operator,\n * returned Observable will always emit an array of `n` values, in order\n * corresponding to order of passed Observables (value from the first Observable\n * on the first place and so on).\n *\n * Static version of `combineLatest` accepts either an array of Observables\n * or each Observable can be put directly as an argument. Note that array of\n * Observables is good choice, if you don't know beforehand how many Observables\n * you will combine. Passing empty array will result in Observable that\n * completes immediately.\n *\n * To ensure output array has always the same length, `combineLatest` will\n * actually wait for all input Observables to emit at least once,\n * before it starts emitting results. This means if some Observable emits\n * values before other Observables started emitting, all that values but last\n * will be lost. On the other hand, if some Observable does not emit value but\n * completes, resulting Observable will complete at the same moment without\n * emitting anything, since it will be now impossible to include value from\n * completed Observable in resulting array. Also, if some input Observable does\n * not emit any value and never completes, `combineLatest` will also never emit\n * and never complete, since, again, it will wait for all streams to emit some\n * value.\n *\n * If at least one Observable was passed to `combineLatest` and all passed Observables\n * emitted something, resulting Observable will complete when all combined\n * streams complete. So even if some Observable completes, result of\n * `combineLatest` will still emit values when other Observables do. In case\n * of completed Observable, its value from now on will always be the last\n * emitted value. On the other hand, if any Observable errors, `combineLatest`\n * will error immediately as well, and all other Observables will be unsubscribed.\n *\n * `combineLatest` accepts as optional parameter `project` function, which takes\n * as arguments all values that would normally be emitted by resulting Observable.\n * `project` can return any kind of value, which will be then emitted by Observable\n * instead of default array. Note that `project` does not take as argument that array\n * of values, but values themselves. That means default `project` can be imagined\n * as function that takes all its arguments and puts them into an array.\n *\n * ## Examples\n * ### Combine two timer Observables\n * ```javascript\n * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now\n * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now\n * const combinedTimers = combineLatest(firstTimer, secondTimer);\n * combinedTimers.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0] after 0.5s\n * // [1, 0] after 1s\n * // [1, 1] after 1.5s\n * // [2, 1] after 2s\n * ```\n *\n * ### Combine an array of Observables\n * ```javascript\n * const observables = [1, 5, 10].map(\n * n => of(n).pipe(\n * delay(n * 1000), // emit 0 and then emit n after n seconds\n * startWith(0),\n * )\n * );\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0, 0] immediately\n * // [1, 0, 0] after 1s\n * // [1, 5, 0] after 5s\n * // [1, 5, 10] after 10s\n * ```\n *\n *\n * ### Use project function to dynamically calculate the Body-Mass Index\n * ```javascript\n * * const weight = of(70, 72, 76, 79, 75);\n * const height = of(1.76, 1.77, 1.78);\n * const bmi = combineLatest(weight, height).pipe(\n * map(([w, h]) => w / (h * h)),\n * );\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n * ```\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {ObservableInput} observable1 An input Observable to combine with other Observables.\n * @param {ObservableInput} observable2 An input Observable to combine with other Observables.\n * More than one input Observables may be given as arguments\n * or an array of Observables may be given as the first argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n */\nexport function combineLatest(...observables: Array |\n Array> |\n (((...values: Array) => R)) |\n SchedulerLike>): Observable {\n let resultSelector: (...values: Array) => R = null;\n let scheduler: SchedulerLike = null;\n\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = <(...values: Array) => R>observables.pop();\n }\n\n // if the first and only other argument besides the resultSelector is an array\n // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)`\n if (observables.length === 1 && isArray(observables[0])) {\n observables = >>observables[0];\n }\n\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\n\nexport class CombineLatestOperator implements Operator {\n constructor(private resultSelector?: (...values: Array) => R) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class CombineLatestSubscriber extends OuterSubscriber {\n private active: number = 0;\n private values: any[] = [];\n private observables: any[] = [];\n private toRespond: number;\n\n constructor(destination: Subscriber, private resultSelector?: (...values: Array) => R) {\n super(destination);\n }\n\n protected _next(observable: any) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n } else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n }\n\n notifyComplete(unused: Subscriber): void {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: R,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n } else {\n this.destination.next(values.slice());\n }\n }\n }\n\n private _tryResultSelector(values: any[]) {\n let result: any;\n try {\n result = this.resultSelector.apply(this, values);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { MonoTypeOperatorFunction, OperatorFunction, ObservableInput } from '../types';\n\nexport function mergeAll(concurrent?: number): OperatorFunction, T>;\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 * Flattens an Observable-of-Observables.\n *\n * ![](mergeAll.png)\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 * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map((ev) => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\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 * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map((ev) => interval(1000).pipe(take(10))),\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\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=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nexport function mergeAll(concurrent: number = Number.POSITIVE_INFINITY): MonoTypeOperatorFunction {\n return mergeMap(identity as (value: T, index: number) => ObservableInput, concurrent);\n}\n","import { Observable } from '../Observable';\nimport { SubscribableOrPromise } from '../types';\nimport { from } from './from'; // lol\nimport { empty } from './empty';\n\n/**\n * Creates an Observable that, on subscribe, calls an Observable factory to\n * make an Observable for each new Observer.\n *\n * Creates the Observable lazily, that is, only when it\n * is subscribed.\n * \n *\n * ![](defer.png)\n *\n * `defer` allows you to create the Observable only when the Observer\n * subscribes, and create a fresh Observable for each Observer. It waits until\n * an Observer subscribes to it, and then it generates an Observable,\n * typically with an Observable factory function. It does this afresh for each\n * subscriber, so although each subscriber may think it is subscribing to the\n * same Observable, in fact each subscriber gets its own individual\n * Observable.\n *\n * ## Example\n * ### Subscribe to either an Observable of clicks or an Observable of interval, at random\n * ```javascript\n * const clicksOrInterval = defer(function () {\n * return Math.random() > 0.5\n * ? fromEvent(document, 'click')\n * : interval(1000);\n * });\n * clicksOrInterval.subscribe(x => console.log(x));\n *\n * // Results in the following behavior:\n * // If the result of Math.random() is greater than 0.5 it will listen\n * // for clicks anywhere on the \"document\"; when document is clicked it\n * // will log a MouseEvent object to the console. If the result is less\n * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n * ```\n *\n * @see {@link Observable}\n *\n * @param {function(): SubscribableOrPromise} observableFactory The Observable\n * factory function to invoke for each Observer that subscribes to the output\n * Observable. May also return a Promise, which will be converted on the fly\n * to an Observable.\n * @return {Observable} An Observable whose Observers' subscriptions trigger\n * an invocation of the given Observable factory function.\n * @static true\n * @name defer\n * @owner Observable\n */\nexport function defer(observableFactory: () => SubscribableOrPromise | void): Observable {\n return new Observable(subscriber => {\n let input: SubscribableOrPromise | void;\n try {\n input = observableFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}","import { Observable } from '../Observable';\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Operator } from '../Operator';\nimport { ObservableInput, PartialObserver } from '../types';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\n\n/* tslint:disable:max-line-length */\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, resultSelector: (v1: T) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, v2: ObservableInput, resultSelector: (v1: T, v2: T2) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, resultSelector: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): Observable;\n\nexport function zip(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>;\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>;\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>;\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>;\nexport function zip(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>;\n\nexport function zip(array: ObservableInput[]): Observable;\nexport function zip(array: ObservableInput[]): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(array: ObservableInput[], resultSelector: (...values: Array) => R): Observable;\n/** @deprecated resultSelector is no longer supported, pipe to map instead */\nexport function zip(array: ObservableInput[], resultSelector: (...values: Array) => R): Observable;\n\nexport function zip(...observables: Array>): Observable;\nexport function zip(...observables: Array | ((...values: Array) => R)>): Observable;\nexport function zip(...observables: Array | ((...values: Array) => R)>): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the latest parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * ## Example\n * Combine age and name from different sources\n * ```javascript\n * let age$ = of(27, 25, 29);\n * let name$ = of('Foo', 'Bar', 'Beer');\n * let isDev$ = of(true, true, false);\n *\n * zip(age$, name$, isDev$).pipe(\n * map((age: number, name: string, isDev: boolean) => ({ age, name, isDev })),\n * )\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n * ```\n * @param observables\n * @return {Observable}\n * @static true\n * @name zip\n * @owner Observable\n */\nexport function zip(...observables: Array | ((...values: Array) => R)>): Observable {\n const resultSelector = <((...ys: Array) => R)> observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\n\nexport class ZipOperator implements Operator {\n\n resultSelector: (...values: Array) => R;\n\n constructor(resultSelector?: (...values: Array) => R) {\n this.resultSelector = resultSelector;\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ZipSubscriber extends Subscriber {\n private values: any;\n private resultSelector: (...values: Array) => R;\n private iterators: LookAheadIterator[] = [];\n private active = 0;\n\n constructor(destination: Subscriber,\n resultSelector?: (...values: Array) => R,\n values: any = Object.create(null)) {\n super(destination);\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n this.values = values;\n }\n\n protected _next(value: any) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n } else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n } else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n\n protected _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n\n if (len === 0) {\n this.destination.complete();\n return;\n }\n\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator: ZipBufferIterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n this.add(iterator.subscribe(iterator, i));\n } else {\n this.active--; // not an observable\n }\n }\n }\n\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n }\n\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n\n // abort if not all of them have values\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n\n let shouldComplete = false;\n const args: any[] = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n\n // check to see if it's completed now that you've gotten\n // the next value.\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n\n if (result.done) {\n destination.complete();\n return;\n }\n\n args.push(result.value);\n }\n\n if (this.resultSelector) {\n this._tryresultSelector(args);\n } else {\n destination.next(args);\n }\n\n if (shouldComplete) {\n destination.complete();\n }\n }\n\n protected _tryresultSelector(args: any[]) {\n let result: any;\n try {\n result = this.resultSelector.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n\ninterface LookAheadIterator extends Iterator {\n hasValue(): boolean;\n hasCompleted(): boolean;\n}\n\nclass StaticIterator implements LookAheadIterator {\n private nextResult: IteratorResult;\n\n constructor(private iterator: Iterator) {\n this.nextResult = iterator.next();\n }\n\n hasValue() {\n return true;\n }\n\n next(): IteratorResult {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n\n hasCompleted() {\n const nextResult = this.nextResult;\n return nextResult && nextResult.done;\n }\n}\n\nclass StaticArrayIterator implements LookAheadIterator {\n private index = 0;\n private length = 0;\n\n constructor(private array: T[]) {\n this.length = array.length;\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n next(value?: any): IteratorResult {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n\n hasValue() {\n return this.array.length > this.index;\n }\n\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass ZipBufferIterator extends OuterSubscriber implements LookAheadIterator {\n stillUnsubscribed = true;\n buffer: T[] = [];\n isComplete = false;\n\n constructor(destination: PartialObserver,\n private parent: ZipSubscriber,\n private observable: Observable) {\n super(destination);\n }\n\n [Symbol_iterator]() {\n return this;\n }\n\n // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n // this is legit because `next()` will never be called by a subscription in this case.\n next(): IteratorResult {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n } else {\n return { value: buffer.shift(), done: false };\n }\n }\n\n hasValue() {\n return this.buffer.length > 0;\n }\n\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n } else {\n this.destination.complete();\n }\n }\n\n notifyNext(outerValue: T, innerValue: any,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n\n subscribe(value: any, index: number) {\n return subscribeToResult(this, this.observable, this, index);\n }\n}\n","import { Observable } from '../Observable';\n\nexport function scalar(value: T) {\n const result = new Observable(subscriber => {\n subscriber.next(value);\n subscriber.complete();\n });\n result._isScalar = true;\n (result as any).value = value;\n return result;\n}\n","let nextHandle = 1;\n\nconst tasksByHandle: { [handle: string]: () => void } = {};\n\nfunction runIfPresent(handle: number) {\n const cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\n\nexport const Immediate = {\n setImmediate(cb: () => void): number {\n const handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(() => runIfPresent(handle));\n return handle;\n },\n\n clearImmediate(handle: number): void {\n delete tasksByHandle[handle];\n },\n};\n","import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class AsapAction extends AsyncAction {\n\n constructor(protected scheduler: AsapScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(\n scheduler.flush.bind(scheduler, null)\n ));\n }\n protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested microtask and\n // set the scheduled flag to undefined so the next AsapAction will schedule\n // its own.\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n\n this.active = true;\n this.scheduled = undefined;\n\n const {actions} = this;\n let error: any;\n let index: number = -1;\n let count: number = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * Perform task as fast as it can be performed asynchronously\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```javascript\n * Rx.Scheduler.async.schedule(() => console.log('async')); // scheduling 'async' first...\n * Rx.Scheduler.asap.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n * @static true\n * @name asap\n * @owner Scheduler\n */\n\nexport const asap = new AsapScheduler(AsapAction);\n","import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","export abstract class NotificationItem {\n\n id: string;\n\n // sometimes it's better to let the application using the pds widget manage marking things read\n // a notification item with isMarkedReadOnClick false allows this to happen\n isMarkedReadOnClick = true;\n\n constructor(public type: string, public isSeen = false, public isRead = false, protected aggregationKey = '', public subtype?: string) {\n }\n\n getPostedAt(): Date | null {\n return null;\n }\n\n getColorClass(): string | null {\n return null;\n }\n\n getSource(): string | null {\n return null;\n }\n\n getTitle(): string {\n return this.type;\n }\n\n getSubtitle(): string | null {\n return null;\n }\n\n getUserType(): string | null {\n return null;\n }\n\n getTooltip(): string | null {\n return null;\n }\n\n getTooltipForSubtitle(): string | null {\n return null;\n }\n\n getSenderUid(): string | null {\n return null;\n }\n\n // This can be used for a notification that needs immediate attention. The notification must\n // implement support for this property directly, otherwise it has no effect. You might use this\n // to render notifications that need attention differenlty from the others to draw the user's\n // attention to them.\n getRequiresAction(): boolean {\n return false;\n }\n\n // the aggregation key is the value used by the notification indicator controller to determine which items should go\n // into a NotificationItemGroup. They are formed by taking the pieces of data that each object group is aggregated by\n // and putting them into an object which we then convert to a string. This serves a double use case of being able to\n // parse that key later and send it in events to uniquely identify which group was clicked.\n getAggregationKey(): string {\n if (this.aggregationKey != null && this.aggregationKey.length > 0) {\n let parsedKey = JSON.parse(this.aggregationKey);\n parsedKey.type = this.type;\n return JSON.stringify(parsedKey);\n }\n return JSON.stringify({\n type: this.type\n });\n }\n\n get lookUpKey(): string {\n return '';\n }\n}\n","import {PdsWidget} from './pds-widget';\nimport {PopoverAccessibilityControllerIf} from './interfaces/popover-accessibility-controller-if';\nimport {TippyInstance} from './interfaces/tippy-instance';\nimport {PopoverAccessibilityControllerFactory} from './popover-accessibility-controller-factory';\nimport {PoppableElementFactory} from './poppable-element-factory';\nimport {PopoverEngine} from './interfaces/popover-engine';\nimport {pdsI18n} from './pds-i18n';\nimport {PopperPlacement} from './popper-configuration';\n\n/**\n * Contains all of the setup for dealing with a widget with one popover in it.\n * If more than one popover is necessary, we should build a class that deals with arrays of variables instead of single\n * instances, and this could potentially be refactored to extend the multiple version.\n */\nexport abstract class SinglePopoverWidget extends PdsWidget {\n protected popoverAccessibilityController: PopoverAccessibilityControllerIf;\n protected popoverTrigger: HTMLElement;\n protected popoverContentElement: HTMLElement;\n popoverInstance: TippyInstance | undefined;\n domEventListenerAdded = false;\n\n isPopoverShowing = false; //This gets initialized in the attached function\n\n attached(): void {\n super.attached();\n this.isPopoverShowing = false;\n this.createPopover();\n }\n\n /**\n * Gets the popover stuff all set up but may or may not call the function to actually put the popover on the screen.\n */\n createPopover(): void {\n this.log('createPopover() called');\n if (this.popoverInstance != null) {\n //If the popoverInstance has already been created, then we don't need to do it again.\n return;\n }\n\n if (this.isRequiredDataDefined() &&\n //Tippy must have the popover template rendered to the dom before it can work\n //because it takes the popover piece and moves it to the end of the page for rendering later\n this.querySelector(this.getPopoverSelector()) != null) {\n this.log('the data is in. Initialize the popover');\n this.popoverAccessibilityController = PopoverAccessibilityControllerFactory.getPopoverAccessibilityControllerInstance();\n this.popoverTrigger = this.querySelector(this.getPopoverTriggerSelector());\n this.popoverContentElement = this.querySelector(this.getPopoverSelector());\n this.popoverAccessibilityController.setPanelTrigger(this.popoverTrigger);\n this.popoverAccessibilityController.setHidePanelCallback(() => { this.hidePopover(); });\n this.popoverAccessibilityController.setPanelContainer(this.popoverContentElement);\n this.popoverAccessibilityController.addRequiredAccessibilityLabelsToChildTabbableElements();\n\n this.createPopoverPanel();\n } else if (!this.domEventListenerAdded) {\n this.log('the data is not in. Wait for the data to come in before initializing the popover.');\n //this gets the main template and listens to it to complete which apparently includes it's children\n //That way we ensure that the elements needed have already been added to the DOM.\n let watchElement = this.querySelector(this.getListenerSelector());\n if (watchElement == null) {\n console.error(this.getListenerSelector() + ' does not exist');\n return;\n }\n watchElement.addEventListener('dom-change', (event): void => {\n this.log('dom-change event occurred');\n this.createPopover();\n });\n this.domEventListenerAdded = true;\n }\n }\n\n /**\n * Actually puts the popover panel on the screen using tippy.\n */\n createPopoverPanel(): void {\n this.log('createPopoverPanel() called');\n let popoverConfig = PoppableElementFactory.generatePopoverConfig(\n false,\n this.getDefaultAlignment(), //'bottom-end',\n 7000,\n 'popover ' + this.is,\n this.popoverContentElement,\n (instance: PopoverEngine) => { this.onPopoverHidden(instance); },\n (instance: PopoverEngine) => { this.onPopoverShown(instance); });\n this.popoverInstance = PoppableElementFactory.generatePoppableElement(this.popoverTrigger, popoverConfig, this.is);\n }\n\n /**\n * This will hide the popover tippy instance.\n */\n hidePopover(): void {\n this.log('hidePopover() called');\n if (this.popoverInstance != null) {\n this.popoverInstance.hide();\n }\n }\n\n /**\n * Gets the selector to watch the DOM for before the popoverSelector() can be found.\n * Defaults to the popoverSelector, but can be overridden for widgets that have dom-if around the popover selector.\n * If you override this, you can give the selector for the content element of the widget.\n * @returns {string} - Selector for the element in your widget to watch.\n */\n getListenerSelector(): string {\n return this.getPopoverSelector();\n }\n\n /**\n * This callback is called when the popover gets closed.\n * @param popoverEngineInstance\n */\n onPopoverHidden(popoverEngineInstance: PopoverEngine): void {\n this.log('onPopoverHidden called');\n this.isPopoverShowing = false;\n this.popoverAccessibilityController.deregisterEventListenerOnPanel('keydown');\n }\n\n /**\n * This callback is called when the popover gets opened up for the user to see.\n * @param popoverEngineInstance\n */\n onPopoverShown(popoverEngineInstance: PopoverEngine): void {\n this.log('onPopoverShown called');\n this.isPopoverShowing = true;\n this.popoverContentElement = popoverEngineInstance.popper;\n this.popoverAccessibilityController.setPanelContainer(this.popoverContentElement);\n this.popoverContentElement.setAttribute('aria-label', pdsI18n.getText('pds|popover|Backwards From First Element'));\n this.popoverAccessibilityController.registerEventListenerOnPanel('keydown');\n }\n\n /**\n * When this method returns true, it informs the single-popover-widget that the template could be rendered by Polymer.\n * When it returns false, it informs the single-popover-widget not to create the popover panel yet because the template\n * will not have been rendered.\n */\n abstract isRequiredDataDefined(): boolean;\n\n /**\n * Get the html selector for the container that will be moved out of the DOM and into the tippy container.\n */\n abstract getPopoverSelector(): string;\n\n /**\n * Gets the selector of the button or anchor that will open the popover.\n */\n abstract getPopoverTriggerSelector(): string;\n\n abstract log(message?: any, ...optionalParams: any[]): void;\n\n /**\n * If you don't know what to return for this, return 'bottom-end'\n */\n abstract getDefaultAlignment(): PopperPlacement;\n}\n","import { Subject } from 'rxjs';\nimport {Observable} from 'rxjs';\nimport {NotificationItem} from '../models/notification-item';\n\n// this class is the base interface of services used by the aggregated-notification-service for the notification indicator\nexport abstract class NotificationService {\n notificationStream: Observable = new Subject();\n\n abstract type: string;\n\n constructor(setup: any) {\n\n }\n\n abstract markAsRead(items: Array): Observable;\n abstract markAsSeen(items: Array): Observable;\n\n abstract initializeNotificationStream(): Observable;\n\n //This is one of the trickier functions. It needs to get the right number of notifications that we should show\n //in the UI. But how many is that? These will get aggregated in the Notification indicator controller.\n abstract getRecentNotifications(limit: number): Observable>;\n}\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\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}\n */\nexport class Scheduler implements SchedulerLike {\n\n /**\n * Note: the extra arrow function wrapper is to make testing by overriding\n * Date.now easier.\n * @nocollapse\n */\n public static now: () => number = () => Date.now();\n\n constructor(private SchedulerAction: typeof Action,\n 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(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\n","export namespace DateUtil {\r\n export function compareDates(date1: Date, date2: Date): number {\r\n if (date1 < date2) {\r\n return -1;\r\n } else if (date1 > date2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n export function isBefore(date1: Date, date2: Date): boolean {\r\n return compareDates(date1, date2) === -1;\r\n }\r\n\r\n export function isAfter(date1: Date, date2: Date): boolean {\r\n return compareDates(date1, date2) === 1;\r\n }\r\n\r\n /**\r\n * dateRangeIsContained - returns true if the first date range is completely contained by the second date range.\r\n * @param startDate - the start of the first date range\r\n * @param endDate - the end of the first date range\r\n * @param otherStartDate - the start of the date range that might contain the first date range\r\n * @param otherEndDate - the end of the date range that might contain the first date range\r\n * @returns {boolean}\r\n */\r\n export function dateRangeIsContained(startDate: Date, endDate: Date, otherStartDate: Date, otherEndDate: Date): boolean {\r\n return compareDates(startDate, otherStartDate) >= 0 && compareDates(endDate, otherEndDate) <= 0;\r\n }\r\n}\r\n","export namespace NumberUtil {\r\n export function compareNumbers(number1: number, number2: number): number {\r\n if (number1 < number2) {\r\n return -1;\r\n } else if (number1 > number2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n export function isNumber(num: number): boolean {\r\n return num != null && !isNaN(num);\r\n }\r\n\r\n export function round(num: number, decimalPlaces: number): number {\r\n if (num == null || decimalPlaces == null) {\r\n return num;\r\n }\r\n\r\n //http://www.jacklmoore.com/notes/rounding-in-javascript/\r\n return Number(Math.round((num + 'e' + decimalPlaces)) + 'e-' + decimalPlaces);\r\n }\r\n\r\n export function roundToPrecision(value: number, lowDecimals: number, highDecimals: number, useLow: boolean): number {\r\n return round(value, useLow ? lowDecimals : highDecimals);\r\n }\r\n}\r\n","export namespace StringUtil {\r\n export function defaultString(value: string): string {\r\n return value != null ? value : '';\r\n }\r\n\r\n export function compareStrings(string1: string, string2: string): number {\r\n if (string1 != null && string2 == null) {\r\n return -1;\r\n } else if (string1 == null && string2 != null) {\r\n return 1;\r\n } else if (string1 == null && string2 == null) {\r\n return 0;\r\n }\r\n return string1.localeCompare(string2);\r\n }\r\n\r\n export function compareStringsIgnoreCase(string1: string, string2: string): number {\r\n return this.compareStrings(string1.toLowerCase(), string2.toLowerCase());\r\n }\r\n\r\n export let ESCAPE_EXCLUDE_CHARS_REGEX: RegExp = /[\\-\\^\\*\\\\\\]]/g;\r\n\r\n export function scrubStringForFileName(value: string): string {\r\n return value.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n }\r\n}\r\n","import {NotificationItem} from './notification-item';\nimport {pdsI18n} from '../pds-i18n';\n\nconst MS_IN_DAY = 86400000;\n\nlet idx = 0;\nexport class NotificationItemGroup {\n\n id: string;\n\n notifications: Array = [];\n\n unreadNotificationCount = 0;\n\n unseenNotificationCount = 0;\n\n title: string;\n\n tooltip: string | null;\n\n subtitle: string | null;\n\n colorClass: string | null;\n\n mostRecentPostedAt: Date | null;\n\n postedAtUXFormat: string | null;\n\n senderUid: string | null;\n\n requiresAction: boolean;\n\n userType: string | null;\n\n static compare(grp1: NotificationItemGroup, grp2: NotificationItemGroup): number {\n if (grp1.mostRecentPostedAt != null && grp2.mostRecentPostedAt == null) {\n return -1;\n } else if (grp1.mostRecentPostedAt == null && grp2.mostRecentPostedAt != null) {\n return 1;\n } else if (grp1.mostRecentPostedAt == null && grp2.mostRecentPostedAt == null) {\n return 0;\n } else {\n // TS isn't picking up on semantics that these properties aren't null so using, '!'\n return grp2.mostRecentPostedAt!.getTime() - grp1.mostRecentPostedAt!.getTime();\n }\n }\n\n constructor(public type: string, public aggregationKey: string, public isMarkedReadOnClick, public isRead = true, public isSeen = true) {\n this.id = String(idx++);\n }\n\n addNotification(notification: NotificationItem): void {\n let title = notification.getTitle();\n if (this.notifications.length === 0) {\n this.title = title;\n } else if (this.title != null && this.title.indexOf(title) === -1) {\n this.title += ', ' + title;\n }\n\n let toolTipText = notification.getTooltip();\n if (this.tooltip == null) {\n this.tooltip = toolTipText;\n }\n\n let subtitle = notification.getSubtitle();\n if (!this.subtitle) {\n this.subtitle = subtitle;\n }\n\n let userType = notification.getUserType();\n if (!this.userType) {\n this.userType = userType;\n }\n\n if (this.senderUid == null) {\n this.senderUid = notification.getSenderUid();\n }\n\n let postedAt: Date | null = notification.getPostedAt();\n if (postedAt != null && (this.mostRecentPostedAt == null || (postedAt.getTime() > this.mostRecentPostedAt.getTime()))) {\n this.senderUid = notification.getSenderUid();\n this.mostRecentPostedAt = postedAt;\n this.tooltip = toolTipText;\n\n this.postedAtUXFormat = pdsI18n.formatDate(postedAt, 'DATE_TIME_PRETTY');\n }\n\n this.notifications.push(notification);\n\n if (!notification.isSeen) {\n this.isSeen = false;\n this.unseenNotificationCount++;\n }\n\n if (!notification.isRead) {\n this.isRead = false;\n this.unreadNotificationCount++;\n }\n\n if (!this.colorClass) {\n this.colorClass = notification.getColorClass();\n }\n\n //if any notification needs attention, the whole group does\n this.requiresAction = this.requiresAction || notification.getRequiresAction();\n }\n\n markAsSeen(): void {\n for (let notification of this.notifications) {\n notification.isSeen = true;\n }\n this.unseenNotificationCount = 0;\n this.isSeen = true;\n }\n\n markAsRead(): void {\n for (let notification of this.notifications) {\n notification.isRead = true;\n }\n this.unreadNotificationCount = 0;\n this.isRead = true;\n }\n\n getUnreadNotifications(): Array {\n return this.notifications.filter(notification => !notification.isRead);\n }\n\n get lookUpKey(): string {\n if (this.notifications.length > 0) {\n return this.notifications[0].lookUpKey;\n }\n return '';\n }\n\n markReadWhere(lookUpFunction: (item: NotificationItem) => boolean): Array {\n let notificationsToMark: Array = this.notifications.filter(lookUpFunction);\n for (let notification of notificationsToMark) {\n notification.isRead = true;\n this.unreadNotificationCount -= 1;\n }\n return notificationsToMark;\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subject } from '../Subject';\nimport { OperatorFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function groupBy(keySelector: (value: T) => K): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): OperatorFunction>;\nexport function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): OperatorFunction>;\n/* tslint:enable:max-line-length */\n\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * ![](groupBy.png)\n *\n * ##Examples\n * Group objects by id and return as array\n * ```typescript\n * interface Obj {\n * id: number,\n * name: string,\n * }\n * \n * of(\n * {id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs3'},\n * {id: 2, name: 'qsgqsfg2'},\n * ).pipe(\n * groupBy(p => p.id),\n * mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))),\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'aze1' },\n * // { id: 1, name: 'erg1' },\n * // { id: 1, name: 'df1' } ]\n * //\n * // [ { id: 2, name: 'sf2' },\n * // { id: 2, name: 'dg2' },\n * // { id: 2, name: 'sfqfb2' },\n * // { id: 2, name: 'qsgqsfg2' } ]\n * //\n * // [ { id: 3, name: 'qfs3' } ]\n * ```\n *\n * Pivot data on the id field\n * ```typescript\n * of(\n * {id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs1'},\n * {id: 2, name: 'qsgqsfg2'},\n * ).pipe(\n * groupBy(p => p.id, p => p.name),\n * mergeMap( (group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], [\"\" + group$.key]))),\n * map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)})),\n * )\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'aze1', 'erg1', 'df1' ] }\n * // { id: 2, values: [ 'sf2', 'dg2', 'sfqfb2', 'qsgqsfg2' ] }\n * // { id: 3, values: [ 'qfs1' ] }\n * ```\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable): Observable} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nexport function groupBy(keySelector: (value: T) => K,\n elementSelector?: ((value: T) => R) | void,\n durationSelector?: (grouped: GroupedObservable) => Observable,\n subjectSelector?: () => Subject): OperatorFunction> {\n return (source: Observable) =>\n source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n}\n\nexport interface RefCountSubscription {\n count: number;\n unsubscribe: () => void;\n closed: boolean;\n attemptedToUnsubscribe: boolean;\n}\n\nclass GroupByOperator implements Operator> {\n constructor(private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n }\n\n call(subscriber: Subscriber>, source: any): any {\n return source.subscribe(new GroupBySubscriber(\n subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector\n ));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupBySubscriber extends Subscriber implements RefCountSubscription {\n private groups: Map> = null;\n public attemptedToUnsubscribe: boolean = false;\n public count: number = 0;\n\n constructor(destination: Subscriber>,\n private keySelector: (value: T) => K,\n private elementSelector?: ((value: T) => R) | void,\n private durationSelector?: (grouped: GroupedObservable) => Observable,\n private subjectSelector?: () => Subject) {\n super(destination);\n }\n\n protected _next(value: T): void {\n let key: K;\n try {\n key = this.keySelector(value);\n } catch (err) {\n this.error(err);\n return;\n }\n\n this._group(value, key);\n }\n\n private _group(value: T, key: K) {\n let groups = this.groups;\n\n if (!groups) {\n groups = this.groups = new Map>();\n }\n\n let group = groups.get(key);\n\n let element: R;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n } catch (err) {\n this.error(err);\n }\n } else {\n element = value;\n }\n\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject()) as Subject;\n groups.set(key, group);\n const groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n let duration: any;\n try {\n duration = this.durationSelector(new GroupedObservable(key, >group));\n } catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n\n if (!group.closed) {\n group.next(element);\n }\n }\n\n protected _error(err: any): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.error(err);\n });\n\n groups.clear();\n }\n this.destination.error(err);\n }\n\n protected _complete(): void {\n const groups = this.groups;\n if (groups) {\n groups.forEach((group, key) => {\n group.complete();\n });\n\n groups.clear();\n }\n this.destination.complete();\n }\n\n removeGroup(key: K): void {\n this.groups.delete(key);\n }\n\n unsubscribe() {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n super.unsubscribe();\n }\n }\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass GroupDurationSubscriber extends Subscriber {\n constructor(private key: K,\n private group: Subject,\n private parent: GroupBySubscriber) {\n super(group);\n }\n\n protected _next(value: T): void {\n this.complete();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribe() {\n const { parent, key } = this;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n }\n}\n\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable\n */\nexport class GroupedObservable extends Observable {\n /** @deprecated Do not construct this type. Internal use only */\n constructor(public key: K,\n private groupSubject: Subject,\n private refCountSubscription?: RefCountSubscription) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n const subscription = new Subscription();\n const { refCountSubscription, groupSubject } = this;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass InnerRefCountSubscription extends Subscription {\n constructor(private parent: RefCountSubscription) {\n super();\n parent.count++;\n }\n\n unsubscribe() {\n const parent = this.parent;\n if (!parent.closed && !this.closed) {\n super.unsubscribe();\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n }\n}\n","import { NotificationItem } from './notification-item';\nimport { SectionRI, StudentRI } from 'common-utils/rest-interfaces';\nimport { pdsUtils } from '../pds-utils';\n\nexport type ActivityFeedNotificationContext = {\n section: SectionRI,\n students?: Array,\n feedName: string,\n activityId: string,\n activitySenderName: string,\n postedAt: Date,\n senderUid: string,\n userType: string\n};\n\nexport class ActivityFeedNotificationItem extends NotificationItem {\n\n static NOTIFICATION_TYPE = 'ACTIVITY_FEED_NOTIFICATION';\n\n feedName: string;\n context: ActivityFeedNotificationContext;\n\n static generateLookUpKey(sectionUid: string): string {\n return [sectionUid, ActivityFeedNotificationItem.NOTIFICATION_TYPE].join(',');\n }\n\n constructor(isSeen: boolean, isRead: boolean, context: ActivityFeedNotificationContext) {\n super(ActivityFeedNotificationItem.NOTIFICATION_TYPE, isSeen, isRead);\n this.context = context;\n this.id = this.context.activityId;\n this.feedName = this.context.feedName;\n this.aggregationKey = JSON.stringify({\n sectionUid: this.context.section.uid\n });\n }\n\n getColorClass(): string {\n return pdsUtils.getSectionColorForClass(this.context.section);\n }\n\n getSource(): string {\n return this.context.activitySenderName;\n }\n\n getTitle(): string {\n if (this.context.userType === 'TEACHER') {\n let secondaryDisplay = this.context.section.secondaryDisplay || '';\n secondaryDisplay = secondaryDisplay.length > 15 ? (secondaryDisplay.slice(0, 15) + '...') : secondaryDisplay;\n return `${secondaryDisplay.length > 0 ? secondaryDisplay + ' ' : ''}${this.context.section.primaryDisplay}`;\n }\n return `${this.context.section.primaryDisplay}`;\n }\n\n getSubtitle(): string {\n if (this.context.userType !== 'PARENT' || this.context.students == null) {\n return '';\n }\n return this.context.students.map((student) => {\n return `${student.firstName} ${student.lastName}`;\n }).join(',');\n }\n\n getTooltip(): string {\n return `${this.context.activitySenderName}\\n${this.context.section.secondaryDisplay} ${this.context.section.primaryDisplay}`;\n }\n\n getPostedAt(): Date | null {\n return this.context.postedAt;\n }\n\n getSenderUid(): string | null {\n return this.context.senderUid;\n }\n\n get lookUpKey(): string {\n return ActivityFeedNotificationItem.generateLookUpKey(this.context.section.uid);\n }\n}\n","import {ParseResolver} from './interfaces/parse-resolver';\n\nconst SUPPORTED_STRINGS_REGEX = /^[A-Za-z0-9_]+(\\(\\))?(\\.[A-Za-z0-9_]+(\\(\\))?)*$/;\nconst PLAIN_KEY_REGEX = /^[A-Za-z0-9]+$/;\nconst FUNCTION_CALL_REGEX = /^([A-Za-z0-9]+)\\( *\\)$/;\n\n/**\n * ParseResolver was created to mimic what Angular 1 gave us in the $parse service.\n */\nexport class SimpleParseResolver implements ParseResolver {\n\n tokens: Array<{hash: string, isFunction: boolean}> = [];\n\n /**\n * @param parseText: an object lookup key that can contain functions or hash lookups.\n */\n constructor(parseText: string) {\n if (!SUPPORTED_STRINGS_REGEX.test(parseText)) {\n throw 'parseText not supported: ' + parseText;\n }\n\n parseText.split('.').forEach((textToken: string) => {\n if (PLAIN_KEY_REGEX.test(textToken)) {\n this.tokens.push({\n hash: textToken,\n isFunction: false\n });\n } else if (FUNCTION_CALL_REGEX.test(textToken)) {\n let pieces: RegExpExecArray | null = FUNCTION_CALL_REGEX.exec(textToken);\n if (pieces != null) {\n this.tokens.push({\n hash: pieces[1],\n isFunction: true\n });\n }\n }\n });\n }\n\n /**\n * resolves the parseText against the target object. Any references other\n * than the main reference are resolved against the context.\n * @param target - The object to resolve the parseText against.\n * @param context - The object to resolve any references inside the parseText against.\n * @returns {any}\n */\n resolve(target: any): any {\n let t: any = target;\n this.tokens.find((token: {hash: string, isFunction: boolean}) => {\n if (t == null) {\n //Make the looping stop.\n return true;\n }\n\n if (token.isFunction) {\n let fn = t[token.hash];\n //t is the object that points fn,\n //so that is the context we must call the function in.\n t = fn.call(t);\n } else {\n t = t[token.hash];\n }\n return false;\n });\n\n return t;\n }\n}\n","import {ValidationResult, Validator} from 'common-utils/interfaces';\nimport {allInputTagsSelector} from './pds-abstract-input-widget';\n\nexport let pdsValidation = {\n pds: undefined,\n _customValidationFunctions: {},\n /**\n * Searches the DOM element for all descendants that are widgets that can be validated\n * and runs their validation functions which will put any error messages up on the screen\n * as well as return whether all elements are valid within the container or not.\n * @param element: a DOM element\n * @returns true if all the elements are valid\n * false if one or more elements are NOT valid\n */\n validateElements: function (element: HTMLElement, setFocus = true): boolean {\n if (element == null) {\n return true;\n }\n\n let allElementsAreValid = true;\n\n let inputWidgets = element.querySelectorAll(allInputTagsSelector);\n for (let i = 0; i < inputWidgets.length; i++) {\n //It's important that the AND allElementsAreValid is tested AFTER numWidgets[i].validateNumber\n //so ALL elements will be validated.\n //The parameter to validateWidget here could come from parameters of this method to enable us\n //to tell the widget whether or not it should show errors after validation.\n allElementsAreValid = (inputWidgets[i]).validateWidget(true) && allElementsAreValid;\n }\n // if there are invalid elements, then set focus on the first invalid element\n if (!allElementsAreValid && setFocus) {\n this.setFocusOnFirstInvalidElement(element);\n }\n return allElementsAreValid;\n\n },\n /**\n * Registers a function to be used as a validator for validation widgets.\n * @param functionName: the key by which we will look up this function. See getCustomValidate for more info.\n * @param executeFunction: the function that will do the validation. Must meet the following interface:\n * (value: string, condition: any, context: {[key: string]: any}) => ValidationResult\n * NOTE: condition will be { element: PdsAbstractInputWidget } which allows the validate function\n * to get at any other special data attached to the widget element.\n */\n registerCustomValidate: function(functionName: string, executeFunction: (value: string, condition: any, context: {[key: string]: any}) => ValidationResult): void {\n if (functionName == null || functionName === '' || executeFunction == null) {\n return;\n }\n this._customValidationFunctions[functionName] = executeFunction;\n },\n /**\n * Looks up a validator function that was previously registered by registerCustomValidate. This validator is used\n * by validation widgets. Being able to implement custom validators adds flexibility to the widgets.\n * @param functionName: the name used to register the validator in registerCustomValidate\n * @returns {any}: a function used as a validator.\n */\n getCustomValidate: function(functionName: string): (value: string, condition: any, context: {[key: string]: any}) => ValidationResult {\n return this._customValidationFunctions[functionName];\n },\n\n /**\n * This function returns a list of invalid elements that are contained within some parent element.\n * @param page\n * @return list of invalid elements\n */\n\n getAllInvalidElements(parentElement: HTMLElement): Array {\n let myInvalidElements = new Array();\n let allMyChildInputElements = parentElement.querySelectorAll(allInputTagsSelector);\n for (let i = 0; i < allMyChildInputElements.length; i++) {\n if (!(allMyChildInputElements[i]).validateWidget(true)) {\n myInvalidElements.push(allMyChildInputElements[i]);\n }\n }\n return myInvalidElements;\n },\n\n /**\n * This function returns the first invalid element on the page\n * @param page\n * @return list of invalid elements\n */\n\n getFirstInvalidElement(parentElement: HTMLElement): HTMLElement {\n let myFirstInvalidElement;\n let allMyChildInputElements = parentElement.querySelectorAll(allInputTagsSelector);\n for (let i = 0; i < allMyChildInputElements.length; i++) {\n if (!(allMyChildInputElements[i]).validateWidget(true)) {\n myFirstInvalidElement = allMyChildInputElements[i];\n return myFirstInvalidElement;\n }\n }\n return myFirstInvalidElement;\n },\n\n /**\n * sets focus on the first invalid element\n */\n\n setFocusOnFirstInvalidElement(parentElement: HTMLElement): void {\n let myFirstInvalidElement = this.getFirstInvalidElement(parentElement);\n if (myFirstInvalidElement != null) {\n myFirstInvalidElement.setAttribute('tabindex', '-1');\n myFirstInvalidElement.focus();\n }\n }\n};\n","import {GridWidgetFilter} from './grid-widget-filter';\nimport {SelectField} from './select-field';\nimport { pdsUtils } from '../../../src/pds-utils';\nimport {RestArgument} from './rest-argument';\n\nexport class SelectFilter extends GridWidgetFilter {\n\n static blankObject = {\n toString(): string {\n return 'blank object';\n }\n };\n\n //This holds the Actual value of the search, not the\n //label for it that shows up in the UI drop-down.\n searchValue: any;\n\n isBlank(): boolean {\n return this.searchValue == null || this.searchValue === SelectFilter.blankObject;\n }\n\n internalPassesFilter(dataFromDataRow: any): boolean {\n return dataFromDataRow === this.searchValue;\n }\n\n preFilterUpdate(): void {\n }\n\n getTagName(): string {\n return 'pds-gw-select-filter';\n }\n\n setQuickSearchValue(text: string): boolean {\n this.searchValue = undefined;\n let valid = false;\n if (text != null && text !== '') {\n //We need to run through all of the options in case one more completely matches the other.\n (this.dataField).selectOptions.forEach((value, key) => {\n if (key.toUpperCase().search(pdsUtils.escapeUserInput(text.toUpperCase())) >= 0) {\n valid = true;\n //If searchValue hasn't been set, then no need to compare.\n //If searchValue has already been set, then don't set it again unless the new value\n //has less letters (Therefore a larger percentage of the word has been matched).\n if (this.searchValue == null || value.length < this.searchValue.length) {\n this.searchValue = value;\n }\n }\n });\n }\n\n return valid;\n }\n\n getRestArguments(): Array {\n if (this.isBlank()) {\n return [];\n }\n\n return [\n new RestArgument(this.dataField.id, '=', this.searchValue)\n ];\n }\n\n getTagText(): string {\n let answer = (this.dataField).selectOptions.find((value, key) => {\n return this.searchValue === value;\n });\n if (answer == null) {\n return 'blank'; //we need to make sure this does not happen.\n }\n return answer.key;\n }\n\n getPersistenceObject(): Object | undefined {\n return this.searchValue;\n }\n\n restoreFromPersistenceObject(value: Object): void {\n this.searchValue = value;\n }\n}\n","import { SectionStreamActivityRI, StreamActivityNotificationRI } from 'common-utils/rest-interfaces';\nimport { StreamActivityUpdate } from 'common-utils/interfaces';\nimport { Observable, forkJoin, of, from } from 'rxjs';\nimport {pdsLogger} from '../pds-logger';\nimport {StreamActivityRI} from 'common-utils/rest-interfaces';\nimport { mapTo } from 'rxjs/operators';\nimport { GetStreamCacheService } from './get-stream-cache-service';\n\nlet feedLog = pdsLogger.requiresLogger('feed');\n\nconst ACTIVITY_MESSAGE_PAGE_SIZE = 6; // Six messages per section as per Danny's suggestion.\n\nexport class GetStreamFeedService {\n private clientFeed: any;\n private token: string;\n private clientFeedSubscriptions: Array = [];\n private lastActivity: StreamActivityRI | null;\n\n constructor(private client: any, private groupName: string, private feedName: string, token: string, private isNotificationFeed = false) {\n this.token = token;\n this.clientFeed = this.client.feed(this.groupName, this.feedName, this.token);\n this.debug('New feed', this.clientFeed);\n }\n\n // Returns an Observable that can emit responses multiple times\n realTimeUpdates(): Observable {\n return Observable.create((observer) => {\n\n let connectionSuccessCallback = () => {\n this.debug('Listening in realtime for ' + this.feedInfo());\n };\n\n let connectionFailedCallback = (data) => {\n observer.complete();\n throw new Error('Getstream: something went wrong when initializing real-time updates connection for ' + this.feedInfo());\n };\n\n let realTimeUpdatesCallback = (data) => {\n // new activity added\n if (data.new && data.new.length > 0) {\n GetStreamCacheService.evictObservable(this.clientFeed.feedUrl, 'GetStreamFeedService.realTimeUpdates (new activity)');\n for (let newActivity of data.new) {\n observer.next({\n newActivity: newActivity\n });\n }\n }\n\n // Activity deleted\n if (data.deleted && data.deleted.length > 0) {\n GetStreamCacheService.evictObservable(this.clientFeed.feedUrl, 'GetStreamFeedService.realTimeUpdates (deleted activity)');\n for (let deletedActivity of data.deleted) {\n observer.next({\n deletedActivity: {\n id: deletedActivity,\n // When logged in as teacher, data.feed is in the form \"section_feeds:SECTION-11E74D41-6C56-1C46-B42B-010011AB0000\"\n // When logged in as parent or teacher, data.feed is in the form \"student_feeds:STUDENT-11E74D41-5C57-6F12-B42B-010011AB0000\"\n feed: data.feed\n }\n });\n }\n }\n };\n\n // subscribe actually returns a promise\n let subscription = this.clientFeed.subscribe(realTimeUpdatesCallback);\n\n // Need to track these subscriptions so that we can cancel them.\n this.clientFeedSubscriptions.push(subscription);\n\n subscription.then(connectionSuccessCallback, connectionFailedCallback);\n });\n }\n\n cancelSubscriptions(): void {\n for (let subscription of this.clientFeedSubscriptions) {\n subscription.cancel();\n }\n this.clientFeedSubscriptions = [];\n }\n\n getFeedId(): string {\n return this.clientFeed.id;\n }\n\n getSignedId(): string {\n return this.clientFeed.id + ' ' + this.clientFeed.token;\n }\n\n get hasMoreActivities(): boolean {\n return this.lastActivity !== null;\n }\n\n getPreviousActivities(limit = ACTIVITY_MESSAGE_PAGE_SIZE): Observable> {\n if (this.isNotificationFeed) {\n throw 'can not fetch activities on notification feed yet';\n }\n\n let getFeedObservable = (options: { id_lt?: string, limit: number }): Observable => {\n return from(\n // Important:\n // - We need the feed.get promise resolved right away by calling the then() function so that the\n // we can get the resulting data to cache along with the observable.\n this.clientFeed.get(options).then(\n (res: { duration: string, next: string, results: Array }) => {\n if (res.results.length > 0) {\n this.lastActivity = res.results[res.results.length - 1];\n } else {\n this.lastActivity = null;\n }\n return res.results;\n }\n ).catch((err: any) => {\n this.debug('[getPreviousActivities]', err);\n })\n );\n };\n\n if (this.lastActivity != null) {\n // Don't bother caching this is additional data on top of first read.\n // This gets called when users click \"More Messages\".\n return getFeedObservable({ id_lt: this.lastActivity.id, limit: limit });\n } else {\n let observable = GetStreamCacheService.getObservable(this.clientFeed.feedUrl, limit);\n if (observable == null) {\n observable = getFeedObservable({ limit: limit });\n GetStreamCacheService.cacheObservable(this.clientFeed.feedUrl, limit, 'GetStreamFeedService.getPreviousActivities', observable);\n }\n return observable;\n }\n }\n\n getNotifications(limit = 200): Observable> {\n if (!this.isNotificationFeed) {\n throw 'can only get notifications from notification feeds';\n }\n\n let observable = GetStreamCacheService.getObservable(this.clientFeed.feedUrl, limit);\n if (observable == null) {\n observable = from(\n // Important:\n // - We need the feed.get promise resolved right away by calling the then() function so that the\n // we can get the resulting data to cache along with the observable.\n this.clientFeed.get({ limit: limit }).then(\n (res: { duration: string, next: string, results: Array }) => res.results\n )\n );\n GetStreamCacheService.cacheObservable(this.clientFeed.feedUrl, limit, 'GetStreamFeedService.getNotifications', observable);\n }\n return observable;\n }\n\n markNotificationsRead(getStreamGroupIds: Array): Observable {\n if (!this.isNotificationFeed) {\n throw 'can only mark notifications read on notification feeds';\n }\n\n if (getStreamGroupIds.length === 0) {\n return of(null);\n }\n\n let ids = JSON.parse(JSON.stringify(getStreamGroupIds)); // avoid outter scope mutation\n let obs: Array> = [];\n /**\n * Urls have a length limit of 2000 characters, which we could exceed given enough notifications.\n * There are 200 chars from the api (164 + buffer), so we splice the first 45 uids from the ids\n * which is approximately 1800 characters (1755 + buffer) to ensure we don't exceed the url limit.\n */\n // Since we are updating the read status, evict the related cache.\n GetStreamCacheService.evictObservable(this.clientFeed.feedUrl, 'GetStreamFeedService.markNotificationsRead');\n\n while (ids.length > 0) {\n let batch = ids.splice(0, 45);\n obs.push(this.clientFeed.get({ limit: 5, mark_read: batch }));\n }\n return forkJoin(obs).pipe(mapTo(null));\n }\n\n getFeedName(): string {\n return this.feedName;\n }\n\n private debug(msg: string, ...params: Array): void {\n feedLog('Getstream(' + this.feedInfo() + '): ' + msg, params);\n }\n\n private feedInfo(): string {\n return this.groupName + ': ' + this.feedName;\n }\n}\n","import {GridWidgetDataField} from './grid-widget-data-field';\nimport {GridWidgetFilter} from './grid-widget-filter';\nimport {SelectFilter} from './select-filter';\nimport {ParseResolver} from '../../interfaces/parse-resolver';\nimport {SimpleParseResolver} from '../../simple-parse-resolver';\nimport {OrderedMap} from '../ordered-map';\nexport class SelectField extends GridWidgetDataField {\n\n /**\n * Key: What shows up in the UI\n * Value: The value that gets compared.\n */\n selectOptions: OrderedMap;\n\n /**\n * Creates a sortable map out of a list of data...\n * @param dataRows\n * @returns {OrderedMap}\n */\n static generateOrderedMap(dataRows: Array, objectLookupKey: string): OrderedMap {\n let parser: ParseResolver = new SimpleParseResolver(objectLookupKey);\n let orderedMap: OrderedMap = new OrderedMap();\n let map: {[key: string]: string} = {};\n dataRows.forEach((item) => {\n let dataInItem = parser.resolve(item);\n if (dataInItem != null && dataInItem !== '') {\n map[String(dataInItem).toUpperCase()] = dataInItem;\n }\n });\n\n let arrayOfStrings = Object.keys(map);\n arrayOfStrings.sort();\n\n arrayOfStrings.forEach((upperCaseString) => {\n orderedMap.put(map[upperCaseString], upperCaseString);\n });\n\n return orderedMap;\n }\n\n constructor(name: string,\n objectLookup: string | ((Object) => any),\n title: string,\n selectOptions: OrderedMap,\n sortOrder?: any) {\n super(name, objectLookup, title, sortOrder);\n\n this.selectOptions = selectOptions;\n }\n\n getFilterInstance(): GridWidgetFilter {\n return new SelectFilter(this);\n }\n\n resolveAsString(dataRow: any): string {\n let dataValue: any = this.resolve(dataRow);\n let matchValue: string | undefined;\n for (let uiValue of this.selectOptions.keys()) {\n if (this.selectOptions.get(uiValue) === dataValue) {\n if (matchValue == null) {\n matchValue = uiValue;\n } else {\n console.error('selectOptions has multiple keys for the same value: ' + dataValue);\n }\n }\n }\n\n return matchValue || '';\n }\n}\n","import { Subject, SubjectSubscriber } from '../Subject';\nimport { Operator } from '../Operator';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic } from '../types';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\n\n/**\n * @class ConnectableObservable\n */\nexport class ConnectableObservable extends Observable {\n\n protected _subject: Subject;\n protected _refCount: number = 0;\n protected _connection: Subscription;\n /** @internal */\n _isComplete = false;\n\n constructor(public source: Observable,\n protected subjectFactory: () => Subject) {\n super();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n\n protected getSubject(): Subject {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n\n connect(): Subscription {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n } else {\n this._connection = connection;\n }\n }\n return connection;\n }\n\n refCount(): Observable {\n return higherOrderRefCount()(this) as Observable;\n }\n}\n\nconst connectableProto = ConnectableObservable.prototype;\n\nexport const connectableObservableDescriptor: PropertyDescriptorMap = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\n\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination: Subject,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n protected _error(err: any): void {\n this._unsubscribe();\n super._error(err);\n }\n protected _complete(): void {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n protected _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\n\nclass RefCountOperator implements Operator {\n constructor(private connectable: ConnectableObservable) {\n }\n call(subscriber: Subscriber, source: any): TeardownLogic {\n\n const { connectable } = this;\n ( connectable)._refCount++;\n\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n ( refCounter).connection = connectable.connect();\n }\n\n return subscription;\n }\n}\n\nclass RefCountSubscriber extends Subscriber {\n\n private connection: Subscription;\n\n constructor(destination: Subscriber,\n private connectable: ConnectableObservable) {\n super(destination);\n }\n\n protected _unsubscribe() {\n\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n const refCount = ( connectable)._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n ( connectable)._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // range(0, 10).pipe(\n // publish(),\n // refCount(),\n // take(5),\n // ).subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n const { connection } = this;\n const sharedConnection = ( connectable)._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { SubscriptionLike } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n if (subscription && !(subscription).closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n\n getValue(): T {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n }\n\n next(value: T): void {\n super.next(this._value = value);\n }\n}\n","import { Observable } from '../Observable';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nimport { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';\n\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * Ensure a specific scheduler is used, from outside of an Observable.\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 * Ensure values in subscribe are called just before browser repaint.\n * ```javascript\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 {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nexport function observeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction {\n return function observeOnOperatorFunction(source: Observable): Observable {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\n\nexport class ObserveOnOperator implements Operator {\n constructor(private scheduler: SchedulerLike, private delay: number = 0) {\n }\n\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ObserveOnSubscriber extends Subscriber {\n /** @nocollapse */\n static dispatch(this: SchedulerAction, arg: ObserveOnMessage) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n\n constructor(destination: Subscriber,\n private scheduler: SchedulerLike,\n private delay: number = 0) {\n super(destination);\n }\n\n private scheduleMessage(notification: Notification): void {\n this.add(this.scheduler.schedule(\n ObserveOnSubscriber.dispatch,\n this.delay,\n new ObserveOnMessage(notification, this.destination)\n ));\n }\n\n protected _next(value: T): void {\n this.scheduleMessage(Notification.createNext(value));\n }\n\n protected _error(err: any): void {\n this.scheduleMessage(Notification.createError(err));\n }\n\n protected _complete(): void {\n this.scheduleMessage(Notification.createComplete());\n }\n}\n\nexport class ObserveOnMessage {\n constructor(public notification: Notification,\n public destination: PartialObserver) {\n }\n}\n","/**\n * An error thrown when duetime elapses.\n *\n * @see {@link timeout}\n *\n * @class TimeoutError\n */\nexport class TimeoutError extends Error {\n\n public readonly name = 'TimeoutError';\n\n constructor() {\n super('Timeout has occurred');\n (Object as any).setPrototypeOf(this, TimeoutError.prototype);\n }\n}\n","\nimport { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput } from '../types';\n\nexport function concatAll(): OperatorFunction, T>;\nexport function concatAll(): OperatorFunction;\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.\n *\n * ![](concatAll.png)\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 * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n * map(ev => 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 combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nexport function concatAll(): OperatorFunction, T> {\n return mergeAll(1);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike} from '../types';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\n\n/* tslint:disable:max-line-length */\nexport function merge(v1: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): Observable;\nexport function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): Observable;\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\nexport function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * Flattens multiple Observables together by blending\n * their values into one Observable.\n *\n * ![](merge.png)\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n * ### Merge together two Observables: 1s interval and clicks\n * ```javascript\n * const clicks = fromEvent(document, 'click');\n * const timer = interval(1000);\n * const clicksOrTimer = merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n * ```\n *\n * ### Merge together 3 Observables, but only 2 run concurrently\n * ```javascript\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 * const concurrent = 2; // the argument\n * const merged = merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits it's max iteration, timer2 will\n * // continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits it's max iteration it terminates, and\n * // timer3 will continue to emit a value every 500ms until it is complete\n * ```\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nexport function merge(...observables: Array | SchedulerLike | number>): Observable {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler: SchedulerLike = null;\n let last: any = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n } else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return >observables[0];\n }\n\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { TeardownLogic } from '../types';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\n\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item.\n *\n * ## Example\n * ### Subscribes to the observable that was the first to start emitting.\n *\n * ```javascript\n * const obs1 = interval(1000).pipe(mapTo('fast one'));\n * const obs2 = interval(3000).pipe(mapTo('medium one'));\n * const obs3 = interval(5000).pipe(mapTo('slow one'));\n *\n * race(obs3, obs1, obs2)\n * .subscribe(\n * winner => console.log(winner)\n * );\n *\n * // result:\n * // a series of 'fast one'\n * ```\n *\n * @param {...Observables} ...observables sources used to race for which Observable emits first.\n * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.\n * @static true\n * @name race\n * @owner Observable\n */\nexport function race(observables: Array>): Observable;\nexport function race(observables: Array>): Observable;\nexport function race(...observables: Array | Array>>): Observable;\nexport function race(...observables: Array | Array>>): Observable {\n // if the only argument is an array, it was most likely called with\n // `race([obs1, obs2, ...])`\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = >>observables[0];\n } else {\n return >observables[0];\n }\n }\n\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\n\nexport class RaceOperator implements Operator {\n call(subscriber: Subscriber, source: any): TeardownLogic {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class RaceSubscriber extends OuterSubscriber {\n private hasFirst: boolean = false;\n private observables: Observable[] = [];\n private subscriptions: Subscription[] = [];\n\n constructor(destination: Subscriber) {\n super(destination);\n }\n\n protected _next(observable: any): void {\n this.observables.push(observable);\n }\n\n protected _complete() {\n const observables = this.observables;\n const len = observables.length;\n\n if (len === 0) {\n this.destination.complete();\n } else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n let observable = observables[i];\n let subscription = subscribeToResult(this, observable, observable as any, i);\n\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n }\n\n notifyNext(outerValue: T, innerValue: T,\n outerIndex: number, innerIndex: number,\n innerSub: InnerSubscriber): void {\n if (!this.hasFirst) {\n this.hasFirst = true;\n\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n\n this.subscriptions = null;\n }\n\n this.destination.next(innerValue);\n }\n}\n","import { Observable } from '../Observable';\nimport { SchedulerAction, SchedulerLike } from '../types';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * Creates an Observable that starts emitting after an `initialDelay` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * Its like {@link index/interval}, but you can specify when\n * should the emissions start.\n *\n * ![](timer.png)\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `initialDelay`. The initial delay may be a `Date`. By default, this\n * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you\n * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * ## Examples\n * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds\n * ```javascript\n * const numbers = timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n * ```\n *\n * ### Emits one number after five seconds\n * ```javascript\n * const numbers = timer(5000);\n * numbers.subscribe(x => console.log(x));\n * ```\n * @see {@link index/interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time to wait before\n * emitting the first value of `0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `initialDelay` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport function timer(dueTime: number | Date = 0,\n periodOrScheduler?: number | SchedulerLike,\n scheduler?: SchedulerLike): Observable {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n } else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler as any;\n }\n\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? (dueTime as number)\n : (+dueTime - scheduler.now());\n\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\n\ninterface TimerState {\n index: number;\n period: number;\n subscriber: Subscriber;\n}\n\nfunction dispatch(this: SchedulerAction, state: TimerState) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n\n if (subscriber.closed) {\n return;\n } else if (period === -1) {\n return subscriber.complete();\n }\n\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class QueueAction extends AsyncAction {\n\n constructor(protected scheduler: QueueScheduler,\n protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay) ;\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Otherwise flush the scheduler starting with this action.\n return scheduler.flush(this);\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```javascript\n * Rx.Scheduler.queue.schedule(() => {\n * Rx.Scheduler.queue.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```javascript\n * Rx.Scheduler.queue.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n *\n * @static true\n * @name queue\n * @owner Scheduler\n */\n\nexport const queue = new QueueScheduler(QueueAction);\n","export function isObject(x: any): x is Object {\n return x != null && typeof x === 'object';\n}\n","import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\nexport const subscribeToArray = (array: ArrayLike) => (subscriber: Subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n if (!subscriber.closed) {\n subscriber.complete();\n }\n};\n","import { Observable } from '../Observable';\nimport { ObservableInput } from '../types';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { Subscriber } from '../Subscriber';\n\nexport const subscribeTo = (result: ObservableInput) => {\n if (result instanceof Observable) {\n return (subscriber: Subscriber) => {\n if (result._isScalar) {\n subscriber.next((result as any).value);\n subscriber.complete();\n return undefined;\n } else {\n return result.subscribe(subscriber);\n }\n };\n } else if (result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result as any);\n } else if (isArrayLike(result)) {\n return subscribeToArray(result);\n } else if (isPromise(result)) {\n return subscribeToPromise(result as Promise);\n } else if (result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result as any);\n } else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { Subscriber } from '../Subscriber';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport const subscribeToObservable = (obj: any) => (subscriber: Subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n } else {\n return obs.subscribe(subscriber);\n }\n};\n","export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');","export function isPromise(value: any): value is PromiseLike {\n return value && typeof (value).subscribe !== 'function' && typeof (value as any).then === 'function';\n}\n","import { Subscriber } from '../Subscriber';\nimport { hostReportError } from './hostReportError';\n\nexport const subscribeToPromise = (promise: PromiseLike) => (subscriber: Subscriber) => {\n promise.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, hostReportError);\n return subscriber;\n};\n","import { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n\nexport const subscribeToIterable = (iterable: Iterable) => (subscriber: Subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n const item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n\n // Finalize the iterator if it happens to be a Generator\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n\n return subscriber;\n};\n","declare let filterXSS;\n\nexport const HTML_TAG_WHITELIST = [\n 'strike', 'del', 'dd', 'h3', 'small', 'big', 'sub', 'tt', 'fieldset', 'a', 'ul', 'h4',\n 'cite', 'dfn', 'thead', 'legend', 'h5', 'kbd', 'code', 'b', 'ins', 'img', 'acronym',\n 'h6', 'sup', 'pre', 'iframe', 'tbody', 'blockquote', 'td', 'o:p', 'dt', 'br', 'output',\n 'p', 'strong', 'caption', 'div', 'samp', 'table', 'li', 'ol', 'var', 's', 'font', 'tr',\n 'em', 'th', 'h1', 'address', 'i', 'abbr', 'h2', 'span', 'hr', 'u'\n];\nexport const HTML_ATTRIBUTE_WHITELIST = [\n 'name', 'face', 'href', 'cellspacing', 'bgcolor', 'size', 'cite', 'dir', 'class',\n 'title', 'src', 'border', 'summary', 'color', 'height', 'rowspan', 'cellpadding',\n 'align', 'datetime', 'alt', 'colspan', 'style', 'target', 'width'];\n\nexport const WHITE_LIST = {};\nHTML_TAG_WHITELIST.forEach((tag) => {\n WHITE_LIST[tag] = HTML_ATTRIBUTE_WHITELIST;\n});\n\nlet XSS_FILTER_OPTIONS = {\n whiteList: WHITE_LIST\n};\n\nexport function sanitizeHtmlString(source: string): string {\n return filterXSS(source, XSS_FILTER_OPTIONS);\n}\n","import { AssignmentStreamActivityRI } from 'common-utils/rest-interfaces';\nimport { pdsI18n } from '../pds-i18n';\nimport { NotificationItem } from './notification-item';\n\nexport type AsgmtSubmissionNotificationItemContext = {\n activity: AssignmentStreamActivityRI,\n userType: string,\n currentUserUid: string,\n getStreamGroupId: string,\n sectionName: string\n};\n\nexport class AsgmtSubmissionNotificationItem extends NotificationItem {\n static NOTIFICATION_TYPE = 'ASSIGNMENT_NOTIFICATION';\n static NOTIFICATION_SUBTYPE = 'ASSIGNMENT_SUBMISSION_NOTIFICATION';\n\n static generateLookUpKey(assignmentUid: string): string {\n return [assignmentUid, AsgmtSubmissionNotificationItem.NOTIFICATION_TYPE].join(',');\n }\n\n constructor(isSeen = false, isRead = false, private context: AsgmtSubmissionNotificationItemContext) {\n super(AsgmtSubmissionNotificationItem.NOTIFICATION_TYPE, isSeen, isRead, undefined, AsgmtSubmissionNotificationItem.NOTIFICATION_SUBTYPE);\n\n this.id = this.context.activity.group || this.id; // if the activity doesn't have a group we use the generated id\n\n this.aggregationKey = JSON.stringify({\n assignmentUid: this.context.activity.assignmentUid\n });\n }\n\n getTitle(): string {\n return this.context.activity.assignmentName;\n }\n\n getSubtitle(): string {\n return this.context.activity.studentName;\n }\n\n getPostedAt(): Date | null {\n return new Date(this.context.activity.time! + 'Z');\n }\n\n getUserType(): string {\n return this.context.userType;\n }\n\n getTooltip(): string {\n return pdsI18n.getText('pds|notifications|Student submitted homework');\n }\n\n getSenderUid(): string {\n return this.context.activity.studentUid;\n }\n\n getSectionUid(): string {\n return this.context.activity.sectionUid;\n }\n\n getSectionName(): string {\n return this.context.sectionName;\n }\n\n getColorClass(): string {\n return this.context.activity.assignmentCategoryColor;\n }\n\n get lookUpKey(): string {\n return AsgmtSubmissionNotificationItem.generateLookUpKey(this.context.activity.assignmentUid);\n }\n\n get currentUserUid(): string {\n return this.context.currentUserUid;\n }\n\n get getstreamGroupId(): string {\n return this.context.getStreamGroupId;\n }\n}\n","import { NotificationItem } from './notification-item';\nimport { pdsI18n } from '../pds-i18n';\n\nexport type AssignmentTemplateNotificationItemContext = {\n postedAt: Date,\n assignmentTemplateUid: string,\n assignmentName: string,\n sectionUid: string,\n sectionName?: string,\n hasBeenAssigned: boolean,\n needsReassignment: boolean,\n assignmentUid?: string\n};\n\nexport class AssignmentTemplateNotificationItem extends NotificationItem {\n static NOTIFICATION_TYPE = 'ASSIGNMENT_NOTIFICATION';\n static NOTIFICATION_SUBTYPE = 'ASSIGNMENT_TEMPLATE_NOTIFICATION';\n\n static generateLookUpKey(context: AssignmentTemplateNotificationItemContext): string {\n return [context.assignmentTemplateUid, context.sectionUid, AssignmentTemplateNotificationItem.NOTIFICATION_TYPE].join(',');\n }\n\n constructor(\n private context: AssignmentTemplateNotificationItemContext\n ) {\n super(AssignmentTemplateNotificationItem.NOTIFICATION_TYPE, false, (context.hasBeenAssigned && !context.needsReassignment), undefined, AssignmentTemplateNotificationItem.NOTIFICATION_SUBTYPE);\n\n this.isMarkedReadOnClick = false; // for assignment template messages the feature itself is in charge of marking things read\n\n this.aggregationKey = JSON.stringify({\n assignmentTemplateUid: this.context.assignmentTemplateUid,\n sectionUid: this.context.sectionUid,\n assignmentUid: this.context.assignmentUid\n });\n }\n\n getTitle(): string {\n return this.context.assignmentName;\n }\n\n getSubtitle(): string {\n return this.context.sectionName || '';\n }\n\n getPostedAt(): Date | null {\n return new Date(this.context.postedAt);\n }\n\n getTooltip(): string {\n return pdsI18n.getText('pds|notifications|Messages regarding xx', { name: this.context.assignmentName });\n }\n\n getRequiresAction(): boolean {\n return !this.context.hasBeenAssigned || this.context.needsReassignment;\n }\n\n get lookUpKey(): string {\n return AssignmentTemplateNotificationItem.generateLookUpKey(this.context);\n }\n}\n","import { NotificationItem } from './notification-item';\nimport { ChatMessageRI, SectionBasicRI, StreamActivityChatMessageRI, UserSectionBasicRI } from 'common-utils/rest-interfaces';\nimport { pdsI18n } from '../pds-i18n';\n\nexport type CommunicationNotificationItemContext = {\n activity: StreamActivityChatMessageRI,\n userType: string,\n currentUserUid: string,\n getStreamGroupId: string,\n senderInfo: UserSectionBasicRI\n};\n\nexport class CommunicationNotificationItem extends NotificationItem {\n static NOTIFICATION_TYPE = 'COMMUNICATION_NOTIFICATION';\n\n private sectionToDetailMap: Map;\n\n static getIsPartOfThread(threadUid: string): (notification: CommunicationNotificationItem) => boolean {\n return (notification: CommunicationNotificationItem) => {\n return notification.getThreadUid() === threadUid && !notification.isRead;\n };\n }\n\n static generateLookUpKey(topicUid: string, threadOwnerUid: string): string {\n return [topicUid, threadOwnerUid, CommunicationNotificationItem.NOTIFICATION_TYPE].join(',');\n }\n\n constructor(isSeen = false, isRead = false, private context: CommunicationNotificationItemContext) {\n super(CommunicationNotificationItem.NOTIFICATION_TYPE, isSeen, isRead);\n\n this.id = this.context.activity.group || this.id; // if the activity doesn't have a group we use the generated id\n\n this.isMarkedReadOnClick = false; // for chat messages the feature itself is in charge of marking things read\n\n this.aggregationKey = JSON.stringify({\n topicUid: this.context.activity.topicUid,\n threadOwnerUid: this.context.activity.threadOwnerUid\n });\n\n this.sectionToDetailMap = new Map();\n let sectionUids: Set = new Set(this.context.activity.message.associatedSectionUids || []);\n\n if (this.context.senderInfo == null) {\n console.error('this context does not have senderInfo');\n return;\n }\n\n for (let section of this.context.senderInfo.sections) {\n if (!sectionUids.has(section.uid)) {\n continue;\n }\n this.sectionToDetailMap.set(section.uid, section);\n }\n }\n\n getTitle(): string {\n if (this.context.senderInfo == null) {\n return 'Display Name Not Available';\n }\n return this.context.senderInfo.firstName + ' ' + this.context.senderInfo.lastName;\n }\n\n getSections(): Array {\n return Array.from(this.sectionToDetailMap.values());\n }\n\n getPostedAt(): Date | null {\n return new Date(this.context.activity.message.sentAt!); // sent at is nullable for posting. It will have a value here.\n }\n\n getThreadType(): number {\n return this.context.activity.threadType;\n }\n\n getUserType(): string {\n return this.context.userType;\n }\n\n getTopicUid(): string {\n return this.context.activity.topicUid;\n }\n\n getTopicOrOwnerUid(): string {\n if (this.context.userType === 'TEACHER') {\n return this.context.activity.topicUid;\n }\n return this.context.activity.threadOwnerUid;\n }\n\n getTooltip(): string {\n return pdsI18n.getText('pds|notifications|Messages regarding xx', { name: this.getTitle() });\n }\n\n getThreadUid(): string {\n return this.context.activity.message.threadUid;\n }\n\n get lookUpKey(): string {\n return CommunicationNotificationItem.generateLookUpKey(this.context.activity.topicUid, this.context.activity.threadOwnerUid);\n }\n\n get message(): ChatMessageRI {\n return this.context.activity.message;\n }\n\n get threadUid(): string {\n return this.context.activity.message.threadUid;\n }\n\n get currentUserUid(): string {\n return this.context.currentUserUid;\n }\n\n get getstreamGroupId(): string {\n return this.context.getStreamGroupId;\n }\n}\n","import { ChatThreadRI } from 'common-utils/rest-interfaces';\nimport { Observable, of } from 'rxjs';\nimport { map, mergeMap, catchError } from 'rxjs/operators';\nimport { AjaxResponse } from '../interfaces/AjaxResponse';\nimport { pdsHttpUtils } from '../pds-http-utils';\n\nexport class ChatThreadService {\n fetchParentParticipants(hostUrl: string, studentUid: string): Observable> {\n return pdsHttpUtils.get(hostUrl + `/navigation/v1/student/${studentUid}/parents`, {}, pdsHttpUtils.addUCAuthHeader({})).pipe(\n map((response: AjaxResponse) => {\n return JSON.parse(response.data).map((parent) => { return { userUid: parent.uid, userType: 'PARENT' }; });\n }));\n }\n\n fetchTopicThread(hostUrl: string, thread: any): Observable {\n let queryParams = {\n 'topicUid': thread.topicUid!,\n 'threadType': String(thread.threadType),\n 'ownerUid': thread.ownerUid\n };\n return pdsHttpUtils.get(hostUrl + '/communication/v1/topic_thread', queryParams, pdsHttpUtils.addUCAuthHeader({})).pipe(\n mergeMap((response: AjaxResponse) => {\n if (response.status === 204) {\n return this.createTopicThread(hostUrl, thread);\n }\n return of(JSON.parse(response.data));\n }),\n catchError((err, sourceObs) => {\n if (err.status === 204) {\n return this.createTopicThread(hostUrl, thread);\n }\n return sourceObs;\n }));\n }\n\n private createTopicThread(hostUrl: string, thread: any): Observable {\n return pdsHttpUtils.post(hostUrl + '/communication/v1/thread', thread, {}, pdsHttpUtils.addUCAuthHeader({})).pipe(\n map((response: AjaxResponse) => {\n return JSON.parse(response.data);\n }));\n }\n}\n","import {PopperConfiguration,\n PopperPlacement,\n PoppableElementConfig,\n PopperOnDisplayAnimation} from './popper-configuration';\nimport { TippyInstance } from './interfaces/tippy-instance';\ndeclare let tippy;\n\nexport let PoppableElementFactory = {\n\n /**\n * Generates a configuration object based upon some initial configurations applied to the tooltip.\n * @param defaultPlacement - the default placement of the popover, the start and end is relative to its reference elements bounding rectangle\n * @param triggerAction - what triggers the popover to be open? default action is click.\n * @param customStyleClassName - custom classes can be added to the popover to style it based upon your needs, be wary that the class name will have '-theme' appended to it.\n * @param htmlTemplateReference - a container for the popover and tooltip innerHTML. This will ensure that your event listeners are preserved when this container is used.\n */\n\n generateTooltipConfig: function (\n defaultPlacement: PopperPlacement,\n triggerAction: string,\n htmlReference: HTMLElement,\n customStyleClassName: string,\n showHideDuration: [number, number] = [420, 0]): PoppableElementConfig {\n\n let showArrow = false;\n let appendTo = this.getScopeContainer();\n let stickToReference = false;\n let zIndex = 9999;\n let interactive = false;\n // Changed from perspective to fade to fix 3D redraw styling issue in Firefox\n let displayAnimation: PopperOnDisplayAnimation = 'fade';\n let popperOptions = {\n modifiers: {\n preventOverflow: {\n enabled: true\n },\n computeStyle: {\n gpuAcceleration: false\n },\n hide: {\n enabled: false\n },\n removeOnDestroy: true\n }\n };\n let beforeShownCallback = (instance: any): void => {\n let content = instance.popper.querySelector('.tippy-content');\n if (content != null) {\n let innerHTML = content.innerHTML;\n if (innerHTML.trim() === '' && instance.popperInstance != null) {\n instance.popperInstance.destroy();\n }\n }\n };\n\n return PopperConfiguration.getPopperConfiguration({\n showArrow: showArrow,\n defaultPlacement: defaultPlacement,\n trigger: triggerAction,\n appendTo: appendTo,\n stickToReference: stickToReference,\n interactive: interactive,\n onDisplayAnimation: displayAnimation,\n customStyleClassName: customStyleClassName,\n htmlReference: htmlReference,\n popperJsOptions: popperOptions,\n zIndex: zIndex,\n transitionDuration: showHideDuration,\n beforeShownCallback: beforeShownCallback\n });\n },\n\n /**\n * Generates a configuration object based upon some initial configurations applied to the popover.\n * @param defaultPlacement - the default placement of the popover, the start and end is relative to its reference elements bounding rectangle\n * @param triggerAction - what triggers the popover to be open? default action is click.\n * @param customStyleClassName - custom classes can be added to the popover to style it based upon your needs, be wary that the class name will have '-theme' appended to it.\n * @param htmlTemplateReference - a container for the popover and tooltip innerHTML. This will ensure that your event listeners are preserved when this container is used.\n * @param zIndex - a configurable z-index property, by default it displays underneath the app head, which has a z-index of 6000.\n * @param onHiddenCallback - a callback to be called when the popovers are hidden\n * @param onShownCallback - a callback to be called when the popovers are shown\n * @param panelPlacementLocator - an html reference element that serves as a locator to where the html for the panel will be placed.\n */\n\n generatePopoverConfig: function(\n showArrow: boolean,\n defaultPlacement: PopperPlacement,\n zIndex: number,\n customStyleClassName: string,\n htmlReference: HTMLElement,\n onHiddenCallback: (instance: any) => void,\n onShownCallback: (instance: any) => void,\n panelPlacementLocator?: HTMLElement): PoppableElementConfig {\n if (panelPlacementLocator == null) {\n panelPlacementLocator = this.getScopeContainer();\n }\n let appendTo = panelPlacementLocator;\n let stickToReference = false;\n let interactive = true;\n let arrowSize = 'scale(2)';\n let triggerAction = 'click';\n let displayAnimation: PopperOnDisplayAnimation = 'shift-toward';\n let popperOptions = {\n modifiers: {\n preventOverflow: {\n enabled: true,\n priority: ['right', 'left'],\n boundariesElement: document.body\n },\n computeStyle: {\n gpuAcceleration: false\n },\n hide: {\n enabled: false\n }\n }\n };\n\n return PopperConfiguration.getPopperConfiguration({\n showArrow: showArrow,\n defaultPlacement: defaultPlacement,\n trigger: triggerAction,\n appendTo: appendTo,\n stickToReference: stickToReference,\n interactive: interactive,\n arrowSizeTransform: arrowSize,\n onDisplayAnimation: displayAnimation,\n customStyleClassName: customStyleClassName,\n htmlReference: htmlReference,\n popperJsOptions: popperOptions,\n zIndex: zIndex,\n //PDS-1263 make the popper close on scroll\n //PDS-1420 the close on scroll created more issues with nested popovers\n onShownCallback: onShownCallback,\n onHiddenCallback: onHiddenCallback\n });\n\n },\n\n /**\n * Generate the poppable element and return an instance of it.\n * @param trigger: A poppable element like a tooltip, or popover needs a reference. The trigger that opens it.\n * @param config: poppover element config.\n * @param scopeClass: pass in the polymer component name here so it can be scoped to the widget's embedded styles.\n */\n generatePoppableElement: function(trigger: string | HTMLElement, config: PoppableElementConfig, scopeClass?: string): TippyInstance | undefined {\n if (window.hasOwnProperty('tippy')) {\n tippy.disableAnimations();\n let tippyInstance: TippyInstance | undefined = tippy.one(trigger, config);\n if (tippyInstance != null &&\n tippyInstance.popper != null &&\n scopeClass != null &&\n tippyInstance.popper.firstChild instanceof HTMLElement) {\n tippyInstance.popper.classList.add(scopeClass);\n (tippyInstance.popper.firstChild).classList.add(scopeClass);\n }\n return tippyInstance;\n } else {\n console.error('tippy is undefined. Did the tippy.js script get loaded before calling this? - poppable-element-factory.ts');\n }\n },\n // PDS-Scope PDS-313 needs a wrapper around the tippy-popper element.\n getScopeContainer: function(): HTMLElement {\n let tippyScopeExists = document.getElementById('pds-tippy-scope');\n if (tippyScopeExists) {\n return tippyScopeExists;\n }\n let pdsScopeDiv = document.createElement('div');\n pdsScopeDiv.classList.add('pds-scope');\n pdsScopeDiv.setAttribute('id', 'pds-tippy-scope');\n document.body.appendChild(pdsScopeDiv);\n return pdsScopeDiv;\n }\n\n};\n","//Our build process replaces the string '22.2.0' with the version number.\n//So it will be available at runtime.\nlet version = '22.2.0';\n\nlet cdnAssetPath = localStorage.getItem('pdsCdnAssetPath') || 'https://assets.powerschool.com/pds/' + version;\n\nexport let versionAndPaths = {\n version: version,\n cdnAssetPath: cdnAssetPath\n};\n","import { HtmlContentProperty } from '../../../interfaces/html-content-property';\nimport { HtmlContentSection } from '../html-content-section';\nimport { HtmlContentTarget } from '../../../interfaces/html-content-target';\n\n// text length finds the total text length if this element is added to the current section\nexport const textLength: HtmlContentProperty = {\n name: 'textLength',\n value: (target: HtmlContentTarget, style: CSSStyleDeclaration, section: HtmlContentSection) =>\n section.getText().join().length + (target.node.textContent != null ? target.node.textContent.trim().length : 0)\n};\n","import { Observable } from 'rxjs';\nimport { StreamActivityNotificationRI } from 'common-utils/rest-interfaces';\nimport {pdsLogger} from '../pds-logger';\n\n// To enable logging, on browser console window, type:\n// localStorage.setItem('PDS-LOGGER-get-stream-cache', 'true');\n// To disable loging, either:\n// localStorage.setItem('PDS-LOGGER-get-stream-cache', 'false');\n// localStorage.removeItem('PDS-LOGGER-get-stream-cache');\nlet getStreamCachelog = pdsLogger.requiresLogger('get-stream-cache');\n\ninterface IGetSteamCache {\n limit: number;\n timestamp: number;\n description: string;\n observable: Observable;\n}\n\nlet getStreamCache = new Map();\nlet enableCaching = true;\nlet maxCacheDuration = 300000; // Default of 5 minutes\ngetStreamCachelog('GetStreamCache: maxCacheDuration = ' + maxCacheDuration + '(default)');\n\n/**\n * Getstream Caching. This is intended to be accessed only through Getstream-related functionality within PDS.\n */\nexport class GetStreamCacheService {\n static getObservable(feedUrl: string, limit: number): Observable | undefined {\n if (enableCaching) {\n let cacheItem = getStreamCache.get(feedUrl);\n if (cacheItem) {\n if (cacheItem.limit === limit) {\n let now = Date.now();\n if (now - cacheItem.timestamp < maxCacheDuration) {\n getStreamCachelog('GetStreamCache(' + getStreamCache.size + ', ' + feedUrl + '): [Cache Hit] - ' + cacheItem.description);\n return cacheItem.observable;\n }\n }\n getStreamCache.delete(feedUrl);\n }\n }\n }\n\n static cacheObservable(feedUrl: string, limit: number, cacheDescription: string, observable: Observable): Observable {\n if (enableCaching) {\n getStreamCachelog('GetStreamCache(' + getStreamCache.size + ', ' + feedUrl + '): [Cache Miss] - ' + cacheDescription);\n getStreamCache.set(feedUrl, {\n limit: limit,\n timestamp: Date.now(),\n description: cacheDescription,\n observable: observable\n });\n }\n return observable;\n }\n\n static evictObservable(feedUrl: string, cacheDescription: string): void {\n if (enableCaching) {\n let prefix = 'GetStreamCache(' + getStreamCache.size + ', ' + feedUrl + '): Evicting...';\n if (getStreamCache.has(feedUrl)) {\n getStreamCache.delete(feedUrl);\n getStreamCachelog(prefix + '[Cache Evicted] - ' + cacheDescription);\n } else {\n getStreamCachelog(prefix + '[Cache Entry Not Found] - ' + cacheDescription);\n }\n }\n }\n\n static clear(): void {\n getStreamCache.clear();\n }\n}\n\n/**\n * Allows external applications to configure GetStreamCacheService by exposing this through\n * pds.services.GetStreamCacheConfig, which is accessible through Browser console as well.\n */\nexport class GetStreamCacheServiceConfig {\n static get enableCaching(): boolean {\n return enableCaching;\n }\n\n static set enableCaching(value: boolean) {\n enableCaching = value;\n getStreamCachelog('GetStreamCache: Setting enableCaching to ' + enableCaching);\n }\n\n static get maxCacheDuration(): number {\n return maxCacheDuration;\n }\n\n static set maxCacheDuration(value: number) {\n maxCacheDuration = value;\n getStreamCachelog('GetStreamCache: Setting maxCacheDuration to ' + maxCacheDuration);\n }\n\n /**\n * Static function for debugging purpose. This can be invoked from the browser console like in UC Portal:\n * pds.services.GetStreamCacheServiceConfig.dump()\n */\n static dump(): void {\n getStreamCachelog('GetStreamCache: Dump', getStreamCache);\n }\n}\n","import {GridWidgetFilter} from './grid-widget-filter';\nimport {SelectField} from './select-field';\nimport {RestArgument} from './rest-argument';\nimport { pdsUtils } from '../../pds-utils';\n\nexport class MultiSelectFilter extends GridWidgetFilter {\n\n //The key is what shows up in the UI next to the checkbox\n searchValues: {[key: string]: boolean} = {};\n\n isBlankOverride: boolean;\n\n isBlank(): boolean {\n if (this.isBlankOverride != null) {\n return this.isBlankOverride;\n }\n\n let isBlank = Object.keys(this.searchValues).find((key: string) => {\n return this.searchValues[key];\n }) == null; //blank if we don't find anything.\n\n return isBlank;\n }\n\n internalPassesFilter(dataFromDataRow): boolean {\n let allCheckBoxLabels: Array = Object.keys(this.searchValues);\n let matches = allCheckBoxLabels.find((checkboxLabel) => {\n let shouldMatch = this.searchValues[checkboxLabel];\n if (shouldMatch) {\n //Retrieve underlying data for the checkbox label\n let selectedOption = (this.dataField).selectOptions.get(checkboxLabel);\n\n //Leave in this console.log commented out. It's REALLY nice for debugging.\n //console.log('Comparing: ' + dataFromDataRow + ' to ' + selectedOption);\n if (typeof selectedOption === 'function') {\n //NOTE: DataFromDataRow is just a piece of data from a dataRow object.\n //If you need the full DataRow passed in, add a property to each dataRow called self\n //and point it at its self. Then when 'self' is extracted, the full data row will be passed into\n //the selectOption function.\n\n //Example\n // for (let student of students) {\n // //self now points at the entire student.\n // student.self = student;\n // }\n return selectedOption(dataFromDataRow) === true;\n } else if (typeof dataFromDataRow === 'string' && typeof selectedOption === 'string') {\n return dataFromDataRow.toUpperCase() === selectedOption.toUpperCase();\n } else {\n return dataFromDataRow === selectedOption;\n }\n }\n return false;\n });\n return matches != null;\n }\n\n preFilterUpdate(): void {\n }\n\n getTagName(): string {\n return 'pds-gw-multi-select-filter';\n }\n\n setQuickSearchValue(text: string | undefined): boolean {\n let valid = false;\n\n this.searchValues = {};\n if (text != null && text !== '') {\n //The search value is NOT blank, therefore the isBlank function needs to return that this filter is not blank.\n //However, there may not be any values so nothing will actually match.\n this.isBlankOverride = false;\n\n (this.dataField).selectOptions.forEach((value, key: string) => {\n if (key.toUpperCase().search(pdsUtils.escapeUserInput(text.toUpperCase())) >= 0) {\n this.searchValues[key] = true;\n valid = true;\n }\n });\n }\n\n return valid;\n }\n\n getRestArguments(): Array {\n let arry: Array = [];\n\n // tslint:disable-next-line:forin\n for (let key in this.searchValues) {\n let value = this.searchValues[key];\n if (value) {\n arry.push(new RestArgument(this.dataField.id, '=', (this.dataField).selectOptions.get(key)));\n }\n }\n\n return arry;\n }\n\n getTagText(): string {\n let arry: Array = [];\n\n // tslint:disable-next-line:forin\n for (let key in this.searchValues) {\n let value = this.searchValues[key];\n if (value) {\n arry.push(key);\n }\n }\n\n return arry.join(', ');\n }\n\n getPersistenceObject(): Object | undefined {\n let state = {\n searchValues: this.searchValues,\n isBlankOverride: this.isBlankOverride\n };\n return state;\n }\n\n restoreFromPersistenceObject(value: Object): void {\n let state = value;\n this.searchValues = state.searchValues || {};\n this.isBlankOverride = state.isBlankOverride;\n }\n}\n","export abstract class ScoreIf {\r\n abstract getPoints(): number;\r\n abstract getTotalPoints(): number;\r\n abstract getWeight(): number;\r\n abstract getPercent(): number;\r\n}\r\n","import {i18n} from '../utils/i18n-util';\r\nimport {Time} from '../interfaces/time';\r\n/**\r\n * This class purposefully has functions that match those from Date.\r\n * The reason is so someone wanting to pass a Date object into the pds-time-widget, or the\r\n * validation engine time rules they can do so and the code won't break.\r\n */\r\nexport class SimpleTime implements Time {\r\n\r\n private hours: number;\r\n private minutes: number;\r\n\r\n constructor(hours: number | string, minutes?: number) {\r\n if (typeof hours === 'number') {\r\n this.setHours(hours);\r\n this.setMinutes(minutes || 0);\r\n } else if (typeof hours === 'string') {\r\n let t = i18n.parse24HourTime(hours);\r\n if (t != null) {\r\n this.set(t);\r\n }\r\n } else {\r\n this.setHours(0);\r\n this.setMinutes(0);\r\n }\r\n }\r\n\r\n to24HourTime(): string {\r\n let hours: number | string = this.getHours();\r\n let minutes: number | string = this.getMinutes();\r\n\r\n if (hours < 10) {\r\n hours = '0' + hours;\r\n }\r\n\r\n if (minutes < 10) {\r\n minutes = '0' + minutes;\r\n }\r\n\r\n return hours + ':' + minutes;\r\n }\r\n\r\n getHours(): number {\r\n return this.hours;\r\n }\r\n\r\n getMinutes(): number {\r\n return this.minutes;\r\n }\r\n setHours(hours: number): void {\r\n let hrs = hours % 24;\r\n if (hrs >= 0) {\r\n this.hours = hrs;\r\n } else {\r\n //24 - hrs, but hrs is already negative\r\n this.hours = 24 + hrs;\r\n }\r\n }\r\n\r\n setMinutes(minutes: number): void {\r\n let overHours = Math.floor(minutes / 60);\r\n this.setHours(this.hours + overHours);\r\n let min = minutes % 60;\r\n if (min >= 0) {\r\n this.minutes = min;\r\n } else {\r\n //60 - min, but min is already negative\r\n this.minutes = 60 + min;\r\n }\r\n\r\n }\r\n\r\n getTime(): number {\r\n return (this.hours * 60 + this.getMinutes()) * 60000;\r\n }\r\n\r\n set(time: Time): void {\r\n this.setHours(time.getHours());\r\n this.setMinutes(time.getMinutes());\r\n }\r\n}\r\n","\r\n// this email regex pass with 99.99% verification: http://emailregex.com/\r\nconst VALID_EMAIL_REGEX = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n// According to RFC section 2, the email validation above missed some cases\r\n// https://tools.ietf.org/html/rfc3696#section-2%\r\nconst INVALID_RFC_EMAIL_REGEX = /@-|@.*\\.-|@.*-\\./;\r\n\r\nexport namespace EmailUtil {\r\n // this email regex pass with 99.99% verification: http://emailregex.com/\r\n export function validateEmail(email: string): boolean {\r\n\r\n let result = false;\r\n if (VALID_EMAIL_REGEX.test(email) && !INVALID_RFC_EMAIL_REGEX.test(email)) {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n}\r\n","import { AssignmentScoreType } from '../rest-interfaces/assignment';\r\nimport { ValidationRulesEngine } from '../validation-engine/validation-engine';\r\nimport { RawGradeScaleItem, ValidationRules, ValidationResult, Validator } from '../interfaces';\r\nimport { NumberUtil } from './number-util';\r\nimport { GradeScaleRI, GradeScaleItemRI, SpecialGradeScaleRI, SpecialGradeScaleItemRI } from '../rest-interfaces';\r\nimport roundToPrecision = NumberUtil.roundToPrecision;\r\nimport { I18nUtil } from './i18n-util';\r\n\r\nconst PLUS_MINUS_REGEX = /[+\\-]$/;\r\nconst PRECISION = 6;\r\n\r\nexport namespace GradeScaleUtil {\r\n export type CalcRelationship = 'GRADESCALE' | 'LEVELS';\r\n\r\n export function buildGradeScaleHierarchyRIs(rawItems: Array): Array {\r\n return _buildGradeScaleHierarchyRIs(rawItems, false);\r\n }\r\n\r\n export function buildSpecialGradeScaleHierarchyRIs(rawItems: Array): Array {\r\n return >_buildGradeScaleHierarchyRIs(rawItems, true);\r\n }\r\n\r\n function _buildGradeScaleHierarchyRIs(rawItems: Array, isSpecialScale: boolean): Array {\r\n let scaleToScaleObjectMap: Map = new Map();\r\n let scaleToItemObjectsMap: Map> = new Map();\r\n\r\n for (let rawItem of rawItems) {\r\n let scaleUidKey: string = rawItem.gradeScaleUid;\r\n\r\n // creating GradeScaleRI object\r\n if (!scaleToScaleObjectMap.has(scaleUidKey)) {\r\n let scale: GradeScaleRI = {\r\n uid: rawItem.gradeScaleUid,\r\n name: rawItem.gradeScaleName,\r\n description: rawItem.gradeScaleDescription,\r\n gradeScaleType: rawItem.gradeScaleType,\r\n colorLevels: rawItem.colorLevels,\r\n numericMax: rawItem.numericMax,\r\n numericMin: rawItem.numericMin,\r\n numericDecimals: rawItem.numericDecimals,\r\n numericExtras: rawItem.numericExtras,\r\n conversionToNumeric: rawItem.conversionToNumeric,\r\n specialGradeScaleUid: rawItem.specialGradeScaleUid,\r\n gradeScaleItems: []\r\n };\r\n scaleToScaleObjectMap.set(scaleUidKey, scale);\r\n }\r\n\r\n // creating GradeScaleItemRI objects\r\n if (!scaleToItemObjectsMap.has(scaleUidKey)) {\r\n scaleToItemObjectsMap.set(scaleUidKey, []);\r\n }\r\n let createdItem = isSpecialScale ? buildSpecialGradeScaleItemRI(rawItem) : buildGradeScaleItemRI(rawItem);\r\n if (createdItem != null) {\r\n scaleToItemObjectsMap.get(rawItem.gradeScaleUid)!.push(createdItem);\r\n }\r\n }\r\n\r\n let scales = Array.from(scaleToScaleObjectMap.values()).map((scale: GradeScaleRI) => {\r\n scale.gradeScaleItems = sortGradeScaleItems(scaleToItemObjectsMap.get(scale.uid) || []);\r\n return scale;\r\n });\r\n return sortGradeScales(scales);\r\n }\r\n\r\n export function buildGradeScaleItemRI(rawItem: RawGradeScaleItem): GradeScaleItemRI | undefined {\r\n if (rawItem.gradeScaleItemUid != null) {\r\n return {\r\n uid: rawItem.gradeScaleItemUid,\r\n name: rawItem.gradeScaleItemName!,\r\n description: rawItem.gradeScaleItemDescription,\r\n color: rawItem.gradeScaleItemColor,\r\n numericCutOff: rawItem.gradeScaleItemNumericCutOff!,\r\n cutOffPercentage: rawItem.gradeScaleItemCutOffPercentage!,\r\n numericValue: rawItem.gradeScaleItemNumericValue!,\r\n percentValue: rawItem.gradeScaleItemPercentValue!,\r\n isProficient: rawItem.gradeScaleItemIsProficient === 1,\r\n displayPosition: rawItem.gradeScaleItemDisplayPosition\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n export function buildSpecialGradeScaleItemRI(rawItem: RawGradeScaleItem): SpecialGradeScaleItemRI | undefined {\r\n let item: GradeScaleItemRI | undefined = buildGradeScaleItemRI(rawItem);\r\n if (item != null && rawItem.gradeScaleItemUid != null) {\r\n let specialItem: SpecialGradeScaleItemRI = item;\r\n specialItem.isAbsent = rawItem.gradeScaleItemIsAbsent === 1;\r\n specialItem.isCollected = rawItem.gradeScaleItemIsCollected === 1;\r\n specialItem.isExempt = rawItem.gradeScaleItemIsExempt === 1;\r\n specialItem.isIncomplete = rawItem.gradeScaleItemIsIncomplete === 1;\r\n specialItem.isLate = rawItem.gradeScaleItemIsLate === 1;\r\n specialItem.isMissing = rawItem.gradeScaleItemIsMissing === 1;\r\n specialItem.isScoreCodeOnAssignments = rawItem.gradeScaleItemIsScoreCodeOnAssignments === 1;\r\n specialItem.numericType = (rawItem.specialNumericType === 'Max' || rawItem.specialNumericType === 'Min' || rawItem.specialNumericType === 'Custom') ? <'MAX' | 'MIN' | 'CUSTOM'>rawItem.specialNumericType.toUpperCase() : undefined!;\r\n specialItem.numericValue = rawItem.specialNumericValue!;\r\n specialItem.percentValue = rawItem.specialPercentValue!;\r\n specialItem.displayPosition = rawItem.gradeScaleItemDisplayPosition;\r\n return specialItem;\r\n }\r\n return undefined;\r\n }\r\n\r\n // sort GradeScaleItems by descending order by default\r\n export function sortGradeScaleItems(scaleItems: Array): Array {\r\n scaleItems.sort((a: T, b: T) => {\r\n // The sorting below follows the sorting used in PowerSchool SIS' Edit Grade Scale page.\r\n\r\n // 1. Sort by cutoff percentage in descending order\r\n if (a.cutOffPercentage !== b.cutOffPercentage) {\r\n return b.cutOffPercentage - a.cutOffPercentage;\r\n }\r\n\r\n // 2. Sort by display position in descending order. The one marked display position > 0 is the default zero cutoff.\r\n let aDisplayPos = a.displayPosition || 0;\r\n let bDisplayPos = b.displayPosition || 0;\r\n if (aDisplayPos - bDisplayPos) {\r\n return bDisplayPos - aDisplayPos;\r\n }\r\n\r\n // 3. Sort by grade scale item name in ascending order\r\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\r\n\r\n });\r\n return scaleItems;\r\n }\r\n\r\n // sort GradeScales by alphabetic order by default\r\n export function sortGradeScales(scales: Array): Array {\r\n scales.sort((a: T, b: T) => {\r\n return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;\r\n });\r\n return scales;\r\n }\r\n\r\n export function getHighestGradeScaleScore(gradeScale: GradeScaleRI): GradeScaleItemRI | undefined {\r\n if (gradeScale == null || gradeScale.gradeScaleItems == null || gradeScale.gradeScaleItems.length === 0) {\r\n return undefined;\r\n }\r\n // Grade scale items are sorted by cutOffPercentage first in descending order.\r\n return gradeScale.gradeScaleItems[0];\r\n }\r\n\r\n /**\r\n * Main Function used by UI (hopefully serverside can use it too).\r\n * GradeScaleScore -> TypedScore\r\n */\r\n export function convertGradeScaleItemToScoreOfType(gradeScaleItemToConvert: string | undefined,\r\n gradeScale: GradeScaleRI,\r\n convertTo: AssignmentScoreType,\r\n roundNumbers: boolean,\r\n calcRelationship: CalcRelationship = 'GRADESCALE',\r\n pointsPossible?: number): string | undefined {\r\n\r\n if (gradeScaleItemToConvert == null) {\r\n return;\r\n }\r\n\r\n let value: string | number | undefined;\r\n\r\n if (convertTo === 'GRADESCALE') {\r\n //Gradescale to gradescale is EASY! Just return the item!!!\r\n return gradeScaleItemToConvert;\r\n }\r\n\r\n if (gradeScale.gradeScaleType === 'NUMERIC') {\r\n switch (convertTo) {\r\n case 'POINTS':\r\n if (pointsPossible == null) {\r\n return;\r\n }\r\n value = convertNumericGradeScaleItemToPoints(gradeScaleItemToConvert, gradeScale, calcRelationship, pointsPossible, roundNumbers);\r\n break;\r\n case 'PERCENT':\r\n value = convertNumericGradeScaleItemToPercent(gradeScaleItemToConvert, gradeScale, roundNumbers);\r\n break;\r\n case 'COLLECTED_ONLY':\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n //gradeScale.gradeScaleType === 'ALPHA'\r\n switch (convertTo) {\r\n case 'POINTS':\r\n if (pointsPossible == null) {\r\n return;\r\n }\r\n value = convertGradeScaleItemToPoints(gradeScaleItemToConvert, gradeScale, pointsPossible, roundNumbers);\r\n break;\r\n case 'PERCENT':\r\n value = convertGradeScaleItemToPercent(gradeScaleItemToConvert, gradeScale, roundNumbers);\r\n break;\r\n case 'COLLECTED_ONLY':\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (value == null) {\r\n return;\r\n }\r\n\r\n return String(value);\r\n }\r\n\r\n /**\r\n * Main Function used by UI (hopefully serverside can use it too).\r\n * TypedScore -> GradeScaleScore\r\n */\r\n export function convertScoreOfTypeToGradeScaleItem(scoreValue: string | undefined,\r\n gradeScale: GradeScaleRI,\r\n convertFrom: AssignmentScoreType,\r\n roundNumbers: boolean,\r\n calcRelationship: CalcRelationship = 'GRADESCALE',\r\n pointsPossible?: number): string | undefined {\r\n\r\n if (scoreValue == null) {\r\n return;\r\n }\r\n\r\n //This ONLY returns a GSI if the current scoreValue cannot be used as is.\r\n let specialGradeScaleItem: SpecialGradeScaleItemRI | undefined = getSpecialGradeScaleItem(scoreValue, gradeScale, convertFrom);\r\n if (specialGradeScaleItem != null) {\r\n let specialValue: string | number | undefined = convertSpecialGradeScaleItemTo(specialGradeScaleItem,\r\n gradeScale,\r\n 'GRADESCALE',\r\n true,\r\n calcRelationship,\r\n pointsPossible);\r\n if (specialValue == null) {\r\n return;\r\n } else {\r\n return String(specialValue);\r\n }\r\n }\r\n\r\n if (convertFrom === 'GRADESCALE') {\r\n //Gradescale to gradescale is EASY! Just return the item!!!\r\n return scoreValue;\r\n }\r\n\r\n if (gradeScale.gradeScaleType === 'NUMERIC') {\r\n switch (convertFrom) {\r\n case 'POINTS':\r\n if (pointsPossible == null) {\r\n return;\r\n }\r\n return convertPointsToNumericGradeScaleItem(Number(scoreValue), pointsPossible, gradeScale, calcRelationship, roundNumbers);\r\n case 'PERCENT':\r\n return convertPercentToNumericGradeScaleItem(Number(scoreValue), gradeScale, roundNumbers);\r\n case 'COLLECTED_ONLY':\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n //gradeScale.gradeScaleType === 'ALPHA'\r\n switch (convertFrom) {\r\n case 'POINTS':\r\n if (pointsPossible == null) {\r\n return;\r\n }\r\n return convertPointsToGradeScaleItem(Number(scoreValue), pointsPossible, gradeScale);\r\n case 'PERCENT':\r\n return convertPercentToGradeScaleItem(Number(scoreValue), gradeScale);\r\n case 'COLLECTED_ONLY':\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Works for any grade scale, but if the exact item is not found then it returns undefined.\r\n */\r\n export function getGradeScaleItem(gradeScaleItemString: string | undefined, gradeScale: GradeScaleRI | undefined): GradeScaleItemRI | undefined {\r\n if (gradeScaleItemString == null || gradeScale == null) {\r\n return;\r\n }\r\n\r\n let gradeScaleItemUpperCaseString = gradeScaleItemString.toUpperCase();\r\n\r\n for (let gradeScaleItem of gradeScale.gradeScaleItems) {\r\n if (gradeScaleItem.name.toUpperCase() === gradeScaleItemUpperCaseString) {\r\n return gradeScaleItem;\r\n }\r\n }\r\n }\r\n\r\n export function convertNumericValueToNumericValue(numericValue: number | undefined, gradeScale: GradeScaleRI): number | undefined {\r\n if (numericValue == null) {\r\n return;\r\n }\r\n\r\n for (let gradeScaleItem of gradeScale.gradeScaleItems) {\r\n if (gradeScaleItem.numericCutOff <= numericValue) {\r\n return gradeScaleItem.numericValue;\r\n }\r\n }\r\n }\r\n\r\n export function convertNumericValueTo(convertTo: AssignmentScoreType,\r\n numericValue: number | undefined,\r\n numericGradeScale: GradeScaleRI,\r\n calcRelationship: CalcRelationship,\r\n roundNumbers: boolean,\r\n pointsPossible?: number): number | string | undefined {\r\n if (convertTo == null || numericValue == null || numericGradeScale == null) {\r\n return;\r\n }\r\n\r\n if (convertTo === 'GRADESCALE' && (hasNumericDecimals(numericGradeScale) || numericGradeScale.conversionToNumeric === 'PERCENT')) {\r\n return NumberUtil.round(numericValue, (hasNumericDecimals(numericGradeScale) ? numericGradeScale.numericDecimals : 2));\r\n }\r\n\r\n if (numericGradeScale.gradeScaleType !== 'NUMERIC') {\r\n console.error('convertNumericValueTo expects a Numeric gradeScaleType');\r\n return;\r\n }\r\n\r\n switch (convertTo) {\r\n case 'POINTS':\r\n case 'PERCENT':\r\n return convertGradeScaleItemToScoreOfType(String(numericValue), numericGradeScale, convertTo, roundNumbers, calcRelationship, pointsPossible);\r\n case 'GRADESCALE':\r\n let gradeScaleItem = numericGradeScale.gradeScaleItems.find((gradeScaleItem: GradeScaleItemRI): boolean => {\r\n return gradeScaleItem.numericCutOff <= numericValue;\r\n });\r\n\r\n if (gradeScaleItem == null) {\r\n return;\r\n }\r\n\r\n if (!isNaN(gradeScaleItem.name)) {\r\n return Number(gradeScaleItem.name);\r\n } else {\r\n return gradeScaleItem.name;\r\n }\r\n default: //shut up tslint\r\n }\r\n }\r\n\r\n export function convertNumericGradeScaleItemToNumericValue(gradeScaleItem: string | undefined, gradeScale: GradeScaleRI): number | undefined {\r\n if (gradeScaleItem == null) {\r\n return;\r\n }\r\n if (!isNaN(gradeScaleItem)) {\r\n return Number(gradeScaleItem);\r\n } else {\r\n let item: GradeScaleItemRI | undefined = getGradeScaleItem(gradeScaleItem, gradeScale);\r\n if (item != null) {\r\n return item.numericValue;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the numeric grade scale item. If not found and the gradeScaleItemString is something that is numeric and larger\r\n * or smaller than the max and min. Then the numeric max or min will be returned.\r\n */\r\n export function getNumericGradeScaleItem(gradeScaleItemString: string | undefined, gradeScale: GradeScaleRI): GradeScaleItemRI | undefined {\r\n if (gradeScaleItemString == null) {\r\n return;\r\n }\r\n\r\n let gradeScaleItem = getGradeScaleItem(gradeScaleItemString, gradeScale);\r\n if (gradeScaleItem != null) {\r\n return gradeScaleItem;\r\n }\r\n\r\n if (gradeScaleItemString !== '' &&\r\n gradeScaleItemString !== String(gradeScale.numericMax) &&\r\n gradeScaleItemString !== String(gradeScale.numericMin)) {\r\n\r\n gradeScaleItemString = gradeScaleItemString.replace(PLUS_MINUS_REGEX, '');\r\n if (!isNaN(gradeScaleItemString)) {\r\n let itemAsNumber: number = Number(gradeScaleItemString);\r\n\r\n if (itemAsNumber > gradeScale.numericMax) {\r\n return getGradeScaleItem(String(gradeScale.numericMax), gradeScale);\r\n }\r\n\r\n if (itemAsNumber < gradeScale.numericMin) {\r\n return getGradeScaleItem(String(gradeScale.numericMin), gradeScale);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //This works for both ALPHA. Call convertNumericGradeScalItemToPercent if you want that.\r\n //The percent returned is from 0 - 100\r\n export function convertGradeScaleItemToPercent(gradeScaleItemToConvert: string | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): number | undefined {\r\n if (gradeScaleItemToConvert == null) {\r\n return;\r\n }\r\n let gradeScaleItem: GradeScaleItemRI | undefined = getGradeScaleItem(gradeScaleItemToConvert, gradeScale);\r\n if (gradeScaleItem != null) {\r\n return roundToPrecision(gradeScaleItem.percentValue, 2, PRECISION, roundNumber);\r\n }\r\n }\r\n\r\n export function convertNumericGradeScaleItemToPercent(gradeScaleItemToConvert: string | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): number | undefined {\r\n if (gradeScaleItemToConvert == null) {\r\n return;\r\n }\r\n let gradeScaleItem: GradeScaleItemRI | undefined = getNumericGradeScaleItem(gradeScaleItemToConvert, gradeScale);\r\n if (gradeScaleItem != null) {\r\n return roundToPrecision(gradeScaleItem.percentValue, 2, PRECISION, roundNumber);\r\n }\r\n\r\n //if we can't find it, try to convert using ratios.\r\n return convertCalculatedNumericValueToPercentUsingRatios(gradeScaleItemToConvert, gradeScale, roundNumber);\r\n }\r\n\r\n export function convertGradeScaleItemToPoints(gradeScaleItemToConvert: string | undefined, gradeScale: GradeScaleRI, pointsPossible: number, roundNumber: boolean): number | undefined {\r\n if (gradeScaleItemToConvert == null) {\r\n return;\r\n }\r\n let percent = convertGradeScaleItemToPercent(gradeScaleItemToConvert, gradeScale, false);\r\n if (percent == null) {\r\n return;\r\n }\r\n return roundToPrecision(percent / 100 * pointsPossible, 2, PRECISION, roundNumber);\r\n }\r\n\r\n /**\r\n * @returns points\r\n */\r\n export function convertNumericGradeScaleItemToPoints(gradeScaleItemToConvert: string | undefined,\r\n gradeScale: GradeScaleRI,\r\n calcRelationship: CalcRelationship,\r\n pointsPossible: number,\r\n roundNumber: boolean): number | undefined {\r\n if (gradeScaleItemToConvert == null) {\r\n return;\r\n }\r\n\r\n if (calcRelationship === 'LEVELS') {\r\n let gradeScaleItemAsNumber: number | undefined;\r\n let gradeScaleItem: GradeScaleItemRI | undefined = getNumericGradeScaleItem(gradeScaleItemToConvert, gradeScale);\r\n\r\n if (gradeScaleItem != null) {\r\n gradeScaleItemAsNumber = gradeScaleItem.numericValue;\r\n } else if (!isNaN(gradeScaleItemToConvert)) {\r\n gradeScaleItemAsNumber = Number(gradeScaleItemToConvert);\r\n }\r\n\r\n if (gradeScaleItemAsNumber != null) {\r\n if (gradeScaleItemAsNumber > gradeScale.numericMax) {\r\n gradeScaleItemAsNumber = gradeScale.numericMax;\r\n }\r\n\r\n if (gradeScaleItemAsNumber < gradeScale.numericMin) {\r\n gradeScaleItemAsNumber = gradeScale.numericMin;\r\n }\r\n\r\n return roundToPrecision(pointsPossible * gradeScaleItemAsNumber / gradeScale.numericMax, 2, PRECISION, roundNumber);\r\n }\r\n return; //If we didn't get it right using levels, we just return undefined.\r\n }\r\n\r\n //Don't round this, we want all the decimals for the points conversion\r\n let percent: number | undefined = convertNumericGradeScaleItemToPercent(gradeScaleItemToConvert, gradeScale, false);\r\n if (percent != null) {\r\n return roundToPrecision(percent / 100 * pointsPossible, 2, PRECISION, roundNumber);\r\n }\r\n }\r\n\r\n export function convertPointsToGradeScaleItem(points: number | undefined, pointsPossible: number, gradeScale: GradeScaleRI): string | undefined {\r\n if (points == null) {\r\n return;\r\n }\r\n\r\n //between 0 and 100;\r\n let percent = NumberUtil.round(points / pointsPossible * 100, PRECISION);\r\n return convertPercentToGradeScaleItem(percent, gradeScale);\r\n }\r\n\r\n //percent between 0 and 100;\r\n export function convertPercentToGradeScaleItem(percent: number | undefined, gradeScale: GradeScaleRI): string | undefined {\r\n if (percent == null) {\r\n return;\r\n }\r\n\r\n for (let gradeScaleItem of gradeScale.gradeScaleItems) {\r\n if (gradeScaleItem.cutOffPercentage <= percent) {\r\n return gradeScaleItem.name;\r\n }\r\n }\r\n }\r\n\r\n //percent between 0 and 100\r\n export function convertPercentToNumericGradeScaleItem(percent: number | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): string | undefined {\r\n if (percent == null) {\r\n return;\r\n }\r\n\r\n if (gradeScale.conversionToNumeric === 'PERCENT' || hasNumericDecimals(gradeScale)) {\r\n return convertPercentToNumericGradeScaleItemUsingRatios(percent, gradeScale, roundNumber);\r\n } else {\r\n return convertPercentToGradeScaleItem(percent, gradeScale);\r\n }\r\n }\r\n\r\n export function convertPointsToNumericGradeScaleItem(points: number | undefined,\r\n pointsPossible: number,\r\n gradeScale: GradeScaleRI,\r\n calcRelationship: CalcRelationship,\r\n roundNumber: boolean): string | undefined {\r\n if (points == null) {\r\n return;\r\n }\r\n\r\n let pointsAsPercentOfTotalPercent = NumberUtil.round(points / pointsPossible, PRECISION);\r\n\r\n if (calcRelationship === 'LEVELS') {\r\n if (gradeScale.conversionToNumeric === 'PERCENT' || hasNumericDecimals(gradeScale)) {\r\n //This calc will return a decimal answer\r\n let decimals = 2;\r\n if (gradeScale.numericDecimals != null && hasNumericDecimals(gradeScale)) {\r\n decimals = gradeScale.numericDecimals;\r\n }\r\n //Ratios calc or numeric with decimals\r\n let numericValue: number = NumberUtil.roundToPrecision(pointsAsPercentOfTotalPercent * gradeScale.numericMax, decimals, PRECISION, roundNumber);\r\n\r\n if (gradeScale.numericMax != null && numericValue > gradeScale.numericMax) {\r\n return String(gradeScale.numericMax);\r\n }\r\n\r\n if (gradeScale.numericMin != null && numericValue < gradeScale.numericMin) {\r\n return String(gradeScale.numericMin);\r\n }\r\n\r\n return getMatchedNumericGradeScaleItem(numericValue, gradeScale);\r\n } else {\r\n //This calc will return something that matches a grade scale item.\r\n for (let gradeScaleItem of gradeScale.gradeScaleItems) {\r\n //percent between 0 and 1\r\n let percent;\r\n if (isNaN(gradeScaleItem.name)) {\r\n percent = NumberUtil.round(gradeScaleItem.numericValue / gradeScale.numericMax, PRECISION);\r\n } else {\r\n percent = NumberUtil.round(Number(gradeScaleItem.name) / gradeScale.numericMax, PRECISION);\r\n }\r\n\r\n if (percent <= pointsAsPercentOfTotalPercent) {\r\n return gradeScaleItem.name;\r\n }\r\n }\r\n //If we didn't get anything, we just use the last item in the scale.\r\n return gradeScale.gradeScaleItems.slice(-1)[0].name;\r\n }\r\n } else { //calcRelationship === 'GRADESCALE'\r\n\r\n if (gradeScale.conversionToNumeric === 'PERCENT' || hasNumericDecimals(gradeScale)) {\r\n //Ratios calc or numeric with decimals\r\n //This means we return decimal answers.\r\n return convertPercentToNumericGradeScaleItemUsingRatios(pointsAsPercentOfTotalPercent * 100, gradeScale, roundNumber);\r\n } else {\r\n\r\n return convertPointsToGradeScaleItem(points, pointsPossible, gradeScale);\r\n }\r\n }\r\n }\r\n\r\n export function convertPercentToNumericGradeScaleItemUsingRatios(percent: number | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): string | undefined {\r\n if (percent == null) { return; }\r\n\r\n let calculatedGsi: number | undefined = convertPercentToCalculatedNumericGradeScaleItemUsingRatios(percent, gradeScale, roundNumber);\r\n\r\n return getMatchedNumericGradeScaleItem(calculatedGsi, gradeScale);\r\n }\r\n\r\n function getMatchedNumericGradeScaleItem(numericValue: number | undefined, gradeScale: GradeScaleRI): string | undefined {\r\n if (numericValue == null) {\r\n return;\r\n }\r\n //If numeric decimals isn't set, or is 0.\r\n if (!gradeScale.numericDecimals) {\r\n //See if I can can find an actual gradeScaleItem.\r\n for (let gradeScaleItem of gradeScale.gradeScaleItems) {\r\n if ((gradeScaleItem.numericValue + .05) >= numericValue &&\r\n (gradeScaleItem.numericValue - .05) <= numericValue) {\r\n return gradeScaleItem.name;\r\n }\r\n }\r\n }\r\n return String(numericValue);\r\n }\r\n\r\n //percent between 0 and 100\r\n export function convertPercentToCalculatedNumericGradeScaleItemUsingRatios(percent: number | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): number | undefined {\r\n if (percent == null) { return; }\r\n let numberOfDecimals: number = gradeScale.numericDecimals ? gradeScale.numericDecimals : 2;\r\n let highGrade: GradeScaleItemRI | undefined = undefined;\r\n let lowGrade: GradeScaleItemRI | undefined = undefined;\r\n\r\n let grades: Array = gradeScale.gradeScaleItems;\r\n for (let grade of grades) {\r\n if (percent === grade.cutOffPercentage) {\r\n return grade.numericValue;\r\n }\r\n\r\n if (percent > grade.cutOffPercentage) {\r\n lowGrade = grade;\r\n break;\r\n } else {\r\n highGrade = grade;\r\n }\r\n }\r\n\r\n if (lowGrade == null && highGrade == null) {\r\n return roundToPrecision(getDefaultNumericGrade(percent, gradeScale), numberOfDecimals, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade != null && highGrade == null) {\r\n return roundToPrecision(lowGrade.numericValue, numberOfDecimals, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade == null && highGrade != null) {\r\n return roundToPrecision(highGrade.numericValue, numberOfDecimals, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade != null && highGrade != null) {\r\n let high: number = highGrade.numericValue;\r\n let low: number = lowGrade.numericValue;\r\n\r\n //both aren't null, so now its time to interpolate the new score based on low / high\r\n let highPercent: number = highGrade.cutOffPercentage;\r\n let lowPercent: number = lowGrade.cutOffPercentage;\r\n\r\n // given a percent score, calculate a score between low and high (numerics)\r\n return roundToPrecision(interpolateForYGivenX(percent, lowPercent, low, highPercent, high), numberOfDecimals, PRECISION, roundNumber);\r\n }\r\n }\r\n\r\n //returns 0-100\r\n export function convertCalculatedNumericValueToPercentUsingRatios(numericGradeScaleItem: string | undefined, gradeScale: GradeScaleRI, roundNumber: boolean): number | undefined {\r\n if (isNaN(numericGradeScaleItem) || numericGradeScaleItem == null) {\r\n return;\r\n }\r\n\r\n let highGrade: GradeScaleItemRI | undefined = undefined;\r\n let lowGrade: GradeScaleItemRI | undefined = undefined;\r\n let gradeScaleItemAsNumber = Number(numericGradeScaleItem);\r\n\r\n for (let grade of gradeScale.gradeScaleItems) {\r\n if (numericGradeScaleItem === grade.name) {\r\n return grade.percentValue;\r\n }\r\n\r\n if (gradeScaleItemAsNumber > grade.numericValue) {\r\n lowGrade = grade;\r\n break;\r\n } else {\r\n highGrade = grade;\r\n }\r\n }\r\n\r\n if (lowGrade == null && highGrade == null) {\r\n return roundToPrecision(getDefaultNumericGrade(0, gradeScale), 2, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade != null && highGrade == null) {\r\n return roundToPrecision(lowGrade.percentValue, 2, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade == null && highGrade != null) {\r\n return roundToPrecision(highGrade.percentValue, 2, PRECISION, roundNumber);\r\n }\r\n\r\n if (lowGrade != null && highGrade != null) {\r\n let high: number = highGrade.numericValue;\r\n let low: number = lowGrade.numericValue;\r\n\r\n //both aren't null, so now its time to interpolate the new score based on low / high\r\n let highPercent: number = highGrade.percentValue;\r\n let lowPercent: number = lowGrade.percentValue;\r\n\r\n // given a percent score, calculate a score between low and high (numerics)\r\n return roundToPrecision(interpolateForYGivenX(gradeScaleItemAsNumber, low, lowPercent, high, highPercent), 2, PRECISION, roundNumber);\r\n }\r\n }\r\n\r\n export function getDefaultNumericGrade(percent: number, scale: GradeScaleRI): number {\r\n //TODO: Brent will add some special logic in here.\r\n return scale.numericMin;\r\n }\r\n\r\n /**\r\n * this is a classic linear interpolation. Given a pair of (x,y) points on the gradescale\r\n * and an x value, calculate the new y value.\r\n * See http://en.wikipedia.org/wiki/Linear_interpolation.\r\n * @param x - The x value (score you know)\r\n * @param x0 - low value on x axis\r\n * @param y0 - low value on y axis\r\n * @param x1 - high value on x axis\r\n * @param y1 - high value on the y axis\r\n * @return y\r\n */\r\n export function interpolateForYGivenX(x: number, x0: number, y0: number, x1: number, y1: number): number {\r\n let y: number;\r\n try {\r\n y = NumberUtil.round(y0 + (y1 - y0) * (x - x0) / (x1 - x0), PRECISION);\r\n } catch (e) {\r\n throw 'ArithmeticException Error Interpolating for Y given x, x0, y0, x1, y1: ' + x + ',' + x0 + ',' + y0 + ',' + x1 + ',' + y1;\r\n }\r\n\r\n if (isNaN(y) || !isFinite(y)) {\r\n throw 'Not a Number or Infinite result: Interpolating for Y given x, x0, y0, x1, y1: ' + x + ',' + x0 + ',' + y0 + ',' + x1 + ',' + y1;\r\n }\r\n\r\n return y;\r\n }\r\n\r\n /**\r\n * @param validationEngine - When calling this on the client side, pass in the validation object so it has the correct\r\n * locale. No need to pass in on the server side unless there is a specific reason to.\r\n * @param scoreType\r\n * @param gradeScale\r\n * @returns {any}\r\n */\r\n export function generateValidators(scoreType: AssignmentScoreType, gradeScale: GradeScaleRI, maxPoints?: number, validationEngine?: ValidationRulesEngine): Array {\r\n if (validationEngine == null) {\r\n validationEngine = new ValidationRulesEngine();\r\n }\r\n let validators: Array;\r\n\r\n let specialGradeScaleValidator: Validator | undefined;\r\n if (gradeScale.specialGradeScale != null) {\r\n let specialScale = gradeScale.specialGradeScale;\r\n specialGradeScaleValidator = {\r\n execute: function validateSpecialGradeScale(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n let ignoreSubsequentValidators = false;\r\n if (value != null) {\r\n let valueUpperCase = value.toUpperCase();\r\n ignoreSubsequentValidators = specialScale.gradeScaleItems.find((item: GradeScaleItemRI): boolean => {\r\n return item.name.toUpperCase() === valueUpperCase;\r\n }) != null;\r\n }\r\n return {\r\n isValid: true,\r\n ignoreSubsequentValidators: ignoreSubsequentValidators\r\n };\r\n }\r\n };\r\n }\r\n\r\n switch (scoreType) {\r\n case 'POINTS':\r\n validators = validationEngine.getValidatorsForRules({\r\n isNumber: true,\r\n minValue: 0,\r\n maxValue: maxPoints,\r\n maxDecimals: 2\r\n });\r\n\r\n if (specialGradeScaleValidator != null) {\r\n validators.unshift(specialGradeScaleValidator);\r\n }\r\n\r\n // When max points is set to zero, treat any entered value as invalid.\r\n if (maxPoints === 0) {\r\n validators.unshift({\r\n execute: function validateMaxPoints(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n return {\r\n isValid: false,\r\n ignoreSubsequentValidators: true,\r\n errorMessage: this.i18n.getText('cu|grade scale util|Score entered is greater than maximum points.')\r\n };\r\n }\r\n });\r\n }\r\n return validators;\r\n\r\n case 'PERCENT':\r\n validators = validationEngine.getValidatorsForRules({\r\n isNumber: true,\r\n minValue: 0,\r\n maxValue: 200,\r\n maxDecimals: 2\r\n });\r\n\r\n if (specialGradeScaleValidator != null) {\r\n validators.unshift(specialGradeScaleValidator);\r\n }\r\n return validators;\r\n\r\n case 'GRADESCALE':\r\n let validationRules: ValidationRules = {};\r\n let preValidator: Validator | undefined;\r\n let postValidator: Validator | undefined;\r\n if (gradeScale.gradeScaleType === 'NUMERIC') {\r\n validationRules = {\r\n isNumber: true,\r\n maxValue: gradeScale.numericMax,\r\n minValue: gradeScale.numericMin\r\n };\r\n\r\n if (gradeScale.numericDecimals != null && hasNumericDecimals(gradeScale)) {\r\n validationRules.maxDecimals = gradeScale.numericDecimals;\r\n } else if (gradeScale.conversionToNumeric === 'PERCENT') {\r\n validationRules.maxDecimals = 2;\r\n }\r\n\r\n let localizedGradeScaleItems: Array = gradeScale.gradeScaleItems.map((gradeScaleItem: GradeScaleItemRI) => {\r\n if (!isNaN(gradeScaleItem.name)) {\r\n //validationEngine IS defined because if it starts as undefined, one is created right at the beginning of the function.\r\n let localizedNum:\r\n string\r\n | undefined = validationEngine!.i18n.localizeNumber(Number(gradeScaleItem.name));\r\n if (localizedNum != null) {\r\n return localizedNum;\r\n }\r\n }\r\n return gradeScaleItem.name;\r\n });\r\n\r\n preValidator = {\r\n execute: function numericScalePreValidator(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n let validationResult: ValidationResult = {\r\n isValid: true\r\n };\r\n\r\n if (localizedGradeScaleItems.find((gradeScaleItemName: string) => {\r\n return gradeScaleItemName === value;\r\n }) != null) {\r\n //If we find the item, no need to test any of the other rules.\r\n validationResult.ignoreSubsequentValidators = true;\r\n }\r\n\r\n return validationResult;\r\n }\r\n };\r\n\r\n if (!gradeScale.numericDecimals && gradeScale.conversionToNumeric !== 'PERCENT') {\r\n postValidator = {\r\n execute: function numericScalePostValidator(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n //Really, if it's not a numeric scale, and not using the Ratios calc, then this should match a grade scale item.\r\n //It didn't match and exit in the preValidator, so we return false here.\r\n //So why didn't we just return invalid in the preValidator? It's because the other numeric rules may still fail\r\n //before we get to this validator which will give the user a better error message.\r\n let validationResult: ValidationResult = {\r\n isValid: false,\r\n errorMessage: validationEngine!.i18n.getText('cu|grade scale util|Invalid')\r\n };\r\n\r\n return validationResult;\r\n }\r\n };\r\n }\r\n } else {\r\n //* * * * * * ALPHA GRADE SCALES * * * * * *\r\n validationRules.isText = true;\r\n validationRules.maxLength = 7;\r\n preValidator = {\r\n execute: function alphaScalePreValidator(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n let valueUpperCase: string | undefined;\r\n let isValid = false;\r\n if (value != null) {\r\n valueUpperCase = value.toUpperCase();\r\n isValid = gradeScale.gradeScaleItems.find((gradeScaleItem: GradeScaleItemRI) => {\r\n return gradeScaleItem.name.toUpperCase() === valueUpperCase;\r\n }) != null;\r\n }\r\n\r\n let validationResult: ValidationResult = {\r\n isValid: isValid\r\n };\r\n\r\n if (!validationResult.isValid) {\r\n validationResult.errorMessage = validationEngine!.i18n.getText('cu|grade scale util|Invalid');\r\n }\r\n\r\n return validationResult;\r\n }\r\n };\r\n }\r\n\r\n //Generate the validators\r\n validators = validationEngine.getValidatorsForRules(validationRules);\r\n\r\n //Add in the custom validators if applicable.\r\n if (preValidator != null) {\r\n validators.unshift(preValidator);\r\n }\r\n\r\n //Special Scales validate before the preValidator in this case as they do not ever say something is invalid.\r\n if (specialGradeScaleValidator != null) {\r\n validators.unshift(specialGradeScaleValidator);\r\n }\r\n\r\n if (postValidator != null) {\r\n validators.push(postValidator);\r\n }\r\n return validators;\r\n\r\n case 'COLLECTED_ONLY':\r\n validators = [{\r\n execute: function isEmptyOrUndefined(value: string, condition: any, context: { [key: string]: any }): ValidationResult {\r\n let validationResult: ValidationResult = {\r\n isValid: value.length <= 0\r\n };\r\n\r\n if (!validationResult.isValid) {\r\n validationResult.errorMessage = validationEngine!.i18n.getText('cu|grade scale util|Collected Only assignments cannot accept scores.');\r\n }\r\n\r\n return validationResult;\r\n }\r\n }];\r\n return validators;\r\n\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n export function getColorLevel(gradeScaleScore: string, gradeScale: GradeScaleRI): string | undefined {\r\n if (gradeScaleScore == null || gradeScaleScore.trim().length === 0 || gradeScale == null) {\r\n return;\r\n }\r\n\r\n let gradeScaleItem: GradeScaleItemRI | undefined;\r\n\r\n if (gradeScale.gradeScaleType === 'ALPHA') {\r\n gradeScaleItem = getGradeScaleItem(gradeScaleScore, gradeScale);\r\n } else {\r\n gradeScaleItem = getNumericGradeScaleItem(gradeScaleScore, gradeScale);\r\n\r\n if (gradeScaleItem == null && !isNaN(gradeScaleScore)) {\r\n let itemAsNumber: number = Number(gradeScaleScore);\r\n for (let gsi of gradeScale.gradeScaleItems) {\r\n if (itemAsNumber >= gsi.numericCutOff) {\r\n gradeScaleItem = gsi;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (gradeScaleItem != null) {\r\n return gradeScaleItem.color;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the special grade scale item if its applicable for this score.\r\n * Such as, if 'inc' is an item in both the grade scale and the special scale, this method would return undefined.\r\n */\r\n export function getSpecialGradeScaleItem(scoreValue: string | undefined,\r\n gradeScale: GradeScaleRI,\r\n scoreType: AssignmentScoreType): SpecialGradeScaleItemRI | undefined {\r\n let specialCode: SpecialGradeScaleItemRI | undefined = getGradeScaleItem(scoreValue, gradeScale.specialGradeScale);\r\n if (specialCode == null) {\r\n return;\r\n }\r\n\r\n //So we have the item. The question is, is the item part of the normal grade scale.\r\n switch (scoreType) {\r\n case 'POINTS':\r\n case 'PERCENT':\r\n //If the score value is a number so we will assume it is not a special scale item.\r\n if (!isNaN(scoreValue)) {\r\n return;\r\n }\r\n break;\r\n case 'GRADESCALE':\r\n if (getGradeScaleItem(scoreValue, gradeScale) != null) {\r\n return;\r\n }\r\n\r\n if (gradeScale.gradeScaleType === 'NUMERIC' && !isNaN(scoreValue) && (gradeScale.conversionToNumeric === 'PERCENT' || hasNumericDecimals(gradeScale))) {\r\n let numericScore: number = Number(scoreValue);\r\n if (numericScore >= gradeScale.numericMin &&\r\n numericScore <= gradeScale.numericMax) {\r\n //At this point we know the score is a valid numeric value even though it is not one of the grade scale items.\r\n return;\r\n }\r\n }\r\n break;\r\n default: //shut up tslint\r\n }\r\n\r\n return specialCode;\r\n }\r\n\r\n //GradeScaleItem -> points (needed for inspectorScore.getGrade)\r\n //GradeScaleItem -> percent (needed for inspectorScore.getGrade)\r\n //GradeScaleItem -> NumericGradeScaleItem (as string) (needed for convertToGradeScale)\r\n //GradeScaleItem -> AlphaGradeScaleItem (as string) (needed for convertToGradeScale)\r\n export function convertSpecialGradeScaleItemTo(specialGradeScaleItem: SpecialGradeScaleItemRI,\r\n gradeScale: GradeScaleRI,\r\n convertTo: AssignmentScoreType,\r\n roundNumbers: boolean,\r\n calcRelationship: CalcRelationship,\r\n pointsPossible?: number): string | number | undefined {\r\n if (specialGradeScaleItem.isExempt) {\r\n //Exempt stuff doesn't convert into anything.\r\n return;\r\n }\r\n\r\n switch (convertTo) {\r\n case 'POINTS':\r\n return NumberUtil.roundToPrecision(specialGradeScaleItem.percentValue / 100 * pointsPossible, 2, PRECISION, roundNumbers);\r\n case 'PERCENT':\r\n return NumberUtil.roundToPrecision(specialGradeScaleItem.percentValue, 2, PRECISION, roundNumbers);\r\n case 'GRADESCALE':\r\n if (gradeScale.gradeScaleType === 'ALPHA') {\r\n return convertPercentToGradeScaleItem(specialGradeScaleItem.percentValue, gradeScale);\r\n } else {\r\n if (specialGradeScaleItem.numericType === 'MAX') {\r\n return gradeScale.numericMax;\r\n } else if (specialGradeScaleItem.numericType === 'MIN') {\r\n return gradeScale.numericMin;\r\n } else {\r\n return convertNumericValueTo('GRADESCALE', specialGradeScaleItem.numericValue, gradeScale, calcRelationship, true);\r\n }\r\n }\r\n default: //shut up tslint\r\n }\r\n }\r\n\r\n export function hasNumericDecimals(gradeScale: GradeScaleRI): boolean {\r\n if (gradeScale != null && gradeScale.numericDecimals == null) {\r\n return false;\r\n }\r\n return gradeScale.numericDecimals > 0;\r\n }\r\n\r\n export function gradeScaleValueExpression(gradeScale: GradeScaleRI, i18nUtil?: I18nUtil): string {\r\n if (i18nUtil == null) {\r\n i18nUtil = new I18nUtil();\r\n }\r\n if (gradeScale.gradeScaleType === 'NUMERIC') {\r\n let extras = '';\r\n switch (gradeScale.numericExtras) {\r\n case 'QUARTER_POINT_25':\r\n extras = ' (' + i18nUtil.localizeNumber(.25) + ')';\r\n break;\r\n case 'THIRD_POINT_33':\r\n extras = ' (' + i18nUtil.localizeNumber(.33) + ')';\r\n break;\r\n case 'HALF_POINT_5':\r\n extras = ' (' + i18nUtil.localizeNumber(.5) + ')';\r\n break;\r\n case 'HALF_PLUS':\r\n extras = ' (+)';\r\n break;\r\n case 'THIRD_PLUS_MINUS':\r\n extras = ' (+/-)';\r\n break;\r\n default:\r\n }\r\n let decimals = gradeScale.numericDecimals ? gradeScale.numericDecimals : 0;\r\n let min = gradeScale.numericMin ? gradeScale.numericMin : 0;\r\n let max = gradeScale.numericMax ? gradeScale.numericMax : 0;\r\n return (i18nUtil.localizeNumber(min, decimals, decimals > 0) + '-' + i18nUtil.localizeNumber(max, decimals, decimals > 0) + extras);\r\n } else {\r\n return (gradeScale.gradeScaleItems[0].name + '-' + gradeScale.gradeScaleItems[gradeScale.gradeScaleItems.length - 1].name);\r\n }\r\n }\r\n}\r\n","import { numberValidationRules } from './number-validation-rules';\r\nimport { dateValidationRules } from './date-validation-rules';\r\nimport { textValidationRules } from './text-validation-rules';\r\nimport { timeValidationRules } from './time-validation-rules';\r\nimport { ValidationResult } from '../interfaces/validation-result';\r\nimport { BasicValidationRules } from '../interfaces/basic-validation-rules';\r\nimport { ValidationRules } from '../interfaces/validation-rules';\r\nimport { Validator } from '../interfaces/validator';\r\nimport { StringUtil } from '../utils/string-util';\r\nimport { i18n, I18nUtil } from '../utils/i18n-util';\r\nimport {Time} from '../interfaces/time';\r\nimport {SimpleTime} from '../models/simple-time';\r\n\r\n//by using a singleton here, we can avoid creating a brand new object every time.\r\nlet validResult = {\r\n isValid: true\r\n};\r\n\r\n//The point of this function is to not create a property on the BasicValidationRules object\r\n//when the value is undefined, null, or ''.\r\n//This is private. (really)\r\n//This gets connected to an empty ValidationRules object\r\nlet setProperty = function(property: string, value: string, type: any = String): void {\r\n let parsedValue;\r\n //Empty values are ignored.\r\n if (value == null || value === '') {\r\n return;\r\n }\r\n\r\n if (type === Boolean) {\r\n // this is here because new Boolean('false') evaluates to true\r\n parsedValue = value === 'true';\r\n } else if (type === Number) {\r\n parsedValue = type(value);\r\n } else {\r\n parsedValue = new type(value);\r\n }\r\n\r\n if (typeof parsedValue === 'number' && isNaN(parsedValue)) {\r\n return;\r\n }\r\n\r\n if (parsedValue instanceof Date && isNaN(parsedValue.getTime())) {\r\n return;\r\n }\r\n this[property] = parsedValue;\r\n};\r\n/**\r\n * This is a collection of static functions that will be used to support a single static function.\r\n *\r\n * pdsValidationRulesEngine.validate(inputString, rules)\r\n *\r\n * example: pdsValidationRulesEngine.validate(12345, {isRequired: true, maxValue: 100, minValue: 0, isInteger: true});\r\n */\r\nexport class ValidationRulesEngine {\r\n i18n = i18n;\r\n // this only needs to be called if you aren't using the singleton i18n object provided by this module.\r\n setI18n(i18nObject): void {\r\n this.i18n = i18nObject;\r\n numberValidationRules.i18n = i18nObject;\r\n dateValidationRules.i18n = i18nObject;\r\n textValidationRules.i18n = i18nObject;\r\n timeValidationRules.i18n = i18nObject;\r\n }\r\n\r\n // * * * * * * Public Functions * * * * * *\r\n /**\r\n * This is a separate function because it allows for the validators for the set of rules to be cached.\r\n * @param rules\r\n * @private\r\n */\r\n getValidatorsForRules(rules: ValidationRules): Array {\r\n let validators: Array = [];\r\n if (rules.isNumber) {\r\n validators = this._getNumberValidators(rules);\r\n } else if (rules.isDate) {\r\n validators = this._getDateValidators(rules);\r\n } else if (rules.isText) {\r\n validators = this._getTextValidators(rules);\r\n } else if (rules.isTime) {\r\n validators = this._getTimeValidators(rules);\r\n }\r\n return validators;\r\n }\r\n\r\n validate(value: string, validators: Array): ValidationResult {\r\n //If there are no validators, then it's valid!\r\n if (validators == null || validators.length === 0) {\r\n return {\r\n isValid: true\r\n };\r\n }\r\n\r\n //We are assuming that if isRequired would be the first validator.\r\n //If we decide there is a case where something else needs to be run first then\r\n //we can alter this test.\r\n if (\r\n validators[0].execute !== this._validateIsRequired && //not required\r\n (value === '' || value == null)\r\n ) {\r\n //no value\r\n return {\r\n isValid: true\r\n };\r\n }\r\n\r\n let context = {};\r\n for (let validator of validators) {\r\n //NOTE: validator run in the context of the validationRulesEngine\r\n let result: ValidationResult = validator.execute.call(this, value, validator.condition, context);\r\n\r\n if (result.ignoreSubsequentValidators === true || !result.isValid) {\r\n return result;\r\n }\r\n }\r\n\r\n //If we made it here, it's valid.\r\n return {\r\n isValid: true\r\n };\r\n }\r\n\r\n validateWithRules(value: string, rules: ValidationRules): ValidationResult {\r\n let validators = this.getValidatorsForRules(rules);\r\n //console.log('validators.length: ' + validators.length);\r\n return this.validate(value, validators);\r\n }\r\n\r\n getBasicValidationRules(): BasicValidationRules {\r\n return {\r\n setProperty: setProperty\r\n };\r\n }\r\n\r\n //* * * * * Validator Functions * * * * *\r\n private _validateIsRequired(input: string, condition: any, context: any): ValidationResult {\r\n if (input == null || input.trim().length === 0) {\r\n return {\r\n isValid: false,\r\n errorMessage: this.i18n.getText('cu|required'),\r\n invalidRule: 'isRequired'\r\n };\r\n } else {\r\n return validResult;\r\n }\r\n }\r\n\r\n //* * * * * GetValidators functions * * * * * * *\r\n private _getNumberValidators(rules: ValidationRules): Array {\r\n //console.log('gettign number validators');\r\n let validators: Array = [];\r\n if (rules.isRequired) {\r\n validators.push({\r\n execute: this._validateIsRequired\r\n });\r\n }\r\n\r\n //No if here. If it's a number, it needs to be a valid number.\r\n validators.push({\r\n execute: numberValidationRules.validateIsNumber\r\n });\r\n\r\n if (rules.isInteger) {\r\n validators.push({\r\n execute: numberValidationRules.validateIsInteger\r\n });\r\n }\r\n\r\n if (rules.maxValue != null && typeof rules.maxValue !== 'string') {\r\n validators.push({\r\n execute: numberValidationRules.validateMaxNumberValue,\r\n condition: rules.maxValue\r\n });\r\n }\r\n\r\n if (rules.minValue != null && typeof rules.minValue !== 'string') {\r\n validators.push({\r\n execute: numberValidationRules.validateMinNumberValue,\r\n condition: rules.minValue\r\n });\r\n }\r\n\r\n if (rules.maxValueExclusive != null && typeof rules.maxValueExclusive !== 'string') {\r\n validators.push({\r\n execute: numberValidationRules.validateMaxNumberValueExclusive,\r\n condition: rules.maxValueExclusive\r\n });\r\n }\r\n\r\n if (rules.minValueExclusive != null && typeof rules.minValueExclusive !== 'string') {\r\n validators.push({\r\n execute: numberValidationRules.validateMinNumberValueExclusive,\r\n condition: rules.minValueExclusive\r\n });\r\n }\r\n\r\n if (rules.maxLength != null) {\r\n validators.push({\r\n execute: numberValidationRules.validateMaxNumberLength,\r\n condition: rules.maxLength\r\n });\r\n }\r\n\r\n if (rules.minLength != null) {\r\n validators.push({\r\n execute: numberValidationRules.validateMinNumberLength,\r\n condition: rules.minLength\r\n });\r\n }\r\n\r\n if (rules.maxDecimals != null) {\r\n validators.push({\r\n execute: numberValidationRules.validateMaxDecimals,\r\n condition: rules.maxDecimals\r\n });\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n private _getDateValidators(rules: ValidationRules): Array {\r\n //console.log('getting date validators');\r\n let validators: Array = [];\r\n\r\n if (rules.isRequired) {\r\n validators.push({\r\n execute: this._validateIsRequired\r\n });\r\n }\r\n\r\n validators.push({\r\n execute: dateValidationRules.validateIsDate\r\n });\r\n\r\n if (rules.maxValue instanceof Date) {\r\n validators.push({\r\n execute: dateValidationRules.validateMaxDate,\r\n condition: rules.maxValue\r\n });\r\n }\r\n\r\n if (rules.minValue instanceof Date) {\r\n validators.push({\r\n execute: dateValidationRules.validateMinDate,\r\n condition: rules.minValue\r\n });\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n private _getTimeValidators(rules: ValidationRules): Array {\r\n //console.log('getting date validators');\r\n let validators: Array = [];\r\n\r\n if (rules.isRequired) {\r\n validators.push({\r\n execute: this._validateIsRequired\r\n });\r\n }\r\n\r\n validators.push({\r\n execute: timeValidationRules.validateIsTime\r\n });\r\n\r\n if (rules.maxValue != null && typeof (rules.maxValue).getHours === 'function' && typeof (rules.maxValue).getMinutes === 'function') {\r\n validators.push({\r\n execute: timeValidationRules.validateMaxTime,\r\n condition: rules.maxValue\r\n });\r\n }\r\n\r\n if (rules.minValue != null && typeof (rules.minValue).getHours === 'function' && typeof (rules.minValue).getMinutes === 'function') {\r\n validators.push({\r\n execute: timeValidationRules.validateMinTime,\r\n condition: rules.minValue\r\n });\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n private _getTextValidators(rules: ValidationRules): Array {\r\n let validators: Array = [];\r\n if (rules.isRequired) {\r\n validators.push({\r\n execute: this._validateIsRequired\r\n });\r\n }\r\n\r\n if (rules.maxLength != null) {\r\n validators.push({\r\n execute: textValidationRules.validateMaxTextLength,\r\n condition: rules.maxLength\r\n });\r\n }\r\n\r\n if (rules.minLength != null) {\r\n validators.push({\r\n execute: textValidationRules.validateMinTextLength,\r\n condition: rules.minLength\r\n });\r\n }\r\n\r\n if (rules.excludeChars != null) {\r\n //Escape some characters that would mess up the regex.\r\n // let escapedChars = rules.excludeChars.replace('^', '\\\\^').replace('\\]', '\\\\]').replace('-', '\\\\-');\r\n let escapedChars = rules.excludeChars.replace(StringUtil.ESCAPE_EXCLUDE_CHARS_REGEX, '\\\\$&');\r\n\r\n validators.push({\r\n execute: textValidationRules.validateExcludeChars,\r\n condition: {\r\n pattern: new RegExp(`[${escapedChars}]`, 'i'),\r\n excludeChars: rules.excludeChars\r\n }\r\n });\r\n }\r\n\r\n if (rules.regex != null) {\r\n validators.push({\r\n execute: textValidationRules.validateRegex,\r\n condition: rules.regex\r\n });\r\n }\r\n\r\n if (rules.inverseRegex != null) {\r\n validators.push({\r\n execute: textValidationRules.validateInverseRegex,\r\n condition: rules.inverseRegex\r\n });\r\n }\r\n\r\n if (rules.isEmail) {\r\n validators.push({\r\n execute: textValidationRules.validateEmail\r\n });\r\n }\r\n\r\n return validators;\r\n }\r\n}\r\n","import { TreeIf } from '../interfaces/tree-if';\r\nimport { DateUtil } from './date-util';\r\nimport { StringUtil } from './string-util';\r\n\r\nexport namespace TreeSort {\r\n export enum TreeSortType {\r\n PRE_ORDER, // Y,S1,Q1,Q2,S2,Q3,Q4\r\n POST_ORDER, // Q1,Q2,S1,Q3,Q4,S2,Y\r\n LEVEL_ORDER // Y,S1,S2,Q1,Q2,Q3,Q4\r\n }\r\n\r\n export function getSortedTreesUsing(rootList: Array, sortType: TreeSortType = TreeSortType.PRE_ORDER): Array {\r\n let sortedTrees: Array;\r\n switch (sortType) {\r\n case TreeSortType.LEVEL_ORDER:\r\n sortedTrees = traverseLevelOrder(rootList);\r\n break;\r\n case TreeSortType.POST_ORDER:\r\n sortedTrees = traversePostOrder(rootList);\r\n break;\r\n case TreeSortType.PRE_ORDER:\r\n sortedTrees = traversePreOrder(rootList);\r\n break;\r\n default:\r\n throw new Error('Unknown Sort Order');\r\n }\r\n return sortedTrees;\r\n }\r\n\r\n function traversePreOrder(rootList: Array): Array {\r\n let wrappers: Array = [];\r\n return doTraversePreOrder(rootList, wrappers);\r\n }\r\n\r\n function doTraversePreOrder(rootList: Array, wrappers: Array): Array {\r\n for (let parent of rootList) {\r\n wrappers.push(parent);\r\n let children: Array | undefined = parent.getChildren();\r\n if (children != null && children.length > 0) {\r\n doTraversePreOrder(children, wrappers);\r\n }\r\n }\r\n\r\n return wrappers;\r\n }\r\n\r\n function traversePostOrder(rootList: Array): Array {\r\n let wrappers: Array = [];\r\n return doTraversePostOrder(rootList, wrappers);\r\n }\r\n\r\n function doTraversePostOrder(rootList: Array, wrappers: Array): Array {\r\n for (let parent of rootList) {\r\n let children = parent.getChildren();\r\n if (children != null && children.length > 0) {\r\n doTraversePostOrder(children, wrappers);\r\n }\r\n wrappers.push(parent);\r\n }\r\n\r\n return wrappers;\r\n }\r\n\r\n function traverseLevelOrder(rootList: Array): Array {\r\n let wrappers: Array = [];\r\n return doTraverseLevelOrder(wrappers, rootList);\r\n }\r\n\r\n function doTraverseLevelOrder(wrappers: Array, rootList?: Array): Array {\r\n if (rootList == null) {\r\n return wrappers;\r\n }\r\n\r\n for (let parent of rootList) {\r\n wrappers.push(parent);\r\n }\r\n\r\n for (let parent of rootList) {\r\n doTraverseLevelOrder(wrappers, parent.getChildren());\r\n }\r\n\r\n return wrappers;\r\n }\r\n\r\n export function sortTreesPostOrder(trees: Array): Array {\r\n return trees.sort((o1: TreeIf, o2: TreeIf): number => {\r\n let i: number = DateUtil.compareDates(o1.getEndDate(), o2.getEndDate());\r\n if (i !== 0) {\r\n return i;\r\n }\r\n\r\n i = DateUtil.compareDates(o2.getStartDate(), o1.getStartDate());\r\n if (i !== 0) {\r\n return i;\r\n }\r\n\r\n return StringUtil.compareStrings(o1.getReportingTermName(), o2.getReportingTermName());\r\n });\r\n }\r\n}\r\n","import { ReportingTermRI } from '../rest-interfaces/reporting-term-ri';\r\nimport { TermIf } from '../interfaces/term-if';\r\nimport { i18n } from '../utils/i18n-util';\r\n\r\nexport class ReportingTerm implements TermIf {\r\n private uid: string;\r\n private schedulingTermUid: string;\r\n private reportingTermName: string;\r\n private startDate: string | Date;\r\n private endDate: string | Date;\r\n\r\n constructor(reportingTerm: ReportingTermRI) {\r\n this.uid = reportingTerm.uid;\r\n this.schedulingTermUid = reportingTerm.schedulingTermUid;\r\n this.reportingTermName = reportingTerm.reportingTermName;\r\n this.startDate = reportingTerm.startDate;\r\n this.endDate = reportingTerm.endDate;\r\n }\r\n\r\n getUid(): string {\r\n return this.uid;\r\n }\r\n\r\n getSchedulingTermUid(): string {\r\n return this.schedulingTermUid;\r\n }\r\n\r\n getReportingTermName(): string {\r\n return this.reportingTermName;\r\n }\r\n\r\n getStartDate(): Date {\r\n if (typeof this.startDate === 'string') {\r\n return i18n.parseJsonDate(this.startDate)!;\r\n }\r\n return this.startDate;\r\n\r\n }\r\n\r\n getEndDate(): Date {\r\n if (typeof this.endDate === 'string') {\r\n return i18n.parseJsonDate(this.endDate)!;\r\n }\r\n return this.endDate;\r\n }\r\n\r\n getName(): string {\r\n return this.reportingTermName;\r\n }\r\n}\r\n","import { TreeIf } from '../interfaces/tree-if';\r\nimport { TermIf } from '../interfaces/term-if';\r\n\r\nexport class ReportingTermWrapper implements TreeIf {\r\n private uid: string;\r\n private schedulingTermUid: string;\r\n private reportingTermName: string;\r\n private startDate: Date;\r\n private endDate: Date;\r\n private parent?: ReportingTermWrapper;\r\n private children?: Array;\r\n\r\n constructor(term: TermIf, children?: Array) {\r\n this.uid = term.getUid();\r\n this.schedulingTermUid = term.getSchedulingTermUid();\r\n this.reportingTermName = term.getReportingTermName();\r\n this.startDate = term.getStartDate();\r\n this.endDate = term.getEndDate();\r\n this.children = children;\r\n }\r\n\r\n getUid(): string {\r\n return this.uid;\r\n }\r\n\r\n getReportingTermName(): string {\r\n return this.reportingTermName;\r\n }\r\n\r\n getName(): string {\r\n return this.reportingTermName;\r\n }\r\n\r\n getSchedulingTermUid(): string {\r\n return this.schedulingTermUid;\r\n }\r\n\r\n getStartDate(): Date {\r\n return this.startDate;\r\n }\r\n\r\n setStartDate(startDate: Date): void {\r\n this.startDate = startDate;\r\n }\r\n\r\n getEndDate(): Date {\r\n return this.endDate;\r\n }\r\n\r\n setEndDate(endDate: Date): void {\r\n this.endDate = endDate;\r\n }\r\n\r\n setParent(parent: ReportingTermWrapper): void {\r\n this.parent = parent;\r\n this.parent.addChild(this);\r\n }\r\n\r\n isRoot(): boolean {\r\n return this.parent == null;\r\n }\r\n\r\n addChild(child: ReportingTermWrapper): void {\r\n if (this.children == null) {\r\n this.children = [];\r\n }\r\n this.children.push(child);\r\n }\r\n\r\n getChildren(): Array | undefined {\r\n return this.children;\r\n }\r\n}\r\n","\n/**\n * These are media (MIME) types supported by the file download capability.\n */\nexport enum DownloadFileMediaType {\n TEXT_CSV = 'TEST/CSV',\n TEXT_PLAIN = 'TEXT/PLAIN'\n // TODO: Add others ...\n}\n\n/**\n * Character sets that can be applied\n */\nexport enum DownloadFileCharset {\n UTF_8 = 'UTF-8',\n US_ASCII = 'US-ASCII'\n // TODO: Add others ...\n}\n\n/**\n * Mapping of media (MIME) types to download file extensions\n */\nexport const TypeExtensionMap = new Map();\nTypeExtensionMap.set(DownloadFileMediaType.TEXT_CSV, 'csv');\nTypeExtensionMap.set(DownloadFileMediaType.TEXT_PLAIN, 'txt');\n// TODO: Add others ...\n\n/**\n * Interface for parameters that need to be provided to the download file\n * function.\n */\nexport interface DownloadFileParams {\n /**\n * The content of the file to download in string form. Base64 encoded data is\n * accepted, but the associated flag should be set to true if that is the\n * case.\n */\n content: string;\n\n /**\n * Media (MIME) type of the file. If not specified, then it is assumed to be\n * TEXT/PLAIN.\n */\n mediaType?: DownloadFileMediaType;\n\n /**\n * Name to use for the download file. If not specified, then a default is\n * provided.\n */\n downloadFileName?: string;\n}\n","import { AsgmtSubmissionNotificationItem } from './asgmt-submission-notification-item';\nimport { NotificationItemGroup } from './notification-item-group';\n\nlet idx = 0;\nexport class AssignmentNotificationItemGroup extends NotificationItemGroup {\n\n studentUidMap: { [studentUid: string]: string } = {};\n sectionNameMap: Map = new Map(); //TODO Not sure I need this\n notifications: AsgmtSubmissionNotificationItem[];\n sectionString: string;\n groupTooltip: string;\n\n constructor(public type: string, public aggregationKey: string, public isMarkedReadOnClick, public subtype?: string, public isRead = true, public isSeen = true) {\n super(type, aggregationKey, isMarkedReadOnClick, isRead, isSeen);\n this.id = String(idx++);\n }\n\n addNotification(notification: AsgmtSubmissionNotificationItem): void {\n super.addNotification(notification);\n if (notification.subtype === AsgmtSubmissionNotificationItem.NOTIFICATION_SUBTYPE) {\n let studentUid: string = notification.getSenderUid() || '';\n let studentName: string = notification.getSubtitle() || '';\n if (this.studentUidMap[studentUid] == null) {\n this.studentUidMap[studentUid] = studentName;\n }\n let studentCount = Object.keys(this.studentUidMap).length - 1;\n let suffix = '';\n if (studentCount === 1) {\n suffix = ` and ${studentCount} other`;\n } else if (studentCount > 1) {\n suffix = ` and ${studentCount} others`;\n }\n this.updateSectionString(notification.getSectionUid(), notification.getSectionName());\n this.subtitle = studentName + suffix;\n this.tooltip = (Object).values(this.studentUidMap).join(', ');\n this.userType = notification.getUserType();\n }\n }\n\n markAsRead(): void {\n if (this.subtype === AsgmtSubmissionNotificationItem.NOTIFICATION_SUBTYPE) {\n super.markAsRead();\n this.studentUidMap = {};\n this.sectionNameMap = new Map();\n }\n }\n\n getSectionUids(): Array {\n return Array.from(this.sectionNameMap.keys());\n }\n\n private updateSectionString(sectionUid, sectionName): void {\n if (!this.sectionNameMap.has(sectionUid)) {\n this.sectionNameMap.set(sectionUid, sectionName);\n }\n\n if (this.sectionNameMap.size === 1) {\n this.sectionString = sectionName;\n } else if (this.sectionNameMap.size > 1) {\n this.sectionString = `${this.sectionNameMap.size} Sections`;\n } else {\n this.sectionString = '';\n }\n }\n}\n","\nimport { AssignmentStreamActivityRI } from 'common-utils/rest-interfaces';\nimport { pdsI18n } from '../pds-i18n';\nimport { NotificationItem } from './notification-item';\n\nexport type AsgmtReturnNotificationItemContext = {\n activity: AssignmentStreamActivityRI,\n userType: string,\n currentUserUid: string,\n getStreamGroupId: string,\n sectionName: string\n};\n\nexport class AsgmtReturnNotificationItem extends NotificationItem {\n static NOTIFICATION_TYPE = 'ASSIGNMENT_NOTIFICATION';\n static NOTIFICATION_SUBTYPE = 'ASSIGNMENT_SUBMISSION_NOTIFICATION';\n\n static generateLookUpKey(assignmentUid: string): string {\n return [assignmentUid, AsgmtReturnNotificationItem.NOTIFICATION_TYPE].join(',');\n }\n\n constructor(isSeen = false, isRead = false, private context: AsgmtReturnNotificationItemContext) {\n super(AsgmtReturnNotificationItem.NOTIFICATION_TYPE, isSeen, isRead, undefined, AsgmtReturnNotificationItem.NOTIFICATION_SUBTYPE);\n\n this.id = this.context.activity.group || this.id; // if the activity doesn't have a group we use the generated id\n\n this.aggregationKey = JSON.stringify({\n assignmentUid: this.context.activity.assignmentUid\n });\n }\n\n getTitle(): string {\n return this.context.activity.assignmentName;\n }\n\n getSubtitle(): string {\n return this.context.activity.studentName;\n }\n\n getPostedAt(): Date | null {\n return new Date(this.context.activity.time + 'Z');\n }\n\n getUserType(): string {\n return this.context.userType;\n }\n\n getTooltip(): string {\n return pdsI18n.getText('pds|notifications|Student submitted homework');\n }\n\n getSenderUid(): string {\n return this.context.activity.studentUid;\n }\n\n getSectionUid(): string {\n return this.context.activity.sectionUid;\n }\n\n getSectionName(): string {\n return this.context.sectionName;\n }\n\n getColorClass(): string {\n return this.context.activity.assignmentCategoryColor;\n }\n\n get lookUpKey(): string {\n return AsgmtReturnNotificationItem.generateLookUpKey(this.context.activity.assignmentUid);\n }\n\n get currentUserUid(): string {\n return this.context.currentUserUid;\n }\n\n get getstreamGroupId(): string {\n return this.context.getStreamGroupId;\n }\n}\n","import { SimpleParseResolver } from './simple-parse-resolver';\n\n/**\n * Checks the specified value to determine if it is not undefined or null and also not blank (when trimmed).\n * @param value The value to be checked\n * @return true if the specified value is not undefined or null, and also not blank (or just whitespace); otherwise false.\n *\n * The formula used to evaluate each variable type is:\n *
  • {null} - always returns false
  • \n *
  • {undefined} - always returns false
  • \n *
  • NaN - always returns false
  • \n *
  • Arguments - true if value.length > 0
  • \n *
  • Array - true if value.length > 0
  • \n *
  • Element - passes Element.value back into this method
  • \n *
  • Boolean - always returns true
  • \n *
  • Date - always returns true
  • \n *
  • Function - always returns true
  • \n *
  • Infinity - always returns true
  • \n *
  • Object - always returns true
  • \n *
  • Number - always returns true
  • \n *
  • RegExp - always returns true
  • \n *
  • String - true if value.trim().length > 0
  • \n *
  • {unknown} - always returns false
  • \n */\nlet hasValue = function (value: any): boolean {\n\n //undefined, null\n if (value == null) {\n return false;\n }\n\n if (typeof value === 'number') {\n //NaN\n if (isNaN(value)) {\n return false;\n }\n\n //If it's infinite, it registers as a number so no need to\n //do a special test for !isFinite()\n return true;\n }\n\n //string\n if (typeof value === 'string') {\n //This covers strings that are numbers as well.\n return value.trim().length > 0;\n }\n\n //boolean\n if (value === true || value === false) {\n return true;\n }\n\n if (typeof value === 'function') {\n return true;\n }\n\n if (typeof value === 'object') {\n //Array\n if ('length' in value) {\n return value.length > 0;\n }\n\n if (value instanceof HTMLElement) {\n return hasValue((value).value);\n }\n\n //takes care of Date or RegExp obj as well\n return true;\n }\n\n return false;\n};\n\n/**\n * Compares two values using a recursive natural order (default is ascending order). Options are available for descending order, ignoring the letter case and using a custom alphabet.\n *\n * The typical use of thie function is as a parameter to an Array's sort() method, such as:\n * let z = ['File-10', 'File-12', 'File-20', 'File-2', 'File-21', 'File-100', 'File-99', 'File-1'];\n * z.sort() --> [\"File-1\", \"File-10\", \"File-100\", \"File-12\", \"File-2\", \"File-20\", \"File-21\", \"File-99\"]\n * z.sort(psUtils.naturalCompare) --> [\"File-1\", \"File-2\", \"File-10\", \"File-12\", \"File-20\", \"File-21\", \"File-99\", \"File-100\"]\n *\n * NOTE: There is a known issue where sorting a simple array that contain undefined values, these values are never passed into the compare function by the browser.\n * This results in the undefined values always appearing last after the sort. One work-around is to have the values in an object, and the array contains the objects.\n *\n * @param a The first value to compare\n * @param b The second value to compare\n * @see naturalCompareOptions for configuration options\n */\nlet naturalCompare = function (a: any, b: any): number {\n if (this.key != null) {\n a = a[this.key];\n b = b[this.key];\n }\n\n let alphabet = this.alphabet;\n let ignoreCase = this.isIgnoreCase;\n let isAscending = this.isAscending;\n let result: number;\n let i;\n let codeA;\n let codeB = 1;\n let posA = 0;\n let posB = 0;\n let getCode = (str, pos, code?) => {\n if (code) {\n for (i = pos; code = getCode(str, i), code < 76 && code > 65; ) {\n ++i;\n }\n return parseInt(str.slice(pos - 1, i), 10);\n }\n code = alphabet && alphabet.indexOf(str.charAt(pos));\n return (hasValue(code) && code > -1) ? code + 76 : ((code = str.charCodeAt(pos) || 0), code < 45 || code > 127) ? code\n : code < 46 ? 65 // -\n : code < 48 ? code - 1\n : code < 58 ? code + 18 // 0-9\n : code < 65 ? code - 11\n : code < 91 ? code + 11 // A-Z\n : code < 97 ? code - 37\n : code < 123 ? code + 5 // a-z\n : code - 63;\n };\n let isPseudoNullA = false;\n let isPseudoNullB = false;\n if (this.emptyAsNull) {\n isPseudoNullA = (a != null && !hasValue(a));\n isPseudoNullB = (b != null && !hasValue(b));\n }\n if (a == null || b == null || isPseudoNullA || isPseudoNullB) {\n let nulls = this.nulls;\n if ((a === undefined && b === undefined) || (a === null && b === null)) {\n result = 0;\n } else if (a === undefined) {\n result = ((b === null || isPseudoNullB) ? -1 :\n nulls === 'first' ? -1 :\n nulls === 'last' ? 1 :\n nulls === 'desc' ? (isAscending ? 1 : -1) :\n /* default */ (isAscending ? -1 : 1)\n );\n } else if (b === undefined) {\n result = ((a === null || isPseudoNullA) ? 1 :\n nulls === 'first' ? 1 :\n nulls === 'last' ? -1 :\n nulls === 'desc' ? (isAscending ? -1 : 1) :\n /* default */ (isAscending ? 1 : -1)\n );\n } else if (isPseudoNullA && isPseudoNullB) {\n result = a.localeCompare(b);\n } else if (a === null || isPseudoNullA) {\n result = (b === null ? 1 :\n isPseudoNullB ? -1 :\n nulls === 'first' ? -1 :\n nulls === 'last' ? 1 :\n nulls === 'desc' ? (isAscending ? 1 : -1) :\n /* default */ (isAscending ? -1 : 1)\n );\n } else {\n result = (nulls === 'first' ? 1 :\n nulls === 'last' ? -1 :\n nulls === 'desc' ? (isAscending ? -1 : 1) :\n /* default */ (isAscending ? 1 : -1)\n );\n }\n return result;\n }\n\n // convert date to number\n if (a instanceof Date && b instanceof Date) {\n a = a.getTime();\n b = b.getTime();\n } else {\n // convert string A to number?\n if (typeof a === 'string') {\n let numA = parseFloat(a);\n if (!isNaN(numA)) {\n // coercion needed here\n if (a === String(numA) && a.length === numA.toString().length) {\n a = numA;\n }\n }\n }\n // convert string B to number?\n if (typeof b === 'string') {\n let numB = parseFloat(b);\n if (!isNaN(numB)) {\n // coercion needed here\n if (b === String(numB) && b.length === numB.toString().length) {\n b = numB;\n }\n }\n }\n }\n\n if (typeof a === 'number' && typeof b === 'number') {\n result = (a === b ? 0 : (a < b) ? -1 : 1);\n if (!isAscending) {\n result *= -1;\n }\n return result;\n } else {\n // using coercion below to handle identity instead of equality (comparing integers to strings)\n a += '';\n b += '';\n if (a !== b) {\n if (ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n for ( ; codeB; ) {\n codeA = getCode(a, posA++);\n codeB = getCode(b, posB++);\n if (codeA < 76 && codeB < 76 && codeA > 66 && codeB > 66) {\n codeA = getCode(a, posA, posA);\n codeB = getCode(b, posB, posA = i);\n posB = i;\n }\n if (codeA !== codeB) {\n result = (codeA < codeB) ? -1 : 1;\n if (!isAscending) {\n result *= -1;\n }\n return result;\n }\n }\n }\n return 0;\n }\n};\n\n/**\n * A configuration object to be used with naturalCompare. Available options are:\n * alphabet (String) an optional String containing the full list of characters, in the desired order.\n * Estonian - \"ABDEFGHIJKLMNOPRSŠZŽTUVÕÄÖÜXYabdefghijklmnoprsšzžtuvõäöüxy\"\n * Russian - \"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя\"\n * emptyAsNull (boolean) a flag to indicate blank (or only white-space) values will be treated as null\n * isAscending (boolean) a flag to indicate if the sort should be in ascending order\n * isIgnoreCase (boolean) a flag to indicate if the case of the letters should be ignored\n * nulls (String) - how to handle undefined and null values in the sort order (undefined values are always before null values) - defaults to 'asc'\n * first - null values are always first\n * last - null values are always last\n * asc - null values are first for ascending order and last for descending order (default)\n * desc - null values are last for ascending order and first for descending order\n */\nexport class PdsNaturalSort {\n\n //Assigned in constructor so it is bound to this object.\n naturalCompare: (a: any, b: any) => number;\n\n //configurations split regex\n CONFIG_SPLIT_REGEX = /^(\\+{1,2}!{0,2}|\\-{1,2}!{0,2}|\\!{1,2}[+-]{0,2})?([^!^+^-].*)$/;\n\n alphabet: string | null = null;\n emptyAsNull = false;\n isAscending = true;\n isIgnoreCase = false;\n key: string | null = null;\n nulls = 'asc';\n\n constructor() {\n this.naturalCompare = naturalCompare.bind(this);\n }\n\n clearKey(): void {\n this.key = null;\n }\n\n setAlphabet(str: string): void {\n this.alphabet = (hasValue(str) ? str : null);\n }\n\n setAscending(value: boolean): void {\n this.isAscending = value;\n }\n\n setEmptyAsNull(value: boolean): void {\n this.emptyAsNull = value;\n }\n\n setIgnoreCase(value: boolean): void {\n this.isIgnoreCase = value;\n }\n\n setKey(value: string): void {\n this.key = value;\n if (value == null) {\n console.warn('Invalid value for natural compare key: ', value);\n }\n }\n\n setNulls(value): void {\n if (value == null || typeof value !== 'string') {\n value = 'asc';\n }\n value = value.toLowerCase();\n this.nulls = (value === 'desc' || value === 'first' || value === 'last' ? value : 'asc');\n }\n\n ascending(): void {\n this.isAscending = true;\n }\n\n descending(): void {\n this.isAscending = false;\n }\n\n ignoreCase(): void {\n this.isIgnoreCase = true;\n }\n\n nullsAsc(): void {\n this.nulls = 'asc';\n }\n\n nullsDesc(): void {\n this.nulls = 'desc';\n }\n\n nullsFirst(): void {\n this.nulls = 'first';\n }\n\n nullsLast(): void {\n this.nulls = 'last';\n }\n\n useCase(): void {\n this.isIgnoreCase = false;\n }\n\n reset(): void {\n this.alphabet = null;\n this.emptyAsNull = false;\n this.isAscending = true;\n this.isIgnoreCase = false;\n this.nulls = 'asc';\n this.clearKey();\n }\n\n /**\n * Sorts an array containing JavaScript objects, returning a new instance of the array sorted on the specified (nested) key.\n * Notes:\n * The key cannot be nested within other objects (top-level).\n * If \"arr\" is not an array, it will be returned.\n * @param arr The array to be sorted\n * @param key The name of the key within the object\n * @deprecated use sortObjectsAdvanced, sortObjects, or sortPrimatives\n */\n naturalSort(arr: Array, key?: string): Array {\n let result;\n if (arr instanceof Array) {\n let hasObject = false;\n let hasPrimitive = false;\n arr.forEach((o) => {\n if (o != null && typeof o === 'object') {\n hasObject = true;\n } else {\n hasPrimitive = true;\n }\n });\n if (hasObject && !hasPrimitive) {\n if (key == null) {\n throw 'Unable to sort an array of objects without a lookup key';\n }\n this.setKey(key);\n result = arr.sort(this.naturalCompare);\n } else if (!hasObject && hasPrimitive) {\n //arr.slice() clones the array.\n this.key = null; //There should be no key set for sorting primitives.\n result = arr.slice().sort(this.naturalCompare);\n } else if (!hasObject && !hasPrimitive) {\n result = arr;\n } else {\n throw 'Unable to sort an array containing both primitives and objects.';\n }\n } else {\n result = arr;\n }\n\n return result;\n }\n\n /**\n * This function does the same thing as sortObjects. However, sometimes you need a custom function to extract data from\n * an object rather than a field key. When that happens, use this function.\n *\n * @param items - unsorted list of objects.\n * @param fieldConfig - a list of configuration objects, each with a sortDirection and extractionKey.\n * @return A sorted array of objects.\n */\n sortObjectsAdvanced(items: Array , fieldConfig: Array<{sortDirection?: string, extractionKey: ((value: any) => any) | string}>, reverseSort = false): Array {\n let sortedArray: Array = [];\n\n //clone the array and flag any undefined values.\n for (let i = 0; i < items.length; i++) {\n sortedArray[i] = items[i];\n if (typeof sortedArray[i] === 'undefined') {\n console.error('natural sort does not support undefined elements in the array.');\n }\n }\n let extractorConfigurations: Array<{extractor: any, isReversed: boolean, nullsFirst: boolean}> = [];\n\n for (let eachConfigurationSetting of fieldConfig) {\n let extractionKey = eachConfigurationSetting.extractionKey;\n let extractor;\n if (typeof extractionKey === 'function') {\n extractor = extractionKey;\n } else if (typeof extractionKey === 'string') {\n let resolver = new SimpleParseResolver(extractionKey);\n extractor = resolver.resolve.bind(resolver);\n }\n\n let extractorConfiguration = {\n extractor: extractor,\n isReversed: false,\n nullsFirst: true\n };\n\n switch (eachConfigurationSetting.sortDirection) {\n case '+!':\n extractorConfiguration.isReversed = reverseSort;\n extractorConfiguration.nullsFirst = false;\n break;\n case '!-':\n extractorConfiguration.isReversed = !reverseSort;\n extractorConfiguration.nullsFirst = false;\n break;\n case '-':\n case '-!':\n extractorConfiguration.isReversed = !reverseSort;\n //Needs to be the same as '+' so isReversed will swap it correctly.\n extractorConfiguration.nullsFirst = true;\n break;\n case '++':\n case '!++':\n case '!!++':\n extractorConfiguration.isReversed = false;\n extractorConfiguration.nullsFirst = true;\n break;\n case '!--':\n case '!!--':\n extractorConfiguration.isReversed = true;\n extractorConfiguration.nullsFirst = false;\n break;\n case '--':\n case '--!':\n case '--!!':\n extractorConfiguration.isReversed = true;\n extractorConfiguration.nullsFirst = true;\n break;\n case '++!':\n case '++!!':\n extractorConfiguration.isReversed = false;\n extractorConfiguration.nullsFirst = false;\n break;\n case '!!+':\n extractorConfiguration.isReversed = reverseSort;\n extractorConfiguration.nullsFirst = (extractorConfiguration.isReversed === true) ? false : true;\n break;\n case '+!!':\n extractorConfiguration.isReversed = reverseSort;\n extractorConfiguration.nullsFirst = (extractorConfiguration.isReversed === true) ? true : false;\n break;\n case '!!-':\n extractorConfiguration.isReversed = !reverseSort;\n extractorConfiguration.nullsFirst = (extractorConfiguration.isReversed === true) ? false : true;\n break;\n case '-!!':\n extractorConfiguration.isReversed = !reverseSort;\n extractorConfiguration.nullsFirst = (extractorConfiguration.isReversed === true) ? true : false;\n break;\n case '!':\n case '+':\n case '!!':\n case '!+':\n default:\n extractorConfiguration.isReversed = reverseSort;\n extractorConfiguration.nullsFirst = true;\n break;\n }\n\n extractorConfigurations.push(extractorConfiguration);\n }\n\n let comparator = (a, b) => {\n for (let eachExtractorConfiguration of extractorConfigurations) {\n let dataInA = eachExtractorConfiguration.extractor(a);\n let dataInB = eachExtractorConfiguration.extractor(b);\n if (eachExtractorConfiguration.nullsFirst) {\n this.nullsFirst();\n } else {\n this.nullsLast();\n }\n let result = this.naturalCompare(dataInA, dataInB);\n // if the result is 0 we want to keep continuing.\n if (result !== 0) {\n if (eachExtractorConfiguration.isReversed) {\n return result === 1 ? -1 : 1;\n } else {\n return result;\n }\n }\n }\n return 0;\n };\n sortedArray.sort(comparator);\n return sortedArray;\n }\n\n /**\n * this function takes an array of objects (primitives) and sorts it.\n * @param items - a set of dates, numbers, or strings to sort.\n * @param reverseSort - true or false depending on whether we should use the revese of the sorted array\n * @return sortedArray;\n */\n sortPrimitives(items: Array, reverseSort = false): Array {\n let sortedArray: Array = [];\n //clone the array and flag any undefined values.\n for (let i = 0; i < items.length; i++) {\n sortedArray[i] = items[i];\n if (typeof sortedArray[i] === 'undefined') {\n console.error('natural sort does not support undefined elements in the array.');\n }\n }\n let comparator = (a, b) => {\n let result = this.naturalCompare(a, b);\n if (result < 0) {\n let reversed = false;\n let r = reversed !== reverseSort ? 1 : - 1;\n return r;\n } else if (result > 0) {\n let reversed = false;\n let r = reversed !== reverseSort ? -1 : 1;\n return r;\n } else {\n return 0;\n }\n };\n return sortedArray.sort(comparator);\n }\n\n /**\n * Sort objects will take an list of objects to sort and a list of field configurations that contain information on\n * per field sort direction, and the extraction key. See https://uidocs.powerschool.com/tools/sort for configuration objects.\n * @param items - unsorted array of objects\n * @param fieldConfig - an array of field direction + field extraction keys.\n * Example 1: ['name.last', '-name.first'] means primary sort is in item.name.last, and a secondary sort on item.name.first (sorted descending)\n * Example 2: ['lastName', '++firstName'] means primary sort is item.lastName, secondarySort is item.firstName (always sorts ascending regardless of reverseSort)\n * @param reverseSort - boolean flag to reverse the sort.\n */\n sortObjects(items: Array, fieldConfig: Array | string, reverseSort = false): Array {\n if (typeof fieldConfig === 'string') {\n fieldConfig = [ fieldConfig ];\n }\n\n let sortedObjects;\n let enhancedConfigurations: Array<{sortDirection?: string, extractionKey: (data: any) => any | string}> = [];\n for (let eachConfigurationSetting of fieldConfig) {\n let sortDirectionAndExtractionKey = this.splitConfigurationSetting(eachConfigurationSetting);\n enhancedConfigurations.push(sortDirectionAndExtractionKey);\n }\n sortedObjects = this.sortObjectsAdvanced(items, enhancedConfigurations, reverseSort);\n return sortedObjects;\n }\n\n /**\n * This function breaks down a complex configuration setting, and turns it into a\n * sortDirection with the nulls included and returns the modified sortDirectionAndExtractionKey object\n * @param configurationSetting - a set of configuration settings like : ['!!-firstName', '!--firstName'] -->\n *\n * @return a simplified object like { sortDirection: '!!-', extractionkey: 'firstName'}\n */\n splitConfigurationSetting(configurationSetting: string): { sortDirection?: string, extractionKey: any } {\n let splitConfig = this.CONFIG_SPLIT_REGEX.exec(configurationSetting);\n let extractorConfig;\n if (splitConfig != null && splitConfig.length > 2) {\n extractorConfig = {\n sortDirection: splitConfig![1],\n extractionKey: splitConfig![2]\n };\n }\n return extractorConfig;\n }\n}\n","import {pdsHttpUtils} from '../pds-http-utils';\nimport { Observable } from 'rxjs';\nimport { UserType, NavigationLinkRI } from 'common-utils/rest-interfaces';\nimport { pdsLocalStorage } from '../pds-local-storage';\nimport {map} from 'rxjs/operators';\n\nconst helpLinkRequestUrl = '/navigation/v1/navigationlink';\nexport class HelpLinkService {\n\n getNavLinks(districtUID: string, userType: UserType, navGroup: string | Array, hostUrl: string): Observable> {\n let requestURL = hostUrl + helpLinkRequestUrl;\n if (typeof navGroup === 'string') {\n navGroup = [navGroup];\n }\n let queryParam = {\n 'navigationGroups': navGroup.join(','),\n 'userType': userType,\n 'districtUid': districtUID\n };\n let headers = {\n 'content-type': 'application/json',\n Authorization: `Bearer ${pdsLocalStorage.getItem('auth_token')}`\n };\n return pdsHttpUtils.get(requestURL, queryParam, headers).pipe(map((ajaxResponse: any) => {\n return >JSON.parse(ajaxResponse.data);\n }));\n }\n}\n","import {PopoverAccessibilityController} from './popover-accessibility-controller';\nimport {PopoverAccessibilityControllerIf} from './interfaces/popover-accessibility-controller-if';\nexport let PopoverAccessibilityControllerFactory = {\n\n getPopoverAccessibilityControllerInstance(): PopoverAccessibilityControllerIf {\n return new PopoverAccessibilityController();\n }\n\n};\n","import { PdsWidget, StringBoolean } from './pds-widget';\nimport { pdsAccessibility } from './pds-accessibility';\nimport { textSpanContainsPosition } from 'typescript';\nconst escKey = 27; //esc\nconst tabKey = 9; // tab\nconst enterKey = 13; // enter\nexport class PdsDialog extends PdsWidget {\n is = 'pds-dialog';\n\n // If escape is pushed we fire an event that signals to remove the overlay\n onKeyDown: (event: KeyboardEvent) => void;\n\n modalTitle = '';\n\n //pds-dialog attribute to differentiate between each dialog window.\n name = '';\n dataReturnFocus: string;\n returnFocusCallback: () => string | HTMLElement;\n\n dataIsDrawerMode = 'false';\n dataIsLarge: StringBoolean;\n\n properties = {\n name: {\n type: String,\n value: ''\n },\n dataReturnFocus: {\n type: String,\n value: ''\n },\n dataIsDrawerMode: {\n type: String,\n value: 'false'\n },\n dataIsLarge: {\n type: String,\n value: 'false'\n }\n };\n\n ready(): void {\n super.ready();\n /**\n * In the beginning of the polymer hook I want to add a event listener to the whole window\n * that listens for the escape key to be pressed. if the escape key is pressed fire an event.\n */\n this.onKeyDown = (event: KeyboardEvent): void => {\n if (event.keyCode === escKey) { //esc\n this.closeDialog(event);\n }\n };\n }\n\n /**\n * When the element is attached a few things happen: EACH PDS MODAL MUST HAVE A UNIQUE NAME and a reference to the element\n * that made the dialog pop up. (done by adding data-return-focus to \n * 1) If the pds-dialog doesnt have a name attribute, check if there are more than one \n * 2) The modal is in focus for accessibility purposes\n * 2) Inside the selector, the first h4 will be regarded as the title.\n * 3)
    tags from the local dom will be the body\n * 4)