"use strict";
(self.webpackChunktradingview = self.webpackChunktradingview || []).push([
    [26455], {
        91679: (e, t) => {
            t.WatchedValue = void 0;
            var i = function() {
                function e(e, t) {
                    void 0 === t && (t = {}), this._listeners = [], void 0 !== e && (this._value = e), this._onDestroy = t.onDestroy
                }
                return e.prototype.destroy = function() {
                    this.unsubscribe(), delete this._value, delete this._readonlyInstance, this._onDestroy && this._onDestroy()
                }, e.prototype.value = function() {
                    return this._value
                }, e.prototype.setValue = function(e, t) {
                    var i = this._value === e || Number.isNaN(this._value) && Number.isNaN(e);
                    !t && i || (this._value = e, this._notifyListeners())
                }, e.prototype.subscribe = function(e, t) {
                    var i, n, s = this;
                    if (!(null === (i = null == t ? void 0 : t.signal) || void 0 === i ? void 0 : i.aborted)) {
                        if ((null == t ? void 0 : t.callWithLast) && void 0 !== this._value) {
                            try {
                                e(this._value)
                            } catch (e) {
                                t.onError && t.onError(e)
                            }
                            if (t.once) return
                        }(null == t ? void 0 : t.signal) && t.signal.addEventListener("abort", (function() {
                            s.unsubscribe(e)
                        }), {
                            once: !0
                        }), this._listeners.push({
                            callback: e,
                            signal: null == t ? void 0 : t.signal,
                            once: null !== (n = null == t ? void 0 : t.once) && void 0 !== n && n,
                            onError: null == t ? void 0 : t.onError
                        })
                    }
                }, e.prototype.unsubscribe = function(e) {
                    for (var t = this._listeners.length; t--;) {
                        e !== this._listeners[t].callback && void 0 !== e || this._listeners.splice(t, 1)
                    }
                }, e.prototype.readonly = function() {
                    return this._readonlyInstance || (this._readonlyInstance = new s(this)), this._readonlyInstance
                }, e.prototype.when = function(e, t) {
                    var i, n = this;
                    if (!e) return new Promise((function(e, t) {
                        if (void 0 === n._value) {
                            var i = function(t) {
                                void 0 !== t && (e(t), n.unsubscribe(i))
                            };
                            n.subscribe(i, {
                                onError: t
                            })
                        } else e(n._value)
                    }));
                    if (!(null === (i = null == t ? void 0 : t.signal) || void 0 === i ? void 0 : i.aborted))
                        if (void 0 === this._value) {
                            var s = function(t) {
                                void 0 !== t && (e(t), n.unsubscribe(s))
                            };
                            this.subscribe(s, t)
                        } else try {
                            e(this._value)
                        } catch (e) {
                            (null == t ? void 0 : t.onError) && t.onError(e)
                        }
                }, e.prototype._notifyListeners = function() {
                    for (var e, t, i = 0, n = this._listeners; i < n.length; i++) {
                        var s = n[i];
                        if ((s.once || (null === (e = s.signal) || void 0 === e ? void 0 : e.aborted)) && this.unsubscribe(s.callback), !(null === (t = s.signal) || void 0 === t ? void 0 : t.aborted)) try {
                            s.callback(this._value)
                        } catch (e) {
                            s.onError && s.onError(e)
                        }
                    }
                }, e
            }();
            t.WatchedValue = i;
            var n = "Using destroyed WatchedValueReadonly instance is not allowed",
                s = function() {
                    function e(e) {
                        this._owner = e
                    }
                    return e.prototype.value = function() {
                        var e;
                        if (!this._owner) throw new Error(n);
                        return null === (e = this._owner) || void 0 === e ? void 0 : e.value()
                    }, e.prototype.destroy = function() {
                        delete this._owner
                    }, e.prototype.subscribe = function(e, t) {
                        if (!this._owner) throw new Error(n);
                        this._owner.subscribe(e, t)
                    }, e.prototype.unsubscribe = function(e) {
                        if (!this._owner) throw new Error(n);
                        this._owner.unsubscribe(e)
                    }, e.prototype.when = function(e, t) {
                        if (!this._owner) throw new Error(n);
                        return void 0 !== e ? this._owner.when(e, t) : this._owner.when()
                    }, e
                }()
        },
        603678: (e, t, i) => {
            i.d(t, {
                bindTo: () => o
            });
            var n = i(341161),
                s = function() {
                    function e(e) {
                        var t = this;
                        this._resolutionListener = function() {
                            return t._onResolutionChanged()
                        }, this._resolutionMediaQueryList = null, this._observers = [], this._window = e, this._installResolutionListener()
                    }
                    return e.prototype.dispose = function() {
                        this._uninstallResolutionListener(), this._window = null
                    }, Object.defineProperty(e.prototype, "value", {
                        get: function() {
                            return this._window.devicePixelRatio
                        },
                        enumerable: !1,
                        configurable: !0
                    }), e.prototype.subscribe = function(e) {
                        var t = this,
                            i = {
                                next: e
                            };
                        return this._observers.push(i), {
                            unsubscribe: function() {
                                t._observers = t._observers.filter((function(e) {
                                    return e !== i
                                }))
                            }
                        }
                    }, e.prototype._installResolutionListener = function() {
                        if (null !== this._resolutionMediaQueryList) throw new Error("Resolution listener is already installed");
                        var e = this._window.devicePixelRatio;
                        this._resolutionMediaQueryList = this._window.matchMedia("all and (resolution: ".concat(e, "dppx)")), this._resolutionMediaQueryList.addListener(this._resolutionListener)
                    }, e.prototype._uninstallResolutionListener = function() {
                        null !== this._resolutionMediaQueryList && (this._resolutionMediaQueryList.removeListener(this._resolutionListener), this._resolutionMediaQueryList = null)
                    }, e.prototype._reinstallResolutionListener = function() {
                        this._uninstallResolutionListener(), this._installResolutionListener()
                    }, e.prototype._onResolutionChanged = function() {
                        var e = this;
                        this._observers.forEach((function(t) {
                            return t.next(e._window.devicePixelRatio)
                        })), this._reinstallResolutionListener()
                    }, e
                }();
            var r = function() {
                function e(e, t, i) {
                    var s;
                    this._canvasElement = null, this._bitmapSizeChangedListeners = [], this._suggestedBitmapSize = null, this._suggestedBitmapSizeChangedListeners = [], this._devicePixelRatioObservable = null, this._canvasElementResizeObserver = null, this._canvasElement = e, this._canvasElementClientSize = (0, n.size)({
                        width: this._canvasElement.clientWidth,
                        height: this._canvasElement.clientHeight
                    }), this._transformBitmapSize = null != t ? t : function(e) {
                        return e
                    }, this._allowResizeObserver = null === (s = null == i ? void 0 : i.allowResizeObserver) || void 0 === s || s, this._chooseAndInitObserver()
                }
                return e.prototype.dispose = function() {
                    var e, t;
                    if (null === this._canvasElement) throw new Error("Object is disposed");
                    null === (e = this._canvasElementResizeObserver) || void 0 === e || e.disconnect(), this._canvasElementResizeObserver = null, null === (t = this._devicePixelRatioObservable) || void 0 === t || t.dispose(), this._devicePixelRatioObservable = null, this._suggestedBitmapSizeChangedListeners.length = 0, this._bitmapSizeChangedListeners.length = 0, this._canvasElement = null
                }, Object.defineProperty(e.prototype, "canvasElement", {
                    get: function() {
                        if (null === this._canvasElement) throw new Error("Object is disposed");
                        return this._canvasElement
                    },
                    enumerable: !1,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "canvasElementClientSize", {
                    get: function() {
                        return this._canvasElementClientSize
                    },
                    enumerable: !1,
                    configurable: !0
                }), Object.defineProperty(e.prototype, "bitmapSize", {
                    get: function() {
                        return (0, n.size)({
                            width: this.canvasElement.width,
                            height: this.canvasElement.height
                        })
                    },
                    enumerable: !1,
                    configurable: !0
                }), e.prototype.resizeCanvasElement = function(e) {
                    this._canvasElementClientSize = (0, n.size)(e), this.canvasElement.style.width = "".concat(this._canvasElementClientSize.width, "px"), this.canvasElement.style.height = "".concat(this._canvasElementClientSize.height, "px"),
                        this._invalidateBitmapSize()
                }, e.prototype.subscribeBitmapSizeChanged = function(e) {
                    this._bitmapSizeChangedListeners.push(e)
                }, e.prototype.unsubscribeBitmapSizeChanged = function(e) {
                    this._bitmapSizeChangedListeners = this._bitmapSizeChangedListeners.filter((function(t) {
                        return t !== e
                    }))
                }, Object.defineProperty(e.prototype, "suggestedBitmapSize", {
                    get: function() {
                        return this._suggestedBitmapSize
                    },
                    enumerable: !1,
                    configurable: !0
                }), e.prototype.subscribeSuggestedBitmapSizeChanged = function(e) {
                    this._suggestedBitmapSizeChangedListeners.push(e)
                }, e.prototype.unsubscribeSuggestedBitmapSizeChanged = function(e) {
                    this._suggestedBitmapSizeChangedListeners = this._suggestedBitmapSizeChangedListeners.filter((function(t) {
                        return t !== e
                    }))
                }, e.prototype.applySuggestedBitmapSize = function() {
                    if (null !== this._suggestedBitmapSize) {
                        var e = this._suggestedBitmapSize;
                        this._suggestedBitmapSize = null, this._resizeBitmap(e), this._emitSuggestedBitmapSizeChanged(e, this._suggestedBitmapSize)
                    }
                }, e.prototype._resizeBitmap = function(e) {
                    var t = this.bitmapSize;
                    (0, n.equalSizes)(t, e) || (this.canvasElement.width = e.width, this.canvasElement.height = e.height, this._emitBitmapSizeChanged(t, e))
                }, e.prototype._emitBitmapSizeChanged = function(e, t) {
                    var i = this;
                    this._bitmapSizeChangedListeners.forEach((function(n) {
                        return n.call(i, e, t)
                    }))
                }, e.prototype._suggestNewBitmapSize = function(e) {
                    var t = this._suggestedBitmapSize,
                        i = (0, n.size)(this._transformBitmapSize(e, this._canvasElementClientSize)),
                        s = (0, n.equalSizes)(this.bitmapSize, i) ? null : i;
                    null === t && null === s || null !== t && null !== s && (0, n.equalSizes)(t, s) || (this._suggestedBitmapSize = s, this._emitSuggestedBitmapSizeChanged(t, s))
                }, e.prototype._emitSuggestedBitmapSizeChanged = function(e, t) {
                    var i = this;
                    this._suggestedBitmapSizeChangedListeners.forEach((function(n) {
                        return n.call(i, e, t)
                    }))
                }, e.prototype._chooseAndInitObserver = function() {
                    var e = this;
                    this._allowResizeObserver ? new Promise((function(e) {
                        var t = new ResizeObserver((function(i) {
                            e(i.every((function(e) {
                                return "devicePixelContentBoxSize" in e
                            }))), t.disconnect()
                        }));
                        t.observe(document.body, {
                            box: "device-pixel-content-box"
                        })
                    })).catch((function() {
                        return !1
                    })).then((function(t) {
                        return t ? e._initResizeObserver() : e._initDevicePixelRatioObservable()
                    })) : this._initDevicePixelRatioObservable()
                }, e.prototype._initDevicePixelRatioObservable = function() {
                    var e = this;
                    if (null !== this._canvasElement) {
                        var t = a(this._canvasElement);
                        if (null === t) throw new Error("No window is associated with the canvas");
                        this._devicePixelRatioObservable = function(e) {
                            return new s(e)
                        }(t), this._devicePixelRatioObservable.subscribe((function() {
                            return e._invalidateBitmapSize()
                        })), this._invalidateBitmapSize()
                    }
                }, e.prototype._invalidateBitmapSize = function() {
                    var e, t;
                    if (null !== this._canvasElement) {
                        var i = a(this._canvasElement);
                        if (null !== i) {
                            var s = null !== (t = null === (e = this._devicePixelRatioObservable) || void 0 === e ? void 0 : e.value) && void 0 !== t ? t : i.devicePixelRatio,
                                r = this._canvasElement.getClientRects(),
                                o = void 0 !== r[0] ? function(e, t) {
                                    return (0, n.size)({
                                        width: Math.round(e.left * t + e.width * t) - Math.round(e.left * t),
                                        height: Math.round(e.top * t + e.height * t) - Math.round(e.top * t)
                                    })
                                }(r[0], s) : (0, n.size)({
                                    width: this._canvasElementClientSize.width * s,
                                    height: this._canvasElementClientSize.height * s
                                });
                            this._suggestNewBitmapSize(o)
                        }
                    }
                }, e.prototype._initResizeObserver = function() {
                    var e = this;
                    null !== this._canvasElement && (this._canvasElementResizeObserver = new ResizeObserver((function(t) {
                        var i = t.find((function(t) {
                            return t.target === e._canvasElement
                        }));
                        if (i && i.devicePixelContentBoxSize && i.devicePixelContentBoxSize[0]) {
                            var s = i.devicePixelContentBoxSize[0],
                                r = (0, n.size)({
                                    width: s.inlineSize,
                                    height: s.blockSize
                                });
                            e._suggestNewBitmapSize(r)
                        }
                    })), this._canvasElementResizeObserver.observe(this._canvasElement, {
                        box: "device-pixel-content-box"
                    }))
                }, e
            }();

            function o(e, t) {
                if ("device-pixel-content-box" === t.type) return new r(e, t.transform, t.options);
                throw new Error("Unsupported binding target")
            }

            function a(e) {
                return e.ownerDocument.defaultView
            }
        },
        341161: (e, t, i) => {
            function n(e) {
                var t = e.width,
                    i = e.height;
                if (t < 0) throw new Error("Negative width is not allowed for Size");
                if (i < 0) throw new Error("Negative height is not allowed for Size");
                return {
                    width: t,
                    height: i
                }
            }

            function s(e, t) {
                return e.width === t.width && e.height === t.height
            }
            i.d(t, {
                equalSizes: () => s,
                size: () => n
            })
        }
    }
]);