{"version":3,"sources":["jsdelivr-header.js","/npm/@rci/dui-textonly@6.0.1/bundles/index.umd.js"],"names":[],"mappings":"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","file":"/npm/@rci/dui-textonly@6.0.1/bundles/index.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@rci/dui-textonly@6.0.1/bundles/index.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@rci/dui-default-pipe'), require('@rci/dui-utils'), require('rxjs'), require('@ngx-translate/core'), require('@ngx-translate/http-loader'), require('js-cookie')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@rci/dui-default-pipe', '@rci/dui-utils', 'rxjs', '@ngx-translate/core', '@ngx-translate/http-loader', 'js-cookie'], factory) :\n\t(factory((global.rci = global.rci || {}, global.rci['dui-textonly'] = {}),global.ng.core,global.ng.common,global.rci['dui-default-pipe'],global.rci['dui-utils'],global.rxjs,global['ngx-translate-core'],global['ngx-translate-http-loader'],global.jsCookie));\n}(this, (function (exports,core,common,duiDefaultPipe,duiUtils,rxjs,core$1,httpLoader,jsCookie) { 'use strict';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar classnames = require('classnames');\nvar TextonlyComponent = /** @class */ (function () {\n    function TextonlyComponent(_) {\n        this._ = _;\n        this.highlight = false;\n        this.duiTextOnly = '';\n    }\n    /**\n     * @return {?}\n     */\n    TextonlyComponent.prototype.ngOnInit = /**\n     * @return {?}\n     */\n    function () {\n        this.checkTextOnlyData();\n    };\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    TextonlyComponent.prototype.ngOnChanges = /**\n     * @param {?} changes\n     * @return {?}\n     */\n    function (changes) {\n        if (!changes.data) {\n            return;\n        }\n        this.checkTextOnlyData();\n    };\n    /**\n    * checkTextOnlyData sets the classes according to variations and sets default values for empty json data\n    */\n    /**\n     * checkTextOnlyData sets the classes according to variations and sets default values for empty json data\n     * @return {?}\n     */\n    TextonlyComponent.prototype.checkTextOnlyData = /**\n     * checkTextOnlyData sets the classes according to variations and sets default values for empty json data\n     * @return {?}\n     */\n    function () {\n        /** @type {?} */\n        var getEmail;\n        if (this.data) {\n            getEmail = this._.get(this.data, 'content[0].email', '');\n            this.typeID = +this._.get(this.data, 'module.typeID', 102);\n            this.variationID = +this._.get(this.data, 'module.variantID', 1);\n            this.duiTextOnly = \"dui-textonly-\" + this.typeID + \"-\" + this.variationID;\n        }\n        this.column = this._.get(this.data, 'module.columns', '0');\n        this.columnClass = classnames({\n            'col-xs-12 ': this.column === 0,\n            'col-xs-12 col-sm-6': this.column === 2\n        });\n        this.params = {\n            'getEmail': getEmail\n        };\n    };\n    TextonlyComponent.decorators = [\n        { type: core.Component, args: [{\n                    selector: 'dui-textonly',\n                    template: \"<section duiPreview [data]=\\\"data\\\" [highlightLocale]=\\\"highlight\\\"><div class=\\\"row\\\"><div class=\\\"col-xs-12\\\"><h2 tabindex=\\\"0\\\" class=\\\"textonlyheader2\\\" *ngIf=\\\"data | default:'content[0].header1': false\\\" [innerHTML]=\\\"data | default:'content[0].header1' | translate\\\"></h2><h3 tabindex=\\\"0\\\" class=\\\"textonlyheader3\\\" *ngIf=\\\"data | default:'content[0].subheader1' : false\\\" [innerHTML]=\\\"data | default:'content[0].subheader1' | translate\\\"></h3><p tabindex=\\\"0\\\" class=\\\"textonlyp\\\" *ngIf=\\\"data | default:'content[0].content1' : false \\\" [innerHTML]=\\\"data | default:'content[0].content1' | translate\\\"></p></div></div><ng-container><div *ngIf=\\\"data | default:'content[0].items':false\\\"><div class=\\\"row\\\"><div [ngClass]=\\\"columnClass\\\" *ngFor=\\\"let item of data | default:'content[0].items':[]\\\"><h3 *ngIf=\\\"item.header1\\\" tabindex=\\\"0\\\" class=\\\"textonlyheader3\\\" [innerHTML]=\\\"item.header1 | translate\\\"></h3><p *ngIf=\\\"item.content1\\\" tabindex=\\\"0\\\" class=\\\"textonlyp\\\" [innerHTML]=\\\"item.content1 | translate:params\\\"></p></div></div></div></ng-container></section>\",\n                    styles: [\"\"],\n                    encapsulation: core.ViewEncapsulation.None\n                },] },\n    ];\n    /** @nocollapse */\n    TextonlyComponent.ctorParameters = function () { return [\n        { type: duiUtils.LodashService }\n    ]; };\n    TextonlyComponent.propDecorators = {\n        data: [{ type: core.Input }],\n        highlight: [{ type: core.Input, args: ['highlight',] }],\n        duiTextOnly: [{ type: core.HostBinding, args: ['class',] }]\n    };\n    return TextonlyComponent;\n}());\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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\nfunction __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\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction __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\nfunction __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}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar errorObject = { e: {} };\n\n/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */\nvar tryCatchTarget;\nfunction tryCatcher() {\n    try {\n        return tryCatchTarget.apply(this, arguments);\n    }\n    catch (e) {\n        errorObject.e = e;\n        return errorObject;\n    }\n}\nfunction tryCatch(fn) {\n    tryCatchTarget = fn;\n    return tryCatcher;\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction isFunction(x) {\n    return typeof x === 'function';\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nvar config = {\n    Promise: undefined,\n    set useDeprecatedSynchronousErrorHandling(value) {\n        if (value) {\n            var error = /*@__PURE__*/ new Error();\n            /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n        }\n        else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n            /*@__PURE__*/ 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    get useDeprecatedSynchronousErrorHandling() {\n        return _enable_super_gross_mode_that_will_cause_bad_things;\n    },\n};\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction hostReportError(err) {\n    setTimeout(function () { throw err; });\n}\n\n/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nvar empty = {\n    closed: true,\n    next: function (value) { },\n    error: function (err) {\n        if (config.useDeprecatedSynchronousErrorHandling) {\n            throw err;\n        }\n        else {\n            hostReportError(err);\n        }\n    },\n    complete: function () { }\n};\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction isObject(x) {\n    return x != null && typeof x === 'object';\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction UnsubscriptionErrorImpl(errors) {\n    Error.call(this);\n    this.message = errors ?\n        errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n  ') : '';\n    this.name = 'UnsubscriptionError';\n    this.errors = errors;\n    return this;\n}\nUnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nvar UnsubscriptionError = UnsubscriptionErrorImpl;\n\n/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */\nvar Subscription = /*@__PURE__*/ (function () {\n    function Subscription(unsubscribe) {\n        this.closed = false;\n        this._parent = null;\n        this._parents = null;\n        this._subscriptions = null;\n        if (unsubscribe) {\n            this._unsubscribe = unsubscribe;\n        }\n    }\n    Subscription.prototype.unsubscribe = function () {\n        var hasErrors = false;\n        var errors;\n        if (this.closed) {\n            return;\n        }\n        var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n        this.closed = true;\n        this._parent = null;\n        this._parents = null;\n        this._subscriptions = null;\n        var index = -1;\n        var len = _parents ? _parents.length : 0;\n        while (_parent) {\n            _parent.remove(this);\n            _parent = ++index < len && _parents[index] || null;\n        }\n        if (isFunction(_unsubscribe)) {\n            var trial = tryCatch(_unsubscribe).call(this);\n            if (trial === errorObject) {\n                hasErrors = true;\n                errors = errors || (errorObject.e instanceof UnsubscriptionError ?\n                    flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]);\n            }\n        }\n        if (isArray(_subscriptions)) {\n            index = -1;\n            len = _subscriptions.length;\n            while (++index < len) {\n                var sub = _subscriptions[index];\n                if (isObject(sub)) {\n                    var trial = tryCatch(sub.unsubscribe).call(sub);\n                    if (trial === errorObject) {\n                        hasErrors = true;\n                        errors = errors || [];\n                        var err = errorObject.e;\n                        if (err instanceof UnsubscriptionError) {\n                            errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n                        }\n                        else {\n                            errors.push(err);\n                        }\n                    }\n                }\n            }\n        }\n        if (hasErrors) {\n            throw new UnsubscriptionError(errors);\n        }\n    };\n    Subscription.prototype.add = function (teardown) {\n        if (!teardown || (teardown === Subscription.EMPTY)) {\n            return Subscription.EMPTY;\n        }\n        if (teardown === this) {\n            return this;\n        }\n        var subscription = teardown;\n        switch (typeof teardown) {\n            case 'function':\n                subscription = new Subscription(teardown);\n            case 'object':\n                if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n                    return subscription;\n                }\n                else if (this.closed) {\n                    subscription.unsubscribe();\n                    return subscription;\n                }\n                else if (typeof subscription._addParent !== 'function') {\n                    var 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        var subscriptions = this._subscriptions || (this._subscriptions = []);\n        subscriptions.push(subscription);\n        subscription._addParent(this);\n        return subscription;\n    };\n    Subscription.prototype.remove = function (subscription) {\n        var subscriptions = this._subscriptions;\n        if (subscriptions) {\n            var subscriptionIndex = subscriptions.indexOf(subscription);\n            if (subscriptionIndex !== -1) {\n                subscriptions.splice(subscriptionIndex, 1);\n            }\n        }\n    };\n    Subscription.prototype._addParent = function (parent) {\n        var _a = this, _parent = _a._parent, _parents = _a._parents;\n        if (!_parent || _parent === parent) {\n            this._parent = parent;\n        }\n        else if (!_parents) {\n            this._parents = [parent];\n        }\n        else if (_parents.indexOf(parent) === -1) {\n            _parents.push(parent);\n        }\n    };\n    Subscription.EMPTY = (function (empty) {\n        empty.closed = true;\n        return empty;\n    }(new Subscription()));\n    return Subscription;\n}());\nfunction flattenUnsubscriptionErrors(errors) {\n    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n    ? /*@__PURE__*/ Symbol.for('rxSubscriber')\n    : '@@rxSubscriber';\n\n/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n    __extends(Subscriber, _super);\n    function Subscriber(destinationOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this.syncErrorValue = null;\n        _this.syncErrorThrown = false;\n        _this.syncErrorThrowable = false;\n        _this.isStopped = false;\n        _this._parentSubscription = null;\n        switch (arguments.length) {\n            case 0:\n                _this.destination = empty;\n                break;\n            case 1:\n                if (!destinationOrNext) {\n                    _this.destination = empty;\n                    break;\n                }\n                if (typeof destinationOrNext === 'object') {\n                    if (isTrustedSubscriber(destinationOrNext)) {\n                        var trustedSubscriber = destinationOrNext[rxSubscriber]();\n                        _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;\n                        _this.destination = trustedSubscriber;\n                        trustedSubscriber._addParentTeardownLogic(_this);\n                    }\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, destinationOrNext, error, complete);\n                break;\n        }\n        return _this;\n    }\n    Subscriber.prototype[rxSubscriber] = function () { return this; };\n    Subscriber.create = function (next, error, complete) {\n        var subscriber = new Subscriber(next, error, complete);\n        subscriber.syncErrorThrowable = false;\n        return subscriber;\n    };\n    Subscriber.prototype.next = function (value) {\n        if (!this.isStopped) {\n            this._next(value);\n        }\n    };\n    Subscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._error(err);\n            this._unsubscribeParentSubscription();\n        }\n    };\n    Subscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._complete();\n            this._unsubscribeParentSubscription();\n        }\n    };\n    Subscriber.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.isStopped = true;\n        _super.prototype.unsubscribe.call(this);\n    };\n    Subscriber.prototype._next = function (value) {\n        this.destination.next(value);\n    };\n    Subscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    Subscriber.prototype._complete = function () {\n        this.destination.complete();\n        this.unsubscribe();\n    };\n    Subscriber.prototype._addParentTeardownLogic = function (parentTeardownLogic) {\n        if (parentTeardownLogic !== this) {\n            this._parentSubscription = this.add(parentTeardownLogic);\n        }\n    };\n    Subscriber.prototype._unsubscribeParentSubscription = function () {\n        if (this._parentSubscription !== null) {\n            this._parentSubscription.unsubscribe();\n        }\n    };\n    Subscriber.prototype._unsubscribeAndRecycle = function () {\n        var _a = this, _parent = _a._parent, _parents = _a._parents;\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        this._parentSubscription = null;\n        return this;\n    };\n    return Subscriber;\n}(Subscription));\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SafeSubscriber, _super);\n    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this._parentSubscriber = _parentSubscriber;\n        var next;\n        var context = _this;\n        if (isFunction(observerOrNext)) {\n            next = observerOrNext;\n        }\n        else if (observerOrNext) {\n            next = observerOrNext.next;\n            error = observerOrNext.error;\n            complete = observerOrNext.complete;\n            if (observerOrNext !== empty) {\n                context = Object.create(observerOrNext);\n                if (isFunction(context.unsubscribe)) {\n                    _this.add(context.unsubscribe.bind(context));\n                }\n                context.unsubscribe = _this.unsubscribe.bind(_this);\n            }\n        }\n        _this._context = context;\n        _this._next = next;\n        _this._error = error;\n        _this._complete = complete;\n        return _this;\n    }\n    SafeSubscriber.prototype.next = function (value) {\n        if (!this.isStopped && this._next) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                this.__tryOrUnsub(this._next, value);\n            }\n            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n            if (this._error) {\n                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(this._error, err);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, this._error, err);\n                    this.unsubscribe();\n                }\n            }\n            else if (!_parentSubscriber.syncErrorThrowable) {\n                this.unsubscribe();\n                if (useDeprecatedSynchronousErrorHandling) {\n                    throw err;\n                }\n                hostReportError(err);\n            }\n            else {\n                if (useDeprecatedSynchronousErrorHandling) {\n                    _parentSubscriber.syncErrorValue = err;\n                    _parentSubscriber.syncErrorThrown = true;\n                }\n                else {\n                    hostReportError(err);\n                }\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.complete = function () {\n        var _this = this;\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (this._complete) {\n                var wrappedComplete = function () { return _this._complete.call(_this._context); };\n                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(wrappedComplete);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n                    this.unsubscribe();\n                }\n            }\n            else {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            this.unsubscribe();\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                throw err;\n            }\n            else {\n                hostReportError(err);\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n        if (!config.useDeprecatedSynchronousErrorHandling) {\n            throw new Error('bad call');\n        }\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                parent.syncErrorValue = err;\n                parent.syncErrorThrown = true;\n                return true;\n            }\n            else {\n                hostReportError(err);\n                return true;\n            }\n        }\n        return false;\n    };\n    SafeSubscriber.prototype._unsubscribe = function () {\n        var _parentSubscriber = this._parentSubscriber;\n        this._context = null;\n        this._parentSubscriber = null;\n        _parentSubscriber.unsubscribe();\n    };\n    return SafeSubscriber;\n}(Subscriber));\nfunction isTrustedSubscriber(obj) {\n    return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriber]);\n}\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nvar OuterSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(OuterSubscriber, _super);\n    function OuterSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.destination.error(error);\n    };\n    OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.destination.complete();\n    };\n    return OuterSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nvar InnerSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(InnerSubscriber, _super);\n    function InnerSubscriber(parent, outerValue, outerIndex) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.outerValue = outerValue;\n        _this.outerIndex = outerIndex;\n        _this.index = 0;\n        return _this;\n    }\n    InnerSubscriber.prototype._next = function (value) {\n        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n    };\n    InnerSubscriber.prototype._error = function (error) {\n        this.parent.notifyError(error, this);\n        this.unsubscribe();\n    };\n    InnerSubscriber.prototype._complete = function () {\n        this.parent.notifyComplete(this);\n        this.unsubscribe();\n    };\n    return InnerSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nfunction toSubscriber(nextOrObserver, error, complete) {\n    if (nextOrObserver) {\n        if (nextOrObserver instanceof Subscriber) {\n            return nextOrObserver;\n        }\n        if (nextOrObserver[rxSubscriber]) {\n            return nextOrObserver[rxSubscriber]();\n        }\n    }\n    if (!nextOrObserver && !error && !complete) {\n        return new Subscriber(empty);\n    }\n    return new Subscriber(nextOrObserver, error, complete);\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction noop() { }\n\n/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */\n\nfunction pipeFromArray(fns) {\n    if (!fns) {\n        return noop;\n    }\n    if (fns.length === 1) {\n        return fns[0];\n    }\n    return function piped(input) {\n        return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n    };\n}\n\n/** PURE_IMPORTS_START _util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nvar Observable$1 = /*@__PURE__*/ (function () {\n    function Observable$$1(subscribe) {\n        this._isScalar = false;\n        if (subscribe) {\n            this._subscribe = subscribe;\n        }\n    }\n    Observable$$1.prototype.lift = function (operator) {\n        var observable$$1 = new Observable$$1();\n        observable$$1.source = this;\n        observable$$1.operator = operator;\n        return observable$$1;\n    };\n    Observable$$1.prototype.subscribe = function (observerOrNext, error, complete) {\n        var operator = this.operator;\n        var sink = toSubscriber(observerOrNext, error, complete);\n        if (operator) {\n            operator.call(sink, this.source);\n        }\n        else {\n            sink._addParentTeardownLogic(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n                this._subscribe(sink) :\n                this._trySubscribe(sink));\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        return sink;\n    };\n    Observable$$1.prototype._trySubscribe = function (sink) {\n        try {\n            return this._subscribe(sink);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                sink.syncErrorThrown = true;\n                sink.syncErrorValue = err;\n            }\n            sink.error(err);\n        }\n    };\n    Observable$$1.prototype.forEach = function (next, promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var subscription;\n            subscription = _this.subscribe(function (value) {\n                try {\n                    next(value);\n                }\n                catch (err) {\n                    reject(err);\n                    if (subscription) {\n                        subscription.unsubscribe();\n                    }\n                }\n            }, reject, resolve);\n        });\n    };\n    Observable$$1.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        return source && source.subscribe(subscriber);\n    };\n    Observable$$1.prototype[observable] = function () {\n        return this;\n    };\n    Observable$$1.prototype.pipe = function () {\n        var operations = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            operations[_i] = arguments[_i];\n        }\n        if (operations.length === 0) {\n            return this;\n        }\n        return pipeFromArray(operations)(this);\n    };\n    Observable$$1.prototype.toPromise = function (promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var value;\n            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n        });\n    };\n    Observable$$1.create = function (subscribe) {\n        return new Observable$$1(subscribe);\n    };\n    return Observable$$1;\n}());\nfunction getPromiseCtor(promiseCtor) {\n    if (!promiseCtor) {\n        promiseCtor = config.Promise || Promise;\n    }\n    if (!promiseCtor) {\n        throw new Error('no Promise impl found');\n    }\n    return promiseCtor;\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar subscribeToArray = function (array) {\n    return function (subscriber) {\n        for (var 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};\n\n/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nvar subscribeToPromise = function (promise) {\n    return function (subscriber) {\n        promise.then(function (value) {\n            if (!subscriber.closed) {\n                subscriber.next(value);\n                subscriber.complete();\n            }\n        }, function (err) { return subscriber.error(err); })\n            .then(null, hostReportError);\n        return subscriber;\n    };\n};\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction getSymbolIterator() {\n    if (typeof Symbol !== 'function' || !Symbol.iterator) {\n        return '@@iterator';\n    }\n    return Symbol.iterator;\n}\nvar iterator = /*@__PURE__*/ getSymbolIterator();\n\n/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nvar subscribeToIterable = function (iterable) {\n    return function (subscriber) {\n        var iterator$$1 = iterable[iterator]();\n        do {\n            var item = iterator$$1.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        if (typeof iterator$$1.return === 'function') {\n            subscriber.add(function () {\n                if (iterator$$1.return) {\n                    iterator$$1.return();\n                }\n            });\n        }\n        return subscriber;\n    };\n};\n\n/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nvar subscribeToObservable = function (obj) {\n    return function (subscriber) {\n        var obs = obj[observable]();\n        if (typeof obs.subscribe !== 'function') {\n            throw new TypeError('Provided object does not correctly implement Symbol.observable');\n        }\n        else {\n            return obs.subscribe(subscriber);\n        }\n    };\n};\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction isPromise(value) {\n    return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n\n/** PURE_IMPORTS_START _Observable,_subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nvar subscribeTo = function (result) {\n    if (result instanceof Observable$1) {\n        return function (subscriber) {\n            if (result._isScalar) {\n                subscriber.next(result.value);\n                subscriber.complete();\n                return undefined;\n            }\n            else {\n                return result.subscribe(subscriber);\n            }\n        };\n    }\n    else if (result && typeof result[observable] === 'function') {\n        return subscribeToObservable(result);\n    }\n    else if (isArrayLike(result)) {\n        return subscribeToArray(result);\n    }\n    else if (isPromise(result)) {\n        return subscribeToPromise(result);\n    }\n    else if (result && typeof result[iterator] === 'function') {\n        return subscribeToIterable(result);\n    }\n    else {\n        var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n        var 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\n/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n    if (destination === void 0) {\n        destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n    }\n    if (destination.closed) {\n        return;\n    }\n    return subscribeTo(result)(destination);\n}\n\n/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar AuditSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(AuditSubscriber, _super);\n    function AuditSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        return _this;\n    }\n    AuditSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n        if (!this.throttled) {\n            var duration = tryCatch(this.durationSelector)(value);\n            if (duration === errorObject) {\n                this.destination.error(errorObject.e);\n            }\n            else {\n                var innerSubscription = subscribeToResult(this, duration);\n                if (!innerSubscription || innerSubscription.closed) {\n                    this.clearThrottle();\n                }\n                else {\n                    this.add(this.throttled = innerSubscription);\n                }\n            }\n        }\n    };\n    AuditSubscriber.prototype.clearThrottle = function () {\n        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\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    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n        this.clearThrottle();\n    };\n    AuditSubscriber.prototype.notifyComplete = function () {\n        this.clearThrottle();\n    };\n    return AuditSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nvar Action = /*@__PURE__*/ (function (_super) {\n    __extends(Action, _super);\n    function Action(scheduler, work) {\n        return _super.call(this) || this;\n    }\n    Action.prototype.schedule = function (state, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        return this;\n    };\n    return Action;\n}(Subscription));\n\n/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n    __extends(AsyncAction, _super);\n    function AsyncAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        _this.pending = false;\n        return _this;\n    }\n    AsyncAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (this.closed) {\n            return this;\n        }\n        this.state = state;\n        var id = this.id;\n        var scheduler = this.scheduler;\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, delay);\n        }\n        this.pending = true;\n        this.delay = delay;\n        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n        return this;\n    };\n    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        return setInterval(scheduler.flush.bind(scheduler, this), delay);\n    };\n    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (delay !== null && this.delay === delay && this.pending === false) {\n            return id;\n        }\n        clearInterval(id);\n    };\n    AsyncAction.prototype.execute = function (state, delay) {\n        if (this.closed) {\n            return new Error('executing a cancelled action');\n        }\n        this.pending = false;\n        var error = this._execute(state, delay);\n        if (error) {\n            return error;\n        }\n        else if (this.pending === false && this.id != null) {\n            this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n        }\n    };\n    AsyncAction.prototype._execute = function (state, delay) {\n        var errored = false;\n        var errorValue = undefined;\n        try {\n            this.work(state);\n        }\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    AsyncAction.prototype._unsubscribe = function () {\n        var id = this.id;\n        var scheduler = this.scheduler;\n        var actions = scheduler.actions;\n        var index = actions.indexOf(this);\n        this.work = null;\n        this.state = null;\n        this.pending = false;\n        this.scheduler = null;\n        if (index !== -1) {\n            actions.splice(index, 1);\n        }\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, null);\n        }\n        this.delay = null;\n    };\n    return AsyncAction;\n}(Action));\n\nvar Scheduler = /*@__PURE__*/ (function () {\n    function Scheduler(SchedulerAction, now) {\n        if (now === void 0) {\n            now = Scheduler.now;\n        }\n        this.SchedulerAction = SchedulerAction;\n        this.now = now;\n    }\n    Scheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        return new this.SchedulerAction(this, work).schedule(state, delay);\n    };\n    Scheduler.now = function () { return Date.now(); };\n    return Scheduler;\n}());\n\n/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n    __extends(AsyncScheduler, _super);\n    function AsyncScheduler(SchedulerAction, now) {\n        if (now === void 0) {\n            now = Scheduler.now;\n        }\n        var _this = _super.call(this, SchedulerAction, function () {\n            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n                return AsyncScheduler.delegate.now();\n            }\n            else {\n                return now();\n            }\n        }) || this;\n        _this.actions = [];\n        _this.active = false;\n        _this.scheduled = undefined;\n        return _this;\n    }\n    AsyncScheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n            return AsyncScheduler.delegate.schedule(work, delay, state);\n        }\n        else {\n            return _super.prototype.schedule.call(this, work, delay, state);\n        }\n    };\n    AsyncScheduler.prototype.flush = function (action) {\n        var actions = this.actions;\n        if (this.active) {\n            actions.push(action);\n            return;\n        }\n        var error;\n        this.active = true;\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (action = actions.shift());\n        this.active = false;\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsyncScheduler;\n}(Scheduler));\n\n/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nvar async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\n\n/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */\nfunction isNumeric(val) {\n    return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction isScheduler(value) {\n    return value && typeof value.schedule === 'function';\n}\n\n/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar BufferSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferSubscriber, _super);\n    function BufferSubscriber(destination, closingNotifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.buffer = [];\n        _this.add(subscribeToResult(_this, closingNotifier));\n        return _this;\n    }\n    BufferSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var buffer = this.buffer;\n        this.buffer = [];\n        this.destination.next(buffer);\n    };\n    return BufferSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar BufferCountSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferCountSubscriber, _super);\n    function BufferCountSubscriber(destination, bufferSize) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.buffer = [];\n        return _this;\n    }\n    BufferCountSubscriber.prototype._next = function (value) {\n        var buffer = this.buffer;\n        buffer.push(value);\n        if (buffer.length == this.bufferSize) {\n            this.destination.next(buffer);\n            this.buffer = [];\n        }\n    };\n    BufferCountSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer.length > 0) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferSkipCountSubscriber, _super);\n    function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.startBufferEvery = startBufferEvery;\n        _this.buffers = [];\n        _this.count = 0;\n        return _this;\n    }\n    BufferSkipCountSubscriber.prototype._next = function (value) {\n        var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n        this.count++;\n        if (count % startBufferEvery === 0) {\n            buffers.push([]);\n        }\n        for (var i = buffers.length; i--;) {\n            var 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    BufferSkipCountSubscriber.prototype._complete = function () {\n        var _a = this, buffers = _a.buffers, destination = _a.destination;\n        while (buffers.length > 0) {\n            var buffer = buffers.shift();\n            if (buffer.length > 0) {\n                destination.next(buffer);\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferSkipCountSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */\n\nvar Context = /*@__PURE__*/ (function () {\n    function Context() {\n        this.buffer = [];\n    }\n    return Context;\n}());\nvar BufferTimeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferTimeSubscriber, _super);\n    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferTimeSpan = bufferTimeSpan;\n        _this.bufferCreationInterval = bufferCreationInterval;\n        _this.maxBufferSize = maxBufferSize;\n        _this.scheduler = scheduler;\n        _this.contexts = [];\n        var context = _this.openContext();\n        _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n        if (_this.timespanOnly) {\n            var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n        else {\n            var closeState = { subscriber: _this, context: context };\n            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n        }\n        return _this;\n    }\n    BufferTimeSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        var filledBufferContext;\n        for (var i = 0; i < len; i++) {\n            var context_1 = contexts[i];\n            var buffer = context_1.buffer;\n            buffer.push(value);\n            if (buffer.length == this.maxBufferSize) {\n                filledBufferContext = context_1;\n            }\n        }\n        if (filledBufferContext) {\n            this.onBufferFull(filledBufferContext);\n        }\n    };\n    BufferTimeSubscriber.prototype._error = function (err) {\n        this.contexts.length = 0;\n        _super.prototype._error.call(this, err);\n    };\n    BufferTimeSubscriber.prototype._complete = function () {\n        var _a = this, contexts = _a.contexts, destination = _a.destination;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            destination.next(context_2.buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferTimeSubscriber.prototype._unsubscribe = function () {\n        this.contexts = null;\n    };\n    BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n        this.closeContext(context);\n        var closeAction = context.closeAction;\n        closeAction.unsubscribe();\n        this.remove(closeAction);\n        if (!this.closed && this.timespanOnly) {\n            context = this.openContext();\n            var bufferTimeSpan = this.bufferTimeSpan;\n            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n    };\n    BufferTimeSubscriber.prototype.openContext = function () {\n        var context = new Context();\n        this.contexts.push(context);\n        return context;\n    };\n    BufferTimeSubscriber.prototype.closeContext = function (context) {\n        this.destination.next(context.buffer);\n        var contexts = this.contexts;\n        var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n        if (spliceIndex >= 0) {\n            contexts.splice(contexts.indexOf(context), 1);\n        }\n    };\n    return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n    var subscriber = state.subscriber;\n    var prevContext = state.context;\n    if (prevContext) {\n        subscriber.closeContext(prevContext);\n    }\n    if (!subscriber.closed) {\n        state.context = subscriber.openContext();\n        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n    }\n}\nfunction dispatchBufferCreation(state) {\n    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n    var context = subscriber.openContext();\n    var action = this;\n    if (!subscriber.closed) {\n        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n        action.schedule(state, bufferCreationInterval);\n    }\n}\nfunction dispatchBufferClose(arg) {\n    var subscriber = arg.subscriber, context = arg.context;\n    subscriber.closeContext(context);\n}\n\n/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */\n\nvar BufferToggleSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferToggleSubscriber, _super);\n    function BufferToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(subscribeToResult(_this, openings));\n        return _this;\n    }\n    BufferToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        for (var i = 0; i < len; i++) {\n            contexts[i].buffer.push(value);\n        }\n    };\n    BufferToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_1 = contexts.shift();\n            context_1.subscription.unsubscribe();\n            context_1.buffer = null;\n            context_1.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._error.call(this, err);\n    };\n    BufferToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            this.destination.next(context_2.buffer);\n            context_2.subscription.unsubscribe();\n            context_2.buffer = null;\n            context_2.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._complete.call(this);\n    };\n    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n    };\n    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.closeBuffer(innerSub.context);\n    };\n    BufferToggleSubscriber.prototype.openBuffer = function (value) {\n        try {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = closingSelector.call(this, value);\n            if (closingNotifier) {\n                this.trySubscribe(closingNotifier);\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n        var contexts = this.contexts;\n        if (contexts && context) {\n            var buffer = context.buffer, subscription = context.subscription;\n            this.destination.next(buffer);\n            contexts.splice(contexts.indexOf(context), 1);\n            this.remove(subscription);\n            subscription.unsubscribe();\n        }\n    };\n    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n        var contexts = this.contexts;\n        var buffer = [];\n        var subscription = new Subscription();\n        var context = { buffer: buffer, subscription: subscription };\n        contexts.push(context);\n        var innerSubscription = subscribeToResult(this, closingNotifier, context);\n        if (!innerSubscription || innerSubscription.closed) {\n            this.closeBuffer(context);\n        }\n        else {\n            innerSubscription.context = context;\n            this.add(innerSubscription);\n            subscription.add(innerSubscription);\n        }\n    };\n    return BufferToggleSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar BufferWhenSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(BufferWhenSubscriber, _super);\n    function BufferWhenSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.closingSelector = closingSelector;\n        _this.subscribing = false;\n        _this.openBuffer();\n        return _this;\n    }\n    BufferWhenSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferWhenSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferWhenSubscriber.prototype._unsubscribe = function () {\n        this.buffer = null;\n        this.subscribing = false;\n    };\n    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openBuffer();\n    };\n    BufferWhenSubscriber.prototype.notifyComplete = function () {\n        if (this.subscribing) {\n            this.complete();\n        }\n        else {\n            this.openBuffer();\n        }\n    };\n    BufferWhenSubscriber.prototype.openBuffer = function () {\n        var closingSubscription = this.closingSubscription;\n        if (closingSubscription) {\n            this.remove(closingSubscription);\n            closingSubscription.unsubscribe();\n        }\n        var buffer = this.buffer;\n        if (this.buffer) {\n            this.destination.next(buffer);\n        }\n        this.buffer = [];\n        var closingNotifier = tryCatch(this.closingSelector)();\n        if (closingNotifier === errorObject) {\n            this.error(errorObject.e);\n        }\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    return BufferWhenSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar CatchSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(CatchSubscriber, _super);\n    function CatchSubscriber(destination, selector, caught) {\n        var _this = _super.call(this, destination) || this;\n        _this.selector = selector;\n        _this.caught = caught;\n        return _this;\n    }\n    CatchSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var result = void 0;\n            try {\n                result = this.selector(err, this.caught);\n            }\n            catch (err2) {\n                _super.prototype.error.call(this, err2);\n                return;\n            }\n            this._unsubscribeAndRecycle();\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            this.add(innerSubscriber);\n            subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n        }\n    };\n    return CatchSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToArray PURE_IMPORTS_END */\nfunction fromArray(input, scheduler) {\n    if (!scheduler) {\n        return new Observable$1(subscribeToArray(input));\n    }\n    else {\n        return new Observable$1(function (subscriber) {\n            var sub = new Subscription();\n            var 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\n/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nvar NONE = {};\n\nvar CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(CombineLatestSubscriber, _super);\n    function CombineLatestSubscriber(destination, resultSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.resultSelector = resultSelector;\n        _this.active = 0;\n        _this.values = [];\n        _this.observables = [];\n        return _this;\n    }\n    CombineLatestSubscriber.prototype._next = function (observable) {\n        this.values.push(NONE);\n        this.observables.push(observable);\n    };\n    CombineLatestSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            this.active = len;\n            this.toRespond = len;\n            for (var i = 0; i < len; i++) {\n                var observable = observables[i];\n                this.add(subscribeToResult(this, observable, observable, i));\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n        if ((this.active -= 1) === 0) {\n            this.destination.complete();\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var values = this.values;\n        var oldVal = values[outerIndex];\n        var toRespond = !this.toRespond\n            ? 0\n            : oldVal === NONE ? --this.toRespond : this.toRespond;\n        values[outerIndex] = innerValue;\n        if (toRespond === 0) {\n            if (this.resultSelector) {\n                this._tryResultSelector(values);\n            }\n            else {\n                this.destination.next(values.slice());\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, values);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return CombineLatestSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nfunction isInteropObservable(input) {\n    return input && typeof input[observable] === 'function';\n}\n\n/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nfunction isIterable(input) {\n    return input && typeof input[iterator] === 'function';\n}\n\n/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToPromise PURE_IMPORTS_END */\nfunction fromPromise(input, scheduler) {\n    if (!scheduler) {\n        return new Observable$1(subscribeToPromise(input));\n    }\n    else {\n        return new Observable$1(function (subscriber) {\n            var sub = new Subscription();\n            sub.add(scheduler.schedule(function () {\n                return input.then(function (value) {\n                    sub.add(scheduler.schedule(function () {\n                        subscriber.next(value);\n                        sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n                    }));\n                }, function (err) {\n                    sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n                });\n            }));\n            return sub;\n        });\n    }\n}\n\n/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator,_util_subscribeToIterable PURE_IMPORTS_END */\nfunction fromIterable(input, scheduler) {\n    if (!input) {\n        throw new Error('Iterable cannot be null');\n    }\n    if (!scheduler) {\n        return new Observable$1(subscribeToIterable(input));\n    }\n    else {\n        return new Observable$1(function (subscriber) {\n            var sub = new Subscription();\n            var iterator$$1;\n            sub.add(function () {\n                if (iterator$$1 && typeof iterator$$1.return === 'function') {\n                    iterator$$1.return();\n                }\n            });\n            sub.add(scheduler.schedule(function () {\n                iterator$$1 = input[iterator]();\n                sub.add(scheduler.schedule(function () {\n                    if (subscriber.closed) {\n                        return;\n                    }\n                    var value;\n                    var done;\n                    try {\n                        var result = iterator$$1.next();\n                        value = result.value;\n                        done = result.done;\n                    }\n                    catch (err) {\n                        subscriber.error(err);\n                        return;\n                    }\n                    if (done) {\n                        subscriber.complete();\n                    }\n                    else {\n                        subscriber.next(value);\n                        this.schedule();\n                    }\n                }));\n            }));\n            return sub;\n        });\n    }\n}\n\n/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable,_util_subscribeToObservable PURE_IMPORTS_END */\nfunction fromObservable(input, scheduler) {\n    if (!scheduler) {\n        return new Observable$1(subscribeToObservable(input));\n    }\n    else {\n        return new Observable$1(function (subscriber) {\n            var sub = new Subscription();\n            sub.add(scheduler.schedule(function () {\n                var observable$$1 = input[observable]();\n                sub.add(observable$$1.subscribe({\n                    next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n                    error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n                    complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n                }));\n            }));\n            return sub;\n        });\n    }\n}\n\n/** PURE_IMPORTS_START _Observable,_util_isPromise,_util_isArrayLike,_util_isInteropObservable,_util_isIterable,_fromArray,_fromPromise,_fromIterable,_fromObservable,_util_subscribeTo PURE_IMPORTS_END */\nfunction from(input, scheduler) {\n    if (!scheduler) {\n        if (input instanceof Observable$1) {\n            return input;\n        }\n        return new Observable$1(subscribeTo(input));\n    }\n    if (input != null) {\n        if (isInteropObservable(input)) {\n            return fromObservable(input, scheduler);\n        }\n        else if (isPromise(input)) {\n            return fromPromise(input, scheduler);\n        }\n        else if (isArrayLike(input)) {\n            return fromArray(input, scheduler);\n        }\n        else if (isIterable(input) || typeof input === 'string') {\n            return fromIterable(input, scheduler);\n        }\n    }\n    throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n\n/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nvar EMPTY = /*@__PURE__*/ new Observable$1(function (subscriber) { return subscriber.complete(); });\nfunction empty$1(scheduler) {\n    return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n    return new Observable$1(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n\n/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nfunction scalar(value) {\n    var result = new Observable$1(function (subscriber) {\n        subscriber.next(value);\n        subscriber.complete();\n    });\n    result._isScalar = true;\n    result.value = value;\n    return result;\n}\n\n/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_empty,_scalar PURE_IMPORTS_END */\nfunction of$1() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var scheduler = args[args.length - 1];\n    if (isScheduler(scheduler)) {\n        args.pop();\n    }\n    else {\n        scheduler = undefined;\n    }\n    switch (args.length) {\n        case 0:\n            return empty$1(scheduler);\n        case 1:\n            return scheduler ? fromArray(args, scheduler) : scalar(args[0]);\n        default:\n            return fromArray(args, scheduler);\n    }\n}\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nfunction map(project, thisArg) {\n    return function mapOperation(source) {\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}\nvar MapOperator = /*@__PURE__*/ (function () {\n    function MapOperator(project, thisArg) {\n        this.project = project;\n        this.thisArg = thisArg;\n    }\n    MapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n    };\n    return MapOperator;\n}());\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(MapSubscriber, _super);\n    function MapSubscriber(destination, project, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.count = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    MapSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.project.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return MapSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */\nfunction mergeMap(project, resultSelector, concurrent) {\n    if (concurrent === void 0) {\n        concurrent = Number.POSITIVE_INFINITY;\n    }\n    if (typeof resultSelector === 'function') {\n        return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n    }\n    else if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n    }\n    return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n    function MergeMapOperator(project, concurrent) {\n        if (concurrent === void 0) {\n            concurrent = Number.POSITIVE_INFINITY;\n        }\n        this.project = project;\n        this.concurrent = concurrent;\n    }\n    MergeMapOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n    };\n    return MergeMapOperator;\n}());\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(MergeMapSubscriber, _super);\n    function MergeMapSubscriber(destination, project, concurrent) {\n        if (concurrent === void 0) {\n            concurrent = Number.POSITIVE_INFINITY;\n        }\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeMapSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            this._tryNext(value);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeMapSubscriber.prototype._tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.active++;\n        this._innerSub(result, value, index);\n    };\n    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n        this.add(innerSubscriber);\n        subscribeToResult(this, ish, value, index, innerSubscriber);\n    };\n    MergeMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n    };\n    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeMapSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _util_isScheduler,_of,_from,_operators_concatAll PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nfunction concatMap(project, resultSelector) {\n    return mergeMap(project, resultSelector, 1);\n}\n\n/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar CountSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(CountSubscriber, _super);\n    function CountSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.count = 0;\n        _this.index = 0;\n        return _this;\n    }\n    CountSubscriber.prototype._next = function (value) {\n        if (this.predicate) {\n            this._tryPredicate(value);\n        }\n        else {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._tryPredicate = function (value) {\n        var result;\n        try {\n            result = this.predicate(value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._complete = function () {\n        this.destination.next(this.count);\n        this.destination.complete();\n    };\n    return CountSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar DebounceSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DebounceSubscriber, _super);\n    function DebounceSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        _this.durationSubscription = null;\n        return _this;\n    }\n    DebounceSubscriber.prototype._next = function (value) {\n        try {\n            var result = this.durationSelector.call(this, value);\n            if (result) {\n                this._tryNext(value, result);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DebounceSubscriber.prototype._complete = function () {\n        this.emitValue();\n        this.destination.complete();\n    };\n    DebounceSubscriber.prototype._tryNext = function (value, duration) {\n        var subscription = this.durationSubscription;\n        this.value = value;\n        this.hasValue = true;\n        if (subscription) {\n            subscription.unsubscribe();\n            this.remove(subscription);\n        }\n        subscription = subscribeToResult(this, duration);\n        if (subscription && !subscription.closed) {\n            this.add(this.durationSubscription = subscription);\n        }\n    };\n    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            var value = this.value;\n            var subscription = this.durationSubscription;\n            if (subscription) {\n                this.durationSubscription = null;\n                subscription.unsubscribe();\n                this.remove(subscription);\n            }\n            this.value = null;\n            this.hasValue = false;\n            _super.prototype._next.call(this, value);\n        }\n    };\n    return DebounceSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\n\nvar DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DebounceTimeSubscriber, _super);\n    function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.dueTime = dueTime;\n        _this.scheduler = scheduler;\n        _this.debouncedSubscription = null;\n        _this.lastValue = null;\n        _this.hasValue = false;\n        return _this;\n    }\n    DebounceTimeSubscriber.prototype._next = function (value) {\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    DebounceTimeSubscriber.prototype._complete = function () {\n        this.debouncedNext();\n        this.destination.complete();\n    };\n    DebounceTimeSubscriber.prototype.debouncedNext = function () {\n        this.clearDebounce();\n        if (this.hasValue) {\n            var lastValue = this.lastValue;\n            this.lastValue = null;\n            this.hasValue = false;\n            this.destination.next(lastValue);\n        }\n    };\n    DebounceTimeSubscriber.prototype.clearDebounce = function () {\n        var debouncedSubscription = this.debouncedSubscription;\n        if (debouncedSubscription !== null) {\n            this.remove(debouncedSubscription);\n            debouncedSubscription.unsubscribe();\n            this.debouncedSubscription = null;\n        }\n    };\n    return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n    subscriber.debouncedNext();\n}\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DefaultIfEmptySubscriber, _super);\n    function DefaultIfEmptySubscriber(destination, defaultValue) {\n        var _this = _super.call(this, destination) || this;\n        _this.defaultValue = defaultValue;\n        _this.isEmpty = true;\n        return _this;\n    }\n    DefaultIfEmptySubscriber.prototype._next = function (value) {\n        this.isEmpty = false;\n        this.destination.next(value);\n    };\n    DefaultIfEmptySubscriber.prototype._complete = function () {\n        if (this.isEmpty) {\n            this.destination.next(this.defaultValue);\n        }\n        this.destination.complete();\n    };\n    return DefaultIfEmptySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nfunction throwError(error, scheduler) {\n    if (!scheduler) {\n        return new Observable$1(function (subscriber) { return subscriber.error(error); });\n    }\n    else {\n        return new Observable$1(function (subscriber) { return scheduler.schedule(dispatch$1, 0, { error: error, subscriber: subscriber }); });\n    }\n}\nfunction dispatch$1(_a) {\n    var error = _a.error, subscriber = _a.subscriber;\n    subscriber.error(error);\n}\n\n/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nvar Notification = /*@__PURE__*/ (function () {\n    function Notification(kind, value, error) {\n        this.kind = kind;\n        this.value = value;\n        this.error = error;\n        this.hasValue = kind === 'N';\n    }\n    Notification.prototype.observe = function (observer) {\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    Notification.prototype.do = function (next, error, complete) {\n        var 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    Notification.prototype.accept = function (nextOrObserver, error, complete) {\n        if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n            return this.observe(nextOrObserver);\n        }\n        else {\n            return this.do(nextOrObserver, error, complete);\n        }\n    };\n    Notification.prototype.toObservable = function () {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return of$1(this.value);\n            case 'E':\n                return throwError(this.error);\n            case 'C':\n                return empty$1();\n        }\n        throw new Error('unexpected notification kind value');\n    };\n    Notification.createNext = function (value) {\n        if (typeof value !== 'undefined') {\n            return new Notification('N', value);\n        }\n        return Notification.undefinedValueNotification;\n    };\n    Notification.createError = function (err) {\n        return new Notification('E', undefined, err);\n    };\n    Notification.createComplete = function () {\n        return Notification.completeNotification;\n    };\n    Notification.completeNotification = new Notification('C');\n    Notification.undefinedValueNotification = new Notification('N', undefined);\n    return Notification;\n}());\n\n/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\n\nvar DelaySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DelaySubscriber, _super);\n    function DelaySubscriber(destination, delay, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.delay = delay;\n        _this.scheduler = scheduler;\n        _this.queue = [];\n        _this.active = false;\n        _this.errored = false;\n        return _this;\n    }\n    DelaySubscriber.dispatch = function (state) {\n        var source = state.source;\n        var queue = source.queue;\n        var scheduler = state.scheduler;\n        var destination = state.destination;\n        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n            queue.shift().notification.observe(destination);\n        }\n        if (queue.length > 0) {\n            var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n            this.schedule(state, delay_1);\n        }\n        else {\n            this.unsubscribe();\n            source.active = false;\n        }\n    };\n    DelaySubscriber.prototype._schedule = function (scheduler) {\n        this.active = true;\n        this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n            source: this, destination: this.destination, scheduler: scheduler\n        }));\n    };\n    DelaySubscriber.prototype.scheduleNotification = function (notification) {\n        if (this.errored === true) {\n            return;\n        }\n        var scheduler = this.scheduler;\n        var message = new DelayMessage(scheduler.now() + this.delay, notification);\n        this.queue.push(message);\n        if (this.active === false) {\n            this._schedule(scheduler);\n        }\n    };\n    DelaySubscriber.prototype._next = function (value) {\n        this.scheduleNotification(Notification.createNext(value));\n    };\n    DelaySubscriber.prototype._error = function (err) {\n        this.errored = true;\n        this.queue = [];\n        this.destination.error(err);\n    };\n    DelaySubscriber.prototype._complete = function () {\n        this.scheduleNotification(Notification.createComplete());\n    };\n    return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = /*@__PURE__*/ (function () {\n    function DelayMessage(time, notification) {\n        this.time = time;\n        this.notification = notification;\n    }\n    return DelayMessage;\n}());\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar DelayWhenSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DelayWhenSubscriber, _super);\n    function DelayWhenSubscriber(destination, delayDurationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.delayDurationSelector = delayDurationSelector;\n        _this.completed = false;\n        _this.delayNotifierSubscriptions = [];\n        _this.index = 0;\n        return _this;\n    }\n    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(outerValue);\n        this.removeSubscription(innerSub);\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        var value = this.removeSubscription(innerSub);\n        if (value) {\n            this.destination.next(value);\n        }\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        try {\n            var delayNotifier = this.delayDurationSelector(value, index);\n            if (delayNotifier) {\n                this.tryDelay(delayNotifier, value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DelayWhenSubscriber.prototype._complete = function () {\n        this.completed = true;\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n        subscription.unsubscribe();\n        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n        if (subscriptionIdx !== -1) {\n            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n        }\n        return subscription.outerValue;\n    };\n    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n        var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n        if (notifierSubscription && !notifierSubscription.closed) {\n            this.add(notifierSubscription);\n            this.delayNotifierSubscriptions.push(notifierSubscription);\n        }\n    };\n    DelayWhenSubscriber.prototype.tryComplete = function () {\n        if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n            this.destination.complete();\n        }\n    };\n    return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) {\n    __extends(SubscriptionDelayObservable, _super);\n    function SubscriptionDelayObservable(source, subscriptionDelay) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subscriptionDelay = subscriptionDelay;\n        return _this;\n    }\n    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n    };\n    return SubscriptionDelayObservable;\n}(Observable$1));\nvar SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SubscriptionDelaySubscriber, _super);\n    function SubscriptionDelaySubscriber(parent, source) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.source = source;\n        _this.sourceSubscribed = false;\n        return _this;\n    }\n    SubscriptionDelaySubscriber.prototype._next = function (unused) {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype._error = function (err) {\n        this.unsubscribe();\n        this.parent.error(err);\n    };\n    SubscriptionDelaySubscriber.prototype._complete = function () {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n        if (!this.sourceSubscribed) {\n            this.sourceSubscribed = true;\n            this.unsubscribe();\n            this.source.subscribe(this.parent);\n        }\n    };\n    return SubscriptionDelaySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DeMaterializeSubscriber, _super);\n    function DeMaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    DeMaterializeSubscriber.prototype._next = function (value) {\n        value.observe(this.destination);\n    };\n    return DeMaterializeSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar DistinctSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DistinctSubscriber, _super);\n    function DistinctSubscriber(destination, keySelector, flushes) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.values = new Set();\n        if (flushes) {\n            _this.add(subscribeToResult(_this, flushes));\n        }\n        return _this;\n    }\n    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values.clear();\n    };\n    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DistinctSubscriber.prototype._next = function (value) {\n        if (this.keySelector) {\n            this._useKeySelector(value);\n        }\n        else {\n            this._finalizeNext(value, value);\n        }\n    };\n    DistinctSubscriber.prototype._useKeySelector = function (value) {\n        var key;\n        var destination = this.destination;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this._finalizeNext(key, value);\n    };\n    DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n        var values = this.values;\n        if (!values.has(key)) {\n            values.add(key);\n            this.destination.next(value);\n        }\n    };\n    return DistinctSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */\n\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(DistinctUntilChangedSubscriber, _super);\n    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.hasKey = false;\n        if (typeof compare === 'function') {\n            _this.compare = compare;\n        }\n        return _this;\n    }\n    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n        return x === y;\n    };\n    DistinctUntilChangedSubscriber.prototype._next = function (value) {\n        var keySelector = this.keySelector;\n        var key = value;\n        if (keySelector) {\n            key = tryCatch(this.keySelector)(value);\n            if (key === errorObject) {\n                return this.destination.error(errorObject.e);\n            }\n        }\n        var result = false;\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        }\n        else {\n            this.hasKey = true;\n        }\n        if (Boolean(result) === false) {\n            this.key = key;\n            this.destination.next(value);\n        }\n    };\n    return DistinctUntilChangedSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nfunction filter(predicate, thisArg) {\n    return function filterOperatorFunction(source) {\n        return source.lift(new FilterOperator(predicate, thisArg));\n    };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n    function FilterOperator(predicate, thisArg) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n    }\n    FilterOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n    };\n    return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(FilterSubscriber, _super);\n    function FilterSubscriber(destination, predicate, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.count = 0;\n        return _this;\n    }\n    FilterSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.destination.next(value);\n        }\n    };\n    return FilterSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\n\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TapSubscriber, _super);\n    function TapSubscriber(destination, observerOrNext, error, complete) {\n        var _this = _super.call(this, destination) || this;\n        _this._tapNext = noop;\n        _this._tapError = noop;\n        _this._tapComplete = noop;\n        _this._tapError = error || noop;\n        _this._tapComplete = complete || noop;\n        if (isFunction(observerOrNext)) {\n            _this._context = _this;\n            _this._tapNext = observerOrNext;\n        }\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        return _this;\n    }\n    TapSubscriber.prototype._next = function (value) {\n        try {\n            this._tapNext.call(this._context, value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(value);\n    };\n    TapSubscriber.prototype._error = function (err) {\n        try {\n            this._tapError.call(this._context, err);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.error(err);\n    };\n    TapSubscriber.prototype._complete = function () {\n        try {\n            this._tapComplete.call(this._context);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        return this.destination.complete();\n    };\n    return TapSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction EmptyErrorImpl() {\n    Error.call(this);\n    this.message = 'no elements in sequence';\n    this.name = 'EmptyError';\n    return this;\n}\nEmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nvar EmptyError = EmptyErrorImpl;\n\n/** PURE_IMPORTS_START _tap,_util_EmptyError PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\n\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TakeSubscriber, _super);\n    function TakeSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    TakeSubscriber.prototype._next = function (value) {\n        var total = this.total;\n        var 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    return TakeSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar EverySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(EverySubscriber, _super);\n    function EverySubscriber(destination, predicate, thisArg, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.source = source;\n        _this.index = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n        this.destination.next(everyValueMatch);\n        this.destination.complete();\n    };\n    EverySubscriber.prototype._next = function (value) {\n        var result = false;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (!result) {\n            this.notifyComplete(false);\n        }\n    };\n    EverySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return EverySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SwitchFirstSubscriber, _super);\n    function SwitchFirstSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasCompleted = false;\n        _this.hasSubscription = false;\n        return _this;\n    }\n    SwitchFirstSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.hasSubscription = true;\n            this.add(subscribeToResult(this, value));\n        }\n    };\n    SwitchFirstSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return SwitchFirstSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\n\nvar ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ExhaustMapSubscriber, _super);\n    function ExhaustMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.hasSubscription = false;\n        _this.hasCompleted = false;\n        _this.index = 0;\n        return _this;\n    }\n    ExhaustMapSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.tryNext(value);\n        }\n    };\n    ExhaustMapSubscriber.prototype.tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.hasSubscription = true;\n        this._innerSub(result, value, index);\n    };\n    ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n        this.add(innerSubscriber);\n        subscribeToResult(this, result, value, index, innerSubscriber);\n    };\n    ExhaustMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    ExhaustMapSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return ExhaustMapSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar ExpandSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ExpandSubscriber, _super);\n    function ExpandSubscriber(destination, project, concurrent, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.scheduler = scheduler;\n        _this.index = 0;\n        _this.active = 0;\n        _this.hasCompleted = false;\n        if (concurrent < Number.POSITIVE_INFINITY) {\n            _this.buffer = [];\n        }\n        return _this;\n    }\n    ExpandSubscriber.dispatch = function (arg) {\n        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n        subscriber.subscribeToProjection(result, value, index);\n    };\n    ExpandSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (destination.closed) {\n            this._complete();\n            return;\n        }\n        var index = this.index++;\n        if (this.active < this.concurrent) {\n            destination.next(value);\n            var result = tryCatch(this.project)(value, index);\n            if (result === errorObject) {\n                destination.error(errorObject.e);\n            }\n            else if (!this.scheduler) {\n                this.subscribeToProjection(result, value, index);\n            }\n            else {\n                var state = { subscriber: this, result: result, value: value, index: index };\n                this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n        this.active++;\n        this.add(subscribeToResult(this, result, value, index));\n    };\n    ExpandSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this._next(innerValue);\n    };\n    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n        var 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    return ExpandSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\n\nvar FinallySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(FinallySubscriber, _super);\n    function FinallySubscriber(destination, callback) {\n        var _this = _super.call(this, destination) || this;\n        _this.add(new Subscription(callback));\n        return _this;\n    }\n    return FinallySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar FindValueSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(FindValueSubscriber, _super);\n    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.yieldIndex = yieldIndex;\n        _this.thisArg = thisArg;\n        _this.index = 0;\n        return _this;\n    }\n    FindValueSubscriber.prototype.notifyComplete = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n        this.unsubscribe();\n    };\n    FindValueSubscriber.prototype._next = function (value) {\n        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n        var index = this.index++;\n        try {\n            var result = predicate.call(thisArg || this, value, index, this.source);\n            if (result) {\n                this.notifyComplete(this.yieldIndex ? index : value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    FindValueSubscriber.prototype._complete = function () {\n        this.notifyComplete(this.yieldIndex ? -1 : undefined);\n    };\n    return FindValueSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nfunction ObjectUnsubscribedErrorImpl() {\n    Error.call(this);\n    this.message = 'object unsubscribed';\n    this.name = 'ObjectUnsubscribedError';\n    return this;\n}\nObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\nvar ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n\n/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n    __extends(SubjectSubscription, _super);\n    function SubjectSubscription(subject, subscriber) {\n        var _this = _super.call(this) || this;\n        _this.subject = subject;\n        _this.subscriber = subscriber;\n        _this.closed = false;\n        return _this;\n    }\n    SubjectSubscription.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.closed = true;\n        var subject = this.subject;\n        var observers = subject.observers;\n        this.subject = null;\n        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n            return;\n        }\n        var subscriberIndex = observers.indexOf(this.subscriber);\n        if (subscriberIndex !== -1) {\n            observers.splice(subscriberIndex, 1);\n        }\n    };\n    return SubjectSubscription;\n}(Subscription));\n\n/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SubjectSubscriber, _super);\n    function SubjectSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        return _this;\n    }\n    return SubjectSubscriber;\n}(Subscriber));\nvar Subject = /*@__PURE__*/ (function (_super) {\n    __extends(Subject, _super);\n    function Subject() {\n        var _this = _super.call(this) || this;\n        _this.observers = [];\n        _this.closed = false;\n        _this.isStopped = false;\n        _this.hasError = false;\n        _this.thrownError = null;\n        return _this;\n    }\n    Subject.prototype[rxSubscriber] = function () {\n        return new SubjectSubscriber(this);\n    };\n    Subject.prototype.lift = function (operator) {\n        var subject = new AnonymousSubject(this, this);\n        subject.operator = operator;\n        return subject;\n    };\n    Subject.prototype.next = function (value) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        if (!this.isStopped) {\n            var observers = this.observers;\n            var len = observers.length;\n            var copy = observers.slice();\n            for (var i = 0; i < len; i++) {\n                copy[i].next(value);\n            }\n        }\n    };\n    Subject.prototype.error = function (err) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.hasError = true;\n        this.thrownError = err;\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].error(err);\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.complete = function () {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].complete();\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.unsubscribe = function () {\n        this.isStopped = true;\n        this.closed = true;\n        this.observers = null;\n    };\n    Subject.prototype._trySubscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return _super.prototype._trySubscribe.call(this, subscriber);\n        }\n    };\n    Subject.prototype._subscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            return new SubjectSubscription(this, subscriber);\n        }\n    };\n    Subject.prototype.asObservable = function () {\n        var observable = new Observable$1();\n        observable.source = this;\n        return observable;\n    };\n    Subject.create = function (destination, source) {\n        return new AnonymousSubject(destination, source);\n    };\n    return Subject;\n}(Observable$1));\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n    __extends(AnonymousSubject, _super);\n    function AnonymousSubject(destination, source) {\n        var _this = _super.call(this) || this;\n        _this.destination = destination;\n        _this.source = source;\n        return _this;\n    }\n    AnonymousSubject.prototype.next = function (value) {\n        var destination = this.destination;\n        if (destination && destination.next) {\n            destination.next(value);\n        }\n    };\n    AnonymousSubject.prototype.error = function (err) {\n        var destination = this.destination;\n        if (destination && destination.error) {\n            this.destination.error(err);\n        }\n    };\n    AnonymousSubject.prototype.complete = function () {\n        var destination = this.destination;\n        if (destination && destination.complete) {\n            this.destination.complete();\n        }\n    };\n    AnonymousSubject.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        if (source) {\n            return this.source.subscribe(subscriber);\n        }\n        else {\n            return Subscription.EMPTY;\n        }\n    };\n    return AnonymousSubject;\n}(Subject));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */\n\nvar GroupBySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(GroupBySubscriber, _super);\n    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.elementSelector = elementSelector;\n        _this.durationSelector = durationSelector;\n        _this.subjectSelector = subjectSelector;\n        _this.groups = null;\n        _this.attemptedToUnsubscribe = false;\n        _this.count = 0;\n        return _this;\n    }\n    GroupBySubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            this.error(err);\n            return;\n        }\n        this._group(value, key);\n    };\n    GroupBySubscriber.prototype._group = function (value, key) {\n        var groups = this.groups;\n        if (!groups) {\n            groups = this.groups = new Map();\n        }\n        var group = groups.get(key);\n        var element;\n        if (this.elementSelector) {\n            try {\n                element = this.elementSelector(value);\n            }\n            catch (err) {\n                this.error(err);\n            }\n        }\n        else {\n            element = value;\n        }\n        if (!group) {\n            group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n            groups.set(key, group);\n            var groupedObservable = new GroupedObservable(key, group, this);\n            this.destination.next(groupedObservable);\n            if (this.durationSelector) {\n                var duration = void 0;\n                try {\n                    duration = this.durationSelector(new GroupedObservable(key, group));\n                }\n                catch (err) {\n                    this.error(err);\n                    return;\n                }\n                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n            }\n        }\n        if (!group.closed) {\n            group.next(element);\n        }\n    };\n    GroupBySubscriber.prototype._error = function (err) {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.error(err);\n            });\n            groups.clear();\n        }\n        this.destination.error(err);\n    };\n    GroupBySubscriber.prototype._complete = function () {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.complete();\n            });\n            groups.clear();\n        }\n        this.destination.complete();\n    };\n    GroupBySubscriber.prototype.removeGroup = function (key) {\n        this.groups.delete(key);\n    };\n    GroupBySubscriber.prototype.unsubscribe = function () {\n        if (!this.closed) {\n            this.attemptedToUnsubscribe = true;\n            if (this.count === 0) {\n                _super.prototype.unsubscribe.call(this);\n            }\n        }\n    };\n    return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(GroupDurationSubscriber, _super);\n    function GroupDurationSubscriber(key, group, parent) {\n        var _this = _super.call(this, group) || this;\n        _this.key = key;\n        _this.group = group;\n        _this.parent = parent;\n        return _this;\n    }\n    GroupDurationSubscriber.prototype._next = function (value) {\n        this.complete();\n    };\n    GroupDurationSubscriber.prototype._unsubscribe = function () {\n        var _a = this, parent = _a.parent, key = _a.key;\n        this.key = this.parent = null;\n        if (parent) {\n            parent.removeGroup(key);\n        }\n    };\n    return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = /*@__PURE__*/ (function (_super) {\n    __extends(GroupedObservable, _super);\n    function GroupedObservable(key, groupSubject, refCountSubscription) {\n        var _this = _super.call(this) || this;\n        _this.key = key;\n        _this.groupSubject = groupSubject;\n        _this.refCountSubscription = refCountSubscription;\n        return _this;\n    }\n    GroupedObservable.prototype._subscribe = function (subscriber) {\n        var subscription = new Subscription();\n        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n        if (refCountSubscription && !refCountSubscription.closed) {\n            subscription.add(new InnerRefCountSubscription(refCountSubscription));\n        }\n        subscription.add(groupSubject.subscribe(subscriber));\n        return subscription;\n    };\n    return GroupedObservable;\n}(Observable$1));\nvar InnerRefCountSubscription = /*@__PURE__*/ (function (_super) {\n    __extends(InnerRefCountSubscription, _super);\n    function InnerRefCountSubscription(parent) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        parent.count++;\n        return _this;\n    }\n    InnerRefCountSubscription.prototype.unsubscribe = function () {\n        var parent = this.parent;\n        if (!parent.closed && !this.closed) {\n            _super.prototype.unsubscribe.call(this);\n            parent.count -= 1;\n            if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n                parent.unsubscribe();\n            }\n        }\n    };\n    return InnerRefCountSubscription;\n}(Subscription));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(IgnoreElementsSubscriber, _super);\n    function IgnoreElementsSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IgnoreElementsSubscriber.prototype._next = function (unused) {\n    };\n    return IgnoreElementsSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar IsEmptySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(IsEmptySubscriber, _super);\n    function IsEmptySubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n        var destination = this.destination;\n        destination.next(isEmpty);\n        destination.complete();\n    };\n    IsEmptySubscriber.prototype._next = function (value) {\n        this.notifyComplete(false);\n    };\n    IsEmptySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return IsEmptySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\n\nvar TakeLastSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TakeLastSubscriber, _super);\n    function TakeLastSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.ring = new Array();\n        _this.count = 0;\n        return _this;\n    }\n    TakeLastSubscriber.prototype._next = function (value) {\n        var ring = this.ring;\n        var total = this.total;\n        var count = this.count++;\n        if (ring.length < total) {\n            ring.push(value);\n        }\n        else {\n            var index = count % total;\n            ring[index] = value;\n        }\n    };\n    TakeLastSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        var count = this.count;\n        if (count > 0) {\n            var total = this.count >= this.total ? this.total : this.count;\n            var ring = this.ring;\n            for (var i = 0; i < total; i++) {\n                var idx = (count++) % total;\n                destination.next(ring[idx]);\n            }\n        }\n        destination.complete();\n    };\n    return TakeLastSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar MapToSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(MapToSubscriber, _super);\n    function MapToSubscriber(destination, value) {\n        var _this = _super.call(this, destination) || this;\n        _this.value = value;\n        return _this;\n    }\n    MapToSubscriber.prototype._next = function (x) {\n        this.destination.next(this.value);\n    };\n    return MapToSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\n\nvar MaterializeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(MaterializeSubscriber, _super);\n    function MaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    MaterializeSubscriber.prototype._next = function (value) {\n        this.destination.next(Notification.createNext(value));\n    };\n    MaterializeSubscriber.prototype._error = function (err) {\n        var destination = this.destination;\n        destination.next(Notification.createError(err));\n        destination.complete();\n    };\n    MaterializeSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        destination.next(Notification.createComplete());\n        destination.complete();\n    };\n    return MaterializeSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar ScanSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ScanSubscriber, _super);\n    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this._seed = _seed;\n        _this.hasSeed = hasSeed;\n        _this.index = 0;\n        return _this;\n    }\n    Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n        get: function () {\n            return this._seed;\n        },\n        set: function (value) {\n            this.hasSeed = true;\n            this._seed = value;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ScanSubscriber.prototype._next = function (value) {\n        if (!this.hasSeed) {\n            this.seed = value;\n            this.destination.next(value);\n        }\n        else {\n            return this._tryNext(value);\n        }\n    };\n    ScanSubscriber.prototype._tryNext = function (value) {\n        var index = this.index++;\n        var result;\n        try {\n            result = this.accumulator(this.seed, value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n        this.seed = result;\n        this.destination.next(result);\n    };\n    return ScanSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */\n\nvar MergeScanSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(MergeScanSubscriber, _super);\n    function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this.acc = acc;\n        _this.concurrent = concurrent;\n        _this.hasValue = false;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeScanSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            var index = this.index++;\n            var ish = tryCatch(this.accumulator)(this.acc, value);\n            var destination = this.destination;\n            if (ish === errorObject) {\n                destination.error(errorObject.e);\n            }\n            else {\n                this.active++;\n                this._innerSub(ish, value, index);\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n        this.add(innerSubscriber);\n        subscribeToResult(this, ish, value, index, innerSubscriber);\n    };\n    MergeScanSubscriber.prototype._complete = function () {\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    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var destination = this.destination;\n        this.acc = innerValue;\n        this.hasValue = true;\n        destination.next(innerValue);\n    };\n    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\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    return MergeScanSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nfunction refCount() {\n    return function refCountOperatorFunction(source) {\n        return source.lift(new RefCountOperator$1(source));\n    };\n}\nvar RefCountOperator$1 = /*@__PURE__*/ (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber$1(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber$1 = /*@__PURE__*/ (function (_super) {\n    __extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nvar ConnectableObservable = /*@__PURE__*/ (function (_super) {\n    __extends(ConnectableObservable, _super);\n    function ConnectableObservable(source, subjectFactory) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subjectFactory = subjectFactory;\n        _this._refCount = 0;\n        _this._isComplete = false;\n        return _this;\n    }\n    ConnectableObservable.prototype._subscribe = function (subscriber) {\n        return this.getSubject().subscribe(subscriber);\n    };\n    ConnectableObservable.prototype.getSubject = function () {\n        var subject = this._subject;\n        if (!subject || subject.isStopped) {\n            this._subject = this.subjectFactory();\n        }\n        return this._subject;\n    };\n    ConnectableObservable.prototype.connect = function () {\n        var 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            }\n            else {\n                this._connection = connection;\n            }\n        }\n        return connection;\n    };\n    ConnectableObservable.prototype.refCount = function () {\n        return refCount()(this);\n    };\n    return ConnectableObservable;\n}(Observable$1));\n\nvar ConnectableSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ConnectableSubscriber, _super);\n    function ConnectableSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    ConnectableSubscriber.prototype._error = function (err) {\n        this._unsubscribe();\n        _super.prototype._error.call(this, err);\n    };\n    ConnectableSubscriber.prototype._complete = function () {\n        this.connectable._isComplete = true;\n        this._unsubscribe();\n        _super.prototype._complete.call(this);\n    };\n    ConnectableSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (connectable) {\n            this.connectable = null;\n            var 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    return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount$$1 = connectable._refCount;\n        if (refCount$$1 <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount$$1 - 1;\n        if (refCount$$1 > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\n\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ObserveOnSubscriber, _super);\n    function ObserveOnSubscriber(destination, scheduler, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        var _this = _super.call(this, destination) || this;\n        _this.scheduler = scheduler;\n        _this.delay = delay;\n        return _this;\n    }\n    ObserveOnSubscriber.dispatch = function (arg) {\n        var notification = arg.notification, destination = arg.destination;\n        notification.observe(destination);\n        this.unsubscribe();\n    };\n    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n        this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n    };\n    ObserveOnSubscriber.prototype._next = function (value) {\n        this.scheduleMessage(Notification.createNext(value));\n    };\n    ObserveOnSubscriber.prototype._error = function (err) {\n        this.scheduleMessage(Notification.createError(err));\n    };\n    ObserveOnSubscriber.prototype._complete = function () {\n        this.scheduleMessage(Notification.createComplete());\n    };\n    return ObserveOnSubscriber;\n}(Subscriber));\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n    function ObserveOnMessage(notification, destination) {\n        this.notification = notification;\n        this.destination = destination;\n    }\n    return ObserveOnMessage;\n}());\n\n/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\n\nvar OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(OnErrorResumeNextSubscriber, _super);\n    function OnErrorResumeNextSubscriber(destination, nextSources) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.nextSources = nextSources;\n        return _this;\n    }\n    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._error = function (err) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._complete = function () {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n        var next = this.nextSources.shift();\n        if (next) {\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            this.add(innerSubscriber);\n            subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar PairwiseSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(PairwiseSubscriber, _super);\n    function PairwiseSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasPrev = false;\n        return _this;\n    }\n    PairwiseSubscriber.prototype._next = function (value) {\n        if (this.hasPrev) {\n            this.destination.next([this.prev, value]);\n        }\n        else {\n            this.hasPrev = true;\n        }\n        this.prev = value;\n    };\n    return PairwiseSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */\nvar BehaviorSubject = /*@__PURE__*/ (function (_super) {\n    __extends(BehaviorSubject, _super);\n    function BehaviorSubject(_value) {\n        var _this = _super.call(this) || this;\n        _this._value = _value;\n        return _this;\n    }\n    Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n        get: function () {\n            return this.getValue();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    BehaviorSubject.prototype._subscribe = function (subscriber) {\n        var subscription = _super.prototype._subscribe.call(this, subscriber);\n        if (subscription && !subscription.closed) {\n            subscriber.next(this._value);\n        }\n        return subscription;\n    };\n    BehaviorSubject.prototype.getValue = function () {\n        if (this.hasError) {\n            throw this.thrownError;\n        }\n        else if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return this._value;\n        }\n    };\n    BehaviorSubject.prototype.next = function (value) {\n        _super.prototype.next.call(this, this._value = value);\n    };\n    return BehaviorSubject;\n}(Subject));\n\n/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */\nvar AsyncSubject = /*@__PURE__*/ (function (_super) {\n    __extends(AsyncSubject, _super);\n    function AsyncSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.value = null;\n        _this.hasNext = false;\n        _this.hasCompleted = false;\n        return _this;\n    }\n    AsyncSubject.prototype._subscribe = function (subscriber) {\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.hasCompleted && this.hasNext) {\n            subscriber.next(this.value);\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        return _super.prototype._subscribe.call(this, subscriber);\n    };\n    AsyncSubject.prototype.next = function (value) {\n        if (!this.hasCompleted) {\n            this.value = value;\n            this.hasNext = true;\n        }\n    };\n    AsyncSubject.prototype.error = function (error) {\n        if (!this.hasCompleted) {\n            _super.prototype.error.call(this, error);\n        }\n    };\n    AsyncSubject.prototype.complete = function () {\n        this.hasCompleted = true;\n        if (this.hasNext) {\n            _super.prototype.next.call(this, this.value);\n        }\n        _super.prototype.complete.call(this);\n    };\n    return AsyncSubject;\n}(Subject));\n\n/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n    __extends(QueueAction, _super);\n    function QueueAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    QueueAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (delay > 0) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.delay = delay;\n        this.state = state;\n        this.scheduler.flush(this);\n        return this;\n    };\n    QueueAction.prototype.execute = function (state, delay) {\n        return (delay > 0 || this.closed) ?\n            _super.prototype.execute.call(this, state, delay) :\n            this._execute(state, delay);\n    };\n    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        return scheduler.flush(this);\n    };\n    return QueueAction;\n}(AsyncAction));\n\n/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n    __extends(QueueScheduler, _super);\n    function QueueScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return QueueScheduler;\n}(AsyncScheduler));\n\n/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nvar queue = /*@__PURE__*/ new QueueScheduler(QueueAction);\n\n/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n    __extends(ReplaySubject, _super);\n    function ReplaySubject(bufferSize, windowTime, scheduler) {\n        if (bufferSize === void 0) {\n            bufferSize = Number.POSITIVE_INFINITY;\n        }\n        if (windowTime === void 0) {\n            windowTime = Number.POSITIVE_INFINITY;\n        }\n        var _this = _super.call(this) || this;\n        _this.scheduler = scheduler;\n        _this._events = [];\n        _this._infiniteTimeWindow = false;\n        _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n        _this._windowTime = windowTime < 1 ? 1 : windowTime;\n        if (windowTime === Number.POSITIVE_INFINITY) {\n            _this._infiniteTimeWindow = true;\n            _this.next = _this.nextInfiniteTimeWindow;\n        }\n        else {\n            _this.next = _this.nextTimeWindow;\n        }\n        return _this;\n    }\n    ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n        var _events = this._events;\n        _events.push(value);\n        if (_events.length > this._bufferSize) {\n            _events.shift();\n        }\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype.nextTimeWindow = function (value) {\n        this._events.push(new ReplayEvent(this._getNow(), value));\n        this._trimBufferThenGetEvents();\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype._subscribe = function (subscriber) {\n        var _infiniteTimeWindow = this._infiniteTimeWindow;\n        var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n        var scheduler = this.scheduler;\n        var len = _events.length;\n        var subscription;\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.isStopped || this.hasError) {\n            subscription = Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            subscription = new SubjectSubscription(this, subscriber);\n        }\n        if (scheduler) {\n            subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n        }\n        if (_infiniteTimeWindow) {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i]);\n            }\n        }\n        else {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i].value);\n            }\n        }\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n        }\n        return subscription;\n    };\n    ReplaySubject.prototype._getNow = function () {\n        return (this.scheduler || queue).now();\n    };\n    ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n        var now = this._getNow();\n        var _bufferSize = this._bufferSize;\n        var _windowTime = this._windowTime;\n        var _events = this._events;\n        var eventsCount = _events.length;\n        var spliceCount = 0;\n        while (spliceCount < eventsCount) {\n            if ((now - _events[spliceCount].time) < _windowTime) {\n                break;\n            }\n            spliceCount++;\n        }\n        if (eventsCount > _bufferSize) {\n            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n        }\n        if (spliceCount > 0) {\n            _events.splice(0, spliceCount);\n        }\n        return _events;\n    };\n    return ReplaySubject;\n}(Subject));\nvar ReplayEvent = /*@__PURE__*/ (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n\n/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar RaceSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RaceSubscriber, _super);\n    function RaceSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasFirst = false;\n        _this.observables = [];\n        _this.subscriptions = [];\n        return _this;\n    }\n    RaceSubscriber.prototype._next = function (observable) {\n        this.observables.push(observable);\n    };\n    RaceSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            for (var i = 0; i < len && !this.hasFirst; i++) {\n                var observable = observables[i];\n                var subscription = subscribeToResult(this, observable, observable, i);\n                if (this.subscriptions) {\n                    this.subscriptions.push(subscription);\n                }\n                this.add(subscription);\n            }\n            this.observables = null;\n        }\n    };\n    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (!this.hasFirst) {\n            this.hasFirst = true;\n            for (var i = 0; i < this.subscriptions.length; i++) {\n                if (i !== outerIndex) {\n                    var subscription = this.subscriptions[i];\n                    subscription.unsubscribe();\n                    this.remove(subscription);\n                }\n            }\n            this.subscriptions = null;\n        }\n        this.destination.next(innerValue);\n    };\n    return RaceSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */\n\nvar RepeatSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RepeatSubscriber, _super);\n    function RepeatSubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RepeatSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.complete.call(this);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RepeatSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RepeatWhenSubscriber, _super);\n    function RepeatWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        _this.sourceIsBeingSubscribedTo = true;\n        return _this;\n    }\n    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.sourceIsBeingSubscribedTo = true;\n        this.source.subscribe(this);\n    };\n    RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        if (this.sourceIsBeingSubscribedTo === false) {\n            return _super.prototype.complete.call(this);\n        }\n    };\n    RepeatWhenSubscriber.prototype.complete = function () {\n        this.sourceIsBeingSubscribedTo = false;\n        if (!this.isStopped) {\n            if (!this.retries) {\n                this.subscribeToRetries();\n            }\n            if (!this.retriesSubscription || this.retriesSubscription.closed) {\n                return _super.prototype.complete.call(this);\n            }\n            this._unsubscribeAndRecycle();\n            this.notifications.next();\n        }\n    };\n    RepeatWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\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    RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        _super.prototype._unsubscribeAndRecycle.call(this);\n        this._unsubscribe = _unsubscribe;\n        return this;\n    };\n    RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n        this.notifications = new Subject();\n        var retries = tryCatch(this.notifier)(this.notifications);\n        if (retries === errorObject) {\n            return _super.prototype.complete.call(this);\n        }\n        this.retries = retries;\n        this.retriesSubscription = subscribeToResult(this, retries);\n    };\n    return RepeatWhenSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar RetrySubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RetrySubscriber, _super);\n    function RetrySubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RetrySubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.error.call(this, err);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RetrySubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar RetryWhenSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(RetryWhenSubscriber, _super);\n    function RetryWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        return _this;\n    }\n    RetryWhenSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var errors = this.errors;\n            var retries = this.retries;\n            var retriesSubscription = this.retriesSubscription;\n            if (!retries) {\n                errors = new Subject();\n                retries = tryCatch(this.notifier)(errors);\n                if (retries === errorObject) {\n                    return _super.prototype.error.call(this, errorObject.e);\n                }\n                retriesSubscription = subscribeToResult(this, retries);\n            }\n            else {\n                this.errors = null;\n                this.retriesSubscription = null;\n            }\n            this._unsubscribeAndRecycle();\n            this.errors = errors;\n            this.retries = retries;\n            this.retriesSubscription = retriesSubscription;\n            errors.next(err);\n        }\n    };\n    RetryWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\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    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        this._unsubscribeAndRecycle();\n        this._unsubscribe = _unsubscribe;\n        this.source.subscribe(this);\n    };\n    return RetryWhenSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar SampleSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SampleSubscriber, _super);\n    function SampleSubscriber() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hasValue = false;\n        return _this;\n    }\n    SampleSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n    };\n    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.value);\n        }\n    };\n    return SampleSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\n\nvar SampleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SampleTimeSubscriber, _super);\n    function SampleTimeSubscriber(destination, period, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.period = period;\n        _this.scheduler = scheduler;\n        _this.hasValue = false;\n        _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n        return _this;\n    }\n    SampleTimeSubscriber.prototype._next = function (value) {\n        this.lastValue = value;\n        this.hasValue = true;\n    };\n    SampleTimeSubscriber.prototype.notifyNext = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.lastValue);\n        }\n    };\n    return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n    var subscriber = state.subscriber, period = state.period;\n    subscriber.notifyNext();\n    this.schedule(state, period);\n}\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */\n\nvar SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SequenceEqualSubscriber, _super);\n    function SequenceEqualSubscriber(destination, compareTo, comparor) {\n        var _this = _super.call(this, destination) || this;\n        _this.compareTo = compareTo;\n        _this.comparor = comparor;\n        _this._a = [];\n        _this._b = [];\n        _this._oneComplete = false;\n        _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n        return _this;\n    }\n    SequenceEqualSubscriber.prototype._next = function (value) {\n        if (this._oneComplete && this._b.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._a.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype._complete = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n    };\n    SequenceEqualSubscriber.prototype.checkValues = function () {\n        var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;\n        while (_a.length > 0 && _b.length > 0) {\n            var a = _a.shift();\n            var b = _b.shift();\n            var areEqual = false;\n            if (comparor) {\n                areEqual = tryCatch(comparor)(a, b);\n                if (areEqual === errorObject) {\n                    this.destination.error(errorObject.e);\n                }\n            }\n            else {\n                areEqual = a === b;\n            }\n            if (!areEqual) {\n                this.emit(false);\n            }\n        }\n    };\n    SequenceEqualSubscriber.prototype.emit = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n    };\n    SequenceEqualSubscriber.prototype.nextB = function (value) {\n        if (this._oneComplete && this._a.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._b.push(value);\n            this.checkValues();\n        }\n    };\n    return SequenceEqualSubscriber;\n}(Subscriber));\nvar SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SequenceEqualCompareToSubscriber, _super);\n    function SequenceEqualCompareToSubscriber(destination, parent) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        return _this;\n    }\n    SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n        this.parent.nextB(value);\n    };\n    SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n        this.parent.error(err);\n    };\n    SequenceEqualCompareToSubscriber.prototype._complete = function () {\n        this.parent._complete();\n    };\n    return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */\n\nvar SingleSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SingleSubscriber, _super);\n    function SingleSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.seenValue = false;\n        _this.index = 0;\n        return _this;\n    }\n    SingleSubscriber.prototype.applySingleValue = function (value) {\n        if (this.seenValue) {\n            this.destination.error('Sequence contains more than one element');\n        }\n        else {\n            this.seenValue = true;\n            this.singleValue = value;\n        }\n    };\n    SingleSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        if (this.predicate) {\n            this.tryNext(value, index);\n        }\n        else {\n            this.applySingleValue(value);\n        }\n    };\n    SingleSubscriber.prototype.tryNext = function (value, index) {\n        try {\n            if (this.predicate(value, index, this.source)) {\n                this.applySingleValue(value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    SingleSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.index > 0) {\n            destination.next(this.seenValue ? this.singleValue : undefined);\n            destination.complete();\n        }\n        else {\n            destination.error(new EmptyError);\n        }\n    };\n    return SingleSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar SkipSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SkipSubscriber, _super);\n    function SkipSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    SkipSubscriber.prototype._next = function (x) {\n        if (++this.count > this.total) {\n            this.destination.next(x);\n        }\n    };\n    return SkipSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */\n\nvar SkipLastSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SkipLastSubscriber, _super);\n    function SkipLastSubscriber(destination, _skipCount) {\n        var _this = _super.call(this, destination) || this;\n        _this._skipCount = _skipCount;\n        _this._count = 0;\n        _this._ring = new Array(_skipCount);\n        return _this;\n    }\n    SkipLastSubscriber.prototype._next = function (value) {\n        var skipCount = this._skipCount;\n        var count = this._count++;\n        if (count < skipCount) {\n            this._ring[count] = value;\n        }\n        else {\n            var currentIndex = count % skipCount;\n            var ring = this._ring;\n            var oldValue = ring[currentIndex];\n            ring[currentIndex] = value;\n            this.destination.next(oldValue);\n        }\n    };\n    return SkipLastSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SkipUntilSubscriber, _super);\n    function SkipUntilSubscriber(destination, notifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasValue = false;\n        var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n        _this.add(innerSubscriber);\n        _this.innerSubscription = innerSubscriber;\n        subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n        return _this;\n    }\n    SkipUntilSubscriber.prototype._next = function (value) {\n        if (this.hasValue) {\n            _super.prototype._next.call(this, value);\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.hasValue = true;\n        if (this.innerSubscription) {\n            this.innerSubscription.unsubscribe();\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return SkipUntilSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar SkipWhileSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SkipWhileSubscriber, _super);\n    function SkipWhileSubscriber(destination, predicate) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.skipping = true;\n        _this.index = 0;\n        return _this;\n    }\n    SkipWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (this.skipping) {\n            this.tryCallPredicate(value);\n        }\n        if (!this.skipping) {\n            destination.next(value);\n        }\n    };\n    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n        try {\n            var result = this.predicate(value, this.index++);\n            this.skipping = Boolean(result);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    return SkipWhileSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\nvar nextHandle = 1;\nvar tasksByHandle = {};\nfunction runIfPresent(handle) {\n    var cb = tasksByHandle[handle];\n    if (cb) {\n        cb();\n    }\n}\nvar Immediate = {\n    setImmediate: function (cb) {\n        var handle = nextHandle++;\n        tasksByHandle[handle] = cb;\n        Promise.resolve().then(function () { return runIfPresent(handle); });\n        return handle;\n    },\n    clearImmediate: function (handle) {\n        delete tasksByHandle[handle];\n    },\n};\n\n/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */\nvar AsapAction = /*@__PURE__*/ (function (_super) {\n    __extends(AsapAction, _super);\n    function AsapAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        scheduler.actions.push(this);\n        return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n    };\n    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        if (scheduler.actions.length === 0) {\n            Immediate.clearImmediate(id);\n            scheduler.scheduled = undefined;\n        }\n        return undefined;\n    };\n    return AsapAction;\n}(AsyncAction));\n\n/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nvar AsapScheduler = /*@__PURE__*/ (function (_super) {\n    __extends(AsapScheduler, _super);\n    function AsapScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AsapScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsapScheduler;\n}(AsyncScheduler));\n\n/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */\nvar asap = /*@__PURE__*/ new AsapScheduler(AsapAction);\n\n/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */\nvar SubscribeOnObservable = /*@__PURE__*/ (function (_super) {\n    __extends(SubscribeOnObservable, _super);\n    function SubscribeOnObservable(source, delayTime, scheduler) {\n        if (delayTime === void 0) {\n            delayTime = 0;\n        }\n        if (scheduler === void 0) {\n            scheduler = asap;\n        }\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.delayTime = delayTime;\n        _this.scheduler = scheduler;\n        if (!isNumeric(delayTime) || delayTime < 0) {\n            _this.delayTime = 0;\n        }\n        if (!scheduler || typeof scheduler.schedule !== 'function') {\n            _this.scheduler = asap;\n        }\n        return _this;\n    }\n    SubscribeOnObservable.create = function (source, delay, scheduler) {\n        if (delay === void 0) {\n            delay = 0;\n        }\n        if (scheduler === void 0) {\n            scheduler = asap;\n        }\n        return new SubscribeOnObservable(source, delay, scheduler);\n    };\n    SubscribeOnObservable.dispatch = function (arg) {\n        var source = arg.source, subscriber = arg.subscriber;\n        return this.add(source.subscribe(subscriber));\n    };\n    SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n        var delay = this.delayTime;\n        var source = this.source;\n        var scheduler = this.scheduler;\n        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n            source: source, subscriber: subscriber\n        });\n    };\n    return SubscribeOnObservable;\n}(Observable$1));\n\n/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */\n\nvar SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(SwitchMapSubscriber, _super);\n    function SwitchMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.index = 0;\n        return _this;\n    }\n    SwitchMapSubscriber.prototype._next = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (error) {\n            this.destination.error(error);\n            return;\n        }\n        this._innerSub(result, value, index);\n    };\n    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n        }\n        var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n        this.add(innerSubscriber);\n        this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n    };\n    SwitchMapSubscriber.prototype._complete = function () {\n        var innerSubscription = this.innerSubscription;\n        if (!innerSubscription || innerSubscription.closed) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype._unsubscribe = function () {\n        this.innerSubscription = null;\n    };\n    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.innerSubscription = null;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    return SwitchMapSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TakeUntilSubscriber, _super);\n    function TakeUntilSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.seenValue = false;\n        return _this;\n    }\n    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.seenValue = true;\n        this.complete();\n    };\n    TakeUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return TakeUntilSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\n\nvar TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TakeWhileSubscriber, _super);\n    function TakeWhileSubscriber(destination, predicate) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.index = 0;\n        return _this;\n    }\n    TakeWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        var result;\n        try {\n            result = this.predicate(value, this.index++);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this.nextOrComplete(value, result);\n    };\n    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n        var destination = this.destination;\n        if (Boolean(predicateResult)) {\n            destination.next(value);\n        }\n        else {\n            destination.complete();\n        }\n    };\n    return TakeWhileSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\n\nvar ThrottleSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ThrottleSubscriber, _super);\n    function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.durationSelector = durationSelector;\n        _this._leading = _leading;\n        _this._trailing = _trailing;\n        _this._hasValue = false;\n        return _this;\n    }\n    ThrottleSubscriber.prototype._next = function (value) {\n        this._hasValue = true;\n        this._sendValue = value;\n        if (!this._throttled) {\n            if (this._leading) {\n                this.send();\n            }\n            else {\n                this.throttle(value);\n            }\n        }\n    };\n    ThrottleSubscriber.prototype.send = function () {\n        var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n        if (_hasValue) {\n            this.destination.next(_sendValue);\n            this.throttle(_sendValue);\n        }\n        this._hasValue = false;\n        this._sendValue = null;\n    };\n    ThrottleSubscriber.prototype.throttle = function (value) {\n        var duration = this.tryDurationSelector(value);\n        if (duration) {\n            this.add(this._throttled = subscribeToResult(this, duration));\n        }\n    };\n    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n        try {\n            return this.durationSelector(value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return null;\n        }\n    };\n    ThrottleSubscriber.prototype.throttlingDone = function () {\n        var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n        if (_throttled) {\n            _throttled.unsubscribe();\n        }\n        this._throttled = null;\n        if (_trailing) {\n            this.send();\n        }\n    };\n    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.throttlingDone();\n    };\n    ThrottleSubscriber.prototype.notifyComplete = function () {\n        this.throttlingDone();\n    };\n    return ThrottleSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */\n\nvar ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ThrottleTimeSubscriber, _super);\n    function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.duration = duration;\n        _this.scheduler = scheduler;\n        _this.leading = leading;\n        _this.trailing = trailing;\n        _this._hasTrailingValue = false;\n        _this._trailingValue = null;\n        return _this;\n    }\n    ThrottleTimeSubscriber.prototype._next = function (value) {\n        if (this.throttled) {\n            if (this.trailing) {\n                this._trailingValue = value;\n                this._hasTrailingValue = true;\n            }\n        }\n        else {\n            this.add(this.throttled = this.scheduler.schedule(dispatchNext$1, this.duration, { subscriber: this }));\n            if (this.leading) {\n                this.destination.next(value);\n            }\n        }\n    };\n    ThrottleTimeSubscriber.prototype._complete = function () {\n        if (this._hasTrailingValue) {\n            this.destination.next(this._trailingValue);\n            this.destination.complete();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n        var 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    return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext$1(arg) {\n    var subscriber = arg.subscriber;\n    subscriber.clearThrottle();\n}\n\n/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(TimeoutWithSubscriber, _super);\n    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.absoluteTimeout = absoluteTimeout;\n        _this.waitFor = waitFor;\n        _this.withObservable = withObservable;\n        _this.scheduler = scheduler;\n        _this.action = null;\n        _this.scheduleTimeout();\n        return _this;\n    }\n    TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n        var withObservable = subscriber.withObservable;\n        subscriber._unsubscribeAndRecycle();\n        subscriber.add(subscribeToResult(subscriber, withObservable));\n    };\n    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n        var action = this.action;\n        if (action) {\n            this.action = action.schedule(this, this.waitFor);\n        }\n        else {\n            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n        }\n    };\n    TimeoutWithSubscriber.prototype._next = function (value) {\n        if (!this.absoluteTimeout) {\n            this.scheduleTimeout();\n        }\n        _super.prototype._next.call(this, value);\n    };\n    TimeoutWithSubscriber.prototype._unsubscribe = function () {\n        this.action = null;\n        this.scheduler = null;\n        this.withObservable = null;\n    };\n    return TimeoutWithSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar WindowSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.window = new Subject();\n        destination.next(_this.window);\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow();\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this._complete();\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n    };\n    WindowSubscriber.prototype._unsubscribe = function () {\n        this.window = null;\n    };\n    WindowSubscriber.prototype.openWindow = function () {\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var destination = this.destination;\n        var newWindow = this.window = new Subject();\n        destination.next(newWindow);\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */\n\nvar WindowCountSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(WindowCountSubscriber, _super);\n    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowSize = windowSize;\n        _this.startWindowEvery = startWindowEvery;\n        _this.windows = [new Subject()];\n        _this.count = 0;\n        destination.next(_this.windows[0]);\n        return _this;\n    }\n    WindowCountSubscriber.prototype._next = function (value) {\n        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n        var destination = this.destination;\n        var windowSize = this.windowSize;\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len && !this.closed; i++) {\n            windows[i].next(value);\n        }\n        var 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            var window_1 = new Subject();\n            windows.push(window_1);\n            destination.next(window_1);\n        }\n    };\n    WindowCountSubscriber.prototype._error = function (err) {\n        var 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    WindowCountSubscriber.prototype._complete = function () {\n        var 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    WindowCountSubscriber.prototype._unsubscribe = function () {\n        this.count = 0;\n        this.windows = null;\n    };\n    return WindowCountSubscriber;\n}(Subscriber));\n\n/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\n\nvar CountedSubject = /*@__PURE__*/ (function (_super) {\n    __extends(CountedSubject, _super);\n    function CountedSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._numberOfNextedValues = 0;\n        return _this;\n    }\n    CountedSubject.prototype.next = function (value) {\n        this._numberOfNextedValues++;\n        _super.prototype.next.call(this, value);\n    };\n    Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n        get: function () {\n            return this._numberOfNextedValues;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(WindowTimeSubscriber, _super);\n    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowTimeSpan = windowTimeSpan;\n        _this.windowCreationInterval = windowCreationInterval;\n        _this.maxWindowSize = maxWindowSize;\n        _this.scheduler = scheduler;\n        _this.windows = [];\n        var window = _this.openWindow();\n        if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n            var closeState = { subscriber: _this, window: window, context: null };\n            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n        }\n        else {\n            var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n            _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n        }\n        return _this;\n    }\n    WindowTimeSubscriber.prototype._next = function (value) {\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len; i++) {\n            var window_1 = windows[i];\n            if (!window_1.closed) {\n                window_1.next(value);\n                if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n                    this.closeWindow(window_1);\n                }\n            }\n        }\n    };\n    WindowTimeSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            windows.shift().error(err);\n        }\n        this.destination.error(err);\n    };\n    WindowTimeSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            var window_2 = windows.shift();\n            if (!window_2.closed) {\n                window_2.complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowTimeSubscriber.prototype.openWindow = function () {\n        var window = new CountedSubject();\n        this.windows.push(window);\n        var destination = this.destination;\n        destination.next(window);\n        return window;\n    };\n    WindowTimeSubscriber.prototype.closeWindow = function (window) {\n        window.complete();\n        var windows = this.windows;\n        windows.splice(windows.indexOf(window), 1);\n    };\n    return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n    if (window) {\n        subscriber.closeWindow(window);\n    }\n    state.window = subscriber.openWindow();\n    this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n    var window = subscriber.openWindow();\n    var action = this;\n    var context = { action: action, subscription: null };\n    var timeSpanState = { subscriber: subscriber, window: window, context: context };\n    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n    action.add(context.subscription);\n    action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n    var subscriber = state.subscriber, window = state.window, context = state.context;\n    if (context && context.action && context.subscription) {\n        context.action.remove(context.subscription);\n    }\n    subscriber.closeWindow(window);\n}\n\n/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar WindowToggleSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(WindowToggleSubscriber, _super);\n    function WindowToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n        return _this;\n    }\n    WindowToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        if (contexts) {\n            var len = contexts.length;\n            for (var i = 0; i < len; i++) {\n                contexts[i].window.next(value);\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_1 = contexts[index];\n                context_1.window.error(err);\n                context_1.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._error.call(this, err);\n    };\n    WindowToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_2 = contexts[index];\n                context_2.window.complete();\n                context_2.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    WindowToggleSubscriber.prototype._unsubscribe = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_3 = contexts[index];\n                context_3.window.unsubscribe();\n                context_3.subscription.unsubscribe();\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (outerValue === this.openings) {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = tryCatch(closingSelector)(innerValue);\n            if (closingNotifier === errorObject) {\n                return this.error(errorObject.e);\n            }\n            else {\n                var window_1 = new Subject();\n                var subscription = new Subscription();\n                var context_4 = { window: window_1, subscription: subscription };\n                this.contexts.push(context_4);\n                var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n                if (innerSubscription.closed) {\n                    this.closeWindow(this.contexts.length - 1);\n                }\n                else {\n                    innerSubscription.context = context_4;\n                    subscription.add(innerSubscription);\n                }\n                this.destination.next(window_1);\n            }\n        }\n        else {\n            this.closeWindow(this.contexts.indexOf(outerValue));\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyError = function (err) {\n        this.error(err);\n    };\n    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n        if (inner !== this.openSubscription) {\n            this.closeWindow(this.contexts.indexOf(inner.context));\n        }\n    };\n    WindowToggleSubscriber.prototype.closeWindow = function (index) {\n        if (index === -1) {\n            return;\n        }\n        var contexts = this.contexts;\n        var context = contexts[index];\n        var window = context.window, subscription = context.subscription;\n        contexts.splice(index, 1);\n        window.complete();\n        subscription.unsubscribe();\n    };\n    return WindowToggleSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar WindowSubscriber$1 = /*@__PURE__*/ (function (_super) {\n    __extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.closingSelector = closingSelector;\n        _this.openWindow();\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n        if (this.closingNotification) {\n            this.closingNotification.unsubscribe();\n        }\n    };\n    WindowSubscriber.prototype.openWindow = function (innerSub) {\n        if (innerSub === void 0) {\n            innerSub = null;\n        }\n        if (innerSub) {\n            this.remove(innerSub);\n            innerSub.unsubscribe();\n        }\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var window = this.window = new Subject();\n        this.destination.next(window);\n        var closingNotifier = tryCatch(this.closingSelector)();\n        if (closingNotifier === errorObject) {\n            var err = errorObject.e;\n            this.destination.error(err);\n            this.window.error(err);\n        }\n        else {\n            this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n        }\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\n\nvar WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(WithLatestFromSubscriber, _super);\n    function WithLatestFromSubscriber(destination, observables, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.observables = observables;\n        _this.project = project;\n        _this.toRespond = [];\n        var len = observables.length;\n        _this.values = new Array(len);\n        for (var i = 0; i < len; i++) {\n            _this.toRespond.push(i);\n        }\n        for (var i = 0; i < len; i++) {\n            var observable = observables[i];\n            _this.add(subscribeToResult(_this, observable, observable, i));\n        }\n        return _this;\n    }\n    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values[outerIndex] = innerValue;\n        var toRespond = this.toRespond;\n        if (toRespond.length > 0) {\n            var found = toRespond.indexOf(outerIndex);\n            if (found !== -1) {\n                toRespond.splice(found, 1);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype.notifyComplete = function () {\n    };\n    WithLatestFromSubscriber.prototype._next = function (value) {\n        if (this.toRespond.length === 0) {\n            var args = [value].concat(this.values);\n            if (this.project) {\n                this._tryProject(args);\n            }\n            else {\n                this.destination.next(args);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype._tryProject = function (args) {\n        var result;\n        try {\n            result = this.project.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return WithLatestFromSubscriber;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */\n\nvar ZipSubscriber = /*@__PURE__*/ (function (_super) {\n    __extends(ZipSubscriber, _super);\n    function ZipSubscriber(destination, resultSelector, values) {\n        if (values === void 0) {\n            values = Object.create(null);\n        }\n        var _this = _super.call(this, destination) || this;\n        _this.iterators = [];\n        _this.active = 0;\n        _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n        _this.values = values;\n        return _this;\n    }\n    ZipSubscriber.prototype._next = function (value) {\n        var iterators = this.iterators;\n        if (isArray(value)) {\n            iterators.push(new StaticArrayIterator(value));\n        }\n        else if (typeof value[iterator] === 'function') {\n            iterators.push(new StaticIterator(value[iterator]()));\n        }\n        else {\n            iterators.push(new ZipBufferIterator(this.destination, this, value));\n        }\n    };\n    ZipSubscriber.prototype._complete = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        if (len === 0) {\n            this.destination.complete();\n            return;\n        }\n        this.active = len;\n        for (var i = 0; i < len; i++) {\n            var iterator$$1 = iterators[i];\n            if (iterator$$1.stillUnsubscribed) {\n                this.add(iterator$$1.subscribe(iterator$$1, i));\n            }\n            else {\n                this.active--;\n            }\n        }\n    };\n    ZipSubscriber.prototype.notifyInactive = function () {\n        this.active--;\n        if (this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ZipSubscriber.prototype.checkIterators = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        var destination = this.destination;\n        for (var i = 0; i < len; i++) {\n            var iterator$$1 = iterators[i];\n            if (typeof iterator$$1.hasValue === 'function' && !iterator$$1.hasValue()) {\n                return;\n            }\n        }\n        var shouldComplete = false;\n        var args = [];\n        for (var i = 0; i < len; i++) {\n            var iterator$$1 = iterators[i];\n            var result = iterator$$1.next();\n            if (iterator$$1.hasCompleted()) {\n                shouldComplete = true;\n            }\n            if (result.done) {\n                destination.complete();\n                return;\n            }\n            args.push(result.value);\n        }\n        if (this.resultSelector) {\n            this._tryresultSelector(args);\n        }\n        else {\n            destination.next(args);\n        }\n        if (shouldComplete) {\n            destination.complete();\n        }\n    };\n    ZipSubscriber.prototype._tryresultSelector = function (args) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return ZipSubscriber;\n}(Subscriber));\nvar StaticIterator = /*@__PURE__*/ (function () {\n    function StaticIterator(iterator$$1) {\n        this.iterator = iterator$$1;\n        this.nextResult = iterator$$1.next();\n    }\n    StaticIterator.prototype.hasValue = function () {\n        return true;\n    };\n    StaticIterator.prototype.next = function () {\n        var result = this.nextResult;\n        this.nextResult = this.iterator.next();\n        return result;\n    };\n    StaticIterator.prototype.hasCompleted = function () {\n        var nextResult = this.nextResult;\n        return nextResult && nextResult.done;\n    };\n    return StaticIterator;\n}());\nvar StaticArrayIterator = /*@__PURE__*/ (function () {\n    function StaticArrayIterator(array) {\n        this.array = array;\n        this.index = 0;\n        this.length = 0;\n        this.length = array.length;\n    }\n    StaticArrayIterator.prototype[iterator] = function () {\n        return this;\n    };\n    StaticArrayIterator.prototype.next = function (value) {\n        var i = this.index++;\n        var array = this.array;\n        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n    };\n    StaticArrayIterator.prototype.hasValue = function () {\n        return this.array.length > this.index;\n    };\n    StaticArrayIterator.prototype.hasCompleted = function () {\n        return this.array.length === this.index;\n    };\n    return StaticArrayIterator;\n}());\nvar ZipBufferIterator = /*@__PURE__*/ (function (_super) {\n    __extends(ZipBufferIterator, _super);\n    function ZipBufferIterator(destination, parent, observable) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        _this.observable = observable;\n        _this.stillUnsubscribed = true;\n        _this.buffer = [];\n        _this.isComplete = false;\n        return _this;\n    }\n    ZipBufferIterator.prototype[iterator] = function () {\n        return this;\n    };\n    ZipBufferIterator.prototype.next = function () {\n        var buffer = this.buffer;\n        if (buffer.length === 0 && this.isComplete) {\n            return { value: null, done: true };\n        }\n        else {\n            return { value: buffer.shift(), done: false };\n        }\n    };\n    ZipBufferIterator.prototype.hasValue = function () {\n        return this.buffer.length > 0;\n    };\n    ZipBufferIterator.prototype.hasCompleted = function () {\n        return this.buffer.length === 0 && this.isComplete;\n    };\n    ZipBufferIterator.prototype.notifyComplete = function () {\n        if (this.buffer.length > 0) {\n            this.isComplete = true;\n            this.parent.notifyInactive();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.buffer.push(innerValue);\n        this.parent.checkIterators();\n    };\n    ZipBufferIterator.prototype.subscribe = function (value, index) {\n        return subscribeToResult(this, this.observable, this, index);\n    };\n    return ZipBufferIterator;\n}(OuterSubscriber));\n\n/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\n\n/** PURE_IMPORTS_START  PURE_IMPORTS_END */\n\n/**\n * @license Angular v6.1.6\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n *\n */\nvar HttpHandler = /** @class */ (function () {\n    function HttpHandler() {\n    }\n    return HttpHandler;\n}());\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n *\n */\nvar HttpBackend = /** @class */ (function () {\n    function HttpBackend() {\n    }\n    return HttpBackend;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Immutable set of Http headers, with lazy parsing.\n *\n */\nvar HttpHeaders = /** @class */ (function () {\n    function HttpHeaders(headers) {\n        var _this = this;\n        /**\n         * Internal map of lowercased header names to the normalized\n         * form of the name (the form seen first).\n         */\n        this.normalizedNames = new Map();\n        /**\n         * Queued updates to be materialized the next initialization.\n         */\n        this.lazyUpdate = null;\n        if (!headers) {\n            this.headers = new Map();\n        }\n        else if (typeof headers === 'string') {\n            this.lazyInit = function () {\n                _this.headers = new Map();\n                headers.split('\\n').forEach(function (line) {\n                    var index = line.indexOf(':');\n                    if (index > 0) {\n                        var name_1 = line.slice(0, index);\n                        var key = name_1.toLowerCase();\n                        var value = line.slice(index + 1).trim();\n                        _this.maybeSetNormalizedName(name_1, key);\n                        if (_this.headers.has(key)) {\n                            _this.headers.get(key).push(value);\n                        }\n                        else {\n                            _this.headers.set(key, [value]);\n                        }\n                    }\n                });\n            };\n        }\n        else {\n            this.lazyInit = function () {\n                _this.headers = new Map();\n                Object.keys(headers).forEach(function (name) {\n                    var values = headers[name];\n                    var key = name.toLowerCase();\n                    if (typeof values === 'string') {\n                        values = [values];\n                    }\n                    if (values.length > 0) {\n                        _this.headers.set(key, values);\n                        _this.maybeSetNormalizedName(name, key);\n                    }\n                });\n            };\n        }\n    }\n    /**\n     * Checks for existence of header by given name.\n     */\n    HttpHeaders.prototype.has = function (name) {\n        this.init();\n        return this.headers.has(name.toLowerCase());\n    };\n    /**\n     * Returns first header that matches given name.\n     */\n    HttpHeaders.prototype.get = function (name) {\n        this.init();\n        var values = this.headers.get(name.toLowerCase());\n        return values && values.length > 0 ? values[0] : null;\n    };\n    /**\n     * Returns the names of the headers\n     */\n    HttpHeaders.prototype.keys = function () {\n        this.init();\n        return Array.from(this.normalizedNames.values());\n    };\n    /**\n     * Returns list of header values for a given name.\n     */\n    HttpHeaders.prototype.getAll = function (name) {\n        this.init();\n        return this.headers.get(name.toLowerCase()) || null;\n    };\n    HttpHeaders.prototype.append = function (name, value) {\n        return this.clone({ name: name, value: value, op: 'a' });\n    };\n    HttpHeaders.prototype.set = function (name, value) {\n        return this.clone({ name: name, value: value, op: 's' });\n    };\n    HttpHeaders.prototype.delete = function (name, value) {\n        return this.clone({ name: name, value: value, op: 'd' });\n    };\n    HttpHeaders.prototype.maybeSetNormalizedName = function (name, lcName) {\n        if (!this.normalizedNames.has(lcName)) {\n            this.normalizedNames.set(lcName, name);\n        }\n    };\n    HttpHeaders.prototype.init = function () {\n        var _this = this;\n        if (!!this.lazyInit) {\n            if (this.lazyInit instanceof HttpHeaders) {\n                this.copyFrom(this.lazyInit);\n            }\n            else {\n                this.lazyInit();\n            }\n            this.lazyInit = null;\n            if (!!this.lazyUpdate) {\n                this.lazyUpdate.forEach(function (update) { return _this.applyUpdate(update); });\n                this.lazyUpdate = null;\n            }\n        }\n    };\n    HttpHeaders.prototype.copyFrom = function (other) {\n        var _this = this;\n        other.init();\n        Array.from(other.headers.keys()).forEach(function (key) {\n            _this.headers.set(key, other.headers.get(key));\n            _this.normalizedNames.set(key, other.normalizedNames.get(key));\n        });\n    };\n    HttpHeaders.prototype.clone = function (update) {\n        var clone = new HttpHeaders();\n        clone.lazyInit =\n            (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n        clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n        return clone;\n    };\n    HttpHeaders.prototype.applyUpdate = function (update) {\n        var key = update.name.toLowerCase();\n        switch (update.op) {\n            case 'a':\n            case 's':\n                var value = update.value;\n                if (typeof value === 'string') {\n                    value = [value];\n                }\n                if (value.length === 0) {\n                    return;\n                }\n                this.maybeSetNormalizedName(update.name, key);\n                var base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n                base.push.apply(base, __spread(value));\n                this.headers.set(key, base);\n                break;\n            case 'd':\n                var toDelete_1 = update.value;\n                if (!toDelete_1) {\n                    this.headers.delete(key);\n                    this.normalizedNames.delete(key);\n                }\n                else {\n                    var existing = this.headers.get(key);\n                    if (!existing) {\n                        return;\n                    }\n                    existing = existing.filter(function (value) { return toDelete_1.indexOf(value) === -1; });\n                    if (existing.length === 0) {\n                        this.headers.delete(key);\n                        this.normalizedNames.delete(key);\n                    }\n                    else {\n                        this.headers.set(key, existing);\n                    }\n                }\n                break;\n        }\n    };\n    /**\n     * @internal\n     */\n    HttpHeaders.prototype.forEach = function (fn) {\n        var _this = this;\n        this.init();\n        Array.from(this.normalizedNames.keys())\n            .forEach(function (key) { return fn(_this.normalizedNames.get(key), _this.headers.get(key)); });\n    };\n    return HttpHeaders;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A `HttpParameterCodec` that uses `encodeURIComponent` and `decodeURIComponent` to\n * serialize and parse URL parameter keys and values.\n *\n *\n */\nvar HttpUrlEncodingCodec = /** @class */ (function () {\n    function HttpUrlEncodingCodec() {\n    }\n    HttpUrlEncodingCodec.prototype.encodeKey = function (key) { return standardEncoding(key); };\n    HttpUrlEncodingCodec.prototype.encodeValue = function (value) { return standardEncoding(value); };\n    HttpUrlEncodingCodec.prototype.decodeKey = function (key) { return decodeURIComponent(key); };\n    HttpUrlEncodingCodec.prototype.decodeValue = function (value) { return decodeURIComponent(value); };\n    return HttpUrlEncodingCodec;\n}());\nfunction paramParser(rawParams, codec) {\n    var map$$1 = new Map();\n    if (rawParams.length > 0) {\n        var params = rawParams.split('&');\n        params.forEach(function (param) {\n            var eqIdx = param.indexOf('=');\n            var _a = __read(eqIdx == -1 ?\n                [codec.decodeKey(param), ''] :\n                [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))], 2), key = _a[0], val = _a[1];\n            var list = map$$1.get(key) || [];\n            list.push(val);\n            map$$1.set(key, list);\n        });\n    }\n    return map$$1;\n}\nfunction standardEncoding(v) {\n    return encodeURIComponent(v)\n        .replace(/%40/gi, '@')\n        .replace(/%3A/gi, ':')\n        .replace(/%24/gi, '$')\n        .replace(/%2C/gi, ',')\n        .replace(/%3B/gi, ';')\n        .replace(/%2B/gi, '+')\n        .replace(/%3D/gi, '=')\n        .replace(/%3F/gi, '?')\n        .replace(/%2F/gi, '/');\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable - all mutation operations return a new instance.\n *\n *\n */\nvar HttpParams = /** @class */ (function () {\n    function HttpParams(options) {\n        if (options === void 0) { options = {}; }\n        var _this = this;\n        this.updates = null;\n        this.cloneFrom = null;\n        this.encoder = options.encoder || new HttpUrlEncodingCodec();\n        if (!!options.fromString) {\n            if (!!options.fromObject) {\n                throw new Error(\"Cannot specify both fromString and fromObject.\");\n            }\n            this.map = paramParser(options.fromString, this.encoder);\n        }\n        else if (!!options.fromObject) {\n            this.map = new Map();\n            Object.keys(options.fromObject).forEach(function (key) {\n                var value = options.fromObject[key];\n                _this.map.set(key, Array.isArray(value) ? value : [value]);\n            });\n        }\n        else {\n            this.map = null;\n        }\n    }\n    /**\n     * Check whether the body has one or more values for the given parameter name.\n     */\n    HttpParams.prototype.has = function (param) {\n        this.init();\n        return this.map.has(param);\n    };\n    /**\n     * Get the first value for the given parameter name, or `null` if it's not present.\n     */\n    HttpParams.prototype.get = function (param) {\n        this.init();\n        var res = this.map.get(param);\n        return !!res ? res[0] : null;\n    };\n    /**\n     * Get all values for the given parameter name, or `null` if it's not present.\n     */\n    HttpParams.prototype.getAll = function (param) {\n        this.init();\n        return this.map.get(param) || null;\n    };\n    /**\n     * Get all the parameter names for this body.\n     */\n    HttpParams.prototype.keys = function () {\n        this.init();\n        return Array.from(this.map.keys());\n    };\n    /**\n     * Construct a new body with an appended value for the given parameter name.\n     */\n    HttpParams.prototype.append = function (param, value) { return this.clone({ param: param, value: value, op: 'a' }); };\n    /**\n     * Construct a new body with a new value for the given parameter name.\n     */\n    HttpParams.prototype.set = function (param, value) { return this.clone({ param: param, value: value, op: 's' }); };\n    /**\n     * Construct a new body with either the given value for the given parameter\n     * removed, if a value is given, or all values for the given parameter removed\n     * if not.\n     */\n    HttpParams.prototype.delete = function (param, value) { return this.clone({ param: param, value: value, op: 'd' }); };\n    /**\n     * Serialize the body to an encoded string, where key-value pairs (separated by `=`) are\n     * separated by `&`s.\n     */\n    HttpParams.prototype.toString = function () {\n        var _this = this;\n        this.init();\n        return this.keys()\n            .map(function (key) {\n            var eKey = _this.encoder.encodeKey(key);\n            return _this.map.get(key).map(function (value) { return eKey + '=' + _this.encoder.encodeValue(value); })\n                .join('&');\n        })\n            .join('&');\n    };\n    HttpParams.prototype.clone = function (update) {\n        var clone = new HttpParams({ encoder: this.encoder });\n        clone.cloneFrom = this.cloneFrom || this;\n        clone.updates = (this.updates || []).concat([update]);\n        return clone;\n    };\n    HttpParams.prototype.init = function () {\n        var _this = this;\n        if (this.map === null) {\n            this.map = new Map();\n        }\n        if (this.cloneFrom !== null) {\n            this.cloneFrom.init();\n            this.cloneFrom.keys().forEach(function (key) { return _this.map.set(key, _this.cloneFrom.map.get(key)); });\n            this.updates.forEach(function (update) {\n                switch (update.op) {\n                    case 'a':\n                    case 's':\n                        var base = (update.op === 'a' ? _this.map.get(update.param) : undefined) || [];\n                        base.push(update.value);\n                        _this.map.set(update.param, base);\n                        break;\n                    case 'd':\n                        if (update.value !== undefined) {\n                            var base_1 = _this.map.get(update.param) || [];\n                            var idx = base_1.indexOf(update.value);\n                            if (idx !== -1) {\n                                base_1.splice(idx, 1);\n                            }\n                            if (base_1.length > 0) {\n                                _this.map.set(update.param, base_1);\n                            }\n                            else {\n                                _this.map.delete(update.param);\n                            }\n                        }\n                        else {\n                            _this.map.delete(update.param);\n                            break;\n                        }\n                }\n            });\n            this.cloneFrom = null;\n        }\n    };\n    return HttpParams;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n    switch (method) {\n        case 'DELETE':\n        case 'GET':\n        case 'HEAD':\n        case 'OPTIONS':\n        case 'JSONP':\n            return false;\n        default:\n            return true;\n    }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n    return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n    return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n    return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n *\n */\nvar HttpRequest = /** @class */ (function () {\n    function HttpRequest(method, url, third, fourth) {\n        this.url = url;\n        /**\n         * The request body, or `null` if one isn't set.\n         *\n         * Bodies are not enforced to be immutable, as they can include a reference to any\n         * user-defined data type. However, interceptors should take care to preserve\n         * idempotence by treating them as such.\n         */\n        this.body = null;\n        /**\n         * Whether this request should be made in a way that exposes progress events.\n         *\n         * Progress events are expensive (change detection runs on each event) and so\n         * they should only be requested if the consumer intends to monitor them.\n         */\n        this.reportProgress = false;\n        /**\n         * Whether this request should be sent with outgoing credentials (cookies).\n         */\n        this.withCredentials = false;\n        /**\n         * The expected response type of the server.\n         *\n         * This is used to parse the response appropriately before returning it to\n         * the requestee.\n         */\n        this.responseType = 'json';\n        this.method = method.toUpperCase();\n        // Next, need to figure out which argument holds the HttpRequestInit\n        // options, if any.\n        var options;\n        // Check whether a body argument is expected. The only valid way to omit\n        // the body argument is to use a known no-body method like GET.\n        if (mightHaveBody(this.method) || !!fourth) {\n            // Body is the third argument, options are the fourth.\n            this.body = (third !== undefined) ? third : null;\n            options = fourth;\n        }\n        else {\n            // No body required, options are the third argument. The body stays null.\n            options = third;\n        }\n        // If options have been passed, interpret them.\n        if (options) {\n            // Normalize reportProgress and withCredentials.\n            this.reportProgress = !!options.reportProgress;\n            this.withCredentials = !!options.withCredentials;\n            // Override default response type of 'json' if one is provided.\n            if (!!options.responseType) {\n                this.responseType = options.responseType;\n            }\n            // Override headers if they're provided.\n            if (!!options.headers) {\n                this.headers = options.headers;\n            }\n            if (!!options.params) {\n                this.params = options.params;\n            }\n        }\n        // If no headers have been passed in, construct a new HttpHeaders instance.\n        if (!this.headers) {\n            this.headers = new HttpHeaders();\n        }\n        // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n        if (!this.params) {\n            this.params = new HttpParams();\n            this.urlWithParams = url;\n        }\n        else {\n            // Encode the parameters to a string in preparation for inclusion in the URL.\n            var params = this.params.toString();\n            if (params.length === 0) {\n                // No parameters, the visible URL is just the URL given at creation time.\n                this.urlWithParams = url;\n            }\n            else {\n                // Does the URL already have query parameters? Look for '?'.\n                var qIdx = url.indexOf('?');\n                // There are 3 cases to handle:\n                // 1) No existing parameters -> append '?' followed by params.\n                // 2) '?' exists and is followed by existing query string ->\n                //    append '&' followed by params.\n                // 3) '?' exists at the end of the url -> append params directly.\n                // This basically amounts to determining the character, if any, with\n                // which to join the URL and parameters.\n                var sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n                this.urlWithParams = url + sep + params;\n            }\n        }\n    }\n    /**\n     * Transform the free-form body into a serialized format suitable for\n     * transmission to the server.\n     */\n    HttpRequest.prototype.serializeBody = function () {\n        // If no body is present, no need to serialize it.\n        if (this.body === null) {\n            return null;\n        }\n        // Check whether the body is already in a serialized form. If so,\n        // it can just be returned directly.\n        if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n            typeof this.body === 'string') {\n            return this.body;\n        }\n        // Check whether the body is an instance of HttpUrlEncodedParams.\n        if (this.body instanceof HttpParams) {\n            return this.body.toString();\n        }\n        // Check whether the body is an object or array, and serialize with JSON if so.\n        if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n            Array.isArray(this.body)) {\n            return JSON.stringify(this.body);\n        }\n        // Fall back on toString() for everything else.\n        return this.body.toString();\n    };\n    /**\n     * Examine the body and attempt to infer an appropriate MIME type\n     * for it.\n     *\n     * If no such type can be inferred, this method will return `null`.\n     */\n    HttpRequest.prototype.detectContentTypeHeader = function () {\n        // An empty body has no content type.\n        if (this.body === null) {\n            return null;\n        }\n        // FormData bodies rely on the browser's content type assignment.\n        if (isFormData(this.body)) {\n            return null;\n        }\n        // Blobs usually have their own content type. If it doesn't, then\n        // no type can be inferred.\n        if (isBlob(this.body)) {\n            return this.body.type || null;\n        }\n        // Array buffers have unknown contents and thus no type can be inferred.\n        if (isArrayBuffer(this.body)) {\n            return null;\n        }\n        // Technically, strings could be a form of JSON data, but it's safe enough\n        // to assume they're plain strings.\n        if (typeof this.body === 'string') {\n            return 'text/plain';\n        }\n        // `HttpUrlEncodedParams` has its own content-type.\n        if (this.body instanceof HttpParams) {\n            return 'application/x-www-form-urlencoded;charset=UTF-8';\n        }\n        // Arrays, objects, and numbers will be encoded as JSON.\n        if (typeof this.body === 'object' || typeof this.body === 'number' ||\n            Array.isArray(this.body)) {\n            return 'application/json';\n        }\n        // No type could be inferred.\n        return null;\n    };\n    HttpRequest.prototype.clone = function (update) {\n        if (update === void 0) { update = {}; }\n        // For method, url, and responseType, take the current value unless\n        // it is overridden in the update hash.\n        var method = update.method || this.method;\n        var url = update.url || this.url;\n        var responseType = update.responseType || this.responseType;\n        // The body is somewhat special - a `null` value in update.body means\n        // whatever current body is present is being overridden with an empty\n        // body, whereas an `undefined` value in update.body implies no\n        // override.\n        var body = (update.body !== undefined) ? update.body : this.body;\n        // Carefully handle the boolean options to differentiate between\n        // `false` and `undefined` in the update args.\n        var withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n        var reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n        // Headers and params may be appended to if `setHeaders` or\n        // `setParams` are used.\n        var headers = update.headers || this.headers;\n        var params = update.params || this.params;\n        // Check whether the caller has asked to add headers.\n        if (update.setHeaders !== undefined) {\n            // Set every requested header.\n            headers =\n                Object.keys(update.setHeaders)\n                    .reduce(function (headers, name) { return headers.set(name, update.setHeaders[name]); }, headers);\n        }\n        // Check whether the caller has asked to set params.\n        if (update.setParams) {\n            // Set every requested param.\n            params = Object.keys(update.setParams)\n                .reduce(function (params, param) { return params.set(param, update.setParams[param]); }, params);\n        }\n        // Finally, construct the new HttpRequest using the pieces from above.\n        return new HttpRequest(method, url, body, {\n            params: params, headers: headers, reportProgress: reportProgress, responseType: responseType, withCredentials: withCredentials,\n        });\n    };\n    return HttpRequest;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n *\n */\nvar HttpEventType;\n(function (HttpEventType) {\n    /**\n     * The request was sent out over the wire.\n     */\n    HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n    /**\n     * An upload progress event was received.\n     */\n    HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n    /**\n     * The response status code and headers were received.\n     */\n    HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n    /**\n     * A download progress event was received.\n     */\n    HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n    /**\n     * The full response including the body was received.\n     */\n    HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n    /**\n     * A custom event from an interceptor or a backend.\n     */\n    HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n *\n */\nvar HttpResponseBase = /** @class */ (function () {\n    /**\n     * Super-constructor for all responses.\n     *\n     * The single parameter accepted is an initialization hash. Any properties\n     * of the response passed there will override the default values.\n     */\n    function HttpResponseBase(init, defaultStatus, defaultStatusText) {\n        if (defaultStatus === void 0) { defaultStatus = 200; }\n        if (defaultStatusText === void 0) { defaultStatusText = 'OK'; }\n        // If the hash has values passed, use them to initialize the response.\n        // Otherwise use the default values.\n        this.headers = init.headers || new HttpHeaders();\n        this.status = init.status !== undefined ? init.status : defaultStatus;\n        this.statusText = init.statusText || defaultStatusText;\n        this.url = init.url || null;\n        // Cache the ok value to avoid defining a getter.\n        this.ok = this.status >= 200 && this.status < 300;\n    }\n    return HttpResponseBase;\n}());\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n *\n */\nvar HttpHeaderResponse = /** @class */ (function (_super) {\n    __extends(HttpHeaderResponse, _super);\n    /**\n     * Create a new `HttpHeaderResponse` with the given parameters.\n     */\n    function HttpHeaderResponse(init) {\n        if (init === void 0) { init = {}; }\n        var _this = _super.call(this, init) || this;\n        _this.type = HttpEventType.ResponseHeader;\n        return _this;\n    }\n    /**\n     * Copy this `HttpHeaderResponse`, overriding its contents with the\n     * given parameter hash.\n     */\n    HttpHeaderResponse.prototype.clone = function (update) {\n        if (update === void 0) { update = {}; }\n        // Perform a straightforward initialization of the new HttpHeaderResponse,\n        // overriding the current parameters with new ones if given.\n        return new HttpHeaderResponse({\n            headers: update.headers || this.headers,\n            status: update.status !== undefined ? update.status : this.status,\n            statusText: update.statusText || this.statusText,\n            url: update.url || this.url || undefined,\n        });\n    };\n    return HttpHeaderResponse;\n}(HttpResponseBase));\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n *\n */\nvar HttpResponse = /** @class */ (function (_super) {\n    __extends(HttpResponse, _super);\n    /**\n     * Construct a new `HttpResponse`.\n     */\n    function HttpResponse(init) {\n        if (init === void 0) { init = {}; }\n        var _this = _super.call(this, init) || this;\n        _this.type = HttpEventType.Response;\n        _this.body = init.body !== undefined ? init.body : null;\n        return _this;\n    }\n    HttpResponse.prototype.clone = function (update) {\n        if (update === void 0) { update = {}; }\n        return new HttpResponse({\n            body: (update.body !== undefined) ? update.body : this.body,\n            headers: update.headers || this.headers,\n            status: (update.status !== undefined) ? update.status : this.status,\n            statusText: update.statusText || this.statusText,\n            url: update.url || this.url || undefined,\n        });\n    };\n    return HttpResponse;\n}(HttpResponseBase));\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n *\n */\nvar HttpErrorResponse = /** @class */ (function (_super) {\n    __extends(HttpErrorResponse, _super);\n    function HttpErrorResponse(init) {\n        var _this = \n        // Initialize with a default status of 0 / Unknown Error.\n        _super.call(this, init, 0, 'Unknown Error') || this;\n        _this.name = 'HttpErrorResponse';\n        /**\n         * Errors are never okay, even when the status code is in the 2xx success range.\n         */\n        _this.ok = false;\n        // If the response was successful, then this was a parse error. Otherwise, it was\n        // a protocol-level failure of some sort. Either the request failed in transit\n        // or the server returned an unsuccessful status code.\n        if (_this.status >= 200 && _this.status < 300) {\n            _this.message = \"Http failure during parsing for \" + (init.url || '(unknown url)');\n        }\n        else {\n            _this.message =\n                \"Http failure response for \" + (init.url || '(unknown url)') + \": \" + init.status + \" \" + init.statusText;\n        }\n        _this.error = init.error || null;\n        return _this;\n    }\n    return HttpErrorResponse;\n}(HttpResponseBase));\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Construct an instance of `HttpRequestOptions<T>` from a source `HttpMethodOptions` and\n * the given `body`. Basically, this clones the object and adds the body.\n */\nfunction addBody(options, body) {\n    return {\n        body: body,\n        headers: options.headers,\n        observe: options.observe,\n        params: options.params,\n        reportProgress: options.reportProgress,\n        responseType: options.responseType,\n        withCredentials: options.withCredentials,\n    };\n}\n/**\n * Perform HTTP requests.\n *\n * `HttpClient` is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies according to which\n * signature is called (mainly the values of `observe` and `responseType`).\n *\n *\n */\nvar HttpClient = /** @class */ (function () {\n    function HttpClient(handler) {\n        this.handler = handler;\n    }\n    /**\n     * Constructs an `Observable` for a particular HTTP request that, when subscribed,\n     * fires the request through the chain of registered interceptors and on to the\n     * server.\n     *\n     * This method can be called in one of two ways. Either an `HttpRequest`\n     * instance can be passed directly as the only parameter, or a method can be\n     * passed as the first parameter, a string URL as the second, and an\n     * options hash as the third.\n     *\n     * If a `HttpRequest` object is passed directly, an `Observable` of the\n     * raw `HttpEvent` stream will be returned.\n     *\n     * If a request is instead built by providing a URL, the options object\n     * determines the return type of `request()`. In addition to configuring\n     * request parameters such as the outgoing headers and/or the body, the options\n     * hash specifies two key pieces of information about the request: the\n     * `responseType` and what to `observe`.\n     *\n     * The `responseType` value determines how a successful response body will be\n     * parsed. If `responseType` is the default `json`, a type interface for the\n     * resulting object may be passed as a type parameter to `request()`.\n     *\n     * The `observe` value determines the return type of `request()`, based on what\n     * the consumer is interested in observing. A value of `events` will return an\n     * `Observable<HttpEvent>` representing the raw `HttpEvent` stream,\n     * including progress events by default. A value of `response` will return an\n     * `Observable<HttpResponse<T>>` where the `T` parameter of `HttpResponse`\n     * depends on the `responseType` and any optionally provided type parameter.\n     * A value of `body` will return an `Observable<T>` with the same `T` body type.\n     */\n    HttpClient.prototype.request = function (first, url, options) {\n        var _this = this;\n        if (options === void 0) { options = {}; }\n        var req;\n        // Firstly, check whether the primary argument is an instance of `HttpRequest`.\n        if (first instanceof HttpRequest) {\n            // It is. The other arguments must be undefined (per the signatures) and can be\n            // ignored.\n            req = first;\n        }\n        else {\n            // It's a string, so it represents a URL. Construct a request based on it,\n            // and incorporate the remaining arguments (assuming GET unless a method is\n            // provided.\n            // Figure out the headers.\n            var headers = undefined;\n            if (options.headers instanceof HttpHeaders) {\n                headers = options.headers;\n            }\n            else {\n                headers = new HttpHeaders(options.headers);\n            }\n            // Sort out parameters.\n            var params = undefined;\n            if (!!options.params) {\n                if (options.params instanceof HttpParams) {\n                    params = options.params;\n                }\n                else {\n                    params = new HttpParams({ fromObject: options.params });\n                }\n            }\n            // Construct the request.\n            req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n                headers: headers,\n                params: params,\n                reportProgress: options.reportProgress,\n                // By default, JSON is assumed to be returned for all calls.\n                responseType: options.responseType || 'json',\n                withCredentials: options.withCredentials,\n            });\n        }\n        // Start with an Observable.of() the initial request, and run the handler (which\n        // includes all interceptors) inside a concatMap(). This way, the handler runs\n        // inside an Observable chain, which causes interceptors to be re-run on every\n        // subscription (this also makes retries re-run the handler, including interceptors).\n        var events$ = rxjs.of(req).pipe(concatMap(function (req) { return _this.handler.handle(req); }));\n        // If coming via the API signature which accepts a previously constructed HttpRequest,\n        // the only option is to get the event stream. Otherwise, return the event stream if\n        // that is what was requested.\n        if (first instanceof HttpRequest || options.observe === 'events') {\n            return events$;\n        }\n        // The requested stream contains either the full response or the body. In either\n        // case, the first step is to filter the event stream to extract a stream of\n        // responses(s).\n        var res$ = events$.pipe(filter(function (event) { return event instanceof HttpResponse; }));\n        // Decide which stream to return.\n        switch (options.observe || 'body') {\n            case 'body':\n                // The requested stream is the body. Map the response stream to the response\n                // body. This could be done more simply, but a misbehaving interceptor might\n                // transform the response body into a different format and ignore the requested\n                // responseType. Guard against this by validating that the response is of the\n                // requested type.\n                switch (req.responseType) {\n                    case 'arraybuffer':\n                        return res$.pipe(map(function (res) {\n                            // Validate that the body is an ArrayBuffer.\n                            if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n                                throw new Error('Response is not an ArrayBuffer.');\n                            }\n                            return res.body;\n                        }));\n                    case 'blob':\n                        return res$.pipe(map(function (res) {\n                            // Validate that the body is a Blob.\n                            if (res.body !== null && !(res.body instanceof Blob)) {\n                                throw new Error('Response is not a Blob.');\n                            }\n                            return res.body;\n                        }));\n                    case 'text':\n                        return res$.pipe(map(function (res) {\n                            // Validate that the body is a string.\n                            if (res.body !== null && typeof res.body !== 'string') {\n                                throw new Error('Response is not a string.');\n                            }\n                            return res.body;\n                        }));\n                    case 'json':\n                    default:\n                        // No validation needed for JSON responses, as they can be of any type.\n                        return res$.pipe(map(function (res) { return res.body; }));\n                }\n            case 'response':\n                // The response stream was requested directly, so return it.\n                return res$;\n            default:\n                // Guard against new future observe types being added.\n                throw new Error(\"Unreachable: unhandled observe type \" + options.observe + \"}\");\n        }\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * DELETE request to be executed on the server. See the individual overloads for\n     * details of `delete()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.delete = function (url, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('DELETE', url, options);\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * GET request to be executed on the server. See the individual overloads for\n     * details of `get()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.get = function (url, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('GET', url, options);\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * HEAD request to be executed on the server. See the individual overloads for\n     * details of `head()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.head = function (url, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('HEAD', url, options);\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause a request\n     * with the special method `JSONP` to be dispatched via the interceptor pipeline.\n     *\n     * A suitable interceptor must be installed (e.g. via the `HttpClientJsonpModule`).\n     * If no such interceptor is reached, then the `JSONP` request will likely be\n     * rejected by the configured backend.\n     */\n    HttpClient.prototype.jsonp = function (url, callbackParam) {\n        return this.request('JSONP', url, {\n            params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n            observe: 'body',\n            responseType: 'json',\n        });\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * OPTIONS request to be executed on the server. See the individual overloads for\n     * details of `options()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.options = function (url, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('OPTIONS', url, options);\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * PATCH request to be executed on the server. See the individual overloads for\n     * details of `patch()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.patch = function (url, body, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('PATCH', url, addBody(options, body));\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * POST request to be executed on the server. See the individual overloads for\n     * details of `post()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.post = function (url, body, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('POST', url, addBody(options, body));\n    };\n    /**\n     * Constructs an `Observable` which, when subscribed, will cause the configured\n     * PUT request to be executed on the server. See the individual overloads for\n     * details of `put()`'s return type based on the provided options.\n     */\n    HttpClient.prototype.put = function (url, body, options) {\n        if (options === void 0) { options = {}; }\n        return this.request('PUT', url, addBody(options, body));\n    };\n    HttpClient.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    HttpClient.ctorParameters = function () { return [\n        { type: HttpHandler }\n    ]; };\n    return HttpClient;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nvar HttpInterceptorHandler = /** @class */ (function () {\n    function HttpInterceptorHandler(next, interceptor) {\n        this.next = next;\n        this.interceptor = interceptor;\n    }\n    HttpInterceptorHandler.prototype.handle = function (req) {\n        return this.interceptor.intercept(req, this.next);\n    };\n    return HttpInterceptorHandler;\n}());\n/**\n * A multi-provider token which represents the array of `HttpInterceptor`s that\n * are registered.\n *\n *\n */\nvar HTTP_INTERCEPTORS = new core.InjectionToken('HTTP_INTERCEPTORS');\nvar NoopInterceptor = /** @class */ (function () {\n    function NoopInterceptor() {\n    }\n    NoopInterceptor.prototype.intercept = function (req, next) {\n        return next.handle(req);\n    };\n    NoopInterceptor.decorators = [\n        { type: core.Injectable }\n    ];\n    return NoopInterceptor;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar XSSI_PREFIX = /^\\)\\]\\}',?\\n/;\n/**\n * Determine an appropriate URL for the response, by checking either\n * XMLHttpRequest.responseURL or the X-Request-URL header.\n */\nfunction getResponseUrl(xhr) {\n    if ('responseURL' in xhr && xhr.responseURL) {\n        return xhr.responseURL;\n    }\n    if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\n        return xhr.getResponseHeader('X-Request-URL');\n    }\n    return null;\n}\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n *\n */\nvar XhrFactory = /** @class */ (function () {\n    function XhrFactory() {\n    }\n    return XhrFactory;\n}());\n/**\n * A factory for @{link HttpXhrBackend} that uses the `XMLHttpRequest` browser API.\n *\n *\n */\nvar BrowserXhr = /** @class */ (function () {\n    function BrowserXhr() {\n    }\n    BrowserXhr.prototype.build = function () { return (new XMLHttpRequest()); };\n    BrowserXhr.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    BrowserXhr.ctorParameters = function () { return []; };\n    return BrowserXhr;\n}());\n/**\n * An `HttpBackend` which uses the XMLHttpRequest API to send\n * requests to a backend server.\n *\n *\n */\nvar HttpXhrBackend = /** @class */ (function () {\n    function HttpXhrBackend(xhrFactory) {\n        this.xhrFactory = xhrFactory;\n    }\n    /**\n     * Process a request and return a stream of response events.\n     */\n    HttpXhrBackend.prototype.handle = function (req) {\n        var _this = this;\n        // Quick check to give a better error message when a user attempts to use\n        // HttpClient.jsonp() without installing the JsonpClientModule\n        if (req.method === 'JSONP') {\n            throw new Error(\"Attempted to construct Jsonp request without JsonpClientModule installed.\");\n        }\n        // Everything happens on Observable subscription.\n        return new rxjs.Observable(function (observer) {\n            // Start by setting up the XHR object with request method, URL, and withCredentials flag.\n            var xhr = _this.xhrFactory.build();\n            xhr.open(req.method, req.urlWithParams);\n            if (!!req.withCredentials) {\n                xhr.withCredentials = true;\n            }\n            // Add all the requested headers.\n            req.headers.forEach(function (name, values) { return xhr.setRequestHeader(name, values.join(',')); });\n            // Add an Accept header if one isn't present already.\n            if (!req.headers.has('Accept')) {\n                xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');\n            }\n            // Auto-detect the Content-Type header if one isn't present already.\n            if (!req.headers.has('Content-Type')) {\n                var detectedType = req.detectContentTypeHeader();\n                // Sometimes Content-Type detection fails.\n                if (detectedType !== null) {\n                    xhr.setRequestHeader('Content-Type', detectedType);\n                }\n            }\n            // Set the responseType if one was requested.\n            if (req.responseType) {\n                var responseType = req.responseType.toLowerCase();\n                // JSON responses need to be processed as text. This is because if the server\n                // returns an XSSI-prefixed JSON response, the browser will fail to parse it,\n                // xhr.response will be null, and xhr.responseText cannot be accessed to\n                // retrieve the prefixed JSON data in order to strip the prefix. Thus, all JSON\n                // is parsed by first requesting text and then applying JSON.parse.\n                xhr.responseType = ((responseType !== 'json') ? responseType : 'text');\n            }\n            // Serialize the request body if one is present. If not, this will be set to null.\n            var reqBody = req.serializeBody();\n            // If progress events are enabled, response headers will be delivered\n            // in two events - the HttpHeaderResponse event and the full HttpResponse\n            // event. However, since response headers don't change in between these\n            // two events, it doesn't make sense to parse them twice. So headerResponse\n            // caches the data extracted from the response whenever it's first parsed,\n            // to ensure parsing isn't duplicated.\n            var headerResponse = null;\n            // partialFromXhr extracts the HttpHeaderResponse from the current XMLHttpRequest\n            // state, and memoizes it into headerResponse.\n            var partialFromXhr = function () {\n                if (headerResponse !== null) {\n                    return headerResponse;\n                }\n                // Read status and normalize an IE9 bug (http://bugs.jquery.com/ticket/1450).\n                var status = xhr.status === 1223 ? 204 : xhr.status;\n                var statusText = xhr.statusText || 'OK';\n                // Parse headers from XMLHttpRequest - this step is lazy.\n                var headers = new HttpHeaders(xhr.getAllResponseHeaders());\n                // Read the response URL from the XMLHttpResponse instance and fall back on the\n                // request URL.\n                var url = getResponseUrl(xhr) || req.url;\n                // Construct the HttpHeaderResponse and memoize it.\n                headerResponse = new HttpHeaderResponse({ headers: headers, status: status, statusText: statusText, url: url });\n                return headerResponse;\n            };\n            // Next, a few closures are defined for the various events which XMLHttpRequest can\n            // emit. This allows them to be unregistered as event listeners later.\n            // First up is the load event, which represents a response being fully available.\n            var onLoad = function () {\n                // Read response state from the memoized partial data.\n                var _a = partialFromXhr(), headers = _a.headers, status = _a.status, statusText = _a.statusText, url = _a.url;\n                // The body will be read out if present.\n                var body = null;\n                if (status !== 204) {\n                    // Use XMLHttpRequest.response if set, responseText otherwise.\n                    body = (typeof xhr.response === 'undefined') ? xhr.responseText : xhr.response;\n                }\n                // Normalize another potential bug (this one comes from CORS).\n                if (status === 0) {\n                    status = !!body ? 200 : 0;\n                }\n                // ok determines whether the response will be transmitted on the event or\n                // error channel. Unsuccessful status codes (not 2xx) will always be errors,\n                // but a successful status code can still result in an error if the user\n                // asked for JSON data and the body cannot be parsed as such.\n                var ok = status >= 200 && status < 300;\n                // Check whether the body needs to be parsed as JSON (in many cases the browser\n                // will have done that already).\n                if (req.responseType === 'json' && typeof body === 'string') {\n                    // Save the original body, before attempting XSSI prefix stripping.\n                    var originalBody = body;\n                    body = body.replace(XSSI_PREFIX, '');\n                    try {\n                        // Attempt the parse. If it fails, a parse error should be delivered to the user.\n                        body = body !== '' ? JSON.parse(body) : null;\n                    }\n                    catch (error) {\n                        // Since the JSON.parse failed, it's reasonable to assume this might not have been a\n                        // JSON response. Restore the original body (including any XSSI prefix) to deliver\n                        // a better error response.\n                        body = originalBody;\n                        // If this was an error request to begin with, leave it as a string, it probably\n                        // just isn't JSON. Otherwise, deliver the parsing error to the user.\n                        if (ok) {\n                            // Even though the response status was 2xx, this is still an error.\n                            ok = false;\n                            // The parse error contains the text of the body that failed to parse.\n                            body = { error: error, text: body };\n                        }\n                    }\n                }\n                if (ok) {\n                    // A successful response is delivered on the event stream.\n                    observer.next(new HttpResponse({\n                        body: body,\n                        headers: headers,\n                        status: status,\n                        statusText: statusText,\n                        url: url || undefined,\n                    }));\n                    // The full body has been received and delivered, no further events\n                    // are possible. This request is complete.\n                    observer.complete();\n                }\n                else {\n                    // An unsuccessful request is delivered on the error channel.\n                    observer.error(new HttpErrorResponse({\n                        // The error in this case is the response body (error from the server).\n                        error: body,\n                        headers: headers,\n                        status: status,\n                        statusText: statusText,\n                        url: url || undefined,\n                    }));\n                }\n            };\n            // The onError callback is called when something goes wrong at the network level.\n            // Connection timeout, DNS error, offline, etc. These are actual errors, and are\n            // transmitted on the error channel.\n            var onError = function (error) {\n                var res = new HttpErrorResponse({\n                    error: error,\n                    status: xhr.status || 0,\n                    statusText: xhr.statusText || 'Unknown Error',\n                });\n                observer.error(res);\n            };\n            // The sentHeaders flag tracks whether the HttpResponseHeaders event\n            // has been sent on the stream. This is necessary to track if progress\n            // is enabled since the event will be sent on only the first download\n            // progerss event.\n            var sentHeaders = false;\n            // The download progress event handler, which is only registered if\n            // progress events are enabled.\n            var onDownProgress = function (event) {\n                // Send the HttpResponseHeaders event if it hasn't been sent already.\n                if (!sentHeaders) {\n                    observer.next(partialFromXhr());\n                    sentHeaders = true;\n                }\n                // Start building the download progress event to deliver on the response\n                // event stream.\n                var progressEvent = {\n                    type: HttpEventType.DownloadProgress,\n                    loaded: event.loaded,\n                };\n                // Set the total number of bytes in the event if it's available.\n                if (event.lengthComputable) {\n                    progressEvent.total = event.total;\n                }\n                // If the request was for text content and a partial response is\n                // available on XMLHttpRequest, include it in the progress event\n                // to allow for streaming reads.\n                if (req.responseType === 'text' && !!xhr.responseText) {\n                    progressEvent.partialText = xhr.responseText;\n                }\n                // Finally, fire the event.\n                observer.next(progressEvent);\n            };\n            // The upload progress event handler, which is only registered if\n            // progress events are enabled.\n            var onUpProgress = function (event) {\n                // Upload progress events are simpler. Begin building the progress\n                // event.\n                var progress = {\n                    type: HttpEventType.UploadProgress,\n                    loaded: event.loaded,\n                };\n                // If the total number of bytes being uploaded is available, include\n                // it.\n                if (event.lengthComputable) {\n                    progress.total = event.total;\n                }\n                // Send the event.\n                observer.next(progress);\n            };\n            // By default, register for load and error events.\n            xhr.addEventListener('load', onLoad);\n            xhr.addEventListener('error', onError);\n            // Progress events are only enabled if requested.\n            if (req.reportProgress) {\n                // Download progress is always enabled if requested.\n                xhr.addEventListener('progress', onDownProgress);\n                // Upload progress depends on whether there is a body to upload.\n                if (reqBody !== null && xhr.upload) {\n                    xhr.upload.addEventListener('progress', onUpProgress);\n                }\n            }\n            // Fire the request, and notify the event stream that it was fired.\n            xhr.send(reqBody);\n            observer.next({ type: HttpEventType.Sent });\n            // This is the return from the Observable function, which is the\n            // request cancellation handler.\n            return function () {\n                // On a cancellation, remove all registered event listeners.\n                xhr.removeEventListener('error', onError);\n                xhr.removeEventListener('load', onLoad);\n                if (req.reportProgress) {\n                    xhr.removeEventListener('progress', onDownProgress);\n                    if (reqBody !== null && xhr.upload) {\n                        xhr.upload.removeEventListener('progress', onUpProgress);\n                    }\n                }\n                // Finally, abort the in-flight request.\n                xhr.abort();\n            };\n        });\n    };\n    HttpXhrBackend.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    HttpXhrBackend.ctorParameters = function () { return [\n        { type: XhrFactory }\n    ]; };\n    return HttpXhrBackend;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar XSRF_COOKIE_NAME = new core.InjectionToken('XSRF_COOKIE_NAME');\nvar XSRF_HEADER_NAME = new core.InjectionToken('XSRF_HEADER_NAME');\n/**\n * Retrieves the current XSRF token to use with the next outgoing request.\n *\n *\n */\nvar HttpXsrfTokenExtractor = /** @class */ (function () {\n    function HttpXsrfTokenExtractor() {\n    }\n    return HttpXsrfTokenExtractor;\n}());\n/**\n * `HttpXsrfTokenExtractor` which retrieves the token from a cookie.\n */\nvar HttpXsrfCookieExtractor = /** @class */ (function () {\n    function HttpXsrfCookieExtractor(doc, platform, cookieName) {\n        this.doc = doc;\n        this.platform = platform;\n        this.cookieName = cookieName;\n        this.lastCookieString = '';\n        this.lastToken = null;\n        /**\n         * @internal for testing\n         */\n        this.parseCount = 0;\n    }\n    HttpXsrfCookieExtractor.prototype.getToken = function () {\n        if (this.platform === 'server') {\n            return null;\n        }\n        var cookieString = this.doc.cookie || '';\n        if (cookieString !== this.lastCookieString) {\n            this.parseCount++;\n            this.lastToken = common.ɵparseCookieValue(cookieString, this.cookieName);\n            this.lastCookieString = cookieString;\n        }\n        return this.lastToken;\n    };\n    HttpXsrfCookieExtractor.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    HttpXsrfCookieExtractor.ctorParameters = function () { return [\n        { type: undefined, decorators: [{ type: core.Inject, args: [common.DOCUMENT,] }] },\n        { type: String, decorators: [{ type: core.Inject, args: [core.PLATFORM_ID,] }] },\n        { type: String, decorators: [{ type: core.Inject, args: [XSRF_COOKIE_NAME,] }] }\n    ]; };\n    return HttpXsrfCookieExtractor;\n}());\n/**\n * `HttpInterceptor` which adds an XSRF token to eligible outgoing requests.\n */\nvar HttpXsrfInterceptor = /** @class */ (function () {\n    function HttpXsrfInterceptor(tokenService, headerName) {\n        this.tokenService = tokenService;\n        this.headerName = headerName;\n    }\n    HttpXsrfInterceptor.prototype.intercept = function (req, next) {\n        var lcUrl = req.url.toLowerCase();\n        // Skip both non-mutating requests and absolute URLs.\n        // Non-mutating requests don't require a token, and absolute URLs require special handling\n        // anyway as the cookie set\n        // on our origin is not the same as the token expected by another origin.\n        if (req.method === 'GET' || req.method === 'HEAD' || lcUrl.startsWith('http://') ||\n            lcUrl.startsWith('https://')) {\n            return next.handle(req);\n        }\n        var token = this.tokenService.getToken();\n        // Be careful not to overwrite an existing header of the same name.\n        if (token !== null && !req.headers.has(this.headerName)) {\n            req = req.clone({ headers: req.headers.set(this.headerName, token) });\n        }\n        return next.handle(req);\n    };\n    HttpXsrfInterceptor.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    HttpXsrfInterceptor.ctorParameters = function () { return [\n        { type: HttpXsrfTokenExtractor },\n        { type: String, decorators: [{ type: core.Inject, args: [XSRF_HEADER_NAME,] }] }\n    ]; };\n    return HttpXsrfInterceptor;\n}());\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * An injectable `HttpHandler` that applies multiple interceptors\n * to a request before passing it to the given `HttpBackend`.\n *\n * The interceptors are loaded lazily from the injector, to allow\n * interceptors to themselves inject classes depending indirectly\n * on `HttpInterceptingHandler` itself.\n * @see `HttpInterceptor`\n */\nvar HttpInterceptingHandler = /** @class */ (function () {\n    function HttpInterceptingHandler(backend, injector) {\n        this.backend = backend;\n        this.injector = injector;\n        this.chain = null;\n    }\n    HttpInterceptingHandler.prototype.handle = function (req) {\n        if (this.chain === null) {\n            var interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n            this.chain = interceptors.reduceRight(function (next, interceptor) { return new HttpInterceptorHandler(next, interceptor); }, this.backend);\n        }\n        return this.chain.handle(req);\n    };\n    HttpInterceptingHandler.decorators = [\n        { type: core.Injectable }\n    ];\n    /** @nocollapse */\n    HttpInterceptingHandler.ctorParameters = function () { return [\n        { type: HttpBackend },\n        { type: core.Injector }\n    ]; };\n    return HttpInterceptingHandler;\n}());\n/**\n * An NgModule that adds XSRF protection support to outgoing requests.\n *\n * For a server that supports a cookie-based XSRF protection system,\n * use directly to configure XSRF protection with the correct\n * cookie and header names.\n *\n * If no names are supplied, the default cookie name is `XSRF-TOKEN`\n * and the default header name is `X-XSRF-TOKEN`.\n *\n *\n */\nvar HttpClientXsrfModule = /** @class */ (function () {\n    function HttpClientXsrfModule() {\n    }\n    /**\n     * Disable the default XSRF protection.\n     */\n    HttpClientXsrfModule.disable = function () {\n        return {\n            ngModule: HttpClientXsrfModule,\n            providers: [\n                { provide: HttpXsrfInterceptor, useClass: NoopInterceptor },\n            ],\n        };\n    };\n    /**\n     * Configure XSRF protection.\n     * @param options An object that can specify either or both\n     * cookie name or header name.\n     * - Cookie name default is `XSRF-TOKEN`.\n     * - Header name default is `X-XSRF-TOKEN`.\n     *\n     */\n    HttpClientXsrfModule.withOptions = function (options) {\n        if (options === void 0) { options = {}; }\n        return {\n            ngModule: HttpClientXsrfModule,\n            providers: [\n                options.cookieName ? { provide: XSRF_COOKIE_NAME, useValue: options.cookieName } : [],\n                options.headerName ? { provide: XSRF_HEADER_NAME, useValue: options.headerName } : [],\n            ],\n        };\n    };\n    HttpClientXsrfModule.decorators = [\n        { type: core.NgModule, args: [{\n                    providers: [\n                        HttpXsrfInterceptor,\n                        { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },\n                        { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n                        { provide: XSRF_COOKIE_NAME, useValue: 'XSRF-TOKEN' },\n                        { provide: XSRF_HEADER_NAME, useValue: 'X-XSRF-TOKEN' },\n                    ],\n                },] }\n    ];\n    return HttpClientXsrfModule;\n}());\n/**\n * An NgModule that provides the `HttpClient` and associated services.\n *\n * Interceptors can be added to the chain behind `HttpClient` by binding them\n * to the multiprovider for `HTTP_INTERCEPTORS`.\n *\n *\n */\nvar HttpClientModule = /** @class */ (function () {\n    function HttpClientModule() {\n    }\n    HttpClientModule.decorators = [\n        { type: core.NgModule, args: [{\n                    /**\n                     * Optional configuration for XSRF protection.\n                     */\n                    imports: [\n                        HttpClientXsrfModule.withOptions({\n                            cookieName: 'XSRF-TOKEN',\n                            headerName: 'X-XSRF-TOKEN',\n                        }),\n                    ],\n                    /**\n                     * The module provides `HttpClient` itself, and supporting services.\n                     */\n                    providers: [\n                        HttpClient,\n                        { provide: HttpHandler, useClass: HttpInterceptingHandler },\n                        HttpXhrBackend,\n                        { provide: HttpBackend, useExisting: HttpXhrBackend },\n                        BrowserXhr,\n                        { provide: XhrFactory, useExisting: BrowserXhr },\n                    ],\n                },] }\n    ];\n    return HttpClientModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar get$1 = require('lodash.get');\n/** @type {?} */\nvar platform = require('platform');\n/** @type {?} */\nvar slug = require('slug');\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nvar TextonlyModule = /** @class */ (function () {\n    function TextonlyModule() {\n    }\n    TextonlyModule.decorators = [\n        { type: core.NgModule, args: [{\n                    imports: [\n                        common.CommonModule,\n                        duiDefaultPipe.DefaultPipeModule,\n                        core$1.TranslateModule,\n                        duiUtils.UtilsModule\n                    ],\n                    declarations: [TextonlyComponent],\n                    exports: [TextonlyComponent],\n                    entryComponents: [TextonlyComponent]\n                },] },\n    ];\n    return TextonlyModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\nexports.TextonlyModule = TextonlyModule;\nexports.TextonlyComponent = TextonlyComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"]}