@forgecharts/sdk 1.5.23 → 1.5.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +124 -63
- package/dist/index.js.map +1 -1
- package/dist/internal.js +124 -63
- package/dist/internal.js.map +1 -1
- package/dist/pixi/PixiChart.d.ts +15 -0
- package/dist/pixi/PixiChart.d.ts.map +1 -1
- package/dist/pixi/PixiTradingRenderer.d.ts +22 -1
- package/dist/pixi/PixiTradingRenderer.d.ts.map +1 -1
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
- package/dist/react/index.js +124 -63
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +124 -63
- package/dist/react/internal.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7763,6 +7763,9 @@ function orderRoleLabel(role) {
|
|
|
7763
7763
|
function isDraggableRole(role) {
|
|
7764
7764
|
return role === "stop_loss" || role === "take_profit" || role === "limit" || role === "stop";
|
|
7765
7765
|
}
|
|
7766
|
+
function isTerminal(status) {
|
|
7767
|
+
return status === "cancelled" || status === "rejected" || status === "expired" || status === "filled";
|
|
7768
|
+
}
|
|
7766
7769
|
var LINE_H = 15;
|
|
7767
7770
|
var LABEL_GAP = 6;
|
|
7768
7771
|
var LABEL_PAD = 6;
|
|
@@ -7928,9 +7931,6 @@ var PixiTradingRenderer = class {
|
|
|
7928
7931
|
} else {
|
|
7929
7932
|
this._lineGfx.moveTo(0, y).lineTo(plotWidth, y).stroke({ color, width: lineCrisp.width, alpha });
|
|
7930
7933
|
}
|
|
7931
|
-
if (isDraggableRole(order.role)) {
|
|
7932
|
-
this._drawDragHandle(plotWidth - 26, y, color, alpha);
|
|
7933
|
-
}
|
|
7934
7934
|
const boxY = y - LINE_H / 2;
|
|
7935
7935
|
const roleStr = orderRoleLabel(order.role);
|
|
7936
7936
|
const text = roleStr ? `${roleStr} ${order.qty}` : `${order.side.toUpperCase()} ${order.qty}`;
|
|
@@ -7939,6 +7939,9 @@ var PixiTradingRenderer = class {
|
|
|
7939
7939
|
const pillX = Math.max(0, plotWidth - LABEL_GAP - pillW);
|
|
7940
7940
|
this._boxGfx.roundRect(pillX, boxY, pillW, LINE_H, PILL_R).fill({ color, alpha });
|
|
7941
7941
|
labelIdx = this._drawLabel(text, pillX + pillW / 2, y, labelIdx, labelStyle, true);
|
|
7942
|
+
if (isDraggableRole(order.role)) {
|
|
7943
|
+
this._drawPillDragArrows(pillX + pillW / 2, boxY, color, alpha);
|
|
7944
|
+
}
|
|
7942
7945
|
this._boxGfx.rect(plotWidth, boxY, psWidth, LINE_H).fill({ color, alpha });
|
|
7943
7946
|
labelIdx = this._drawLabel(order.price.toFixed(2), plotWidth + 4, y, labelIdx, labelStyle);
|
|
7944
7947
|
if (isDraggableRole(order.role)) {
|
|
@@ -8027,33 +8030,37 @@ var PixiTradingRenderer = class {
|
|
|
8027
8030
|
labelIdx = this._drawLabel(String(pos.entryPrice), plotWidth + 4, y, labelIdx, labelStyle);
|
|
8028
8031
|
this._positionHitZones.push({ id: pos.id, x: pillX, y: boxY, w: pillW, h: LINE_H });
|
|
8029
8032
|
const linked = pos.linkedOrderIds ?? [];
|
|
8030
|
-
const hasTp = linked.some((id) => id.endsWith("-tp"));
|
|
8031
|
-
const hasSl = linked.some((id) => id.endsWith("-sl"));
|
|
8033
|
+
const hasTp = linked.some((id) => id.endsWith("-tp")) || orders.some((o) => (o.role === "take_profit" || o.role === "limit") && !isTerminal(o.status));
|
|
8034
|
+
const hasSl = linked.some((id) => id.endsWith("-sl")) || orders.some((o) => (o.role === "stop_loss" || o.role === "stop") && !isTerminal(o.status));
|
|
8032
8035
|
const entrySide = pos.side === "long" ? "buy" : "sell";
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
|
|
8036
|
+
let pillCursor = pillX - 4;
|
|
8037
|
+
if (!hasSl) {
|
|
8038
|
+
const slX = pillCursor - PILL_W;
|
|
8039
|
+
const slY = y - PILL_H / 2;
|
|
8040
|
+
this._boxGfx.roundRect(slX, slY, PILL_W, PILL_H, PILL_R).fill({ color: SL_PILL_COLOR, alpha: 0.85 });
|
|
8041
|
+
labelIdx = this._drawLabel("SL", slX + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
|
|
8037
8042
|
this._pillHitZones.push({
|
|
8038
|
-
kind: "
|
|
8043
|
+
kind: "sl",
|
|
8039
8044
|
entryOrderId: pos.id,
|
|
8040
8045
|
entrySide,
|
|
8041
|
-
x:
|
|
8042
|
-
y:
|
|
8046
|
+
x: slX,
|
|
8047
|
+
y: slY,
|
|
8043
8048
|
w: PILL_W,
|
|
8044
8049
|
h: PILL_H
|
|
8045
8050
|
});
|
|
8051
|
+
pillCursor = slX - 4;
|
|
8046
8052
|
}
|
|
8047
|
-
if (!
|
|
8048
|
-
const
|
|
8049
|
-
|
|
8050
|
-
|
|
8053
|
+
if (!hasTp) {
|
|
8054
|
+
const tpX = pillCursor - PILL_W;
|
|
8055
|
+
const tpY = y - PILL_H / 2;
|
|
8056
|
+
this._boxGfx.roundRect(tpX, tpY, PILL_W, PILL_H, PILL_R).fill({ color: TP_PILL_COLOR, alpha: 0.85 });
|
|
8057
|
+
labelIdx = this._drawLabel("TP", tpX + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
|
|
8051
8058
|
this._pillHitZones.push({
|
|
8052
|
-
kind: "
|
|
8059
|
+
kind: "tp",
|
|
8053
8060
|
entryOrderId: pos.id,
|
|
8054
8061
|
entrySide,
|
|
8055
|
-
x:
|
|
8056
|
-
y:
|
|
8062
|
+
x: tpX,
|
|
8063
|
+
y: tpY,
|
|
8057
8064
|
w: PILL_W,
|
|
8058
8065
|
h: PILL_H
|
|
8059
8066
|
});
|
|
@@ -8066,12 +8073,19 @@ var PixiTradingRenderer = class {
|
|
|
8066
8073
|
* with an up and a down chevron, centred on the line. Signals "drag me
|
|
8067
8074
|
* vertically" the way TradingView's order-line handles do.
|
|
8068
8075
|
*/
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
|
|
8074
|
-
|
|
8076
|
+
/**
|
|
8077
|
+
* Up/down chevrons hugging a label pill, marking it draggable.
|
|
8078
|
+
*
|
|
8079
|
+
* Anchored to the pill rather than a fixed x so the affordance stays with
|
|
8080
|
+
* the label wherever it is laid out.
|
|
8081
|
+
*/
|
|
8082
|
+
_drawPillDragArrows(cx, boxY, color, alpha) {
|
|
8083
|
+
const s = 3.5;
|
|
8084
|
+
const gap = 2;
|
|
8085
|
+
const upBase = boxY - gap;
|
|
8086
|
+
this._boxGfx.poly([cx, upBase - s * 1.6, cx + s, upBase, cx - s, upBase]).fill({ color, alpha: alpha * 0.9 });
|
|
8087
|
+
const downBase = boxY + LINE_H + gap;
|
|
8088
|
+
this._boxGfx.poly([cx, downBase + s * 1.6, cx + s, downBase, cx - s, downBase]).fill({ color, alpha: alpha * 0.9 });
|
|
8075
8089
|
}
|
|
8076
8090
|
/** Draws or reuses a label at the given position and returns the next label index. */
|
|
8077
8091
|
_drawLabel(text, x, y, labelIdx, style, centered) {
|
|
@@ -9346,30 +9360,40 @@ var PixiChart = class {
|
|
|
9346
9360
|
setTradingOrders(orders) {
|
|
9347
9361
|
this._tradingOrders = orders;
|
|
9348
9362
|
this._layers.dirty.mark(4 /* TradingOverlay */);
|
|
9349
|
-
|
|
9350
|
-
(o) => (o.role === "stop_loss" || o.role === "take_profit") && o.status !== "cancelled" && o.status !== "filled"
|
|
9351
|
-
);
|
|
9352
|
-
if (hasDraggable) {
|
|
9353
|
-
this._interaction.setOrderLineHitTest(
|
|
9354
|
-
(x, y) => this._tradingRenderer.hitTestDraggableOrder(x, y)
|
|
9355
|
-
);
|
|
9356
|
-
} else {
|
|
9357
|
-
this._interaction.setOrderLineHitTest(null);
|
|
9358
|
-
}
|
|
9359
|
-
const hasEntryWithoutBracket = orders.some(
|
|
9360
|
-
(o) => o.role === "entry" && !o.groupId && o.status !== "cancelled" && o.status !== "filled" && o.status !== "rejected"
|
|
9361
|
-
);
|
|
9362
|
-
if (hasEntryWithoutBracket) {
|
|
9363
|
-
this._interaction.setPillHitTest(
|
|
9364
|
-
(x, y) => this._tradingRenderer.hitTestPill(x, y)
|
|
9365
|
-
);
|
|
9366
|
-
} else {
|
|
9367
|
-
this._interaction.setPillHitTest(null);
|
|
9368
|
-
}
|
|
9363
|
+
this._refreshTradingHitTests();
|
|
9369
9364
|
}
|
|
9370
9365
|
setTradingPositions(positions) {
|
|
9371
9366
|
this._tradingPositions = positions;
|
|
9372
9367
|
this._layers.dirty.mark(4 /* TradingOverlay */);
|
|
9368
|
+
this._refreshTradingHitTests();
|
|
9369
|
+
}
|
|
9370
|
+
/**
|
|
9371
|
+
* (Re)register the trading hit tests against current orders AND positions.
|
|
9372
|
+
*
|
|
9373
|
+
* Was inline in setTradingOrders and keyed on hardcoded roles, which left
|
|
9374
|
+
* both interactions half-wired:
|
|
9375
|
+
*
|
|
9376
|
+
* - the drag hit test required a 'stop_loss'/'take_profit' order, so
|
|
9377
|
+
* working limit and stop lines rendered a drag handle they could not
|
|
9378
|
+
* actually be grabbed by
|
|
9379
|
+
* - the pill hit test required an ORDER with role 'entry' and no groupId,
|
|
9380
|
+
* but the pills are drawn on POSITIONS, so they were never grabbable
|
|
9381
|
+
*
|
|
9382
|
+
* Both now derive from the same predicates the renderer draws with.
|
|
9383
|
+
*/
|
|
9384
|
+
_refreshTradingHitTests() {
|
|
9385
|
+
const hasDraggable = this._tradingOrders.some(
|
|
9386
|
+
(o) => isDraggableRole(o.role) && o.status !== "cancelled" && o.status !== "filled"
|
|
9387
|
+
);
|
|
9388
|
+
this._interaction.setOrderLineHitTest(
|
|
9389
|
+
hasDraggable ? (x, y) => this._tradingRenderer.hitTestDraggableOrder(x, y) : null
|
|
9390
|
+
);
|
|
9391
|
+
const hasPillSource = this._tradingPositions.some((p) => p.status === "open") || this._tradingOrders.some(
|
|
9392
|
+
(o) => o.role === "entry" && !o.groupId && o.status !== "cancelled" && o.status !== "filled" && o.status !== "rejected"
|
|
9393
|
+
);
|
|
9394
|
+
this._interaction.setPillHitTest(
|
|
9395
|
+
hasPillSource ? (x, y) => this._tradingRenderer.hitTestPill(x, y) : null
|
|
9396
|
+
);
|
|
9373
9397
|
}
|
|
9374
9398
|
setContractSwitches(switches) {
|
|
9375
9399
|
this._timeScale.contractSwitches = switches;
|
|
@@ -18480,6 +18504,9 @@ function LicenseRequiredOverlay({
|
|
|
18480
18504
|
// src/react/assets/logo_dark.png
|
|
18481
18505
|
var logo_dark_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwEAAAClCAYAAAAEevFwAAAAtGVYSWZJSSoACAAAAAYAEgEDAAEAAAABAAAAGgEFAAEAAABWAAAAGwEFAAEAAABeAAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAABmAAAAAAAAAGAAAAABAAAAYAAAAAEAAAAGAACQBwAEAAAAMDIxMAGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgBAABAAAAAQMAAAOgBAABAAAApQAAAAAAAADEF/ZSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFQWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI2LTAzLTE4PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkRhdGE+eyZxdW90O2RvYyZxdW90OzomcXVvdDtEQUhFU05JQlRRZyZxdW90OywmcXVvdDt1c2VyJnF1b3Q7OiZxdW90O1VBRnptWHYtUGJnJnF1b3Q7LCZxdW90O2JyYW5kJnF1b3Q7OiZxdW90O0JBRnptVGZSakpRJnF1b3Q7fTwvQXR0cmliOkRhdGE+CiAgICAgPEF0dHJpYjpFeHRJZD45ZjcxMmU4OS0wODUxLTQwYjMtYmM5ZC00Mjk2OGZkYjk0OTA8L0F0dHJpYjpFeHRJZD4KICAgICA8QXR0cmliOkZiSWQ+NTI1MjY1OTE0MTc5NTgwPC9BdHRyaWI6RmJJZD4KICAgICA8QXR0cmliOlRvdWNoVHlwZT4yPC9BdHRyaWI6VG91Y2hUeXBlPgogICAgPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L0F0dHJpYjpBZHM+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyc+CiAgPGRjOnRpdGxlPgogICA8cmRmOkFsdD4KICAgIDxyZGY6bGkgeG1sOmxhbmc9J3gtZGVmYXVsdCc+Rm9yZ2VDaGFydHMgLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkR1bmNhbiBXaWdnaWxsPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmEgZG9jPURBSEVTTklCVFFnIHVzZXI9VUFGem1Ydi1QYmcgYnJhbmQ9QkFGem1UZlJqSlE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSdyJz8+Rl40hwAAIABJREFUeJztnQe4VNW1xxEuvSqCggVQBMQCCjaULkiJFQSkI0o0vmiiMUaNmsT0RBN7LGiaiZroS4w1JhqNJSrGxIItSpGiiIqCJfBgvb327D2zZ7hTzpkz9871/n7ft75zuXNm77XXOVfXf9cmTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5DiMg2avXtx2cZH+PQ6tsnAAAAAGgEBAlojbOmucmo+7yZsebuSsIaERezpi6GNfni5+5JP4u69hMAAAAACuCS4WqxyAm5/26Bz7cp4fOyE9U6ik/T+hIuvv4Cn3thkE8UlB3nQMRVkyEiAQAAAOqK3ATMJaF9jZ1q7BJjNxm709gTxv5l7K/GbjN2jbFvGptorFMtZTaIXmvJ9LRXNAl19TQN/t3e2DBjZxq7wtjtW7ZsechcFxl73tg/jD1g7GZjPzI231h/9TUoo8HEGQAAAOAzh0vGRhgbb+yIejb1YQfnV97ENjeBND+PNHalS/Q3STTeUaFgktgvmWtXX7dE7OE1329p7j/c2LgKxudQU8+e5tolTKhri0kSyNbJ/xBj1xkfVkaMsZjv/J+5PGPsq+bnnV15keNs7m1rbEyF4xzVtvXtSTL+AAAAAInjExZzbWNslc/VoiZ3CeLrnuz82mr6jgTTeiSVoKpoeFBy/HYJp4qBTfqz+/fm4OdNzvz3trjvvW0u3zLWLaijYGItmTh2M/ZRTlsqwX+NbTC22NhCSY169Azis9U6iJjvR7occz1AUiMqm3N82SrG3oLfbQy+5+P8rqRGYrbzz7qYz+Keg7n2czFIl1dPpOs27Rnu21Fu3AEAAAAqimSLgBW5iU094Oue5PxqluuvZATAoZKa4hN+1yebUdug929yCatPUt8zdqH5sUVtvuSJY12JgFzflfXGbjQ2yPlSVLwUao+4UQbXpltcbBSNbyieovq6OYyzYbWxBaX4LFUsAgzDir0nAAAAAFWBNCARIK6H2/2sPd+fuHs3BwlqEmwOerSV+yUzRajWBE/qVgRsybFNOe3X3+kc/baFfC7yXnihNcyUvdwWmunVT4pcMXGTsdau3lqFgCACAAAAAMpHGogIkIyfLYxdb29MPinNxSepWtdSYweHPuWJY32MBHi25IiXF4wdmM/nAu+ET7RPE5do11WcJTWy0yP0I49viAAAAACAuEgDEAGSPQJws/s87nSU6A65BFinB5nL/t6vPHGsTxHgsaMD7ud1xg6pzec874OfAvQNW1C2qKgTn1Vwmctuzo+mOf4hAgAAAADKRRqGCPCjAT92n9WZAAjwSfXrUktPtVSXCEhVnum91wXf/XN9ruVd8HGeHXy/rtuw0V0fN9YmjG3ovyACAAAAAOIj1S8C/KLcL9oPKzstpbBjmRGBp8ylY078qk4EWAcy8dKpQVk+57wH6TUAEqy1qAeXQ59/nuuvIAIAAAAAykeqXAQ43wZLdSR8ih8RuML5lrtmoapEgMP7fEHocy3vQDtJbTlar2Irp/7JOXFGBAAAAACUi1SvCJgc+PhH+0E9J6YO759OW/HrA8K99KtRBHg/1hjbJXzu7mebtJr4nu/ui3rQWiXwoxB6+rBfpxCuDUEEAAAAAMRFqlcETHF+HZXz+3onECN3+BhKJjmtRhGg+MT+Yudnbs/6Hm7hs1ItflshYPw62fssiAAAAACA8pHqFQF+TcA/3L/rZX56CYxwfoYHa1WjCPDxe9VYK//sJSMGrnGfV8MogMf7vNgIgZbOT0QAAAAAQLlI9YqAccb2TbJc14OvSW4SgsIny9e7+FW7CMibrJprexOblbXcF6seH+eEtxcdlRNnRAAAAABAXCR5EbDZH+IVxySTXI829i33c1m903nWEmyW8hJUH6O3xO264+JYSRFQ7taofh/+89XXoHc9kSlXBdZsbC6jbP/sv+t89btFJSUCNpdjgdBRH4Y63xABAAAAUN1I9Y4EnGDsQfdzOcm6/64m63cZu9lt8emTyyTaOjqIZ7WOBIRJ+s3O1+bu+jP3+3LEVhjnB0xdvzLXP0lq+pGtXuLFw68L0GcWLsCuupEA4+Nw5xsiAAAAAKobSV4EfN/YTF3Maa7zY9hJxuYaO9SU8X6Z/vjvXW1sW9dOP6d8lCl/ifs8rsjwSfO5QTwTEQHGt3M0qTQ/jjd2hLEJxs42v1teRtk+oX5MMs9dF9s+HX4ex113vUIycfbl1xibVcaiY3//h8Y6B3FOQgRoe1+R1BkKL5ZpurXq4PAdAwAAAKhaJBkRsCW4HuLKi5UISfahVbnll+5Qptf7Vt/OwHwdI3J8j4oXAdcF/pcjAvL2KktGvAww9mnM8n2S/0owFags8RfE+c/hOyWu1z7w/7QcH0quwl11S9b+QR3liAB//wZj3V15LYw1L9O2OoQNAAAAoCqRZEWAMsKVp0lVTQzzO9fMdOWVu7D0CFde87DNkklSH49bT5AA3xuUndR0oDFBHLW3vkYy03finpuwxX1PRxPaJOFv4MMC72/O++XFy3aS6s2PWk9476ig3CREwHpj24d/BwAAAACNAkleBJS1OFIyu7+cYguOd0CY90d76ge48prm1OPbfXsZ9Xjh8Kgkc1jYVgmvBHGUTK/65e6eqHP4ffmrjbV3ZR0YtKMc0XJErr85cVYx85K7N6rg8vdPD8pNaiSgq38/JHu0KLLFed8BAAAA6gWpUhFgkvIvufLiLFYNRcDertxcEeB7qG+1XyhPBPxTktkitJgI8HX8wN2ThAgYE7GMfP4emifO/v3SJPtJd28kERA8my8E5SYlArqEfgIAAAA0CqRKRYC5nunKq7QIuM1+oQwRYL77b8lM1ekulRcB3w/aF6f8SoiAWp+7ZIuAWAuQEQEAAAAACSOIAERAfGp77nlHAtw2nwoiAAAAAKA+EUQAIiA+iAAAAACAhoggAhAB8UEEAAAAADREBBGACIgPIgAAAACgISKIAERAfBABAAAAAA0RQQQgAuKDCAAAAABoiAgiABEQH0QAAAAAQENEEAGIgPggAgAAAAAaIoIIQATEBxEAAAAA0BARRAAiID6IgDxcZNq7YNGi5hiGVcaGP/RQTZJ/swAAjQ5BBCAC4hNJBBh7MvB7cwTb6L53alBuVYsAAAAAgKpGEAGIgPhEEQHNjD3j7o07EvDFoNyqFAEXXZRq/7Rlq/eavnzlt2cuXXHRjGUrv4FhWDKmf1PTl75p/rZWnn58zP/PAABAE0SAIALqciTgVmOvG3ve2IsR7Dljy4xNC8qtShHgpyjMePOtmZ83T2f++k83n7T+v4JhWDI2/4NPtnx+o8icNeuWH3/bba3dfxAYyQMAiIogAhAB8SkqAnKfrbHmZZgKCf++JiUCunq/texSrND763smZyxdNXnWirdlxvLVn85YtmojhmEJ2fJVn8560/xtLVu5eNyrr7Z0/3FBBAAAREWSFwEjXHktJJX0lWLbBP4gAlIUEgHfC9oXp/x6EQFJIJnnloQIWG9se1deIkmEFwHT3lg9Zc5b75pEZdXmmctWCYZhydiMpSs369/WzKWrXkUEAACUgSQrAvR6iCsvVjIoiABPIRHw46B9kf2V1JScNq6suhwJKKmnvYglKQJ0JKC7K09FaymjEQVHuBABGFZZQwQAACSEJCMCQnSqykyTGJ9srvOL2EnG5hhr630RRICnNhHQzF1vCtoX2V/DE5KJc2McCfBoPF4x9oKUti7hTWPfLtRORACGVdYQAQAACSHJi4BSsXWYBPpjc9nV+yKNWwSEHO7K0x5q3VmnWRAjv9VmpF12JBPLnwVxOLwMHxu6CIiCj91NhdqJCMCwyhoiAAAgISR5EbBZE+piFiRVOi97F++LNG4RkL7flDncldcs5zmdHrPstL+GqUEcGrsIKPWsAl/XDYXaiQjAsMoaIgAAICGkOkYCEAG5Ddiy5R5zucbYQmPXS2oK0KK45UlGAOj0l9ZBHBq7CCgV/x7eWKidiAAMq6whAgAAEkIQAVUpAgoQt0wfx5Ocny3cFRFQGogADKsCQwQAACSEIAKqUgQEU6ZCi7oGwONj+EDQfj/NCBFQGogADKsCQwQAACSEIAKqUgQkiI/fG8Z6+bZL5URAuIC51HMiohgiAMMasSECAAASQhABn2UR4GOnz3Uv51+znCsjAaWBCMCwKjBEAABAQggi4LMqAvzUocclMwJQ25kDlRoJ6GhsnqTOgih2XkQp5s+UaOfKRwRoQrRkhcx4fbnMeGO5zFyy0iRGKzVJSv3+jTetzTQ/l1WPlufKsuWZf9drObXFISg30bJzfI5kGveEYpWUxfNnZfCeuTICs2WHn1XwfbfPGhEAAJAMggj4rIoA5StBXHPbXykRYJ+ficme5ueNtdxXTj0a112C8hunCHCJ18zlq2Xumvdl/gefyInvbxCtb/bKd2TO6rUy9511cqL7/exVa1PCQL8To67ZK9bYcrzNXvVO9GTP3K9+nbjuo3Q5s1a8nVhM5r23PstHW3YCCemsN9/KKrcUU1/mvfuhfTazV66JHnuNeU6skjL1p+S4eL9NDPR9mv9h8J6Zd0BNf5737nr72by1H9i4W1FQQTGACAAASAhBBHwWRYCvV7cW7eT8apbT/oqKAHPt656t3rOplLMjSjhT4kPz7521/MYqArRH1iem+vO4P94tg79xsfSde6L0OPJo2enwsbLr+Amy++Qpss8Xz5BDL79ajn1ikcx5+z2bpNke3QhJoCaNkxb9S4b85HIZctmVcsglP5VjHn0ykhCY4ZLaox76uxz8o0ttOWpT/r24/GTdCKHpJukcevW11sdDf3qFDDF2/LMvRkt4a2m7xnnqi6+aGF6Var8ru5gddsU1MmLhL2TcH+6S400bNVb6vPzzKxorI9qOfvgxOfjHP0nFqsR6i5ppw6Sn/llSXOx7tvwtI2g2yPTXlsrY3/2vDLrgIukzZ559z3YeM9Zaj88dJX1mzpaBXztPRv3yNzZeKoKsGCh3BAoRAABQWQQR8FkUAWHdy4yNcb7VxXQg//ySnK6THgmogAjYUqL5UY2Ftb1PnkqKAO1h1R7ZE15dIoMv/KZ06tNXmmyzjag7haymTRvZeew4GXPb7TJXe2tNcltKgjZjyZv2/tG/vsWWs03TpvY65NLLUyKkxN7t6a8vt6MVg4zPvhy1CXfdZ8TJ+7GTRa1/3toPbfJp22pisU2zZvbn/b52vu1JjzX64ZJgfX5HPviING3ePF1+sViHpr606NRJuo8YaYWExt2+EwXaq9NqTlz3sRz4ne+ny4hSZ15zvo+86Vc2ZoXiov7NVj/fWC77n3+BtO/Zq+S2t+7aVfb+n9PlhFfesCM/lRACiAAAgIQQRMBnVQSEbVI/j3f++fgiAqJRryMBNuF9d70ccced0mH33fMmpZo0+mS9Nttj5myblNtpKsV6pc3nc98xIuA3t9nvNq2psdfDTEKrPcSlJtg2sf3gYzngW99Jl6OJ9YR7/mxHKGKLAOvfOtsz7cv1SXOnfnvadupIQZzRAC8CdPSiWcuW5SXk7jl1PfBgO4pSSPjMsILJxOqb3y6pTi+oCj3z0AcdodCpSvmenW336nfluCf/KZ0HDEzVEbxn+tyat28vLTt3tlbTtl2Wj/7e7fbaWyY9/a+KCAFEAABAQggi4DMrAqwDmXapTyOcj80EEeDZWIq591S5vrb3yVMJEWAFwHvrZejV10nTFi3SyZhetZe/x8QjbYI96hc3W5Ew5tbbZehVP7M9sp369ksnkz6J7zZsuEx/bVlqykaBBDkjAm7NGgk49LIrI40EbJXYatJq/Jlwd3wRkEpW18rRjzwuzVq3tuU2b99BWnXpmk5IR/381wUT3lJFQHokwNiOhx4mA88+V/Y+7XTZ54tfqtX6n/IF6T31BNlun33TCbKPfbtddjUJ9jN2elRt7bYxX/O+fY57zJgte85fIP1OPDnL+s47ydRxmnQbPiIrwd91wpHSf8Gp0s98nvsd+7258+XIvz6cSsxre+5uCpSONKnv1m/3vnUeuJ8cePF3Zfyf7pXJ/3xepi1+zdpxTz1rpwrte+bZ0rb7TvZeL5q6DD7Q1LMithBDBAAAVBhBBFSlCEj4sDD/vdWaPDs/vb+NUQSEC40PM9bH2F7G+uczV98+xroX+ntKWgTYKUBrP5DDb/m9SSSb24TPJ5Sa/B/z9ydSi4DXfWzv0wTS/vu9DfZ3+v0hl14mrbbvkpXU7T5lmr2vwYoAU/eJ738k+551djpB7z1thux16v+k/93zqKNTbYwrMtIioEW67dqG08xLoCMh8z/8tHbTZ2Hq1XJ0XcD2+w9KJccu9ruOn5hqd77YF1kYrGs7TjFv8LBrr896LhPuvk8WmL8IFT5xFganYrpB9v/6RVnvyp5GWOj31B/1W39WAamm6x3mrllnR3qmPLdYuh02NNXWVilhptOaTowwaoQIAACoQyR5EXCWSZiGm+t4Y0cUsXGSSkJbBf4gAkqoMwY+jnfmxLkxi4D1xrYL/w7KJVER4BbmTnn+ZenQa7esHuV9zzjTJnu2Dr9Foy769WZ+Z6fDmHJ055aj/vao7YVuYhO0VvY67Jrrik4NqUoR4HusX1siHXbvnU76h1+7UCbe8+f0v2tat5ZjHv1H0Xn4UUTAwK+ea0dlpr3yho1vbeafhZajU7hOeG2pdN53QLrt+gwn3v/Xwm0vsEWoLtRVIaDiLnwuY4xQVJ+n/2dZWVuEag++j+H2++1vE31N+G25fmF51hahK+xnKnyO/9eL0mbHHdPf1+ejIwv6vJIaDUAEAAAkhCQjAsL7h7jyYh0aJYgAcWXeYy7XGFsoqV1+fmnspTLL9d8bHcShMYuADcZ2cP7qFKmmJVjBZCNJEZCaBrRB9jn9y1k9s72nTZd5moS78wCKlaMJmo4KjP39H7KSxl3GjS+4y0+1igC/PmL4dTemk80W225nEtAXbEzSayaMDTj7a7EWCOcTAbrgWHv7vcAqGnuTsGv9w65bmDWNa7CJhcZkRonl5LZf4687/oTPZezv7og98mGF1Yo1MvWFV+xiZh+/fc74su3l13eopPdMRxLOv9Cuyegza44MuuhbMnXxa4gAAIBqRBIWAToK4Mpr7hKropbjT2MWAbXFUWPkn5FOl7o0rDsiPpYLgzg0dhHQJfw7KJfERIBNyt6WKc+9JG12yPSstunWXaY8/1JJC3tzE0dNEPufcqr0POoYGf3r39qEzyRSBRPhqhQBeuaA+d4uY8el47Lb8VNT26C++6Gdl+9/37FP31QCG3FeelIiwI7mGKGl27TqCIxfOKvrBjS5toe8VYkIsKNO5n1r3rZdep2Bjnzozk6liIBc02eho1BWACSQ/CMCAAASRpIfCcg6OTaGP41ZBIQc7sprIa6X2vtt6nsqrD8Cfh3GEsmcvDumDB8jnRMg5Y9gNBoR4BM9XeDbJOhBHnDW2bZXv+QkNMtW24RMp5JoT3qxw7qqUQTY5Nx858i//C09NUpNtzHVBFj32D/ygb+l1k+4z+y2mBEXCCcqAkxyrYtpa9q0TSfX/RecEnsL04qNBLhFwe123iUdO93edK6Jnd4zXQVLqULKiK70FKQEBQAiAAAgQQQRUE0iILx/VG4cfR2mvi/H9NmX/4mx3VyZYyOWkc/fOjkxuDGJAE3UdUpFE584m6RXE9xyttX0CW4pyVleEWCSz7lrP8zMES9idg67SVr1ULMm5YoAtyB4ry9kFgB32rO/PTDMJp5ui8udRo1Of64HWumC6chiIwERkCrnPZlw7wPpdms5A885L5qYqLQI8L6+/b70OvrYrPUnA75yjo2fF452Gppf9+DXBuQIiiR3A0IEAABUCEEENCQR4Lf1jJu4+/I3G58PLrOsXH9zRwJ2MXa3sT8bu9/YXabOpbV8L0o9jUQEZBKoLgdkFmnqIktNvmYlvOViVBEw7JrrZcF/t9gkWZPOYqY73Xze/HUd9L0flicC3BSpaYtflbZBb/VAnff//kfpnmddR3HoZVelP9dpOLqVaJQFwuWJALdg1gmgkzZslH3OODPV9mapxHr0zbfY3Zzi74xUCRGQ2olq7G13ZD0n/Vm3Rh1+/Y12upCKLJ0ipHXN0t2GlqVGe0pdeIwIAACoEgQR0JBEgPdZt62M08teW/lHRPQxX3lDa4tzzjO9xN0b9Zk2LhHgp2a88oa06dYtnczuMvaIggt5Ky4C3FQWXSw64Z4HZIxJFnWxcTHTcwsm3vcX6Tf/5PS+9nFEgD8vQU/fbZIvwXdCYeoLL2fFbsBZX00LhcqLgFV2VEKflQoAbX+z1m3SU4HsQWb/WRZ7sWylRIBvt04XU2Hly7YjAs73Vp0729OnNQ6H//Z3MuXfi228dWqT3RZ1+VupGFfgpGBEAABAwggioCGKgL4SLwGubxHwE3cvIqCICMhapOkS2d4nzDAJ2oeJn8BaqgjwpmIgPKm2ZAtOnt2mabyRAE2su/tDsproAVkTtzqB1ybJ722QvieelFkgvEefSAuE84mA/c/7upz08SY7JcbvlZ9rWodOTzr28adlwJlnS/N2utA2c/rvsGtviH2IWaVFgLc5a96Xg39wibTcdru0cAvfAW8tO3WyowQqDFXw+R2C7ML1CqwHQAQAACSIIAIQAfFBBOSQmAgwye6kRf+SmqAHue+8+amtQSuUXJUqAsoy15aoIsCfpDvh7vtTybQrZ9i1C+3oQBiT1L3r7Om2NkF294688RclJ9/5Tgxu32s32WnU4dLtsGHSbejwWm2Hg4dIxz590ifnWvET7LZTdm99HYgAFTka10nPPGdHBTr165eup5C179XLnh48+dkXUrGugGBFBAAAJIQgAhAB8UEE5JDkSIAevFTTtm06weoze+5WCW+digCXyHbo3Vt2GHKodD3wIOl60MHFzdynvcXte/aMPRLg5/qrEPJl6C42U154JTX3/j/Ltjq0S6ekdD3goMyowcQjS14gXKsIyNMbXtDcd9r16CnDfnZ9aspMmdO56kIE+HpUjOo0Ko3l+D/dZ88A2HXC56TtzjvXLgr8tKHttzftvSFRfxABAAAJI4gAREB8EAE5JLYmQBfAvvQfabnddukES/f3L3dnoHJEQHp3oMuvSm1vqX7o9Joipsmk7hd/wLe+E29hsBdF/14srbt0Tcdj//MukFPNg9MtU+ev/2+W6e/0M13E7O9v1rKVHP3wYyUtEM43EqAHttW0a2fF2VZmfq+fa89/Uzf1R5+ZblGq6zuS6hmvKxHgYz/D7bykU4R0q1fd7UjbM/HeB+xi792nTM0s1Na2a7ycGNAF2uVMfUIEAABUEEEEIALigwjIISkR4JPnbfvvlU5AOw/cL/W5JtfLyulNLu271XJOgN8W9OAf/Dj1fZdg73b8FLtAdcCXv2Ln3meZ+Z1OY+l34kn2fu/7vub3pSwQ3mpNgEtq9z7tdCPOXpdjH3tSjvvHMxl7YpFMXvScjLvzHmnZuXP6me0+eYpdQ+DbkUgSXJciICcmOsIywy1c12enYkvfERUFI2/6pXQZNCglltz2oq227yLHPfWsHVGYwYnBAADVhSACEAHxQQTkkNg5AXoq7lvv2T3um7iEUheYTnr62fJ2CHLfs9tpFimjWkSAmiadXQ88OCMCokzNcbsR6c8deu8hJ7y2tOjOPHkXBp9/gZz86eb07j+haZnz138qg795cVYifMiPLrVTmRqUCCj2fukIwVInCrQ+PYTuvfV2xKbnMcelR030OujrF6VOR451wB0iAACgYggiABEQH0RADomJAJc46xxsdc9PSRlyyWUuAY+RULkRBv25oZwYnPJhnRxxx51bzTuPYnZHI/e9ETfcZNtfyP/8W4SeZxLaT+QEPSjNJsKB6eFoacGSWYugU5iOe/IZmbN6bXVPBwoOAZvl3pMo353++jKZvfpdmfL8S9Jy220z09iOTnYaGyIAACAhBBGACIgPIiCHxESAPb31PZl4/1+laU3zdAKrveH2gCbbU1v6aIBPao994mnpvM++MvjCb9o1BzOX5U/2qkIEuJOTe0+bnk4qddHp0CuvkRHX3yTDr73B2MKi1rH3HpkFwuMnyty3Cy8QjntOgPqrMRt3591Zh231iLAouV5EgE7xMe+Vrt2Ya56JbV+c0SYtxwgIXTju493tsKGpkZcEBAAiAAAgQQQRgAiIDyIgh6REgE+o9LTdnUaNzp5e8uOf2GTN7ntfYjl6Gqwu0Ox59LHp5Kxjn74y5cVXUiMCtSR89S4Cgq1SdT9673ffuSfKAvPk5675wAqEQqZbhX7evG0Dzzk3PSLQtEVLOfpvjxZcIFzOYWH+ULP+C07NGsXRBdVJbPGauAiwC9HXyOR/Pif7mTj1OmaStO2+U/o5Fz0YLacsvW6//+D08+o+cpSdJlTeOhZEAABA4ggiABEQH0RADkmKANurvPYDezKruuh7lVt06CDj77rPJtYzdFpKgSTaJpzmqqLBTy3y+9f3nnpCwSS8vkWAXxA8+BsXZ75nkvhxf7zbJugqguzahgKm92gCevQjT9jThf2Iyr5fOqtgG8o6MdifWrz4Vemw++7pZFhPMFZBYxfJVtM5AV5sPfWs1LRpk/a3y6DBNnbai1/Ks9aYaMyO8+VU6HwLRAAAQEIIIgAREB9EQA6JjgTttKDgAAANsUlEQVQsy8yJ32PmrKzFlq26dJHRN99qd2fRRNrfm06Al6a275xnRIT6MeCsr2b1SusC2anPv1Jw15b6FgE+Qe08YGA6MdVzB6JOLfEHjen+9r6cDrvtLie8uiTvAuGyRMCyzGjA8OtvyhrF0UWzGtOqEgGuvTpS1Hf2vJRQNIJJr/0XnGJ/r/HzddvFwM7sz+490FEXtZ7HHJv1ro365W8T3SYUEQAAkBDSeEWAbzciID4lPXdBBMRPetx2jLroUhPgJj650mktNc1lj+mz5HN/ftAm/ZpQa4+rToOZ89ZaOeG1JTL6V7fIjocMyUrKdGqNnrxrk9Eii2PrSwSkR0F+c1vWKMiB3/1BSVt8bpWQv6sJ+Y1ZZem/8y0QLlcEZOK3Lr3Dk4//sGuuixS/uhIBunBZtzttvcMOWf7uPGasfV90Oo8+E22/Pk9r6z+1v9My9J7uI0dnidX0VKCEtgdFBAAAJIhUrwg43RYcLzn3/mw0tpcrL99IwC1l1LPZXRcFfneThiUCxkT0MV95h9YW55xneom7FxEQMUGbvWqNXcjbfcSorES6ietl3q7/3tLr2EnSb9586TN7nvSY+Dlp36NHZncclyi26dZdxv/p3pJ6ZjMiIDsRt4eFRdjyMi0C/GFhum+/8bmgCHA907sdNzndBj04TeetR04qnZDSvezb99ots0B43IS8C4SzRIBJaH3b9zs3mgjQxPqYx5/OOvRNTzrW06Bnr4q3W9BWIsD5Vu7uQF54jbn1dmnetl1W2Xrdbu99jOicKQPOOtsuLB9kTEeY9pgxSzrvO8DcU5P1nU799pTJzzxX9vQnRAAAQIWQ6hUBJ9mCyxMBSq3JadDu++LWE3zn4aDchiICRmpZpg0HS0bMRPU35Ih8z93/zlyvdfdWkwjY0b936meZtk0lREBaCOj87BVr7Em5LTu5LRhL3C5TEzMVCcc/+3wqUSwhgbciwCSFOu2oSTgS8NN4IwFZc/ubNrM9x7WJADuqocnzo/+QZq1ap9uoOwTpFJs4Peg+cd77i2ekfVDxdORfHq7dBy8CHnzE9oinRwLOObdkEZCp9yMjgL7tBFuqd12fhd0tKEYPeVoE/OTyrOcy5rbbyz4nwAuBIx/4m3QZdECkdyz9rhl/ek2aLFNfeLmk05kRAQAA9YRUnwjwCeMUV97mrWorxSGXoJvryVqeubbUtjrzdbQ2v18es82hCPhT4H+DEgHmuoexT2P6G8bgdFde81qeaVNJxf2RnO9E9TtpEfChsU7h30G5VEoE+MRUr5oIaw+rioGuBxwkNW3bSpOmWydqmry279nL7qajvf+a3KmQKDl5d9NZtGdYF3rqgmRNnIdedW2kZNwmres+koO+98P0wuYWHTrKxPv+UnsC7pLcQRdclLq/Y0db/9jf/yH2fHqf1GvSr9Oh1Acte+DZ59TalpQQMSLg4cfsnvf+/sEXfsMImk9K3zHHJ/nLV0u3ocOsGGtp2qPPZuTPfxWrPX69wWFXXmOfR4v2HaS5eQeOuP2Pdk5+uUm3lq/PZbYRnCNu/IXsNul4abfLLtK0Zebk5CY5SX9N69bSsW9fuwh4/J332PfGvmsVOL0YEQAAkBBSfSLAJ7oHBeXG6aH24uFJY21z2upFwElllK/4Hu0rAv8biggY4craXlLJcBx/FR/nRwI/m0uqZ13NigI34uDjFTcuSYkAz0ZTzq/N9TpjN5RpC4318TGohAjwSaUmaTrFQhNrneYy6Zl/26kgw66+Tg655Kd2zv7IG38pRz34d7s7jiaMPjmM3PNskletb+qLr6bNJsBRD5My96svU194JV1OwQTR3K/Tn6a4+6ctfi16nbWYxkvLtT6Ysqe99FpR8ZBuu7l/+mtLo/uhMdcddkxZU55/Waaatvhr7P3zNZ6vm3i+GMRThUwCMfLtVr/tNqtGPOoi6qMfflxG/fq3MvTqa2WIec90q1oVhLp71bGPPZUSb/Zdez/eu1aqb4gAAIBkkOoTAd4fTU7XxfQn168njB1ubEdjnY3tZuwCiZ+sp76U6dE+I/C/oYiA0a6s9qYdK2P6m1vu9yQjsOyoi/u5h6TEmBJnZKdSIiAJthpdUSomAoLE0vdez175ju151WRfe9DV5r77oe35touKdbegMnpk9fAnnYaUtpiJpvoSllMsYdVtNrPuTyhu2eUWPjV5Zm7b4ybtNiHWst6x5egzK1p3HT2Xggm3vmN6grBp9+y31trdpjLv2UeppN+8ezp9ywvGSvT+Z/mECAAASAapUhGgmETvIVt4vHUBub5p8qnJufZ6J5E8huUeGPhfFyKgnCk8/v6JQbkP2A/Ki3N6kbQp53xznSypkZarzL/fjemrp5IiYFOZpovPN7nYDfUxrbgISNtKdxhYsD1ouE1oUr2xS1dmrC7LSareavEh6fZUIj556pnhhGdtFvUE63IMEQAAkBBSZSLAfdcvDr44SNRi4xK0LcV+FxGf9L5hrFXge12IgB7GPimzjsm+XBOLC93vyoqzFO7lT0JwVftIwDAf07oTARjWuAwRAACQEFKdIsAnuwMl/jzyfH56Kxfv1yXOV39OQCVFgH9WO0hqZ5s4dfhEfWZQ7qiIZRQrX2OzxQmtjTF8zAURgGGYNUQAAEBCSBWKgBy/7rUVlDdVJWnCqUCDwvZK3YiAtsbWxKzDihcTzy/5Mo21S2BdQCVBBGAYZg0RAACQEFK9IsCPBgyNm51VED8KsND7Khl/60IE6O47L7j7oi609b7/SMvSrVNdmT/M+byaQARgGGYNEQAAkBBSpSLAleET61+4sqshQbVtNUnoe+ayu/dTMnGsmAjIiU2sQ86C+28Ly9e2SHlbhVYSRACGYdYQAQAACSHVLQK8b72DHWZiHR6WIF6InBe2U+pIBAT1XZ3jT6mE5yfknptwZcwy41Lq+gxEAIZh1hABAAAJIVUsAsJyzHW6K39zDP8SIehFv0u2Tv7rSgTYnZOML19290VN2P1Ixvvm0tmV6UdcdpLUbkdKXYitUuODCMAwzBoiAAAgIaTKRUBYlrme5erYFMPHcvHJ9tPGOoWxy4ljXY0EjMjzvSh1jPRlBuWOd59VUmz5ct90J/b6+ordjwjAsEZuiAAAgISQBiACwvLM9VJXjyblddVb7XfUWSqZdQC5yXldiQBfz7bGn7dj1uMFzVmurJqwLnP9bnBfJRLsje6qpzbvEdSRry5EAIZh1hABAAAJIQ1HBOhWlnbaikkAz5FMIlvJUQG/573yd2M987VN6nBhsGSm79xsvxR/cfDNYXn+Z2c/C+5NUmx5AfCI7kwkqZ2OFrvf5asHEYBhmDVEAABAQki2CHjTJTN+KkipFk4dqYgICPy15ZokcLixJd7fBE4ADtks2QnpJcZauPqb5vErFAEbgnKixDFcKFtIBPge+2PcvZsilu/btsxY6xz/02LLXL/uA5CAGEiPqBieN7ZT0J7L3e/9wWL5/N2QIwI+db+PG+ckLHz3EQEYVmFDBAAAJIRki4BVQcIWNcHzDHPlVUoEaJLqp690NXZTkAwqmwJBEKUdvtc/TOq0h/pI3x7JIwBy4ljOSEDI6HxxDOraxrT1scD/Ugn9OsyVFY4GbCMZoTEtPEhMYxtRcIVxVe431tWVbU9ZNuUdV4tftflb1SMBKkx9DKe/seL42SvXqAjYOHPpyv/DMCwZm7Fs5cbZK9YYEbDyZUQAAEAZSCahbG3sZZPIfGyu64x9EMH8/brP/BBXXt6EOSG/03vzu4RwobFPchIz3/tsLUhgN+VYbkKnB3HNCQ7SaiZF/icTxHFHY6slNRoQNY7e1ksRMSWZ3vo+xh6MWl+w5eoZrpya3PZIRgh0NHaR21EojJMm9hvD2ObENxRiG9w0Lu93eLZCZ7fe4qM8bVjn2veWuBEEc+1rbK2LVdw4J2FbvfvK9CUrp8/f8F+Zs/aDzXPXfiAYhiVjc95Zt3n++k9l1qp3lsx56KFW7j9YiAAAgHIwSUw7k4x1KMfyJa0V8jd9Uq/7dz9jXzV2d5CwloImsy8Zu8b1Srdy5aUT4Qg+6Xfa12Uc9d6YdXTybS1UdpCs7+oS+ccl0wufj/QOQJI6jbhHbnk59bQ11rGIv+0DX5qWG+OkzT4z9z5OX75q2Mw3Vjw0c8mK+4zdj2FYYnbfzKUrH5yxdOWNCxYtau7+E4IIAABojDgxkLuLTmdjxxq72Nhlkpo2dIcKBGO/NXatsUu2pPbb31+CnnCf/NeWrFYbEvSoV7iOZsG/NT69JHV2g64b0IPLbpHU+Qn/62J9nrGxmtzXpa8AAAAAEBGX3JVl9ey/Jpk1cf1wiX9N8TuLllOncayruuLGV4qsp4jShiTbnbRFiQkAAAAAVIAgYW3uruEc9KY+4c/9DEojJ4bpJF8yoyj+98QVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABo6/w/09/HkI9IWgQAAAABJRU5ErkJggg==";
|
|
18482
18506
|
|
|
18507
|
+
// src/version.ts
|
|
18508
|
+
var FORGECHARTS_VERSION = "1.5.25" ;
|
|
18509
|
+
|
|
18483
18510
|
// src/react/assets/logo_light.png
|
|
18484
18511
|
var logo_light_default = "data:image/png;base64,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";
|
|
18485
18512
|
function setWsAuthToken(token) {
|
|
@@ -24172,32 +24199,66 @@ var ChartCanvas = forwardRef(
|
|
|
24172
24199
|
crosshairXRef.current = null;
|
|
24173
24200
|
},
|
|
24174
24201
|
children: [
|
|
24175
|
-
/* @__PURE__ */
|
|
24176
|
-
"
|
|
24202
|
+
/* @__PURE__ */ jsxs(
|
|
24203
|
+
"div",
|
|
24177
24204
|
{
|
|
24178
|
-
href: "https://forgecharts.com",
|
|
24179
|
-
target: "_blank",
|
|
24180
|
-
rel: "noopener noreferrer",
|
|
24181
24205
|
style: {
|
|
24182
24206
|
position: "absolute",
|
|
24183
24207
|
bottom: 38,
|
|
24184
24208
|
left: 6,
|
|
24185
24209
|
zIndex: 5,
|
|
24186
|
-
|
|
24210
|
+
display: "flex",
|
|
24211
|
+
flexDirection: "column",
|
|
24212
|
+
alignItems: "flex-start",
|
|
24213
|
+
gap: 1,
|
|
24214
|
+
// Never intercept clicks meant for the chart; the logo re-enables
|
|
24215
|
+
// pointer events on itself below.
|
|
24216
|
+
pointerEvents: "none"
|
|
24187
24217
|
},
|
|
24188
|
-
children:
|
|
24189
|
-
|
|
24190
|
-
|
|
24191
|
-
|
|
24192
|
-
|
|
24193
|
-
|
|
24194
|
-
|
|
24195
|
-
|
|
24196
|
-
|
|
24197
|
-
|
|
24218
|
+
children: [
|
|
24219
|
+
/* @__PURE__ */ jsx(
|
|
24220
|
+
"a",
|
|
24221
|
+
{
|
|
24222
|
+
href: "https://forgecharts.com",
|
|
24223
|
+
target: "_blank",
|
|
24224
|
+
rel: "noopener noreferrer",
|
|
24225
|
+
style: { lineHeight: 0, pointerEvents: "auto" },
|
|
24226
|
+
children: /* @__PURE__ */ jsx(
|
|
24227
|
+
"img",
|
|
24228
|
+
{
|
|
24229
|
+
src: theme === "light" ? logo_light_default : logo_dark_default,
|
|
24230
|
+
alt: "ForgeCharts",
|
|
24231
|
+
style: {
|
|
24232
|
+
height: 48,
|
|
24233
|
+
width: "auto",
|
|
24234
|
+
opacity: 0.55,
|
|
24235
|
+
userSelect: "none"
|
|
24236
|
+
}
|
|
24237
|
+
}
|
|
24238
|
+
)
|
|
24198
24239
|
}
|
|
24199
|
-
|
|
24200
|
-
|
|
24240
|
+
),
|
|
24241
|
+
/* @__PURE__ */ jsxs(
|
|
24242
|
+
"span",
|
|
24243
|
+
{
|
|
24244
|
+
style: {
|
|
24245
|
+
fontSize: 9,
|
|
24246
|
+
lineHeight: 1,
|
|
24247
|
+
paddingLeft: 2,
|
|
24248
|
+
opacity: 0.45,
|
|
24249
|
+
userSelect: "text",
|
|
24250
|
+
pointerEvents: "auto",
|
|
24251
|
+
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
24252
|
+
color: theme === "light" ? "#000" : "#fff"
|
|
24253
|
+
},
|
|
24254
|
+
title: `ForgeCharts SDK ${FORGECHARTS_VERSION}`,
|
|
24255
|
+
children: [
|
|
24256
|
+
"v",
|
|
24257
|
+
FORGECHARTS_VERSION
|
|
24258
|
+
]
|
|
24259
|
+
}
|
|
24260
|
+
)
|
|
24261
|
+
]
|
|
24201
24262
|
}
|
|
24202
24263
|
),
|
|
24203
24264
|
/* @__PURE__ */ jsxs(
|