@xbbg/core 1.2.7 → 1.3.0
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.d.ts +12 -1
- package/dist/index.js +51 -5
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ declare class BlpRequestError extends BlpError {
|
|
|
34
34
|
readonly code?: string | number;
|
|
35
35
|
constructor(message: string, options?: BlpRequestErrorOptions);
|
|
36
36
|
}
|
|
37
|
+
declare class BlpLimitError extends BlpRequestError {
|
|
38
|
+
}
|
|
37
39
|
declare class BlpValidationError extends BlpError {
|
|
38
40
|
readonly element?: string;
|
|
39
41
|
readonly suggestion?: string;
|
|
@@ -583,7 +585,16 @@ declare class Subscription implements AsyncIterator<Tick>, AsyncIterable<Tick> {
|
|
|
583
585
|
declare class Engine {
|
|
584
586
|
private inner;
|
|
585
587
|
constructor(host?: string, port?: number);
|
|
588
|
+
/** Allocate an Engine around an already-constructed native engine. */
|
|
589
|
+
private static fromInner;
|
|
586
590
|
static withConfig(config?: EngineConfig): Engine;
|
|
591
|
+
/**
|
|
592
|
+
* Connect asynchronously: the Bloomberg session connect and service warmup
|
|
593
|
+
* run off the JS thread. The sync constructor and `withConfig` block the
|
|
594
|
+
* Node event loop for the duration of the connect (seconds, up to the 30s
|
|
595
|
+
* session timeout) — prefer this factory in servers.
|
|
596
|
+
*/
|
|
597
|
+
static connect(config?: EngineConfig): Promise<Engine>;
|
|
587
598
|
request(params: RequestInput): Promise<unknown>;
|
|
588
599
|
requestRaw(params: RequestInput): Promise<Buffer>;
|
|
589
600
|
bdp(tickers: readonly string[], fields: readonly string[], options?: BdpOptions): Promise<unknown>;
|
|
@@ -735,4 +746,4 @@ declare function version(): string;
|
|
|
735
746
|
declare const setLogLevel: (level: string) => void;
|
|
736
747
|
declare const getLogLevel: () => string;
|
|
737
748
|
|
|
738
|
-
export { type ActiveCdxOptions, ArrowSubscription, type AuthConfig, Backend, type BackendKind, type BdhOptions, type BdibOptions, type BdpOptions, type BdtickOptions, type BeqsOptions, type BfldsOptions, type BlkpOptions, BlpError, BlpInternalError, BlpRequestError, BlpSessionError, BlpTimeoutError, BlpValidationError, type BqlOptions, type BqrOptions, type BsrchOptions, type BtaOptions, CDX_INFO_FIELDS, CDX_PRICING_FIELDS, CDX_RISK_FIELDS, type CdxOptions, type CdxTickerInfo, type CorporateBondsOptions, type DateLike, type DateTimeLike, type DividendOptions, type DividendYieldOptions, Engine, type EngineConfig, type EtfHoldingsOptions, type ExchangeInfoResult, type ExchangeOverrideInput, FieldHandle, type FieldInfo, Format, type FormatKind, type FuturesCandidate, type FuturesCurveOptions, type FuturesResolveOptions, type FxPairInfo, type IndexMembersOptions, type MarketRule, type OverridesMap, type PreferredsOptions, type PrimitiveValue, type RecipeBackendOptions, type RequestInput, type RequestOptions, type ServerAddress, type SessionWindowsInfo, type Socks5Config, type StreamOptions, type StringPair, Subscription, type SubscriptionStats, Tick, type TickValue, type TickerParts, type TimeRange, type TlsConfig, type TurnoverOptions, type VolFieldSpec, type VolSurfaceOptions, type VolSurfacePreset, type YasOptions, abdh, abdib, abdp, abds, abdtick, asubscribe, bdh, bdib, bdp, bds, bdtick, blp, configure, connect, ext, formatDate, formatDateTime, getLogLevel, setLogLevel, subscribe, version, wrapError };
|
|
749
|
+
export { type ActiveCdxOptions, ArrowSubscription, type AuthConfig, Backend, type BackendKind, type BdhOptions, type BdibOptions, type BdpOptions, type BdtickOptions, type BeqsOptions, type BfldsOptions, type BlkpOptions, BlpError, BlpInternalError, BlpLimitError, BlpRequestError, BlpSessionError, BlpTimeoutError, BlpValidationError, type BqlOptions, type BqrOptions, type BsrchOptions, type BtaOptions, CDX_INFO_FIELDS, CDX_PRICING_FIELDS, CDX_RISK_FIELDS, type CdxOptions, type CdxTickerInfo, type CorporateBondsOptions, type DateLike, type DateTimeLike, type DividendOptions, type DividendYieldOptions, Engine, type EngineConfig, type EtfHoldingsOptions, type ExchangeInfoResult, type ExchangeOverrideInput, FieldHandle, type FieldInfo, Format, type FormatKind, type FuturesCandidate, type FuturesCurveOptions, type FuturesResolveOptions, type FxPairInfo, type IndexMembersOptions, type MarketRule, type OverridesMap, type PreferredsOptions, type PrimitiveValue, type RecipeBackendOptions, type RequestInput, type RequestOptions, type ServerAddress, type SessionWindowsInfo, type Socks5Config, type StreamOptions, type StringPair, Subscription, type SubscriptionStats, Tick, type TickValue, type TickerParts, type TimeRange, type TlsConfig, type TurnoverOptions, type VolFieldSpec, type VolSurfaceOptions, type VolSurfacePreset, type YasOptions, abdh, abdib, abdp, abds, abdtick, asubscribe, bdh, bdib, bdp, bds, bdtick, blp, configure, connect, ext, formatDate, formatDateTime, getLogLevel, setLogLevel, subscribe, version, wrapError };
|
package/dist/index.js
CHANGED
|
@@ -463,6 +463,8 @@ var BlpRequestError = class extends BlpError {
|
|
|
463
463
|
this.code = options.code;
|
|
464
464
|
}
|
|
465
465
|
};
|
|
466
|
+
var BlpLimitError = class extends BlpRequestError {
|
|
467
|
+
};
|
|
466
468
|
var BlpValidationError = class extends BlpError {
|
|
467
469
|
element;
|
|
468
470
|
suggestion;
|
|
@@ -476,11 +478,37 @@ var BlpTimeoutError = class extends BlpError {
|
|
|
476
478
|
};
|
|
477
479
|
var BlpInternalError = class extends BlpError {
|
|
478
480
|
};
|
|
481
|
+
var CODE_PREFIX = /^\[XBBG:([A-Z]+)\]\s*/u;
|
|
482
|
+
function fromCode(code, msg) {
|
|
483
|
+
switch (code) {
|
|
484
|
+
case "SESSION":
|
|
485
|
+
return new BlpSessionError(msg);
|
|
486
|
+
case "REQUEST":
|
|
487
|
+
return new BlpRequestError(msg, parseRequestOptions(msg));
|
|
488
|
+
case "LIMIT":
|
|
489
|
+
return new BlpLimitError(msg, parseRequestOptions(msg));
|
|
490
|
+
case "VALIDATION":
|
|
491
|
+
return new BlpValidationError(msg, parseValidationOptions(msg));
|
|
492
|
+
case "TIMEOUT":
|
|
493
|
+
return new BlpTimeoutError(msg);
|
|
494
|
+
case "CANCELLED":
|
|
495
|
+
case "INTERNAL":
|
|
496
|
+
return new BlpInternalError(msg);
|
|
497
|
+
default:
|
|
498
|
+
return new BlpError(msg);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
479
501
|
function wrapError(napiError) {
|
|
480
502
|
if (napiError instanceof BlpError) {
|
|
481
503
|
return napiError;
|
|
482
504
|
}
|
|
483
505
|
const msg = napiError instanceof Error ? napiError.message : typeof napiError === "string" ? napiError : "";
|
|
506
|
+
const codeMatch = CODE_PREFIX.exec(msg);
|
|
507
|
+
const nativeCode = codeMatch?.[1];
|
|
508
|
+
const matchedPrefix = codeMatch?.[0];
|
|
509
|
+
if (nativeCode !== void 0 && matchedPrefix !== void 0) {
|
|
510
|
+
return fromCode(nativeCode, msg.slice(matchedPrefix.length));
|
|
511
|
+
}
|
|
484
512
|
if (msg.includes("Session start failed") || msg.includes("session start failed") || msg.includes("Failed to start session") || msg.includes("Failed to open service") || msg.includes("failed to spawn worker") || msg.includes("connect event failed")) {
|
|
485
513
|
return new BlpSessionError(msg);
|
|
486
514
|
}
|
|
@@ -1558,18 +1586,35 @@ var Engine = class _Engine {
|
|
|
1558
1586
|
throw wrapError(error);
|
|
1559
1587
|
}
|
|
1560
1588
|
}
|
|
1561
|
-
|
|
1589
|
+
/** Allocate an Engine around an already-constructed native engine. */
|
|
1590
|
+
static fromInner(inner) {
|
|
1562
1591
|
const maybeEngine = Object.create(_Engine.prototype);
|
|
1563
1592
|
if (!(maybeEngine instanceof _Engine)) {
|
|
1564
1593
|
throw new TypeError("Failed to allocate Engine instance");
|
|
1565
1594
|
}
|
|
1566
|
-
|
|
1595
|
+
maybeEngine.inner = inner;
|
|
1596
|
+
return maybeEngine;
|
|
1597
|
+
}
|
|
1598
|
+
static withConfig(config = {}) {
|
|
1599
|
+
try {
|
|
1600
|
+
return _Engine.fromInner(native.JsEngine.withConfig(config));
|
|
1601
|
+
} catch (error) {
|
|
1602
|
+
throw wrapError(error);
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
/**
|
|
1606
|
+
* Connect asynchronously: the Bloomberg session connect and service warmup
|
|
1607
|
+
* run off the JS thread. The sync constructor and `withConfig` block the
|
|
1608
|
+
* Node event loop for the duration of the connect (seconds, up to the 30s
|
|
1609
|
+
* session timeout) — prefer this factory in servers.
|
|
1610
|
+
*/
|
|
1611
|
+
static async connect(config) {
|
|
1567
1612
|
try {
|
|
1568
|
-
|
|
1613
|
+
const inner = config === void 0 ? await native.JsEngine.connect() : await native.JsEngine.connectWithConfig(config);
|
|
1614
|
+
return _Engine.fromInner(inner);
|
|
1569
1615
|
} catch (error) {
|
|
1570
1616
|
throw wrapError(error);
|
|
1571
1617
|
}
|
|
1572
|
-
return engine;
|
|
1573
1618
|
}
|
|
1574
1619
|
async request(params) {
|
|
1575
1620
|
const backend = normalizeBackend(params.backend);
|
|
@@ -2210,7 +2255,7 @@ var Engine = class _Engine {
|
|
|
2210
2255
|
}
|
|
2211
2256
|
};
|
|
2212
2257
|
async function connect(config) {
|
|
2213
|
-
return await
|
|
2258
|
+
return await Engine.connect(config);
|
|
2214
2259
|
}
|
|
2215
2260
|
function configure(configOrHost, port) {
|
|
2216
2261
|
configuredEngineConfig = normalizeConfigureArgs(configOrHost, port);
|
|
@@ -2382,6 +2427,7 @@ exports.ArrowSubscription = ArrowSubscription;
|
|
|
2382
2427
|
exports.Backend = Backend;
|
|
2383
2428
|
exports.BlpError = BlpError;
|
|
2384
2429
|
exports.BlpInternalError = BlpInternalError;
|
|
2430
|
+
exports.BlpLimitError = BlpLimitError;
|
|
2385
2431
|
exports.BlpRequestError = BlpRequestError;
|
|
2386
2432
|
exports.BlpSessionError = BlpSessionError;
|
|
2387
2433
|
exports.BlpTimeoutError = BlpTimeoutError;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/arrow-zero-copy.ts","../src/backends.ts","../src/dates.ts","../src/errors.ts","../src/native/platform-map.ts","../src/native/resolve-native.ts","../src/runtime-search-path.ts","../src/index.ts"],"names":["Field","Schema","makeData","Struct","Table","RecordBatch","Bool","Binary","DateDay","DateMillisecond","Float32","Float64","Int8","Int16","Int32","Int64","LargeBinary","LargeUtf8","Null","TimeMillisecond","TimeSecond","TimeMicrosecond","TimeNanosecond","TimestampMillisecond","TimestampNanosecond","TimestampSecond","TimestampMicrosecond","Uint8","Uint16","Uint32","Uint64","Utf8","dt","createRequire","fs","path","exists","nodeRequire","tableFromIPC","json"],"mappings":";;;;;;;;;;;;;AAuCA,IAAM,oBAAA,0BAA8B,0BAA0B,CAAA;AAE9D,SAAS,2BAA2B,IAAA,EAAoB;AACtD,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sCAAA,EAAyC,MAAA,CAAO,IAAI,CAAC,CAAA,CAAE,CAAA;AACzE;AAOO,SAAS,0BAA0B,KAAA,EAAwC;AAChF,EAAA,MAAM,kBAA4B,EAAC;AACnC,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AAC3C,IAAA,MAAM,IAAA,GAAO,UAAU,MAAM,CAAA;AAC7B,IAAA,OAAO,IAAIA,iBAAA,CAAM,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,OAAO,QAAQ,CAAA;AAAA,EACrD,CAAC,CAAA;AACD,EAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,cAAA,CAAe,MAAA,EAAQ,eAAe,CAAC,CAAA;AAEtF,EAAA,MAAM,MAAA,GAAS,IAAIC,kBAAA,CAAO,MAAM,CAAA;AAChC,EAAA,MAAM,aAAaC,oBAAA,CAAS;AAAA,IAC1B,QAAA;AAAA,IACA,QAAQ,KAAA,CAAM,OAAA;AAAA,IACd,IAAA,EAAM,IAAIC,kBAAA,CAAO,MAAM;AAAA,GACxB,CAAA;AACD,EAAA,MAAM,KAAA,GAAQ,IAAIC,iBAAA,CAAM,MAAA,EAAQ,IAAIC,uBAAA,CAAY,MAAA,EAAQ,UAAU,CAAC,CAAA;AAKnE,EAAA,MAAA,CAAO,cAAA,CAAe,OAAO,oBAAA,EAAsB;AAAA,IACjD,UAAA,EAAY,KAAA;AAAA,IACZ,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,cAAA,CAAe,QAA2B,eAAA,EAAiC;AAClF,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,MAAA,CAAO,UAAA,EAAY,eAAe,CAAA;AACvE,EAAA,QAAQ,OAAO,IAAA;AAAM,IACnB,KAAK,MAAA,EAAQ;AACX,MAAA,OAAOH,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAII,gBAAA,EAAK;AAAA,QACf,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,UAAA;AAAA,QACA,IAAA,EAAM,kBAAkB,MAAA,EAAQ,eAAA,EAAiB,KAAK,IAAA,CAAK,MAAA,CAAO,MAAA,GAAS,CAAC,CAAC;AAAA,OAC9E,CAAA;AAAA,IACH;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAOJ,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAIK,kBAAA,EAAO;AAAA,QACjB,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,UAAA;AAAA,QACA,YAAA,EAAc,eAAA,CAAgB,MAAA,EAAQ,eAAe,CAAA;AAAA,QACrD,IAAA,EAAM,iBAAA,CAAkB,MAAA,EAAQ,eAAe;AAAA,OAChD,CAAA;AAAA,IACH;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,mBAAA,IAAW,UAAU,CAAA;AAAA,IAClF;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,2BAAA,IAAmB,aAAa,CAAA;AAAA,IAC7F;AAAA,IACA,KAAK,SAAA,EAAW;AACd,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,mBAAA,IAAW,YAAY,CAAA;AAAA,IACpF;AAAA,IACA,KAAK,SAAA,EAAW;AACd,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,mBAAA,IAAW,YAAY,CAAA;AAAA,IACpF;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,gBAAA,IAAQ,SAAS,CAAA;AAAA,IAC9E;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,iBAAA,IAAS,UAAU,CAAA;AAAA,IAChF;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,iBAAA,IAAS,UAAU,CAAA;AAAA,IAChF;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,iBAAA,IAAS,aAAa,CAAA;AAAA,IACnF;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAOb,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAIc,uBAAA,EAAY;AAAA,QACtB,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,UAAA;AAAA,QACA,YAAA,EAAc,oBAAA,CAAqB,MAAA,EAAQ,eAAe,CAAA;AAAA,QAC1D,IAAA,EAAM,iBAAA,CAAkB,MAAA,EAAQ,eAAe;AAAA,OAChD,CAAA;AAAA,IACH;AAAA,IACA,KAAK,YAAA,EAAc;AACjB,MAAA,OAAOd,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAIe,qBAAA,EAAU;AAAA,QACpB,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,UAAA;AAAA,QACA,YAAA,EAAc,oBAAA,CAAqB,MAAA,EAAQ,eAAe,CAAA;AAAA,QAC1D,IAAA,EAAM,iBAAA,CAAkB,MAAA,EAAQ,eAAe;AAAA,OAChD,CAAA;AAAA,IACH;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAOf,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAIgB,gBAAA,EAAK;AAAA,QACf,QAAQ,MAAA,CAAO;AAAA,OAChB,CAAA;AAAA,IACH;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,2BAAA,IAAmB,UAAU,CAAA;AAAA,IAC1F;AAAA,IACA,KAAK,UAAA,EAAY;AACf,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,sBAAA,IAAc,UAAU,CAAA;AAAA,IACrF;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,2BAAA,IAAmB,aAAa,CAAA;AAAA,IAC7F;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,0BAAA,IAAkB,aAAa,CAAA;AAAA,IAC5F;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,UAAA;AAAA,QACL,MAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAIC,gCAAA,CAAqB,MAAA,CAAO,QAAQ,CAAA;AAAA,QACxC;AAAA,OACF;AAAA,IACF;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,UAAA;AAAA,QACL,MAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAIC,+BAAA,CAAoB,MAAA,CAAO,QAAQ,CAAA;AAAA,QACvC;AAAA,OACF;AAAA,IACF;AAAA,IACA,KAAK,aAAA,EAAe;AAClB,MAAA,OAAO,UAAA;AAAA,QACL,MAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAIC,2BAAA,CAAgB,MAAA,CAAO,QAAQ,CAAA;AAAA,QACnC;AAAA,OACF;AAAA,IACF;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,UAAA;AAAA,QACL,MAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,IAAIC,gCAAA,CAAqB,MAAA,CAAO,QAAQ,CAAA;AAAA,QACxC;AAAA,OACF;AAAA,IACF;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,iBAAA,IAAS,UAAU,CAAA;AAAA,IAChF;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,kBAAA,IAAU,WAAW,CAAA;AAAA,IAClF;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,kBAAA,IAAU,WAAW,CAAA;AAAA,IAClF;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,WAAW,MAAA,EAAQ,eAAA,EAAiB,YAAY,IAAIC,kBAAA,IAAU,cAAc,CAAA;AAAA,IACrF;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO5B,oBAAA,CAAS;AAAA,QACd,IAAA,EAAM,IAAI6B,gBAAA,EAAK;AAAA,QACf,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,UAAA;AAAA,QACA,YAAA,EAAc,eAAA,CAAgB,MAAA,EAAQ,eAAe,CAAA;AAAA,QACrD,IAAA,EAAM,iBAAA,CAAkB,MAAA,EAAQ,eAAe;AAAA,OAChD,CAAA;AAAA,IACH;AAAA;AAEF,EAAA,OAAO,0BAAA,CAA2B,OAAO,IAAI,CAAA;AAC/C;AAEA,SAAS,UAAU,MAAA,EAAqC;AACtD,EAAA,QAAQ,OAAO,IAAA;AAAM,IACnB,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO,IAAIzB,gBAAA,EAAK;AAAA,IAClB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,kBAAA,EAAO;AAAA,IACpB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,mBAAA,EAAQ;AAAA,IACrB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,2BAAA,EAAgB;AAAA,IAC7B;AAAA,IACA,KAAK,SAAA,EAAW;AACd,MAAA,OAAO,IAAIC,mBAAA,EAAQ;AAAA,IACrB;AAAA,IACA,KAAK,SAAA,EAAW;AACd,MAAA,OAAO,IAAIC,mBAAA,EAAQ;AAAA,IACrB;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO,IAAIC,gBAAA,EAAK;AAAA,IAClB;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,IAAIC,iBAAA,EAAM;AAAA,IACnB;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,IAAIC,iBAAA,EAAM;AAAA,IACnB;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,IAAIC,iBAAA,EAAM;AAAA,IACnB;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,IAAIC,uBAAA,EAAY;AAAA,IACzB;AAAA,IACA,KAAK,YAAA,EAAc;AACjB,MAAA,OAAO,IAAIC,qBAAA,EAAU;AAAA,IACvB;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO,IAAIC,gBAAA,EAAK;AAAA,IAClB;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,IAAIC,2BAAA,EAAgB;AAAA,IAC7B;AAAA,IACA,KAAK,UAAA,EAAY;AACf,MAAA,OAAO,IAAIC,sBAAA,EAAW;AAAA,IACxB;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,IAAIC,2BAAA,EAAgB;AAAA,IAC7B;AAAA,IACA,KAAK,WAAA,EAAa;AAChB,MAAA,OAAO,IAAIC,0BAAA,EAAe;AAAA,IAC5B;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,IAAIC,gCAAA,CAAqB,MAAA,CAAO,QAAQ,CAAA;AAAA,IACjD;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,IAAIC,+BAAA,CAAoB,MAAA,CAAO,QAAQ,CAAA;AAAA,IAChD;AAAA,IACA,KAAK,aAAA,EAAe;AAClB,MAAA,OAAO,IAAIC,2BAAA,CAAgB,MAAA,CAAO,QAAQ,CAAA;AAAA,IAC5C;AAAA,IACA,KAAK,cAAA,EAAgB;AACnB,MAAA,OAAO,IAAIC,gCAAA,CAAqB,MAAA,CAAO,QAAQ,CAAA;AAAA,IACjD;AAAA,IACA,KAAK,OAAA,EAAS;AACZ,MAAA,OAAO,IAAIC,iBAAA,EAAM;AAAA,IACnB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,kBAAA,EAAO;AAAA,IACpB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,kBAAA,EAAO;AAAA,IACpB;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,OAAO,IAAIC,kBAAA,EAAO;AAAA,IACpB;AAAA,IACA,KAAK,MAAA,EAAQ;AACX,MAAA,OAAO,IAAIC,gBAAA,EAAK;AAAA,IAClB;AAAA;AAEF,EAAA,OAAO,0BAAA,CAA2B,OAAO,IAAI,CAAA;AAC/C;AAEA,SAAS,UAAA,CACP,MAAA,EACA,eAAA,EACA,UAAA,EACA,MACA,IAAA,EACS;AACT,EAAA,OAAO7B,oBAAA,CAAS;AAAA,IACd,IAAA,EAAM,iBAAA,CAAkB,MAAA,EAAQ,IAAA,EAAM,eAAe,CAAA;AAAA,IACrD,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,UAAA;AAAA,IACA,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB;AAAA,GACQ,CAAA;AACZ;AAEA,SAAS,iBAAA,CACP,MAAA,EACA,IAAA,EACA,eAAA,EACG;AACH,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,EAAQ,MAAM,CAAA;AAC3C,EAAA,sBAAA,CAAuB,QAAQ,MAAA,EAAQ,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAQ,KAAK,iBAAiB,CAAA;AACpF,EAAA,eAAA,CAAgB,KAAK,MAAM,CAAA;AAC3B,EAAA,OAAO,IAAI,IAAA,CAAK,MAAA,CAAO,QAAQ,MAAA,CAAO,UAAA,EAAY,OAAO,MAAM,CAAA;AACjE;AAEA,SAAS,eAAA,CAAgB,QAA2B,eAAA,EAAuC;AACzF,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,EAAQ,SAAS,CAAA;AAC9C,EAAA,sBAAA;AAAA,IACE,MAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAO,MAAA,GAAS,CAAA;AAAA,IAChB,UAAA,CAAW;AAAA,GACb;AACA,EAAA,eAAA,CAAgB,KAAK,MAAM,CAAA;AAC3B,EAAA,OAAO,IAAI,WAAW,MAAA,CAAO,MAAA,EAAQ,OAAO,UAAA,EAAY,MAAA,CAAO,SAAS,CAAC,CAAA;AAC3E;AAEA,SAAS,oBAAA,CAAqB,QAA2B,eAAA,EAA0C;AACjG,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,EAAQ,SAAS,CAAA;AAC9C,EAAA,sBAAA;AAAA,IACE,MAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAO,MAAA,GAAS,CAAA;AAAA,IAChB,aAAA,CAAc;AAAA,GAChB;AACA,EAAA,eAAA,CAAgB,KAAK,MAAM,CAAA;AAC3B,EAAA,OAAO,IAAI,cAAc,MAAA,CAAO,MAAA,EAAQ,OAAO,UAAA,EAAY,MAAA,CAAO,SAAS,CAAC,CAAA;AAC9E;AAEA,SAAS,iBAAA,CACP,MAAA,EACA,eAAA,EACA,UAAA,EACY;AACZ,EAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,EAAQ,MAAM,CAAA;AAC3C,EAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,IAAA,sBAAA,CAAuB,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,CAAC,CAAA;AAAA,EAC9D;AACA,EAAA,eAAA,CAAgB,KAAK,MAAM,CAAA;AAC3B,EAAA,OAAO,IAAI,WAAW,MAAA,CAAO,MAAA,EAAQ,OAAO,UAAA,EAAY,UAAA,IAAc,OAAO,UAAU,CAAA;AACzF;AAEA,SAAS,iBAAA,CACP,QACA,eAAA,EACwB;AACxB,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,eAAA,CAAgB,KAAK,MAAM,CAAA;AAC3B,EAAA,OAAO,IAAI,UAAA,CAAW,MAAA,CAAO,QAAQ,MAAA,CAAO,UAAA,EAAY,OAAO,UAAU,CAAA;AAC3E;AAEA,SAAS,sBAAA,CACP,MAAA,EACA,QAAA,EACA,MAAA,EACA,UACA,eAAA,EACM;AACN,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,QAAQ,CAAA,IAAK,WAAW,CAAA,EAAG;AACnD,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,uBAAuB,MAAA,CAAO,IAAI,CAAA,aAAA,EAAgB,QAAQ,mBAAmB,QAAQ,CAAA;AAAA,KACvF;AAAA,EACF;AACA,EAAA,MAAM,gBAAgB,QAAA,GAAW,eAAA;AACjC,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,CAAc,aAAa,CAAA,IAAK,MAAA,CAAO,aAAa,aAAA,EAAe;AAC7E,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,oBAAA,EAAuB,OAAO,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA,wCAAA,EACvB,aAAa,CAAA,YAAA,EAAe,MAAA,CAAO,UAAU,CAAA;AAAA,KACtE;AAAA,EACF;AACF;AAEA,SAAS,aAAA,CAAc,QAA2B,QAAA,EAAsC;AACtF,EAAA,MAAM,MAAA,GAAS,OAAO,QAAQ,CAAA;AAC9B,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,OAAO,IAAI,CAAA,YAAA,EAAe,QAAQ,CAAA,OAAA,CAAS,CAAA;AAAA,EACpF;AACA,EAAA,OAAO,MAAA;AACT;;;ACzZO,IAAM,OAAA,GAAU,OAAO,MAAA,CAAO;AAAA,EACnC,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,MAAA,GAAS,OAAO,MAAA,CAAO;AAAA,EAClC,IAAA,EAAM,MAAA;AAAA,EACN,UAAA,EAAY,YAAA;AAAA,EACZ,kBAAA,EAAoB,oBAAA;AAAA,EACpB,SAAA,EAAW;AACb,CAAC;;;ACID,IAAM,WAAA,GAAc,4BAAA;AACpB,IAAM,WAAA,GAAc,UAAA;AAIpB,IAAM,iBAAA,GAAoB,2CAAA;AAEnB,SAAS,YAAY,KAAA,EAAmD;AAC7E,EAAA,OACE,OAAO,UAAU,QAAA,IACjB,KAAA,KAAU,QACV,UAAA,IAAc,KAAA,IACd,OAAQ,KAAA,CAAiC,QAAA,KAAa,UAAA;AAE1D;AAEA,SAAS,sBAAsB,KAAA,EAAqB;AAClD,EAAA,IAAI,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,IAAK,CAAC,YAAY,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,CAAA,EAAG;AACpE,IAAA,MAAM,IAAI,SAAA;AAAA,MACR,CAAA,sBAAA,EAAyB,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA,8HAAA;AAAA,KAEhD;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,KAAA,EAAuB;AAC/C,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,IAAI,KAAK,KAAK,CAAA;AAAA,EACvB;AACA,EAAA,IAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACtB,IAAA,OAAO,MAAM,QAAA,EAAS;AAAA,EACxB;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,EAAK;AACxB,IAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,IAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,MAAA,MAAM,OAAO,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AACpC,MAAA,MAAM,QAAQ,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,GAAI,CAAA;AACzC,MAAA,MAAM,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AACnC,MAAA,MAAM8B,GAAAA,GAAK,IAAI,IAAA,CAAK,IAAA,CAAK,IAAI,IAAA,EAAM,KAAA,EAAO,GAAG,CAAC,CAAA;AAC9C,MAAA,IAAI,MAAA,CAAO,KAAA,CAAMA,GAAAA,CAAG,OAAA,EAAS,CAAA,EAAG;AAC9B,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,8BAAA,EAAiC,KAAK,SAAA,CAAU,KAAK,CAAC,CAAA,CAAE,CAAA;AAAA,MAC9E;AACA,MAAA,OAAOA,GAAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAK,GAAG,CAAA;AACxC,IAAA,MAAM,EAAA,GAAK,IAAI,IAAA,CAAK,UAAU,CAAA;AAC9B,IAAA,IAAI,MAAA,CAAO,KAAA,CAAM,EAAA,CAAG,OAAA,EAAS,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,aAAA,EAAgB,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA,4FAAA;AAAA,OAEvC;AAAA,IACF;AACA,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,UAAU,CAAA,eAAA,EAAkB,OAAO,KAAK,CAAA,OAAA,EAAU,MAAA,CAAO,KAAK,CAAC,CAAA,WAAA,CAAa,CAAA;AACxF;AAQO,SAAS,WAAW,KAAA,EAAwD;AACjF,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,EAAK;AACxB,IAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACrB,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,IAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,MAAA,OAAO,IAAA,CAAK,UAAA,CAAW,QAAA,EAAU,EAAE,CAAA;AAAA,IACrC;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAO,iBAAiB,KAAK,CAAA;AACnC,EAAA,MAAM,CAAA,GAAI,OAAO,IAAA,CAAK,cAAA,EAAgB,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AACvD,EAAA,MAAM,CAAA,GAAI,OAAO,IAAA,CAAK,WAAA,KAAgB,CAAC,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AACxD,EAAA,MAAM,CAAA,GAAI,OAAO,IAAA,CAAK,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AACnD,EAAA,OAAO,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,CAAA;AACrB;AASO,SAAS,eAAe,KAAA,EAA4D;AACzF,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,EAAK;AACxB,IAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACrB,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,IAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,MAAA,OAAO,GAAG,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,SAAA,CAAA;AAAA,IACpE;AAGA,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAK,GAAG,CAAA;AAAA,EAC9B;AACA,EAAA,MAAM,IAAA,GAAO,iBAAiB,KAAK,CAAA;AACnC,EAAA,OAAO,KAAK,WAAA,EAAY;AAC1B;;;AC3HO,IAAM,QAAA,GAAN,cAAuB,KAAA,CAAM;AAAA,EAC3B,YAAY,OAAA,EAAiB;AAClC,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,OAAO,GAAA,CAAA,MAAA,CAAW,IAAA;AAAA,EACzB;AACF;AAEO,IAAM,eAAA,GAAN,cAA8B,QAAA,CAAS;AAAC;AAExC,IAAM,eAAA,GAAN,cAA8B,QAAA,CAAS;AAAA,EAC5B,OAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA;AAAA,EAET,WAAA,CAAY,OAAA,EAAiB,OAAA,GAAkC,EAAC,EAAG;AACxE,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,OAAA;AACvB,IAAA,IAAA,CAAK,YAAY,OAAA,CAAQ,SAAA;AACzB,IAAA,IAAA,CAAK,aAAa,OAAA,CAAQ,UAAA;AAC1B,IAAA,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA;AAAA,EACtB;AACF;AAEO,IAAM,kBAAA,GAAN,cAAiC,QAAA,CAAS;AAAA,EAC/B,OAAA;AAAA,EACA,UAAA;AAAA,EAET,WAAA,CAAY,OAAA,EAAiB,OAAA,GAAqC,EAAC,EAAG;AAC3E,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,OAAA;AACvB,IAAA,IAAA,CAAK,aAAa,OAAA,CAAQ,UAAA;AAAA,EAC5B;AACF;AAEO,IAAM,eAAA,GAAN,cAA8B,QAAA,CAAS;AAAC;AAExC,IAAM,gBAAA,GAAN,cAA+B,QAAA,CAAS;AAAC;AAEzC,SAAS,UAAU,SAAA,EAA8B;AACtD,EAAA,IAAI,qBAAqB,QAAA,EAAU;AACjC,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,MAAM,GAAA,GACJ,qBAAqB,KAAA,GAAQ,SAAA,CAAU,UAAU,OAAO,SAAA,KAAc,WAAW,SAAA,GAAY,EAAA;AAG/F,EAAA,IACE,GAAA,CAAI,SAAS,sBAAsB,CAAA,IACnC,IAAI,QAAA,CAAS,sBAAsB,CAAA,IACnC,GAAA,CAAI,QAAA,CAAS,yBAAyB,KACtC,GAAA,CAAI,QAAA,CAAS,wBAAwB,CAAA,IACrC,GAAA,CAAI,QAAA,CAAS,wBAAwB,CAAA,IACrC,GAAA,CAAI,QAAA,CAAS,sBAAsB,CAAA,EACnC;AACA,IAAA,OAAO,IAAI,gBAAgB,GAAG,CAAA;AAAA,EAChC;AAGA,EAAA,IAAI,IAAI,QAAA,CAAS,gBAAgB,KAAK,GAAA,CAAI,QAAA,CAAS,qBAAqB,CAAA,EAAG;AACzE,IAAA,MAAM,OAAA,GAAkC,oBAAoB,GAAG,CAAA;AAC/D,IAAA,OAAO,IAAI,eAAA,CAAgB,GAAA,EAAK,OAAO,CAAA;AAAA,EACzC;AAGA,EAAA,IACE,GAAA,CAAI,QAAA,CAAS,kBAAkB,CAAA,IAC/B,GAAA,CAAI,QAAA,CAAS,qBAAqB,CAAA,IAClC,GAAA,CAAI,QAAA,CAAS,qBAAqB,CAAA,IAClC,IAAI,QAAA,CAAS,0BAA0B,CAAA,IACvC,GAAA,CAAI,QAAA,CAAS,sBAAsB,CAAA,IACnC,GAAA,CAAI,SAAS,oBAAoB,CAAA,IACjC,GAAA,CAAI,QAAA,CAAS,mBAAmB,CAAA,IAChC,GAAA,CAAI,QAAA,CAAS,eAAe,CAAA,EAC5B;AACA,IAAA,MAAM,OAAA,GAAqC,uBAAuB,GAAG,CAAA;AACrE,IAAA,OAAO,IAAI,kBAAA,CAAmB,GAAA,EAAK,OAAO,CAAA;AAAA,EAC5C;AAGA,EAAA,IAAI,GAAA,CAAI,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACrC,IAAA,OAAO,IAAI,gBAAgB,GAAG,CAAA;AAAA,EAChC;AAGA,EAAA,IACE,GAAA,CAAI,QAAA,CAAS,gBAAgB,CAAA,IAC7B,IAAI,QAAA,CAAS,gBAAgB,CAAA,IAC7B,GAAA,CAAI,SAAS,oBAAoB,CAAA,IACjC,GAAA,CAAI,QAAA,CAAS,uBAAuB,CAAA,EACpC;AACA,IAAA,OAAO,IAAI,iBAAiB,GAAG,CAAA;AAAA,EACjC;AAEA,EAAA,OAAO,IAAI,SAAS,GAAG,CAAA;AACzB;AAEA,SAAS,oBAAoB,GAAA,EAAqC;AAChE,EAAA,MAAM,UAKF,EAAC;AACL,EAAA,MAAM,cAAA,GAAiB,uBAAA,CAAwB,IAAA,CAAK,GAAG,CAAA;AACvD,EAAA,IAAI,mBAAmB,IAAA,EAAM;AAC3B,IAAA,OAAA,CAAQ,OAAA,GAAU,eAAe,CAAC,CAAA;AAClC,IAAA,OAAA,CAAQ,SAAA,GAAY,eAAe,CAAC,CAAA;AAAA,EACtC;AACA,EAAA,MAAM,cAAA,GAAiB,0BAAA,CAA2B,IAAA,CAAK,GAAG,CAAA;AAC1D,EAAA,IAAI,mBAAmB,IAAA,EAAM;AAC3B,IAAA,OAAA,CAAQ,UAAA,GAAa,eAAe,CAAC,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEA,SAAS,uBAAuB,GAAA,EAAwC;AACtE,EAAA,MAAM,UAAqD,EAAC;AAC5D,EAAA,MAAM,eAAA,GAAkB,+BAAA,CAAgC,IAAA,CAAK,GAAG,CAAA;AAChE,EAAA,IAAI,oBAAoB,IAAA,EAAM;AAC5B,IAAA,OAAA,CAAQ,UAAA,GAAa,gBAAgB,CAAC,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,OAAA;AACT;;;ACvIO,IAAM,gBAAA,GAAmB,gBAAA;AAEzB,IAAM,kBAAA,GAAqB,OAAO,MAAA,CAAO;AAAA,EAC9C,UAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAU,CAAA;AAEH,IAAM,wBAAA,GAA2B,OAAO,MAAA,CAAO;AAAA,EACpD,cAAA,EAAgB,OAAO,MAAA,CAAO;AAAA,IAC5B,UAAA,EAAY,gBAAA;AAAA,IACZ,GAAA,EAAK,OAAA;AAAA,IACL,KAAA,EAAO,kBAAA;AAAA,IACP,GAAA,EAAK,cAAA;AAAA,IACL,EAAA,EAAI,QAAA;AAAA,IACJ,UAAA,EAAY,iCAAA;AAAA,IACZ,WAAA,EAAa;AAAA,GACd,CAAA;AAAA,EACD,WAAA,EAAa,OAAO,MAAA,CAAO;AAAA,IACzB,UAAA,EAAY,gBAAA;AAAA,IACZ,GAAA,EAAK,KAAA;AAAA,IACL,KAAA,EAAO,kBAAA;AAAA,IACP,GAAA,EAAK,WAAA;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,UAAA,EAAY,8BAAA;AAAA,IACZ,WAAA,EAAa;AAAA,GACd,CAAA;AAAA,EACD,WAAA,EAAa,OAAO,MAAA,CAAO;AAAA,IACzB,UAAA,EAAY,gBAAA;AAAA,IACZ,GAAA,EAAK,KAAA;AAAA,IACL,KAAA,EAAO,kBAAA;AAAA,IACP,GAAA,EAAK,WAAA;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,UAAA,EAAY,8BAAA;AAAA,IACZ,WAAA,EAAa;AAAA,GACd;AACH,CAAU,CAAA;AAMsB,OAAO,MAAA,CAAO;AAAA,EAC5C,cAAA,EAAgB,wBAAA,CAAyB,cAAc,CAAA,CAAE,WAAA;AAAA,EACzD,WAAA,EAAa,wBAAA,CAAyB,WAAW,CAAA,CAAE,WAAA;AAAA,EACnD,WAAA,EAAa,wBAAA,CAAyB,WAAW,CAAA,CAAE;AACrD,CAAC;AAEM,SAAS,oBAAoB,GAAA,EAA6C;AAC/E,EAAA,OACG,wBAAA,CACC,GACF,CAAA,IAAK,IAAA;AAET;AAEO,SAAS,YACd,QAAA,GAA4B,OAAA,CAAQ,QAAA,EACpC,IAAA,GAAe,QAAQ,IAAA,EACf;AACR,EAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAC5B;;;ACzDA,IAAM,WAAA,GAAcC,uBAAc,UAAU,CAAA;AA+B5C,SAAS,OAAO,MAAA,EAAyB;AACvC,EAAA,IAAI;AACF,IAAAC,oBAAA,CAAG,WAAW,MAAM,CAAA;AACpB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,KAAA,EAAkD;AAC5E,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,qBAAA,CAAsB,aAAqB,QAAA,EAA4C;AAC9F,EAAA,IAAI,CAAC,kBAAA,CAAmB,QAAQ,CAAA,EAAG;AACjC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,WAAW,CAAA,oCAAA,CAAsC,CAAA;AAAA,EAC7F;AACA,EAAA,IAAI,EAAE,gBAAgB,QAAA,CAAA,EAAW;AAC/B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,WAAW,CAAA,oBAAA,CAAsB,CAAA;AAAA,EAC7E;AACA,EAAA,IAAI,OAAO,QAAA,CAAS,UAAA,KAAe,QAAA,EAAU;AAC3C,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,uBAAA,EAA0B,WAAW,CAAA,6BAAA,CAA+B,CAAA;AAAA,EAC1F;AACA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,iBAAA,CAAkB,UAAkB,UAAA,EAA4B;AACvE,EAAA,OAAOC,sBAAA,CAAK,IAAA,CAAK,QAAA,EAAU,UAAA,EAAY,UAAU,CAAA;AACnD;AAEA,SAAS,wBAAA,CAAyB,KAAc,WAAA,EAA8B;AAC5E,EAAA,IAAI,EAAE,eAAe,KAAA,CAAA,EAAQ;AAC3B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAA,GAAO,MAAA,IAAU,GAAA,GAAO,GAAA,CAAoC,IAAA,GAAO,MAAA;AACzE,EAAA,IAAI,SAAS,kBAAA,EAAoB;AAC/B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OACE,GAAA,CAAI,OAAA,CAAQ,QAAA,CAAS,CAAA,oBAAA,EAAuB,WAAW,CAAA,CAAA,CAAG,CAAA,IAC1D,GAAA,CAAI,OAAA,CAAQ,QAAA,CAAS,CAAA,oBAAA,EAAuB,WAAW,CAAA,CAAA,CAAG,KAC1D,GAAA,CAAI,OAAA,CAAQ,QAAA,CAAS,CAAA,qBAAA,EAAwB,WAAW,CAAA,CAAA,CAAG,CAAA,IAC3D,GAAA,CAAI,OAAA,CAAQ,QAAA,CAAS,CAAA,qBAAA,EAAwB,WAAW,CAAA,CAAA,CAAG,CAAA;AAE/D;AAEA,SAAS,uBAAA,CACP,WAAA,EACA,cAAA,EACA,UAAA,EACgC;AAChC,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,qBAAA,CAAsB,WAAA,EAAa,cAAA,CAAe,WAAW,CAAC,CAAA;AAC/E,IAAA,IAAI,CAAC,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA,EAAG;AACpC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,uBAAA,EAA0B,WAAW,CAAA,6BAAA,EAAgC,QAAA,CAAS,UAAU,CAAA;AAAA,OAC1F;AAAA,IACF;AACA,IAAA,OAAO,QAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,wBAAA,CAAyB,KAAA,EAAO,WAAW,CAAA,EAAG;AAChD,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAEA,SAAS,mBAAA,CACP,QAAA,EACA,aAAA,EACA,cAAA,EACA,UAAA,EACgC;AAChC,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,QAAA,EAAU,aAAA,CAAc,UAAU,CAAA;AACvE,EAAA,IAAI,CAAC,UAAA,CAAW,UAAU,CAAA,EAAG;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,WAAW,qBAAA,CAAsB,aAAA,CAAc,WAAA,EAAa,cAAA,CAAe,UAAU,CAAC,CAAA;AAC5F,EAAA,IAAI,CAAC,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA,EAAG;AACpC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,uBAAA,EAA0B,aAAA,CAAc,WAAW,CAAA,6BAAA,EAAgC,SAAS,UAAU,CAAA;AAAA,KACxG;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,uBAAuB,OAAA,EAAuD;AAC5F,EAAA,MAAM,EAAE,aAAA,EAAe,QAAA,EAAU,cAAA,EAAgB,MAAA,EAAQ,YAAW,GAAI,OAAA;AACxE,EAAA,IAAI,kBAAkB,IAAA,EAAM;AAC1B,IAAA,OAAO,EAAE,UAAA,EAAY,IAAA,EAAM,KAAK,OAAA,CAAQ,GAAA,EAAK,aAAa,IAAA,EAAK;AAAA,EACjE;AAEA,EAAA,MAAM,EAAE,GAAA,EAAK,WAAA,EAAY,GAAI,aAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,WAAA,EAAa,cAAA,EAAgB,UAAU,CAAA;AACjF,EAAA,IAAI,cAAc,IAAA,EAAM;AACtB,IAAA,OAAO,EAAE,UAAA,EAAY,SAAA,CAAU,UAAA,EAAY,KAAK,WAAA,EAAY;AAAA,EAC9D;AAEA,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,QAAA,EAAU,aAAA,EAAe,gBAAgB,UAAU,CAAA;AACrF,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,OAAO,EAAE,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,KAAK,WAAA,EAAY;AAAA,EAC1D;AAEA,EAAA,OAAO,EAAE,UAAA,EAAY,IAAA,EAAM,GAAA,EAAK,WAAA,EAAY;AAC9C;AAEO,SAAS,mBAAmB,QAAA,EAAyC;AAC1E,EAAA,MAAM,MAAM,WAAA,EAAY;AACxB,EAAA,MAAM,aAAA,GAAgB,oBAAoB,GAAG,CAAA;AAC7C,EAAA,MAAM,cAAA,GAAiB,CAAC,EAAA,KAAwB,WAAA,CAAY,EAAE,CAAA;AAC9D,EAAA,IAAI,kBAAkB,IAAA,EAAM;AAC1B,IAAA,OAAO,uBAAuB,EAAE,MAAA,EAAQ,KAAK,aAAA,EAAe,QAAA,EAAU,gBAAgB,CAAA;AAAA,EACxF;AACA,EAAA,OAAO,uBAAuB,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,gBAAgB,CAAA;AACnF;ACtJA,IAAM,oBAAA,GAAuB,OAAO,MAAA,CAAO;AAAA,EACzC,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,sBAAA,GAAyB,GAAA;AAa/B,IAAM,aAAA,GAAyB,CAAC,MAAA,KAAWD,oBAAAA,CAAG,YAAY,MAAA,EAAQ,EAAE,aAAA,EAAe,IAAA,EAAM,CAAA;AAEzF,SAAS,eAAe,KAAA,EAAuB;AAC7C,EAAA,OAAOC,sBAAAA,CAAK,KAAA,CAAM,SAAA,CAAU,KAAK,EAAE,WAAA,EAAY;AACjD;AAEA,SAAS,YAAA,CAAa,OAAe,QAAA,EAAmC;AACtE,EAAA,OAAO,aAAa,OAAA,GAAU,cAAA,CAAe,KAAK,CAAA,GAAIA,sBAAAA,CAAK,QAAQ,KAAK,CAAA;AAC1E;AAEA,SAAS,UAAA,CACP,UAAA,EACA,IAAA,EACA,SAAA,EACA,QAAA,EACM;AACN,EAAA,IAAI,SAAA,KAAc,MAAA,IAAa,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG;AACrD,IAAA;AAAA,EACF;AACA,EAAA,MAAM,GAAA,GAAM,YAAA,CAAa,SAAA,EAAW,QAAQ,CAAA;AAC5C,EAAA,IAAI,IAAA,CAAK,GAAA,CAAI,GAAG,CAAA,EAAG;AACjB,IAAA;AAAA,EACF;AACA,EAAA,IAAA,CAAK,IAAI,GAAG,CAAA;AACZ,EAAA,UAAA,CAAW,KAAK,SAAS,CAAA;AAC3B;AAEA,SAAS,aAAa,KAAA,EAAmC;AACvD,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA,EAAG;AACpD,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAAA,EACzB;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,gCAAA,CAAiC,GAAA,GAAyB,OAAA,CAAQ,GAAA,EAAe;AAC/F,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,MAAM,GAAA,GAAM,CAAC,SAAA,KAAwC;AACnD,IAAA,UAAA,CAAW,UAAA,EAAY,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AAAA,EACjD,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,GAAA,CAAI,WAAW,CAAA;AAChD,EAAA,MAAM,eAAA,GAAkB,GAAG,WAAW,CAAA,EAAA,CAAA;AACtC,EAAA,GAAA,CAAIA,uBAAK,KAAA,CAAM,IAAA,CAAK,eAAA,EAAiB,KAAA,EAAO,MAAM,CAAC,CAAA;AACnD,EAAA,IAAI,WAAA,CAAY,WAAA,EAAY,KAAM,IAAA,EAAM;AACtC,IAAA,GAAA,CAAIA,uBAAK,KAAA,CAAM,IAAA,CAAK,MAAA,EAAQ,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,EAC5C;AAEA,EAAA,MAAM,iBAAA,GAAoB;AAAA,IACxB,GAAA,CAAI,YAAA;AAAA,IACJA,sBAAAA,CAAK,KAAA,CAAM,IAAA,CAAK,eAAA,EAAiB,eAAe,CAAA;AAAA,IAChD,IAAI,mBAAmB,CAAA;AAAA,IACvBA,sBAAAA,CAAK,KAAA,CAAM,IAAA,CAAK,eAAA,EAAiB,qBAAqB;AAAA,GACxD;AACA,EAAA,KAAA,MAAW,QAAQ,iBAAA,EAAmB;AACpC,IAAA,GAAA,CAAI,IAAA,KAAS,MAAA,GAAY,MAAA,GAAYA,sBAAAA,CAAK,KAAA,CAAM,KAAK,IAAA,EAAM,WAAA,EAAa,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,EACxF;AAEA,EAAA,MAAM,YAAA,GACJ,GAAA,CAAI,YAAA,KACH,GAAA,CAAI,WAAA,KAAgB,MAAA,GACjB,MAAA,GACAA,sBAAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,WAAA,EAAa,WAAW,OAAO,CAAA,CAAA;AACzD,EAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,IAAA,GAAA,CAAIA,uBAAK,KAAA,CAAM,IAAA,CAAK,YAAA,EAAc,WAAA,EAAa,MAAM,CAAC,CAAA;AACtD,IAAA,GAAA,CAAIA,uBAAK,KAAA,CAAM,IAAA,CAAK,cAAc,WAAA,EAAa,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,EAC/D;AAEA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,qBAAA,CAAsB,GAAA,EAAaC,OAAAA,GAAiBF,oBAAAA,CAAG,UAAA,EAAqB;AAC1F,EAAA,IAAI,GAAA,CAAI,WAAW,CAAA,EAAG;AACpB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,oBAAA,CAAqB,IAAA,CAAK,CAAC,IAAA,KAASE,OAAAA,CAAOD,uBAAK,IAAA,CAAK,GAAA,EAAK,IAAI,CAAC,CAAC,CAAA;AACzE;AAEA,SAAS,kBAAkB,IAAA,EAA+B;AACxD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,IAAI,CAAC,IAAA,KAAS,MAAA,CAAO,IAAI,CAAC,CAAA;AACxD,EAAA,OAAO,KAAA,CAAM,KAAA,CAAM,CAAC,IAAA,KAAS,MAAA,CAAO,SAAA,CAAU,IAAI,CAAA,IAAK,IAAA,IAAQ,CAAC,CAAA,GAAI,KAAA,GAAQ,IAAA;AAC9E;AAEO,SAAS,eAAA,CAAgB,MAAc,KAAA,EAAuB;AACnE,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkBA,sBAAAA,CAAK,QAAA,CAAS,IAAI,CAAC,CAAA;AACvD,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkBA,sBAAAA,CAAK,QAAA,CAAS,KAAK,CAAC,CAAA;AACzD,EAAA,IAAI,SAAA,KAAc,IAAA,IAAQ,UAAA,KAAe,IAAA,EAAM;AAC7C,IAAA,MAAM,SAAS,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,MAAA,EAAQ,WAAW,MAAM,CAAA;AAC3D,IAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,MAAA,EAAQ,SAAS,CAAA,EAAG;AAC9C,MAAA,MAAM,QAAA,GAAW,SAAA,CAAU,KAAK,CAAA,IAAK,CAAA;AACrC,MAAA,MAAM,SAAA,GAAY,UAAA,CAAW,KAAK,CAAA,IAAK,CAAA;AACvC,MAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,QAAA,OAAO,SAAA,GAAY,QAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACA,EAAA,IAAI,cAAc,IAAA,EAAM;AACtB,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,IAAI,eAAe,IAAA,EAAM;AACvB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAA,CAAM,cAAc,IAAI,CAAA;AACjC;AAEO,SAAS,wBAAA,CAAyB,YAAsB,OAAA,EAAuB;AACpF,EAAA,MAAM,QAAA,GAAWA,sBAAAA,CAAK,OAAA,CAAQ,OAAO,CAAA;AACrC,EAAA,UAAA,CAAW,IAAA;AAAA,IACT,QAAA;AAAA,IACAA,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AAAA,IACzBA,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AAAA,IACzBA,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AAAA,IACzBA,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAA,EAAO,OAAO,CAAA;AAAA,IAClCA,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,KAAA,EAAO,OAAO;AAAA,GACpC;AACF;AAEA,SAAS,iBAAA,CAAkB,KAA8C,OAAA,EAAuB;AAC9F,EAAA,MAAM,gBAA0B,EAAC;AACjC,EAAA,wBAAA,CAAyB,eAAe,OAAO,CAAA;AAC/C,EAAA,KAAA,MAAW,aAAa,aAAA,EAAe;AACrC,IAAA,GAAA,CAAI,SAAS,CAAA;AAAA,EACf;AACF;AAEO,SAAS,qBACd,QAAA,EACAC,OAAAA,GAAiBF,oBAAAA,CAAG,UAAA,EACpB,UAAmB,aAAA,EACJ;AACf,EAAA,MAAM,SAAA,GAAYC,sBAAAA,CAAK,IAAA,CAAK,QAAA,EAAU,UAAU,YAAY,CAAA;AAC5D,EAAA,IAAI,CAACC,OAAAA,CAAO,SAAS,CAAA,EAAG;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,UAAA,GAAa,CAAC,SAAS,CAAA;AAC7B,EAAA,KAAA,MAAW,KAAA,IAAS,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtC,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,UAAA,CAAW,KAAKD,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,IAClD;AAAA,EACF;AACA,EAAA,UAAA,CAAW,KAAK,eAAe,CAAA;AAC/B,EAAA,OACE,UAAA,CAAW,IAAA,CAAK,CAAC,SAAA,KAAc;AAC7B,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,SAAA;AAAA,MACAA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,KAAK,CAAA;AAAA,MAC1BA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,KAAK,CAAA;AAAA,MAC1BA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,KAAK;AAAA,KAC5B;AACA,IAAA,OAAO,KAAK,IAAA,CAAK,CAAC,QAAQ,qBAAA,CAAsB,GAAA,EAAKC,OAAM,CAAC,CAAA;AAAA,EAC9D,CAAC,CAAA,IAAK,IAAA;AAEV;AAEO,SAAS,8BAAA,CAA+B,OAAA,GAAoC,EAAC,EAAa;AAC/F,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,IAAO,OAAA,CAAQ,GAAA;AACnC,EAAA,MAAMA,OAAAA,GAAS,OAAA,CAAQ,MAAA,IAAUF,oBAAAA,CAAG,UAAA;AACpC,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAA,IAAY,OAAA,CAAQ,QAAA;AAC7C,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,aAAA;AACnC,EAAA,MAAM,WAAW,OAAA,CAAQ,QAAA,IAAYC,uBAAK,OAAA,CAAQ,SAAA,EAAW,MAAM,IAAI,CAAA;AACvE,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,MAAM,GAAA,GAAM,CAAC,SAAA,KAAwC;AACnD,IAAA,UAAA,CAAW,UAAA,EAAY,IAAA,EAAM,SAAA,EAAW,QAAQ,CAAA;AAAA,EAClD,CAAA;AAEA,EAAA,MAAM,SAAS,GAAA,CAAI,cAAA;AACnB,EAAA,IAAI,MAAA,KAAW,MAAA,IAAa,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC7C,IAAA,GAAA,CAAIA,sBAAAA,CAAK,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,OAAO,GAAA,CAAI,WAAA;AACjB,EAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG;AACzC,IAAA,iBAAA,CAAkB,KAAK,IAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,UAAU,GAAA,CAAI,iBAAA;AACpB,EAAA,IAAI,OAAA,KAAY,MAAA,IAAa,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC/C,IAAA,MAAM,QAAA,GAAWA,uBAAK,UAAA,CAAW,OAAO,IAAI,OAAA,GAAUA,sBAAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,OAAO,CAAA;AACpF,IAAA,iBAAA,CAAkB,KAAK,QAAQ,CAAA;AAAA,EACjC;AAEA,EAAA,MAAM,UAAA,GAAa,oBAAA,CAAqB,QAAA,EAAUC,OAAAA,EAAQ,OAAO,CAAA;AACjE,EAAA,IAAI,eAAe,IAAA,EAAM;AACvB,IAAA,iBAAA,CAAkB,KAAK,UAAU,CAAA;AAAA,EACnC;AAEA,EAAA,IAAI,aAAa,OAAA,EAAS;AACxB,IAAA,KAAA,MAAW,QAAA,IAAY,gCAAA,CAAiC,GAAG,CAAA,EAAG;AAC5D,MAAA,GAAA,CAAI,QAAQ,CAAA;AAAA,IACd;AAAA,EACF;AAEA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,kBAAA,CAAmB,KAAwB,SAAA,EAAyB;AAC3E,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,WAAA,EAAY,KAAM,MAAM,CAAA,IAAK,MAAA;AAClF,EAAA,MAAM,WAAA,GAAc,GAAA,CAAI,GAAG,CAAA,IAAK,EAAA;AAChC,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,sBAAsB,CAAA,CAAE,OAAO,CAAC,IAAA,KAAS,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAC/F,EAAA,MAAM,gBAAA,GAAmB,eAAe,SAAS,CAAA;AACjD,EAAA,IAAI,YAAA,CAAa,KAAK,CAAC,IAAA,KAAS,eAAe,IAAI,CAAA,KAAM,gBAAgB,CAAA,EAAG;AAC1E,IAAA;AAAA,EACF;AACA,EAAA,GAAA,CAAI,GAAG,CAAA,GACL,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,CAAA,EAAG,SAAS,CAAA,EAAG,sBAAsB,CAAA,EAAG,WAAW,CAAA,CAAA,GAAK,SAAA;AACrF;AAEO,SAAS,0BAAA,CAA2B,OAAA,GAAoC,EAAC,EAAkB;AAChG,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,IAAO,OAAA,CAAQ,GAAA;AACnC,EAAA,MAAMA,OAAAA,GAAS,OAAA,CAAQ,MAAA,IAAUF,oBAAAA,CAAG,UAAA;AACpC,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAA,IAAY,OAAA,CAAQ,QAAA;AAC7C,EAAA,IAAI,aAAa,OAAA,EAAS;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,KAAA,MAAW,SAAA,IAAa,8BAAA,CAA+B,OAAO,CAAA,EAAG;AAC/D,IAAA,IAAI,CAAC,qBAAA,CAAsB,SAAA,EAAWE,OAAM,CAAA,EAAG;AAC7C,MAAA;AAAA,IACF;AACA,IAAA,kBAAA,CAAmB,KAAK,SAAS,CAAA;AACjC,IAAA,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA;AACT;;;AClKA,IAAMC,YAAAA,GAAcJ,uBAAc,UAAU,CAAA;AAU5C,SAAS,sBAAsB,KAAA,EAAkC;AAC/D,EAAA,IAAI,cAAc,KAAK,CAAA,IAAK,OAAO,KAAA,CAAM,YAAY,QAAA,EAAU;AAC7D,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,CAAM,OAAA,EAAQ;AAAA,EAClC;AACA,EAAA,MAAM,IAAI,UAAU,2DAA2D,CAAA;AACjF;AAEA,SAAS,cAAc,KAAA,EAAsC;AAC3D,EAAA,OACE,aAAA,CAAc,KAAK,CAAA,IACnB,OAAO,KAAA,CAAM,QAAA,KAAa,UAAA,IAC1B,OAAO,KAAA,CAAM,WAAA,KAAgB,UAAA,IAC7B,OAAO,MAAM,WAAA,KAAgB,UAAA;AAEjC;AAEA,SAAS,mBAAmB,UAAA,EAAiC;AAC3D,EAAA,MAAM,MAAA,GAAkBI,aAAY,UAAU,CAAA;AAC9C,EAAA,IAAI,aAAA,CAAc,MAAM,CAAA,EAAG;AACzB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,SAAA,CAAU,CAAA,aAAA,EAAgB,UAAU,CAAA,gDAAA,CAAkD,CAAA;AAClG;AAEA,SAAS,eAAe,KAAA,EAAuC;AAC7D,EAAA,OAAO,aAAA,CAAc,KAAK,CAAA,IAAK,OAAO,MAAM,OAAA,KAAY,UAAA;AAC1D;AAEA,SAAS,mBAAA,GAAoC;AAC3C,EAAA,MAAM,MAAA,GAAkBA,aAAY,eAAe,CAAA;AACnD,EAAA,IAAI,cAAA,CAAe,MAAM,CAAA,EAAG;AAC1B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AACpE;AAEA,SAAS,kBAAkB,KAAA,EAA+D;AACxF,EAAA,OAAO,aAAA,CAAc,KAAK,CAAA,IAAK,EAAE,iBAAiB,IAAA,CAAA,IAAS,CAAC,YAAY,KAAK,CAAA;AAC/E;AAEA,SAAS,mBACP,KAAA,EACsB;AACtB,EAAA,OAAO,aAAA,CAAc,KAAK,CAAA,IAAK,EAAE,iBAAiB,IAAA,CAAA,IAAS,CAAC,YAAY,KAAK,CAAA;AAC/E;AAEA,IAAM,WAAA,GAAc,qBAAA,CAAsBA,YAAAA,CAAY,iBAAiB,CAAC,CAAA;AAExE,0BAAA,EAA2B;AAE3B,SAAS,UAAA,GAA0B;AACjC,EAAA,MAAM,IAAA,GAAOF,sBAAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,MAAM,IAAI,CAAA;AAE/C,EAAA,MAAM,UAAA,GAAa;AAAA,IACjBA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,gBAAgB,CAAA;AAAA,IACrCA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,IAAA,EAAM,gBAAgB,CAAA;AAAA,IAC3CA,sBAAAA,CAAK,IAAA,CAAK,SAAA,EAAW,gBAAgB;AAAA,GACvC;AAEA,EAAA,KAAA,MAAW,aAAa,UAAA,EAAY;AAClC,IAAA,IAAID,oBAAAA,CAAG,UAAA,CAAW,SAAS,CAAA,EAAG;AAC5B,MAAA,OAAO,mBAAmB,SAAS,CAAA;AAAA,IACrC;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,GAAA,EAAK,WAAA,EAAa,UAAA,EAAW,GAAI,mBAAmB,IAAI,CAAA;AAChE,EAAA,IAAI,eAAe,IAAA,EAAM;AACvB,IAAA,OAAO,mBAAmB,UAAU,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,wDAAwD,GAAG,CAAA,qDAAA;AAAA,KAC7D;AAAA,EACF;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR,CAAA,2CAAA,EAA8C,GAAG,CAAA,UAAA,EAAa,WAAW,CAAA,oEAAA;AAAA,GAC3E;AACF;AAEA,IAAM,SAAS,UAAA,EAAW;AAKnB,IAAM,eAAA,GAAkB,OAAO,MAAA,CAAO;AAAA,EAC3C,gBAAA;AAAA,EACA,SAAA;AAAA,EACA,iCAAA;AAAA,EACA,8BAAA;AAAA,EACA,MAAA;AAAA,EACA,+BAAA;AAAA,EACA,8BAAA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,kBAAA,GAAqB,OAAO,MAAA,CAAO;AAAA,EAC9C,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,eAAA,GAAkB,OAAO,MAAA,CAAO;AAAA,EAC3C,YAAA;AAAA,EACA,YAAA;AAAA,EACA,kCAAA;AAAA,EACA,0BAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAC;AAED,IAAM,UAAA,GAA+C,OAAO,MAAA,CAAO;AAAA,EACjE,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,mBAAA;AAAA,EACJ,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,qBAAA;AAAA,EACJ,IAAA,EAAM,qBAAA;AAAA,EACN,EAAA,EAAI,mBAAA;AAAA,EACJ,IAAA,EAAM,qBAAA;AAAA,EACN,IAAA,EAAM,qBAAA;AAAA,EACN,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,sBAAA;AAAA,EACL,KAAA,EAAO,sBAAA;AAAA,EACP,GAAA,EAAK,oBAAA;AAAA,EACL,UAAA,EAAY,mBAAA;AAAA,EACZ,EAAA,EAAI,mBAAA;AAAA,EACJ,GAAA,EAAK,oBAAA;AAAA,EACL,KAAA,EAAO,sBAAA;AAAA,EACP,QAAA,EAAU,oBAAA;AAAA,EACV,MAAA,EAAQ,uBAAA;AAAA,EACR,OAAA,EAAS,qBAAA;AAAA,EACT,IAAA,EAAM,qBAAA;AAAA,EACN,IAAA,EAAM,qBAAA;AAAA,EACN,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,MAAA,EAAQ,uBAAA;AAAA,EACR,GAAA,EAAK,yBAAA;AAAA,EACL,QAAA,EAAU,yBAAA;AAAA,EACV,EAAA,EAAI,mBAAA;AAAA,EACJ,SAAA,EAAW,qBAAA;AAAA,EACX,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,mBAAA;AAAA,EACJ,KAAA,EAAO,sBAAA;AAAA,EACP,IAAA,EAAM,qBAAA;AAAA,EACN,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,mBAAA;AAAA,EACJ,GAAA,EAAK,qBAAA;AAAA,EACL,GAAA,EAAK,sBAAA;AAAA,EACL,KAAA,EAAO,sBAAA;AAAA,EACP,KAAA,EAAO,oBAAA;AAAA,EACP,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,mBAAA;AAAA,EACJ,GAAA,EAAK,sBAAA;AAAA,EACL,KAAA,EAAO,sBAAA;AAAA,EACP,OAAA,EAAS,wBAAA;AAAA,EACT,IAAA,EAAM,qBAAA;AAAA,EACN,GAAA,EAAK,oBAAA;AAAA,EACL,GAAA,EAAK,sBAAA;AAAA,EACL,KAAA,EAAO,sBAAA;AAAA,EACP,QAAA,EAAU,qBAAA;AAAA,EACV,IAAA,EAAM,qBAAA;AAAA,EACN,GAAA,EAAK,sBAAA;AAAA,EACL,KAAA,EAAO;AACT,CAAC,CAAA;AAID,IAAM,WAAA,GAA+D,OAAO,MAAA,CAAO;AAAA,EACjF,kBAAA,EAAoB,OAAO,MAAA,CAAO;AAAA,IAChC,MAAA,EAAQ,QAAA;AAAA,IACR,MAAA,EAAQ,EAAA;AAAA,IACR,eAAA,EAAiB,SAAA;AAAA,IACjB,cAAA,EAAgB,QAAA;AAAA,IAChB,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,mBAAA,EAAqB,OAAO,MAAA,CAAO;AAAA,IACjC,MAAA,EAAQ,EAAA;AAAA,IACR,SAAA,EAAW,CAAA;AAAA,IACX,SAAA,EAAW,CAAA;AAAA,IACX,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,kBAAA,EAAoB,OAAO,MAAA,CAAO;AAAA,IAChC,MAAA,EAAQ,EAAA;AAAA,IACR,eAAA,EAAiB,SAAA;AAAA,IACjB,cAAA,EAAgB,QAAA;AAAA,IAChB,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,oBAAA,EAAsB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW,CAAA;AAAA,EAC/E,mBAAA,EAAqB,OAAO,MAAA,CAAO;AAAA,IACjC,SAAA,EAAW,EAAA;AAAA,IACX,SAAA,EAAW,EAAA;AAAA,IACX,SAAA,EAAW,CAAA;AAAA,IACX,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,kBAAA,EAAoB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW,CAAA;AAAA,EAC7E,oBAAA,EAAsB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW,CAAA;AAAA,EAC/E,kBAAA,EAAoB,OAAO,MAAA,CAAO;AAAA,IAChC,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS,CAAA;AAAA,IACT,QAAA,EAAU,CAAA;AAAA,IACV,SAAA,EAAW,CAAA;AAAA,IACX,eAAA,EAAiB,SAAA;AAAA,IACjB,cAAA,EAAgB,QAAA;AAAA,IAChB,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAAA,EACD,oBAAA,EAAsB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW,CAAA;AAAA,EAC/E,oBAAA,EAAsB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW,CAAA;AAAA,EAC/E,oBAAA,EAAsB,OAAO,MAAA,CAAO,EAAE,QAAQ,EAAA,EAAI,gBAAA,EAAkB,WAAW;AACjF,CAAC,CAAA;AAED,IAAM,eAAA,GAAkB,eAAA;AAIxB,SAAS,uBAAuB,KAAA,EAAwC;AACtE,EAAA,OAAO,0BAA0B,KAAK,CAAA;AACxC;AAEA,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,gBAAgB,KAAA,EAAwB;AAC/C,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEA,SAAS,iBAAiB,GAAA,EAAyD;AACjF,EAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,MAAO;AAAA,IAChD,GAAA,EAAK,gBAAgB,GAAG,CAAA;AAAA,IACxB,KAAA,EAAO,gBAAgB,KAAK;AAAA,GAC9B,CAAE,CAAA;AACJ;AAWA,IAAM,qBAAA,GAAkE,OAAO,MAAA,CAAO;AAAA,EACpF,CAAC,yBAAyB,uBAAuB,CAAA;AAAA,EACjD,CAAC,wBAAwB,sBAAsB,CAAA;AAAA,EAC/C,CAAC,sBAAsB,oBAAoB,CAAA;AAAA,EAC3C,CAAC,mBAAmB,iBAAiB,CAAA;AAAA,EACrC,CAAC,sBAAsB,oBAAoB,CAAA;AAAA,EAC3C,CAAC,6BAA6B,2BAA2B,CAAA;AAAA,EACzD,CAAC,0CAA0C,wCAAwC;AACrF,CAAC,CAAA;AAED,SAAS,gBAAA,CAAiB,KAAA,EAAqB,GAAA,EAAa,KAAA,EAAqB;AAC/E,EAAA,MAAM,WAAW,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,QAAQ,GAAG,CAAA;AACtD,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,GAAA,EAAK,KAAA,EAAO,CAAA;AACzB,IAAA;AAAA,EACF;AACA,EAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACnB;AAEA,SAAS,kBAAkB,OAAA,EAAkD;AAC3E,EAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,KAAK,EAAC;AACnD,EAAA,KAAA,MAAW,CAAC,UAAA,EAAY,WAAW,CAAA,IAAK,qBAAA,EAAuB;AAC7D,IAAA,MAAM,UAAA,GAAa,QAAQ,UAAU,CAAA;AACrC,IAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,MAAA,gBAAA,CAAiB,KAAA,EAAO,WAAA,EAAa,UAAA,GAAa,MAAA,GAAS,OAAO,CAAA;AAAA,IACpE;AAAA,EACF;AACA,EAAA,OAAO,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,KAAA,GAAQ,MAAA;AACpC;AAEA,SAAS,cAAc,KAAA,EAAgE;AACrF,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,MAAM,GAAA,CAAI,CAAC,IAAA,KAAS,eAAA,CAAgB,IAAI,CAAC,CAAA;AAAA,EAClD;AACA,EAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,CAAC,eAAA,CAAgB,KAAK,CAAC,CAAA;AAChC;AAEA,SAAS,kBAAA,CAAmB,OAAe,IAAA,EAAwC;AACjF,EAAA,IAAI,SAAS,MAAA,EAAW;AACtB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,KAAK,MAAA,IAAU,EAAA;AAAA,IACf,KAAK,KAAA,IAAS,EAAA;AAAA,IACd,KAAK,SAAA,IAAa,EAAA;AAAA,IAClB,KAAK,KAAA,KAAU,MAAA,GAAY,EAAA,GAAK,MAAA,CAAO,KAAK,KAAK;AAAA,GACnD,CAAE,KAAK,GAAG,CAAA;AACZ;AAEA,SAAS,kBACP,MAAA,EACwC;AACxC,EAAA,OAAO,MAAA,KAAW,MAAA,IAAa,CAAC,KAAA,CAAM,QAAQ,MAAM,CAAA;AACtD;AAEA,SAAS,uBAAuB,MAAA,EAAkE;AAChG,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAC,iBAAA,CAAkB,MAAM,CAAA,EAAG;AAC9B,IAAA,OAAO,OAAO,GAAA,CAAI,CAAC,KAAA,KAAU,eAAA,CAAgB,KAAK,CAAC,CAAA;AAAA,EACrD;AACA,EAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,IAAI,CAAA,KAAM,kBAAA,CAAmB,KAAA,EAAO,IAAI,CAAC,CAAA;AACtF;AAEA,SAAS,wBACP,MAAA,EACuC;AACvC,EAAA,OAAO,KAAA,CAAM,QAAQ,MAAM,CAAA;AAC7B;AACA,SAAS,oBAAoB,MAAA,EAAkE;AAC7F,EAAA,IAAI,MAAA,KAAW,MAAA,IAAa,MAAA,KAAW,IAAA,EAAM;AAC3C,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,uBAAA,CAAwB,MAAM,CAAA,GAAI,CAAC,GAAG,MAAM,CAAA,GAAI,CAAC,MAAM,CAAA;AAChE;AAEA,SAAS,sBAAsB,MAAA,EAAwB;AACrD,EAAA,OAAO,2BAAA,CAA4B,MAAM,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,EAAG,IAAA,EAAK,CAAE,WAAA,EAAY,IAAK,EAAA;AACpF;AAEA,SAAS,4BAA4B,MAAA,EAAwB;AAC3D,EAAA,IAAI,KAAA,GAAQ,OAAO,IAAA,EAAK;AACxB,EAAA,OAAO,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG;AAC5B,IAAA,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,EAAK;AAAA,EAC9B;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,8BAAA,CACP,SACA,OAAA,EAC+B;AAC/B,EAAA,MAAM,aAAa,OAAA,CAAQ,OAAA;AAC3B,EAAA,MAAM,EAAE,UAAS,GAAI,OAAA;AAErB,EAAA,IAAI,UAAA,KAAe,MAAA,IAAa,QAAA,KAAa,IAAA,EAAM;AACjD,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,uBAAuB,UAAA,IAAc,EAAC,EACzC,GAAA,CAAI,CAAC,MAAA,KAAW,2BAAA,CAA4B,MAAM,CAAC,EACnD,MAAA,CAAO,CAAC,MAAA,KAAW,MAAA,CAAO,SAAS,CAAC,CAAA;AAEvC,EAAA,IAAI,aAAa,IAAA,EAAM;AACrB,IAAA,IAAI,YAAY,eAAA,EAAiB;AAC/B,MAAA,MAAM,IAAI,kBAAA;AAAA,QACR,iEAAA;AAAA,QACA,EAAE,SAAS,UAAA;AAAW,OACxB;AAAA,IACF;AACA,IAAA,IAAI,mBAAA,CAAoB,KAAK,CAAC,MAAA,KAAW,sBAAsB,MAAM,CAAA,KAAM,UAAU,CAAA,EAAG;AACtF,MAAA,MAAM,IAAI,kBAAA;AAAA,QACR,8FAAA;AAAA,QACA,EAAE,SAAS,UAAA;AAAW,OACxB;AAAA,IACF;AACA,IAAA,IAAI,CAAC,oBAAoB,IAAA,CAAK,CAAC,WAAW,qBAAA,CAAsB,MAAM,CAAA,KAAM,UAAU,CAAA,EAAG;AACvF,MAAA,mBAAA,CAAoB,KAAK,UAAU,CAAA;AAAA,IACrC;AAAA,EACF;AAEA,EAAA,OAAO,mBAAA,CAAoB,MAAA,GAAS,CAAA,IAAK,UAAA,KAAe,SACpD,mBAAA,GACA,MAAA;AACN;AAEA,SAAS,sBAAA,CACP,cACA,IAAA,EAC0B;AAC1B,EAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,YAAA,KAAiB,QAAA,IAAY,IAAA,KAAS,MAAA,EAAW;AAC1D,IAAA,MAAM,SAAuB,EAAC;AAC9B,IAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,MAAA,MAAA,CAAO,IAAA,GAAO,YAAA;AAAA,IAChB;AACA,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AAAA,IAChB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,aAAA,CAAc,YAAY,CAAA,EAAG;AAC/B,IAAA,OAAO,EAAE,GAAI,YAAA,EAA8B;AAAA,EAC7C;AACA,EAAA,MAAM,IAAI,UAAU,iEAAiE,CAAA;AACvF;AAEA,SAAS,wBAAA,CAAyB,OAAA,GAAsB,EAAC,EAAe;AACtE,EAAA,MAAM,UAAA,GAAyB,EAAE,GAAG,OAAA,EAAQ;AAC5C,EAAA,MAAM,YAAA,GAAe,UAAA,CAAW,YAAA,IAAgB,UAAA,CAAW,aAAA;AAC3D,EAAA,OAAO,UAAA,CAAW,YAAA;AAClB,EAAA,OAAO,UAAA,CAAW,aAAA;AAClB,EAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,IAAA,UAAA,CAAW,SAAA,GAAY;AAAA,MACrB,GAAG,UAAA,CAAW,SAAA;AAAA,MACd,MAAA,EAAQ,gBAAgB,YAAY;AAAA,KACtC;AAAA,EACF;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,aAAa,EAAA,EAA6B;AACjD,EAAA,MAAM,SAAA,GAAY,WAAW,EAAE,CAAA;AAC/B,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,EAC9D;AACA,EAAA,MAAM,MAAM,CAAA,EAAG,SAAA,CAAU,MAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,UAAU,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AACtF,EAAA,OAAO;AAAA,IACL,GAAA,EAAK,GAAG,GAAG,CAAA,SAAA,CAAA;AAAA,IACX,KAAA,EAAO,GAAG,GAAG,CAAA,SAAA;AAAA,GACf;AACF;AAEA,SAAS,cAAc,KAAA,EAAiD;AACtE,EAAA,OAAO,WAAW,KAAK,CAAA;AACzB;AAEA,SAAS,iBAAiB,KAAA,EAAuB;AAC/C,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,WAAA,EAAY,CAAE,UAAA,CAAW,OAAO,GAAG,CAAA,CAAE,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA;AACnF,EAAA,MAAM,MAAA,GAAS,WAAW,UAAU,CAAA;AACpC,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAA,CAAW,QAAA,CAAS,iBAAiB,CAAA,EAAG;AAC1C,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,OAAO,GAAG,UAAU,CAAA,eAAA,CAAA;AACtB;AAYA,SAAS,cAAA,CACP,MAAA,EACA,KAAA,EACA,OAAA,GAAsB,EAAC,EACT;AACd,EAAA,MAAM,QAAA,GAAqB,OAAO,KAAA,KAAU,QAAA,GAAW,EAAE,WAAW,KAAA,EAAM,GAAI,EAAE,GAAG,KAAA,EAAM;AACzF,EAAA,MAAM,SAAA,GACJ,SAAS,SAAA,IAAa,QAAA,CAAS,UAAU,OAAO,KAAA,KAAU,WAAW,KAAA,GAAQ,EAAA,CAAA;AAC/E,EAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,eAAA,CAAgB,SAAS,CAAC,CAAA;AAE5D,EAAA,MAAM,MAAA,GAAyC,EAAE,GAAG,OAAA,CAAQ,MAAA,EAAO;AACnE,EAAA,MAAM,SAAA,GAAY,aAAA;AAAA,IAChB,aAAA,CAAc,MAAA,CAAO,SAAS,CAAA,IAC5B,aAAA,CAAc,OAAO,UAAU,CAAA,IAC/B,OAAA,CAAQ,SAAA,IACR,OAAA,CAAQ;AAAA,GACZ;AACA,EAAA,MAAM,OAAA,GAAU,aAAA;AAAA,IACd,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA,IAC1B,aAAA,CAAc,OAAO,QAAQ,CAAA,IAC7B,OAAA,CAAQ,OAAA,IACR,OAAA,CAAQ;AAAA,GACZ;AACA,EAAA,MAAM,WAAA,GAAc,eAAA;AAAA,IAClB,aAAA,CAAc,MAAA,CAAO,oBAAoB,CAAA,IACvC,aAAA,CAAc,MAAA,CAAO,WAAW,CAAA,IAChC,QAAA,CAAS,YAAA,IACT,OAAA,CAAQ,WAAA,IACR;AAAA,IACF,WAAA,EAAY;AACd,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,IAAY,QAAA,CAAS,YAAY,OAAA,CAAQ,QAAA;AAEjE,EAAA,OAAO,MAAA,CAAO,SAAA;AACd,EAAA,OAAO,MAAA,CAAO,UAAA;AACd,EAAA,OAAO,MAAA,CAAO,OAAA;AACd,EAAA,OAAO,MAAA,CAAO,QAAA;AACd,EAAA,OAAO,MAAA,CAAO,oBAAA;AACd,EAAA,OAAO,MAAA,CAAO,WAAA;AACd,EAAA,OAAO,QAAA,CAAS,SAAA;AAChB,EAAA,OAAO,QAAA,CAAS,KAAA;AAChB,EAAA,OAAO,QAAA,CAAS,YAAA;AAEhB,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,MAAA,IAAa,QAAA,CAAS,WAAW,MAAA,EAAW;AAClE,IAAA,QAAA,CAAS,SAAS,QAAA,CAAS,MAAA;AAAA,EAC7B;AACA,EAAA,OAAO,QAAA,CAAS,MAAA;AAEhB,EAAA,MAAM,MAAA,GAAsB;AAAA,IAC1B,GAAG,YAAY,QAAQ,CAAA;AAAA,IACvB,GAAG,OAAA,CAAQ,WAAA;AAAA,IACX,GAAI;AAAA,GACN;AAEA,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,MAAA,IAAa,MAAA,CAAO,WAAW,MAAA,EAAW;AAC9D,IAAA,MAAA,CAAO,SAAS,MAAA,CAAO,MAAA;AAAA,EACzB;AACA,EAAA,OAAO,MAAA,CAAO,MAAA;AACd,EAAA,OAAO,MAAA,CAAO,YAAA;AAEd,EAAA,MAAM,QAAA,GAAyB;AAAA,IAC7B,EAAE,GAAA,EAAK,0BAAA,EAA4B,KAAA,EAAO,eAAA,CAAgB,MAAM,CAAA;AAAE,GACpE;AAEA,EAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,IAAA,MAAM,MAAA,GAAS,gCAAA;AACf,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,UAAA,CAAA,EAAc,KAAA,EAAO,WAAW,CAAA;AAAA,IAChE;AACA,IAAA,IAAI,YAAY,MAAA,EAAW;AACzB,MAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,QAAA,CAAA,EAAY,KAAA,EAAO,SAAS,CAAA;AAAA,IAC5D;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,UAAA,CAAA,EAAc,KAAA,EAAO,SAAS,CAAA;AAC5D,IAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,MAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,aAAa,KAAA,EAAO,eAAA,CAAgB,QAAQ,CAAA,EAAG,CAAA;AAAA,IAC/E;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAM,MAAA,GAAS,kCAAA;AACf,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,UAAA,CAAA,EAAc,KAAA,EAAO,WAAW,CAAA;AAAA,IAChE;AACA,IAAA,IAAI,YAAY,MAAA,EAAW;AACzB,MAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,QAAA,CAAA,EAAY,KAAA,EAAO,SAAS,CAAA;AAAA,IAC5D;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAA,EAAyB,KAAA,EAAO,aAAa,CAAA;AAAA,EAC7E;AAEA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,IAAA,CAAK;AAAA,MACZ,GAAA,EAAK,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA;AAAA,MACvC,KAAA,EAAO,gBAAgB,KAAK;AAAA,KAC7B,CAAA;AAAA,EACH;AAEA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,IAAA,QAAA,CAAS,IAAA,CAAK,EAAE,GAAA,EAAK,eAAA,CAAgB,GAAG,GAAG,KAAA,EAAO,eAAA,CAAgB,KAAK,CAAA,EAAG,CAAA;AAAA,EAC5E;AAEA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,cAAc,KAAA,EAAoC;AACzD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,MAAA;AAC7C;AAEA,IAAI,YAAA;AACJ,IAAI,eAAA;AAEJ,SAAS,qBAAqB,GAAA,EAAqB;AACjD,EAAA,MAAM,QAAQ,IAAI,KAAA;AAAA,IAChB;AAAA,GACF;AACA,EAAA,MAAA,CAAO,cAAA,CAAe,OAAO,OAAA,EAAS,EAAE,cAAc,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AACxE,EAAA,eAAA,GAAkB,KAAA;AAClB,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,UAAA,GAA2B;AAClC,EAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,IAAA,OAAO,YAAA;AAAA,EACT;AACA,EAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,IAAA,MAAM,eAAA;AAAA,EACR;AACA,EAAA,IAAI;AACF,IAAA,YAAA,GAAe,mBAAA,EAAoB;AACnC,IAAA,OAAO,YAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,qBAAqB,KAAK,CAAA;AAAA,EAClC;AACF;AAEA,SAAS,iBAAiB,OAAA,EAA+C;AACvE,EAAA,MAAM,QAAA,GAAoB,WAAW,OAAA,CAAQ,KAAA;AAC7C,EAAA,IAAI,QAAA,KAAa,QAAQ,KAAA,IAAS,QAAA,KAAa,QAAQ,IAAA,IAAQ,QAAA,KAAa,QAAQ,MAAA,EAAQ;AAC1F,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,SAAA;AAAA,IACR,CAAA,gCAAA,EAAmC,eAAA,CAAgB,QAAQ,CAAC,uBAAuB,MAAA,CAAO,MAAA;AAAA,MACxF;AAAA,KACF,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,GACd;AACF;AAEA,SAAS,YAAA,CAAa,QAAgB,OAAA,EAA2C;AAC/E,EAAA,MAAM,QAAA,GAAW,iBAAiB,OAAO,CAAA;AACzC,EAAA,IAAI,QAAA,KAAa,QAAQ,IAAA,EAAM;AAC7B,IAAA,OAAO,CAAC,GAAGI,wBAAA,CAAa,MAAM,CAAC,CAAA;AAAA,EACjC;AACA,EAAA,IAAI,QAAA,KAAa,QAAQ,MAAA,EAAQ;AAC/B,IAAA,OAAO,UAAA,EAAW,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACpC;AACA,EAAA,OAAOA,yBAAa,MAAM,CAAA;AAC5B;AAIA,IAAI,sBAAA;AACJ,IAAI,uBAAA;AAEJ,SAAS,qBAAA,GAA8B;AACrC,EAAA,MAAM,QAAA,GAAW,uBAAA;AACjB,EAAA,uBAAA,GAA0B,MAAA;AAC1B,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,KAAA,CAAM,YAA2B;AAC/B,MAAA,IAAI;AACF,QAAA,MAAM,SAAS,MAAM,QAAA;AACrB,QAAA,MAAA,CAAO,cAAA,EAAe;AAAA,MACxB,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,CAAA,GAAG;AAAA,EACL;AACF;AAEA,eAAe,mBAAA,GAAuC;AACpD,EAAA,IAAI,4BAA4B,MAAA,EAAW;AACzC,IAAA,MAAM,OAAA,GAAU,QAAQ,sBAAsB,CAAA;AAC9C,IAAA,OAAA,CAAQ,MAAM,MAAM;AAClB,MAAA,IAAI,4BAA4B,OAAA,EAAS;AACvC,QAAA,uBAAA,GAA0B,MAAA;AAAA,MAC5B;AAAA,IACF,CAAC,CAAA;AACD,IAAA,uBAAA,GAA0B,OAAA;AAAA,EAC5B;AACA,EAAA,OAAO,MAAM,uBAAA;AACf;AAMO,IAAM,cAAN,MAAkB;AAAA,EAChB,YAA4B,IAAA,EAAc;AAAd,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAAe;AAAA,EAAf,IAAA;AACrC;AAEO,IAAM,OAAN,MAAW;AAAA,EAGT,YAA6B,MAAA,EAAkC;AAAlC,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAClC,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,KAAU,CAAC,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA;AAAA,EAC9E;AAAA,EAFoC,MAAA;AAAA,EAFnB,SAAA;AAAA,EAMjB,IAAW,KAAA,GAAgB;AACzB,IAAA,OAAO,KAAK,MAAA,CAAO,KAAA;AAAA,EACrB;AAAA,EAEA,IAAW,WAAA,GAAsB;AAC/B,IAAA,OAAO,KAAK,MAAA,CAAO,WAAA;AAAA,EACrB;AAAA,EAEA,IAAW,aAAA,GAAwB;AACjC,IAAA,OAAO,KAAK,MAAA,CAAO,aAAA;AAAA,EACrB;AAAA,EAEO,IAAI,KAAA,EAAwC;AACjD,IAAA,MAAM,IAAA,GAAO,OAAO,KAAA,KAAU,QAAA,GAAW,QAAQ,KAAA,CAAM,IAAA;AACvD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,IAAI,CAAA;AACrC,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,IAAK,IAAA;AAC3C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,IAAK,SAAA;AAC9C,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,IAAI,IAAA,KAAS,KAAA,IAAS,IAAA,KAAS,WAAA,IAAe,SAAS,cAAA,EAAgB;AACrE,MAAA,IAAI;AACF,QAAA,OAAO,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MAC7B,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,IAAI,IAAA,KAAS,QAAA,IAAY,OAAO,KAAA,KAAU,QAAA,EAAU;AAClD,MAAA,OAAO,IAAI,KAAK,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,EAAG,CAAA,GAAI,KAAK,CAAC,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAAA,EAEO,IAAI,KAAA,EAA4C;AACrD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC5B,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,MAAA,GAAS,OAAO,KAAK,CAAA;AAC3B,IAAA,OAAO,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,GAAI,MAAA,GAAS,IAAA;AAAA,EAC5C;AAAA,EAEO,IAAI,KAAA,EAA4C;AACrD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC5B,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,IAAI;AACF,MAAA,OAAO,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IAC7B,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEO,IAAI,KAAA,EAA4C;AACrD,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAC5B,IAAA,OAAO,KAAA,KAAU,IAAA,GAAO,IAAA,GAAO,MAAA,CAAO,KAAK,CAAA;AAAA,EAC7C;AAAA,EAEO,QAAA,GAAoC;AACzC,IAAA,MAAM,MAA+B,EAAE,WAAA,EAAa,KAAK,WAAA,EAAa,KAAA,EAAO,KAAK,KAAA,EAAM;AACxF,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,MAAA,CAAO,MAAA,EAAQ;AACtC,MAAA,GAAA,CAAI,KAAK,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,GAAA;AAAA,EACT;AACF;AAEO,IAAM,oBAAN,MAA8E;AAAA,EAC5E,YAA6B,KAAA,EAA2B;AAA3B,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAA4B;AAAA,EAA5B,KAAA;AAAA,EAEpC,MAAa,IAAA,GAAuC;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,SAAA,EAAU;AACzC,MAAA,IAAI,UAAU,IAAA,EAAM;AAClB,QAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,KAAA,CAAA,EAAU;AAAA,MACxC;AACA,MAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,sBAAA,CAAuB,KAAK,CAAA,EAAE;AAAA,IAC7D,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,WAAA,CAAY,KAAA,GAAQ,KAAA,EAAyB;AACxD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,KAAA,CAAM,iBAAiB,KAAK,CAAA;AACvD,MAAA,OAAO,OAAA,EAAS,GAAA,CAAI,sBAAsB,CAAA,IAAK,EAAC;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,CAAQ,MAAA,CAAO,aAAa,CAAA,GAAU;AACpC,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEO,IAAM,eAAN,MAAuE;AAAA,EAC3D,KAAA;AAAA,EAEV,YAAY,KAAA,EAA2B;AAC5C,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,EACf;AAAA,EAEA,MAAa,IAAA,GAAsC;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,UAAA,EAAW;AAC3C,MAAA,IAAI,WAAW,IAAA,EAAM;AACnB,QAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,KAAA,CAAA,EAAU;AAAA,MACxC;AACA,MAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,OAAO,IAAI,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,IAChD,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,IAAI,OAAA,EAA2C;AAC1D,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,OAAO,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,OAAO,OAAA,EAA2C;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA;AAAA,IACjC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,WAAA,CAAY,KAAA,GAAQ,KAAA,EAAwB;AACvD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,KAAA,CAAM,YAAY,KAAK,CAAA;AAClD,MAAA,IAAI,YAAY,IAAA,EAAM;AACpB,QAAA,OAAO,EAAC;AAAA,MACV;AACA,MAAA,OAAO,QAAQ,GAAA,CAAI,CAAC,WAAW,IAAI,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,IACjD,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEO,MAAM,IAAA,EAA2B;AACtC,IAAA,OAAO,IAAI,YAAY,IAAI,CAAA;AAAA,EAC7B;AAAA,EAEO,KAAA,GAA2B;AAChC,IAAA,OAAO,IAAI,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA;AAAA,EACzC;AAAA,EAEA,IAAW,OAAA,GAAoB;AAC7B,IAAA,OAAO,KAAK,KAAA,CAAM,OAAA;AAAA,EACpB;AAAA,EAEA,IAAW,MAAA,GAAmB;AAC5B,IAAA,OAAO,KAAK,KAAA,CAAM,MAAA;AAAA,EACpB;AAAA,EAEA,IAAW,QAAA,GAAoB;AAC7B,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AAAA,EAEA,IAAW,KAAA,GAA2B;AACpC,IAAA,OAAO,KAAK,KAAA,CAAM,KAAA;AAAA,EACpB;AAAA,EAEA,CAAQ,MAAA,CAAO,aAAa,CAAA,GAAU;AACpC,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAIO,IAAM,MAAA,GAAN,MAAM,OAAA,CAAO;AAAA;AAAA,EAEV,KAAA;AAAA,EAED,WAAA,CAAY,IAAA,GAAO,WAAA,EAAa,IAAA,GAAO,IAAA,EAAM;AAClD,IAAA,IAAI;AACF,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,MAAA,CAAO,QAAA,CAAS,MAAM,IAAI,CAAA;AAAA,IAC7C,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,OAAc,UAAA,CAAW,MAAA,GAAuB,EAAC,EAAW;AAC1D,IAAA,MAAM,WAAA,GAAuB,MAAA,CAAO,MAAA,CAAO,OAAA,CAAO,SAAS,CAAA;AAC3D,IAAA,IAAI,EAAE,uBAAuB,OAAA,CAAA,EAAS;AACpC,MAAA,MAAM,IAAI,UAAU,oCAAoC,CAAA;AAAA,IAC1D;AACA,IAAA,MAAM,MAAA,GAAS,WAAA;AACf,IAAA,IAAI;AACF,MAAA,MAAA,CAAO,KAAA,GAAQ,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,MAAM,CAAA;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAa,QAAQ,MAAA,EAAwC;AAC3D,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,MAAA,CAAO,OAAO,CAAA;AAC/C,IAAA,MAAM,EAAE,OAAA,EAAS,UAAA,EAAY,GAAG,cAAa,GAAI,MAAA;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,QAAQ,YAAY,CAAA;AACpD,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,WAAW,MAAA,EAAuC;AAC7D,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAAA,IACxC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,GAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,SAAA,EAAW,SAAA;AAAA,MACX,MAAA;AAAA,MACA,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,qBAAA,EAAuB,OAAA,CAAQ,OAAA,CAAQ,qBAAqB,CAAA;AAAA,MAC5D,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,sBAAA;AAAA,MACX,SAAA,EAAW,gBAAA,CAAiB,OAAA,CAAQ,SAAS,CAAA;AAAA,MAC7C,UAAA,EAAY,OAAA;AAAA,MACZ,OAAA,EAAS,eAAA;AAAA,MACT,gBAAgB,OAAA,CAAQ;AAAA,KACzB,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,GAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,SAAA,EAAW,MAAA;AAAA,MACX,MAAA;AAAA,MACA,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,sBAAA;AAAA,MACX,SAAA,EAAW,gBAAA,CAAiB,OAAA,CAAQ,SAAS,CAAA;AAAA,MAC7C,UAAA,EAAY,OAAA;AAAA,MACZ,OAAA,EAAS,eAAA;AAAA,MACT,gBAAgB,OAAA,CAAQ;AAAA,KACzB,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,GAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,OAAA,EAAS,UAAA,CAAW,OAAA,CAAQ,GAAG,CAAA;AAAA,MAC/B,SAAA,EAAW,UAAA;AAAA,MACX,MAAA;AAAA,MACA,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,uBAAA;AAAA,MACX,SAAA,EAAW,gBAAA,CAAiB,OAAA,CAAQ,SAAS,CAAA;AAAA,MAC7C,UAAA,EAAY,OAAA;AAAA,MACZ,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,UAAA,CAAW,OAAA,CAAQ,KAAK,CAAA;AAAA,MACnC,gBAAgB,OAAA,CAAQ;AAAA,KACzB,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,IAAA,CAAK,MAAA,EAAgB,OAAA,GAAuB,EAAC,EAAqB;AAC7E,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,WAAA,EAAa,cAAA,CAAe,OAAA,CAAQ,GAAG,CAAA;AAAA,MACvC,SAAA,EAAW,QAAQ,SAAA,IAAa,OAAA;AAAA,MAChC,SAAA,EAAW,cAAA;AAAA,MACX,QAAA,EAAU,QAAQ,QAAA,IAAY,CAAA;AAAA,MAC9B,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,oBAAA;AAAA,MACX,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,QAAA,EAAU,MAAA;AAAA,MACV,OAAA,EAAS,eAAA;AAAA,MACT,aAAA,EAAe,cAAA,CAAe,OAAA,CAAQ,KAAK;AAAA,KAC5C,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,MAAA,CAAO,MAAA,EAAgB,OAAA,GAAyB,EAAC,EAAqB;AACjF,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,WAAA,EAAa,cAAA,CAAe,OAAA,CAAQ,GAAG,CAAA;AAAA,MACvC,UAAA,EAAY,OAAA,CAAQ,UAAA,IAAc,CAAC,OAAO,CAAA;AAAA,MAC1C,SAAA,EAAW,eAAA;AAAA,MACX,MAAA,EAAQ,kBAAkB,OAAO,CAAA;AAAA,MACjC,SAAA,EAAW,qBAAA;AAAA,MACX,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,QAAA,EAAU,MAAA;AAAA,MACV,OAAA,EAAS,eAAA;AAAA,MACT,aAAA,EAAe,cAAA,CAAe,OAAA,CAAQ,KAAK;AAAA,KAC5C,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,GAAA,CAAI,KAAA,EAAe,OAAA,GAAsB,EAAC,EAAqB;AAC1E,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,CAAC,EAAE,GAAA,EAAK,cAAc,KAAA,EAAO,eAAA,CAAgB,KAAK,CAAA,EAAG,CAAA;AAAA,MAC/D,SAAA,EAAW,KAAA;AAAA,MACX,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,WAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,IAAA,CAAK,MAAA,EAAgB,OAAA,GAAuB,EAAC,EAAqB;AAC7E,IAAA,MAAM,QAAA,GAAyB;AAAA,MAC7B,EAAE,GAAA,EAAK,YAAA,EAAc,KAAA,EAAO,eAAA,CAAgB,MAAM,CAAA,EAAE;AAAA,MACpD,EAAE,KAAK,YAAA,EAAc,KAAA,EAAO,gBAAgB,OAAA,CAAQ,UAAA,IAAc,SAAS,CAAA,EAAE;AAAA,MAC7E,EAAE,KAAK,OAAA,EAAS,KAAA,EAAO,gBAAgB,OAAA,CAAQ,KAAA,IAAS,SAAS,CAAA;AAAE,KACrE;AACA,IAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAW;AAC9B,MAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA;AAC7C,MAAA,IAAI,kBAAkB,MAAA,EAAW;AAC/B,QAAA,QAAA,CAAS,KAAK,EAAE,GAAA,EAAK,UAAA,EAAY,KAAA,EAAO,eAAe,CAAA;AAAA,MACzD;AAAA,IACF;AACA,IAAA,MAAM,SAAA,GAA0B,EAAE,GAAG,OAAA,CAAQ,SAAA,EAAU;AACvD,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA;AAAA,MACA,SAAA,EAAW,SAAA;AAAA,MACX,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,iBAAiB,SAAS,CAAA;AAAA,MACrC,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,KAAA,CAAM,UAAA,EAAoB,OAAA,GAAwB,EAAC,EAAqB;AACnF,IAAA,MAAM,QAAA,GAAyB;AAAA,MAC7B,MAAA,EAAQ,gBAAgB,UAAU,CAAA;AAAA,MAClC,GAAG,OAAA,CAAQ,SAAA;AAAA,MACX,GAAG,OAAA,CAAQ;AAAA,KACb;AACA,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,iBAAiB,QAAQ,CAAA;AAAA,MACnC,SAAA,EAAW,OAAA;AAAA,MACX,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,SAAA,EAAW,qBAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,GAAA,CACX,MAAA,EACA,KAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,cAAA,CAAe,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,MAC/C,SAAA,EAAW,SAAA;AAAA,MACX,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,SAAA,EAAW,cAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,KAAA,CAAM,OAAA,GAAwB,EAAC,EAAqB;AAC/D,IAAA,IAAI,OAAA,CAAQ,eAAe,MAAA,EAAW;AACpC,MAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,QACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,QACjB,QAAQ,OAAA,CAAQ,MAAA;AAAA,QAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,QACvC,SAAA,EAAW,oBAAA;AAAA,QACX,UAAA,EAAY,eAAA,CAAgB,OAAA,CAAQ,UAAU,CAAA;AAAA,QAC9C,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AACA,IAAA,MAAM,MAAA,GAAS,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA;AAC3C,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,MAAA;AAAA,MACV,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,kBAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,IAAA,CAAK,KAAA,EAAe,OAAA,GAAuB,EAAC,EAAqB;AAC5E,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,CAAC,EAAE,GAAA,EAAK,SAAS,KAAA,EAAO,eAAA,CAAgB,KAAK,CAAA,EAAG,CAAA;AAAA,MAC1D,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,uBAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,KAAA,CACX,SAAA,EACA,MAAA,EACA,OAAA,GAA0B,EAAC,EACT;AAClB,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,MAAA,EAAQ,MAAM,OAAA,CAAQ,MAAM,IAAI,MAAA,GAAS,CAAC,eAAA,CAAgB,MAAM,CAAC,CAAA;AAAA,MACjE,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,sBAAA;AAAA,MACX,SAAA,EAAW,gBAAA,CAAiB,OAAA,CAAQ,SAAS,CAAA;AAAA,MAC7C,QAAA,EAAU,gBAAgB,SAAS,CAAA;AAAA,MACnC,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,OAAA,CAAQ,MAAA,EAAgB,OAAA,GAA0B,EAAC,EAAqB;AACnF,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,CAAC,EAAE,GAAA,EAAK,SAAS,KAAA,EAAO,eAAA,CAAgB,MAAM,CAAA,EAAG,CAAA;AAAA,MAC3D,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,kBAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,MAAA,CAAO,MAAA,EAAgB,OAAA,GAA0B,EAAC,EAAqB;AAClF,IAAA,OAAO,MAAM,KAAK,OAAA,CAAQ;AAAA,MACxB,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,QAAA,EAAU,CAAC,EAAE,GAAA,EAAK,SAAS,KAAA,EAAO,eAAA,CAAgB,MAAM,CAAA,EAAG,CAAA;AAAA,MAC3D,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,MAAA,EAAQ,gBAAA,CAAiB,OAAA,CAAQ,MAAM,CAAA;AAAA,MACvC,SAAA,EAAW,iBAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,iBAAA,CACX,MAAA,EACA,SAAA,EACA,cAAc,QAAA,EACmB;AACjC,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,iBAAA;AAAA,MAC7B,MAAA;AAAA,MACA,iBAAiB,SAAS,CAAA;AAAA,MAC1B;AAAA,KACF;AACA,IAAA,OAAO,MAAA,CAAO,WAAA,CAAY,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,CAAC,IAAA,CAAK,GAAA,EAAK,IAAA,CAAK,KAAK,CAAC,CAAC,CAAA;AAAA,EACvE;AAAA,EAEO,aAAa,KAAA,EAAiC;AACnD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,YAAA,CAAa,KAAK,CAAA;AAAA,EACtC;AAAA,EAEO,eAAA,GAAwB;AAC7B,IAAA,IAAA,CAAK,MAAM,eAAA,EAAgB;AAAA,EAC7B;AAAA,EAEO,cAAA,GAAuB;AAC5B,IAAA,IAAA,CAAK,MAAM,cAAA,EAAe;AAAA,EAC5B;AAAA,EAEA,MAAa,eAAe,MAAA,EAA8C;AACxE,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,cAAA,CAAe,MAAM,CAAA;AAAA,EAC/C;AAAA,EAEO,wBAAA,GAAoC;AACzC,IAAA,OAAO,IAAA,CAAK,MAAM,wBAAA,EAAyB;AAAA,EAC7C;AAAA,EAEA,MAAa,UAAU,OAAA,EAAmC;AACxD,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,KAAA,CAAM,UAAU,OAAO,CAAA;AAC/C,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,MAAa,YAAA,CAAa,OAAA,EAAiB,SAAA,EAAqC;AAC9E,IAAA,MAAM,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,YAAA,CAAa,SAAS,SAAS,CAAA;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,MAAa,eAAe,OAAA,EAAoC;AAC9D,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,cAAA,CAAe,OAAO,CAAA;AAAA,EAChD;AAAA,EAEO,gBAAgB,OAAA,EAA0B;AAC/C,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,eAAA,CAAgB,OAAO,CAAA;AAC/C,IAAA,OAAO,IAAA,KAAS,IAAA,GAAO,IAAA,GAAQ,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EAChD;AAAA,EAEO,iBAAiB,OAAA,EAAuB;AAC7C,IAAA,IAAA,CAAK,KAAA,CAAM,iBAAiB,OAAO,CAAA;AAAA,EACrC;AAAA,EAEO,gBAAA,GAAyB;AAC9B,IAAA,IAAA,CAAK,MAAM,gBAAA,EAAiB;AAAA,EAC9B;AAAA,EAEO,iBAAA,GAA8B;AACnC,IAAA,OAAO,IAAA,CAAK,MAAM,iBAAA,EAAkB;AAAA,EACtC;AAAA,EAEA,MAAa,aAAA,CACX,OAAA,EACA,SAAA,EACA,OAAA,EAC0B;AAC1B,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,aAAA,CAAc,OAAA,EAAS,WAAW,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAa,iBAAA,CAAkB,OAAA,EAAiB,SAAA,EAA6C;AAC3F,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,iBAAA,CAAkB,SAAS,SAAS,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAa,SAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAyB,EAAC,EACH;AACvB,IAAA,IAAI;AACF,MAAA,MAAM,mBAAA,GAAsB,8BAAA,CAA+B,eAAA,EAAiB,OAAO,CAAA;AACnF,MAAA,MAAM,UAAA,GACJ,mBAAA,KAAwB,KAAA,CAAA,IACxB,OAAA,CAAQ,cAAA,KAAmB,UAC3B,OAAA,CAAQ,cAAA,KAAmB,KAAA,CAAA,IAC3B,OAAA,CAAQ,cAAA,KAAmB,KAAA,CAAA;AAC7B,MAAA,MAAM,MAAA,GAAS,UAAA,GACX,MAAM,IAAA,CAAK,KAAA,CAAM,oBAAA;AAAA,QACf,eAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,mBAAA;AAAA,QACA,OAAA,CAAQ,cAAA;AAAA,QACR,OAAA,CAAQ,cAAA;AAAA,QACR,OAAA,CAAQ,cAAA;AAAA,QACR,OAAA,CAAQ;AAAA,OACV,GACA,MAAM,IAAA,CAAK,KAAA,CAAM,UAAU,OAAA,EAAS,MAAA,EAAQ,QAAQ,SAAS,CAAA;AACjE,MAAA,OAAO,IAAI,aAAa,MAAM,CAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,qBACX,OAAA,EACA,OAAA,EACA,QACA,OAAA,EACA,cAAA,EACA,cAAA,EACA,cAAA,EACA,SAAA,EACuB;AACvB,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,oBAAA;AAAA,QAC9B,OAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,OAAO,IAAI,aAAa,MAAM,CAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEO,cAAA,GAAuB;AAC5B,IAAA,IAAA,CAAK,MAAM,cAAA,EAAe;AAAA,EAC5B;AAAA,EAEO,WAAA,GAAuB;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAM,WAAA,EAAY;AAAA,EAChC;AAAA,EAEA,MAAa,MAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAyB,EAAC,EACH;AACvB,IAAA,OAAO,MAAM,IAAA,CAAK,oBAAA;AAAA,MAChB,eAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,8BAAA,CAA+B,iBAAiB,OAAO,CAAA;AAAA,MACvD,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEA,MAAa,IAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAyB,EAAC,EACH;AACvB,IAAA,OAAO,MAAM,IAAA,CAAK,oBAAA;AAAA,MAChB,eAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,8BAAA,CAA+B,iBAAiB,OAAO,CAAA;AAAA,MACvD,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEA,MAAa,MAAA,CAAO,MAAA,EAAgB,OAAA,GAAyB,EAAC,EAA0B;AACtF,IAAA,OAAO,MAAM,IAAA,CAAK,oBAAA;AAAA,MAChB,cAAA;AAAA,MACA,CAAC,MAAM,CAAA;AAAA,MACP,OAAA,CAAQ,UAAU,EAAC;AAAA,MACnB,8BAAA,CAA+B,gBAAgB,OAAO,CAAA;AAAA,MACtD,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEA,MAAa,KAAA,CAAM,MAAA,EAAgB,OAAA,GAAyB,EAAC,EAA0B;AACrF,IAAA,OAAO,MAAM,IAAA,CAAK,oBAAA;AAAA,MAChB,oBAAA;AAAA,MACA,CAAC,MAAM,CAAA;AAAA,MACP,OAAA,CAAQ,UAAU,EAAC;AAAA,MACnB,8BAAA,CAA+B,sBAAsB,OAAO,CAAA;AAAA,MAC5D,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEA,MAAa,MAAA,CAAO,MAAA,EAAgB,OAAA,GAAyB,EAAC,EAA0B;AACtF,IAAA,OAAO,MAAM,IAAA,CAAK,oBAAA;AAAA,MAChB,eAAA;AAAA,MACA,CAAC,MAAM,CAAA;AAAA,MACP,OAAA,CAAQ,UAAU,EAAC;AAAA,MACnB,8BAAA,CAA+B,iBAAiB,OAAO,CAAA;AAAA,MACvD,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ,cAAA;AAAA,MACR,OAAA,CAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEA,MAAa,KAAK,OAAA,EAAoC;AACpD,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,cAAA,CAAe,OAAO,CAAA;AAAA,EAChD;AAAA,EAEA,MAAa,OAAA,CAAQ,OAAA,EAAiB,SAAA,EAAsC;AAC1E,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,MAAMC,QAAO,MAAM,IAAA,CAAK,KAAA,CAAM,YAAA,CAAa,SAAS,SAAS,CAAA;AAC7D,MAAA,OAAO,IAAA,CAAK,MAAMA,KAAI,CAAA;AAAA,IACxB;AACA,IAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,KAAA,CAAM,UAAU,OAAO,CAAA;AAC/C,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,MAAa,SAAA,CACX,MAAA,EACA,OAAA,GAAwB,EAAC,EACP;AAClB,IAAA,OAAO,MAAM,KAAK,KAAA,CAAM;AAAA,MACtB,MAAA,EAAQ,cAAc,MAAM,CAAA;AAAA,MAC5B,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,WAAA,CAAY,UAAA,EAAoB,OAAA,GAAwB,EAAC,EAAqB;AACzF,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA,CAAM,EAAE,UAAA,EAAY,gBAAgB,UAAU,CAAA,EAAG,GAAG,OAAA,EAAS,CAAA;AAAA,EACjF;AAAA;AAAA,EAIA,MAAa,GAAA,CAAI,MAAA,EAAgB,OAAA,GAAsB,EAAC,EAAqB;AAC3E,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,SAAA;AAAA,QAC9B,gBAAgB,MAAM,CAAA;AAAA,QACtB,cAAA,CAAe,QAAQ,aAAa,CAAA;AAAA,QACpC,cAAA,CAAe,QAAQ,WAAW,CAAA;AAAA,QAClC,QAAQ,UAAA,IAAc,IAAA;AAAA,QACtB,QAAQ,kBAAA,KAAuB;AAAA,OACjC;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,GAAA,CACX,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,SAAA;AAAA,QAC9B,cAAc,OAAO,CAAA;AAAA,QACrB,cAAc,MAAM,CAAA;AAAA,QACpB,UAAA,CAAW,QAAQ,QAAQ,CAAA;AAAA,QAC3B,QAAQ,SAAA,IAAa,KAAA,CAAA;AAAA,QACrB,QAAQ,MAAA,IAAU,KAAA,CAAA;AAAA,QAClB,QAAQ,QAAA,IAAY,KAAA,CAAA;AAAA,QACpB,QAAQ,KAAA,IAAS,KAAA,CAAA;AAAA,QACjB,QAAQ,SAAA,IAAa,KAAA;AAAA,OACvB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,UAAA,CAAW,YAAA,EAAsB,OAAA,GAA6B,EAAC,EAAqB;AAC/F,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,gBAAA;AAAA,QAC9B,gBAAgB,YAAY,CAAA;AAAA,QAC5B,QAAQ,MAAA,KAAW,KAAA,CAAA,GAAY,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,GAAI;AAAA,OACjE;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,cAAA,CACX,MAAA,EACA,OAAA,GAAiC,EAAC,EAChB;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,oBAAA;AAAA,QAC9B,gBAAgB,MAAM,CAAA;AAAA,QACtB,QAAQ,GAAA,IAAO,KAAA,CAAA;AAAA,QACf,QAAQ,MAAA,KAAW,KAAA,CAAA,GAAY,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,GAAI,IAAA;AAAA,QAC/D,QAAQ,UAAA,KAAe;AAAA,OACzB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,SAAA,CACX,SAAA,EACA,EAAA,EACA,OAAA,GAAiC,EAAC,EAChB;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,eAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAAA,QAClB,QAAQ,IAAA,IAAQ,KAAA;AAAA,OAClB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,aAAA,CACX,SAAA,EACA,EAAA,EACA,OAAA,GAAiC,EAAC,EAChB;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,mBAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAAA,QAClB,QAAQ,IAAA,IAAQ,KAAA;AAAA,OAClB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,YAAA,CACX,SAAA,EACA,OAAA,GAA+B,EAAC,EACd;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,kBAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,QAAQ,IAAA,KAAS,KAAA,CAAA,GAAY,SAAa,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA,IAAK,EAAA;AAAA,QACtE,QAAQ,UAAA,IAAc,KAAA,CAAA;AAAA,QACtB,QAAQ,MAAA,KAAW,KAAA,CAAA,GAAY,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,GAAI,IAAA;AAAA,QAC/D,QAAQ,YAAA,IAAgB,KAAA;AAAA,OAC1B;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,SAAA,CACX,SAAA,EACA,EAAA,EACA,OAAA,GAAgC,EAAC,EACf;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,eAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,EAAE,CAAA,IAAK;AAAA,OACpB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,SAAA,CACX,SAAA,EACA,EAAA,EACA,OAAA,GAA4B,EAAC,EACX;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,eAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,EAAE,CAAA,IAAK,EAAA;AAAA,QAClB,QAAQ,YAAA,IAAgB,KAAA;AAAA,OAC1B;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,QAAA,CACX,OAAA,EACA,WACA,OAAA,EACA,OAAA,GAA2B,EAAC,EACV;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,cAAA;AAAA,QAC9B,cAAc,OAAO,CAAA;AAAA,QACrB,UAAA,CAAW,SAAS,CAAA,IAAK,EAAA;AAAA,QACzB,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAAA,QACvB,QAAQ,OAAA,IAAW,KAAA;AAAA,OACrB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,aAAA,CACX,OAAA,EACA,WACA,OAAA,EACA,OAAA,GAAgC,EAAC,EACf;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,mBAAA;AAAA,QAC9B,cAAc,OAAO,CAAA;AAAA,QACrB,UAAA,CAAW,SAAS,CAAA,IAAK,EAAA;AAAA,QACzB,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAAA,QACvB,QAAQ,aAAA,KAAkB,KAAA,CAAA,GAAY,aAAA,CAAc,OAAA,CAAQ,aAAa,CAAA,GAAI,IAAA;AAAA,QAC7E,QAAQ,UAAA,IAAc,KAAA;AAAA,OACxB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,QAAA,CACX,OAAA,EACA,WACA,OAAA,EACA,OAAA,GAA2B,EAAC,EACV;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,cAAA;AAAA,QAC9B,cAAc,OAAO,CAAA;AAAA,QACrB,UAAA,CAAW,SAAS,CAAA,IAAK,EAAA;AAAA,QACzB,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAAA,QACvB,QAAQ,GAAA,IAAO,KAAA,CAAA;AAAA,QACf,QAAQ,MAAA,IAAU,KAAA;AAAA,OACpB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,WAAA,CAAY,SAAA,EAAmB,OAAA,GAA8B,EAAC,EAAqB;AAC9F,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,iBAAA;AAAA,QAC9B,gBAAgB,SAAS,CAAA;AAAA,QACzB,QAAQ,MAAA,KAAW,KAAA,CAAA,GAAY,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,GAAI;AAAA,OACjE;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,UAAA,CACX,OAAA,EACA,WACA,OAAA,EACA,OAAA,GAA6B,EAAC,EACZ;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,gBAAA;AAAA,QAC9B,cAAc,OAAO,CAAA;AAAA,QACrB,UAAA,CAAW,SAAS,CAAA,IAAK,EAAA;AAAA,QACzB,UAAA,CAAW,OAAO,CAAA,IAAK,EAAA;AAAA,QACvB,mBAAA,CAAoB,OAAA,CAAQ,MAAA,IAAU,eAAe,CAAA;AAAA,QACrD,sBAAA,CAAuB,QAAQ,MAAM,CAAA;AAAA,QACrC,QAAQ,SAAA,IAAa,IAAA;AAAA,QACrB,QAAQ,cAAA,IAAkB,KAAA;AAAA,QAC1B,QAAQ,YAAA,IAAgB,KAAA,CAAA;AAAA,QACxB,QAAQ,kBAAA,IAAsB,KAAA;AAAA,OAChC;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,YAAA,CAAa,KAAA,EAAe,OAAA,GAA+B,EAAC,EAAqB;AAC5F,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,kBAAA;AAAA,QAC9B,gBAAgB,KAAK,CAAA;AAAA,QACrB,QAAQ,KAAA,IAAS,KAAA,CAAA;AAAA,QACjB,QAAQ,IAAA,KAAS,KAAA,CAAA,GAAY,SAAa,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA,IAAK;AAAA,OACxE;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,YAAA,CACX,KAAA,EACA,OAAA,GAAgC,EAAC,EACf;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,IAAA,CAAK,MAAM,kBAAA,CAAmB,aAAA,CAAc,KAAK,CAAC,CAAA;AACvE,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,WAAA,CACX,SAAA,EACA,OAAA,GAAgC,EAAC,EACf;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,IAAA,CAAK,MAAM,iBAAA,CAAkB,aAAA,CAAc,SAAS,CAAC,CAAA;AAC1E,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAa,mBACX,MAAA,EACA,SAAA,EACA,WACA,OAAA,EACA,OAAA,GAAgC,EAAC,EACf;AAClB,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,KAAA,CAAM,wBAAA;AAAA,QAC9B,gBAAgB,MAAM,CAAA;AAAA,QACtB,gBAAgB,SAAS,CAAA;AAAA,QACzB,UAAA,CAAW,SAAS,CAAA,IAAK,EAAA;AAAA,QACzB,UAAA,CAAW,OAAO,CAAA,IAAK;AAAA,OACzB;AACA,MAAA,OAAO,YAAA,CAAa,QAAQ,OAAO,CAAA;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,UAAU,KAAK,CAAA;AAAA,IACvB;AAAA,EACF;AACF;AAIA,eAAsB,QAAQ,MAAA,EAAwC;AACpE,EAAA,OAAO,MAAM,OAAA,CAAQ,OAAA,CAAQ,MAAA,KAAW,MAAA,GAAY,IAAI,MAAA,EAAO,GAAI,MAAA,CAAO,UAAA,CAAW,MAAM,CAAC,CAAA;AAC9F;AAIO,SAAS,SAAA,CACd,cACA,IAAA,EAC0B;AAC1B,EAAA,sBAAA,GAAyB,sBAAA,CAAuB,cAAc,IAAI,CAAA;AAClE,EAAA,qBAAA,EAAsB;AACtB,EAAA,OAAO,sBAAA;AACT;AAEA,eAAsB,IAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,OAAO,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA,EAAG,aAAA,CAAc,MAAM,CAAA,EAAG,OAAO,CAAA;AAChF;AAEA,eAAsB,GAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,OAAO,MAAM,IAAA,CAAK,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAA;AAC5C;AAEA,eAAsB,KACpB,OAAA,EACA,MAAA,EACA,OACA,GAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AAGzC,EAAA,IAAI,iBAAA,CAAkB,KAAK,CAAA,EAAG;AAC5B,IAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,MAAA,MAAM,IAAI,UAAU,mEAAmE,CAAA;AAAA,IACzF;AACA,IAAA,OAAO,MAAM,OAAO,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA,EAAG,aAAA,CAAc,MAAM,CAAA,EAAG,KAAK,CAAA;AAAA,EAC9E;AACA,EAAA,OAAO,MAAM,OAAO,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA,EAAG,aAAA,CAAc,MAAM,CAAA,EAAG;AAAA,IACrE,GAAG,OAAA;AAAA,IACH,GAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH;AAEA,eAAsB,GAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,OAAO,MAAM,IAAA,CAAK,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAA;AAC5C;AAEA,eAAsB,KACpB,OAAA,EACA,MAAA,EACA,SAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,MAAM,iBAAA,GAAgC,aAAA,CAAc,SAAS,CAAA,GACzD,EAAE,GAAG,OAAA,EAAS,SAAA,EAAW,EAAE,GAAG,OAAA,CAAQ,SAAA,EAAW,GAAG,SAAA,IAAY,GAChE,OAAA;AACJ,EAAA,OAAO,MAAM,OAAO,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA,EAAG,aAAA,CAAc,MAAM,CAAA,EAAG,iBAAiB,CAAA;AAC1F;AAEA,eAAsB,GAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAsB,EAAC,EACL;AAClB,EAAA,OAAO,MAAM,IAAA,CAAK,OAAA,EAAS,MAAA,EAAQ,QAAW,OAAO,CAAA;AACvD;AAEA,eAAsB,MACpB,MAAA,EACA,EAAA,EACA,WAAiC,CAAA,EACjC,OAAA,GAAuB,EAAC,EACN;AAClB,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AAGzC,EAAA,IAAI,kBAAA,CAAmB,EAAE,CAAA,IAAK,QAAA,KAAa,CAAA,IAAK,OAAO,IAAA,CAAK,OAAO,CAAA,CAAE,MAAA,KAAW,CAAA,EAAG;AACjF,IAAA,OAAO,MAAM,MAAA,CAAO,IAAA,CAAK,eAAA,CAAgB,MAAM,GAAG,EAAE,CAAA;AAAA,EACtD;AACA,EAAA,MAAM,oBAAiC,kBAAA,CAAmB,QAAQ,CAAA,GAC9D,EAAE,GAAG,QAAA,EAAS,GACd,EAAE,GAAG,SAAS,QAAA,EAAU,OAAO,QAAA,KAAa,QAAA,GAAW,WAAW,CAAA,EAAE;AACxE,EAAA,IAAI,iBAAA,CAAkB,KAAA,KAAU,MAAA,IAAa,iBAAA,CAAkB,QAAQ,MAAA,EAAW;AAChF,IAAA,IAAI,EAAA,KAAO,MAAA,IAAa,kBAAA,CAAmB,EAAE,CAAA,EAAG;AAC9C,MAAA,MAAM,IAAI,UAAU,iDAAiD,CAAA;AAAA,IACvE;AACA,IAAA,MAAM,KAAA,GAAQ,aAAa,EAAE,CAAA;AAC7B,IAAA,iBAAA,CAAkB,QAAQ,KAAA,CAAM,KAAA;AAChC,IAAA,iBAAA,CAAkB,MAAM,KAAA,CAAM,GAAA;AAAA,EAChC;AACA,EAAA,OAAO,MAAM,MAAA,CAAO,IAAA,CAAK,eAAA,CAAgB,MAAM,GAAG,iBAAiB,CAAA;AACrE;AAEA,eAAsB,IAAA,CAAK,MAAA,EAAgB,OAAA,GAAuB,EAAC,EAAqB;AACtF,EAAA,OAAO,MAAM,KAAA,CAAM,MAAA,EAAQ,OAAO,CAAA;AACpC;AAEA,eAAsB,QACpB,MAAA,EACA,KAAA,EACA,GAAA,EACA,OAAA,GAAyB,EAAC,EACR;AAClB,EAAA,IAAI,UAAU,MAAA,IAAa,KAAA,KAAU,QAAQ,GAAA,KAAQ,MAAA,IAAa,QAAQ,IAAA,EAAM;AAC9E,IAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,EACrE;AACA,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,MAAA,CAAO,eAAA,CAAgB,MAAM,CAAA,EAAG,EAAE,GAAG,OAAA,EAAS,GAAA,EAAK,KAAA,EAAO,CAAA;AAChF;AAEA,eAAsB,MAAA,CAAO,MAAA,EAAgB,OAAA,GAAyB,EAAC,EAAqB;AAC1F,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,MAAA,CAAO,eAAA,CAAgB,MAAM,GAAG,OAAO,CAAA;AAC7D;AAEA,eAAsB,UAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAyB,EAAC,EACH;AACvB,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,OAAO,SAAA,CAAU,aAAA,CAAc,OAAO,CAAA,EAAG,aAAA,CAAc,MAAM,CAAA,EAAG,OAAO,CAAA;AACtF;AAEA,eAAsB,SAAA,CACpB,OAAA,EACA,MAAA,EACA,OAAA,GAAyB,EAAC,EACH;AACvB,EAAA,OAAO,MAAM,UAAA,CAAW,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAA;AAClD;AAEA,eAAe,QAAA,CAAS,MAAA,EAAgB,OAAA,GAAsB,EAAC,EAAqB;AAClF,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,GAAA,CAAI,CAAC,eAAA,CAAgB,MAAM,CAAC,CAAA,EAAG,CAAC,GAAG,eAAe,CAAA,EAAG,OAAO,CAAA;AAClF;AAEA,eAAe,WAAA,CAAY,MAAA,EAAgB,OAAA,GAAsB,EAAC,EAAqB;AACrF,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,GAAA;AAAA,IAClB,CAAC,eAAA,CAAgB,MAAM,CAAC,CAAA;AAAA,IACxB,CAAC,GAAG,kBAAkB,CAAA;AAAA,IACtB,yBAAyB,OAAO;AAAA,GAClC;AACF;AAEA,eAAe,QAAA,CAAS,MAAA,EAAgB,OAAA,GAAsB,EAAC,EAAqB;AAClF,EAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,EAAoB;AACzC,EAAA,OAAO,MAAM,MAAA,CAAO,GAAA;AAAA,IAClB,CAAC,eAAA,CAAgB,MAAM,CAAC,CAAA;AAAA,IACxB,CAAC,GAAG,eAAe,CAAA;AAAA,IACnB,yBAAyB,OAAO;AAAA,GAClC;AACF;AAEO,IAAM,GAAA,GAAM,OAAO,MAAA,CAAO;AAAA,EAC/B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,GAAA,GAAM,OAAO,MAAA,CAAO;AAAA,EAC/B,0BAA0B,MAAA,CAAO,2BAAA;AAAA,EAEjC,0BAA0B,MAAA,CAAO,2BAAA;AAAA,EACjC,uBAAuB,MAAA,CAAO,wBAAA;AAAA,EAE9B,oBAAoB,MAAA,CAAO,qBAAA;AAAA,EAC3B,aAAa,MAAA,CAAO,cAAA;AAAA,EAEpB,sBAAsB,MAAA,CAAO,uBAAA;AAAA,EAC7B,mBAAmB,MAAA,CAAO,oBAAA;AAAA,EAC1B,2BAA2B,MAAA,CAAO,4BAAA;AAAA,EAClC,GAAA,EAAK,OAAO,MAAA,CAAO;AAAA,IACjB,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc,WAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,kBAAkB,MAAA,CAAO,mBAAA;AAAA,EAEzB,uBAAuB,MAAA,CAAO,wBAAA;AAAA,EAC9B,eAAe,MAAA,CAAO,gBAAA;AAAA,EACtB,6BAA6B,MAAA,CAAO,8BAAA;AAAA,EACpC,qBAAqB,MAAA,CAAO,sBAAA;AAAA,EAC5B,sBAAsB,MAAA,CAAO,uBAAA;AAAA,EAE7B,gBAAgB,MAAA,CAAO,iBAAA;AAAA,EACvB,yBAAyB,MAAA,CAAO,0BAAA;AAAA,EAChC,qBAAqB,MAAA,CAAO,sBAAA;AAAA,EAE5B,sBAAsB,MAAA,CAAO,uBAAA;AAAA,EAC7B,SAAS,MAAA,CAAO,UAAA;AAAA,EAChB,2BAA2B,MAAA,CAAO,4BAAA;AAAA,EAElC,YAAY,MAAA,CAAO,aAAA;AAAA,EACnB,YAAY,MAAA,CAAO,aAAA;AAAA,EAEnB,aAAa,MAAA,CAAO,cAAA;AAAA,EACpB,YAAY,MAAA,CAAO,aAAA;AAAA,EACnB,qBAAqB,MAAA,CAAO,sBAAA;AAAA,EAC5B,kBAAkB,MAAA,CAAO,mBAAA;AAAA,EACzB,eAAe,MAAA,CAAO,gBAAA;AAAA,EACtB,cAAc,MAAA,CAAO,eAAA;AAAA,EACrB,cAAc,MAAA,CAAO,eAAA;AAAA,EAErB,eAAe,MAAA,CAAO,gBAAA;AAAA,EAEtB,cAAc,MAAA,CAAO,eAAA;AAAA,EACrB,oBAAoB,MAAA,CAAO,qBAAA;AAAA,EAE3B,uBAAuB,MAAA,CAAO,wBAAA;AAAA,EAC9B,kBAAkB,MAAA,CAAO,mBAAA;AAAA,EACzB,gBAAgB,MAAA,CAAO,iBAAA;AAAA,EAEvB,WAAW,MAAA,CAAO,YAAA;AAAA,EAClB,aAAa,MAAA,CAAO,cAAA;AAAA,EAEpB,aAAa,MAAA,CAAO,cAAA;AAAA,EACpB,mBAAmB,MAAA,CAAO,oBAAA;AAAA,EAC1B,uBAAuB,MAAA,CAAO,wBAAA;AAAA,EAC9B,kBAAkB,MAAA,CAAO,mBAAA;AAAA,EACzB,cAAc,MAAA,CAAO,eAAA;AAAA,EACrB,mBAAmB,MAAA,CAAO,oBAAA;AAAA,EAC1B,qBAAqB,MAAA,CAAO,sBAAA;AAAA,EAC5B,uBAAuB,MAAA,CAAO;AAChC,CAAC;AAEM,SAAS,OAAA,GAAkB;AAChC,EAAA,OAAO,WAAA,CAAY,OAAA;AACrB;AAEO,IAAM,EAAE,aAAY,GAAI;AACxB,IAAM,EAAE,aAAY,GAAI","file":"index.js","sourcesContent":["import type { Data, DataType } from 'apache-arrow';\n\nimport {\n Binary,\n Bool,\n DateDay,\n DateMillisecond,\n Field,\n Float32,\n Float64,\n Int8,\n Int16,\n Int32,\n Int64,\n LargeBinary,\n LargeUtf8,\n Null,\n RecordBatch,\n Schema,\n Struct,\n Table,\n TimeMillisecond,\n TimeMicrosecond,\n TimeNanosecond,\n TimeSecond,\n TimestampMillisecond,\n TimestampMicrosecond,\n TimestampNanosecond,\n TimestampSecond,\n Uint8,\n Uint16,\n Uint32,\n Uint64,\n Utf8,\n makeData,\n} from 'apache-arrow';\n\nimport type { NativeArrowColumn, NativeArrowZeroCopyBatch } from './napi';\n\nconst NATIVE_ARROW_BUFFERS = Symbol('@xbbg/nativeArrowBuffers');\n\nfunction unsupportedNativeArrowType(type: never): never {\n throw new Error(`Unsupported native Arrow column type: ${String(type)}`);\n}\n\ninterface TypedArrayConstructor<T extends ArrayBufferView> {\n readonly BYTES_PER_ELEMENT: number;\n new (buffer: ArrayBufferLike, byteOffset: number, length: number): T;\n}\n\nexport function tableFromNativeArrowBatch(batch: NativeArrowZeroCopyBatch): Table {\n const retainedBuffers: Buffer[] = [];\n const fields = batch.columns.map((column) => {\n const type = arrowType(column);\n return new Field(column.name, type, column.nullable);\n });\n const children = batch.columns.map((column) => dataFromColumn(column, retainedBuffers));\n\n const schema = new Schema(fields);\n const structData = makeData({\n children,\n length: batch.numRows,\n type: new Struct(fields),\n });\n const table = new Table(schema, new RecordBatch(schema, structData));\n\n // Keep the original Node Buffer views alive. Numeric Arrow vectors retain typed\n // Views over the same backing ArrayBuffers, but keeping these Buffer objects on\n // The Table makes the NAPI external-buffer lifetime explicit.\n Object.defineProperty(table, NATIVE_ARROW_BUFFERS, {\n enumerable: false,\n value: retainedBuffers,\n });\n\n return table;\n}\n\nfunction dataFromColumn(column: NativeArrowColumn, retainedBuffers: Buffer[]): Data {\n const nullBitmap = optionalUint8View(column.nullBitmap, retainedBuffers);\n switch (column.type) {\n case 'bool': {\n return makeData({\n type: new Bool(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n data: requiredUint8View(column, retainedBuffers, Math.ceil(column.length / 8)),\n });\n }\n case 'binary': {\n return makeData({\n type: new Binary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'date32': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateDay(), Int32Array);\n }\n case 'date64': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateMillisecond(), BigInt64Array);\n }\n case 'float32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float32(), Float32Array);\n }\n case 'float64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float64(), Float64Array);\n }\n case 'int8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int8(), Int8Array);\n }\n case 'int16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int16(), Int16Array);\n }\n case 'int32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int32(), Int32Array);\n }\n case 'int64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int64(), BigInt64Array);\n }\n case 'large_binary': {\n return makeData({\n type: new LargeBinary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'large_utf8': {\n return makeData({\n type: new LargeUtf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'null': {\n return makeData({\n type: new Null(),\n length: column.length,\n });\n }\n case 'time32_ms': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMillisecond(), Int32Array);\n }\n case 'time32_s': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeSecond(), Int32Array);\n }\n case 'time64_us': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMicrosecond(), BigInt64Array);\n }\n case 'time64_ns': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeNanosecond(), BigInt64Array);\n }\n case 'timestamp_ms': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMillisecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_ns': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampNanosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_s': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampSecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_us': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMicrosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'uint8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint8(), Uint8Array);\n }\n case 'uint16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint16(), Uint16Array);\n }\n case 'uint32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint32(), Uint32Array);\n }\n case 'uint64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint64(), BigUint64Array);\n }\n case 'utf8': {\n return makeData({\n type: new Utf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction arrowType(column: NativeArrowColumn): DataType {\n switch (column.type) {\n case 'bool': {\n return new Bool();\n }\n case 'binary': {\n return new Binary();\n }\n case 'date32': {\n return new DateDay();\n }\n case 'date64': {\n return new DateMillisecond();\n }\n case 'float32': {\n return new Float32();\n }\n case 'float64': {\n return new Float64();\n }\n case 'int8': {\n return new Int8();\n }\n case 'int16': {\n return new Int16();\n }\n case 'int32': {\n return new Int32();\n }\n case 'int64': {\n return new Int64();\n }\n case 'large_binary': {\n return new LargeBinary();\n }\n case 'large_utf8': {\n return new LargeUtf8();\n }\n case 'null': {\n return new Null();\n }\n case 'time32_ms': {\n return new TimeMillisecond();\n }\n case 'time32_s': {\n return new TimeSecond();\n }\n case 'time64_us': {\n return new TimeMicrosecond();\n }\n case 'time64_ns': {\n return new TimeNanosecond();\n }\n case 'timestamp_ms': {\n return new TimestampMillisecond(column.timezone);\n }\n case 'timestamp_ns': {\n return new TimestampNanosecond(column.timezone);\n }\n case 'timestamp_s': {\n return new TimestampSecond(column.timezone);\n }\n case 'timestamp_us': {\n return new TimestampMicrosecond(column.timezone);\n }\n case 'uint8': {\n return new Uint8();\n }\n case 'uint16': {\n return new Uint16();\n }\n case 'uint32': {\n return new Uint32();\n }\n case 'uint64': {\n return new Uint64();\n }\n case 'utf8': {\n return new Utf8();\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction scalarData<T extends DataType & { TArray: ArrayBufferView }>(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n nullBitmap: Uint8Array | undefined,\n type: T,\n ctor: TypedArrayConstructor<T['TArray']>,\n): Data<T> {\n return makeData({\n data: requiredTypedView(column, ctor, retainedBuffers),\n length: column.length,\n nullBitmap,\n nullCount: column.nullCount,\n type,\n } as never) as Data<T>;\n}\n\nfunction requiredTypedView<T extends ArrayBufferView>(\n column: NativeArrowColumn,\n ctor: TypedArrayConstructor<T>,\n retainedBuffers: Buffer[],\n): T {\n const buffer = requireBuffer(column, 'data');\n assertBufferByteLength(column, 'data', buffer, column.length, ctor.BYTES_PER_ELEMENT);\n retainedBuffers.push(buffer);\n return new ctor(buffer.buffer, buffer.byteOffset, column.length);\n}\n\nfunction requiredOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): Int32Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n Int32Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new Int32Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredLargeOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): BigInt64Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n BigInt64Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new BigInt64Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredUint8View(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n byteLength?: number,\n): Uint8Array {\n const buffer = requireBuffer(column, 'data');\n if (byteLength !== undefined) {\n assertBufferByteLength(column, 'data', buffer, byteLength, 1);\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, byteLength ?? buffer.byteLength);\n}\n\nfunction optionalUint8View(\n buffer: Buffer | undefined,\n retainedBuffers: Buffer[],\n): Uint8Array | undefined {\n if (buffer === undefined) {\n return undefined;\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n}\n\nfunction assertBufferByteLength(\n column: NativeArrowColumn,\n property: 'data' | 'offsets',\n buffer: Buffer,\n elements: number,\n bytesPerElement: number,\n): void {\n if (!Number.isSafeInteger(elements) || elements < 0) {\n throw new Error(\n `native Arrow column ${column.name} has invalid ${property} element count: ${elements}`,\n );\n }\n const requiredBytes = elements * bytesPerElement;\n if (!Number.isSafeInteger(requiredBytes) || buffer.byteLength < requiredBytes) {\n throw new Error(\n `native Arrow column ${column.name} ${property} buffer is too small: ` +\n `expected at least ${requiredBytes} bytes, got ${buffer.byteLength}`,\n );\n }\n}\n\nfunction requireBuffer(column: NativeArrowColumn, property: 'data' | 'offsets'): Buffer {\n const buffer = column[property];\n if (buffer === undefined) {\n throw new Error(`native Arrow column ${column.name} is missing ${property} buffer`);\n }\n return buffer;\n}\n","import type { BackendKind, FormatKind } from './types';\n\nexport const Backend = Object.freeze({\n ARROW: 'arrow',\n JSON: 'json',\n POLARS: 'polars',\n}) satisfies Readonly<Record<string, BackendKind>>;\n\nexport const Format = Object.freeze({\n LONG: 'long',\n LONG_TYPED: 'long_typed',\n LONG_WITH_METADATA: 'long_with_metadata',\n SEMI_LONG: 'semi_long',\n}) satisfies Readonly<Record<string, FormatKind>>;\n","/**\n * Date / datetime normalization helpers (issue #317).\n *\n * These helpers convert user-supplied date-like values into the wire formats\n * the Bloomberg engine expects:\n *\n * - {@link formatDate} -> Bloomberg-native ``YYYYMMDD`` (used by historical\n * requests, override fields, recipe inputs).\n * - {@link formatDateTime} -> RFC 3339 / ISO 8601 with optional offset (used\n * by intraday requests).\n *\n * They live in a dedicated module so the public surface in ``index.ts`` can\n * be tested without dragging in the native NAPI addon.\n */\n\nimport type { DateLike, DateTimeLike } from './types';\n\nconst ISO_DATE_RE = /^\\d{4}[-/]\\d{2}[-/]\\d{2}$/u;\nconst BBG_DATE_RE = /^\\d{8}$/u;\n// Whole-string ambiguous (e.g. \"01/17/2023\") OR ambiguous prefix in a\n// Datetime string (e.g. \"01/17/2023 10:30\" / \"01/17/2023T10:30\"). Year-leading\n// ISO is not flagged because ISO_DATE_RE matches it explicitly.\nconst AMBIGUOUS_DATE_RE = /^\\d{1,2}[-/]\\d{1,2}[-/]\\d{2,4}([T \\D]|$)/u;\n\nexport function hasToJSDate(value: unknown): value is { toJSDate: () => Date } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toJSDate' in value &&\n typeof (value as { toJSDate?: unknown }).toJSDate === 'function'\n );\n}\n\nfunction rejectAmbiguousString(value: string): void {\n if (AMBIGUOUS_DATE_RE.test(value) && !ISO_DATE_RE.test(value.trim())) {\n throw new TypeError(\n `Ambiguous date format ${JSON.stringify(value)}: month/day order cannot be inferred. ` +\n `Use ISO 8601 (YYYY-MM-DD), Bloomberg-native (YYYYMMDD), or pass a Date / Luxon DateTime.`,\n );\n }\n}\n\nfunction dateLikeToJSDate(value: DateLike): Date {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'number') {\n return new Date(value);\n }\n if (hasToJSDate(value)) {\n return value.toJSDate();\n }\n if (typeof value === 'string') {\n const text = value.trim();\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n const year = Number(text.slice(0, 4));\n const month = Number(text.slice(4, 6)) - 1;\n const day = Number(text.slice(6, 8));\n const dt = new Date(Date.UTC(year, month, day));\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(`Invalid Bloomberg-native date ${JSON.stringify(value)}`);\n }\n return dt;\n }\n // Replace the first separating space with 'T' so \"2023-01-17 10:30\" parses.\n const normalized = text.replace(' ', 'T');\n const dt = new Date(normalized);\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(\n `Cannot parse ${JSON.stringify(value)} as a date. Expected ISO 8601, ` +\n `Bloomberg-native YYYYMMDD, Date, epoch ms, or Luxon DateTime.`,\n );\n }\n return dt;\n }\n throw new TypeError(`Cannot convert ${typeof value} value ${String(value)} to a Date.`);\n}\n\n/**\n * Format a date-like value to ``YYYYMMDD`` (Bloomberg-native).\n *\n * Accepts ``Date``, ISO 8601 / Bloomberg-native strings, epoch ms, and any\n * duck-typed Luxon-style ``{ toJSDate(): Date }``. Strict on ambiguous formats.\n */\nexport function formatDate(value: DateLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n if (BBG_DATE_RE.test(text)) {\n return text;\n }\n rejectAmbiguousString(text);\n if (ISO_DATE_RE.test(text)) {\n return text.replaceAll(/[-/]/gu, '');\n }\n }\n const date = dateLikeToJSDate(value);\n const y = String(date.getUTCFullYear()).padStart(4, '0');\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}${m}${d}`;\n}\n\n/**\n * Format a datetime-like value to RFC 3339 (ISO 8601 with optional offset).\n *\n * Naive ISO strings without a tz suffix are returned as-is so the Rust engine\n * can apply the caller's ``request_tz``. Anything else (Date, epoch ms, Luxon\n * DateTime, or ISO with explicit tz) is converted to a tz-bearing ISO string.\n */\nexport function formatDateTime(value: DateTimeLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n return `${text.slice(0, 4)}-${text.slice(4, 6)}-${text.slice(6, 8)}T00:00:00`;\n }\n // Preserve user-supplied naive strings; the Rust engine interprets them\n // According to ``request_tz``.\n return text.replace(' ', 'T');\n }\n const date = dateLikeToJSDate(value);\n return date.toISOString();\n}\n","export interface BlpRequestErrorOptions {\n readonly service?: string;\n readonly operation?: string;\n readonly request_id?: string;\n readonly code?: string | number;\n}\n\nexport interface BlpValidationErrorOptions {\n readonly element?: string;\n readonly suggestion?: string;\n}\n\nexport class BlpError extends Error {\n public constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\nexport class BlpSessionError extends BlpError {}\n\nexport class BlpRequestError extends BlpError {\n public readonly service?: string;\n public readonly operation?: string;\n public readonly request_id?: string;\n public readonly code?: string | number;\n\n public constructor(message: string, options: BlpRequestErrorOptions = {}) {\n super(message);\n this.service = options.service;\n this.operation = options.operation;\n this.request_id = options.request_id;\n this.code = options.code;\n }\n}\n\nexport class BlpValidationError extends BlpError {\n public readonly element?: string;\n public readonly suggestion?: string;\n\n public constructor(message: string, options: BlpValidationErrorOptions = {}) {\n super(message);\n this.element = options.element;\n this.suggestion = options.suggestion;\n }\n}\n\nexport class BlpTimeoutError extends BlpError {}\n\nexport class BlpInternalError extends BlpError {}\n\nexport function wrapError(napiError: unknown): BlpError {\n if (napiError instanceof BlpError) {\n return napiError;\n }\n const msg =\n napiError instanceof Error ? napiError.message : typeof napiError === 'string' ? napiError : '';\n\n // Session errors\n if (\n msg.includes('Session start failed') ||\n msg.includes('session start failed') ||\n msg.includes('Failed to start session') ||\n msg.includes('Failed to open service') ||\n msg.includes('failed to spawn worker') ||\n msg.includes('connect event failed')\n ) {\n return new BlpSessionError(msg);\n }\n\n // Request errors\n if (msg.includes('Request failed') || msg.includes('Subscription failed')) {\n const options: BlpRequestErrorOptions = parseRequestOptions(msg);\n return new BlpRequestError(msg, options);\n }\n\n // Validation errors\n if (\n msg.includes('Invalid argument') ||\n msg.includes('Configuration error') ||\n msg.includes('Operation not found') ||\n msg.includes('Schema element not found') ||\n msg.includes('Schema type mismatch') ||\n msg.includes('Unsupported schema') ||\n msg.includes('invalid extractor') ||\n msg.includes('(did you mean')\n ) {\n const options: BlpValidationErrorOptions = parseValidationOptions(msg);\n return new BlpValidationError(msg, options);\n }\n\n // Timeout errors\n if (msg.includes('Request timed out')) {\n return new BlpTimeoutError(msg);\n }\n\n // Internal errors\n if (\n msg.includes('Internal error') ||\n msg.includes('Channel closed') ||\n msg.includes('Stream buffer full') ||\n msg.includes('Request was cancelled')\n ) {\n return new BlpInternalError(msg);\n }\n\n return new BlpError(msg);\n}\n\nfunction parseRequestOptions(msg: string): BlpRequestErrorOptions {\n const options: {\n service?: string;\n operation?: string;\n request_id?: string;\n code?: string | number;\n } = {};\n const serviceOpMatch = /on ([^:]+)::([^ (]+)/u.exec(msg);\n if (serviceOpMatch !== null) {\n options.service = serviceOpMatch[1];\n options.operation = serviceOpMatch[2];\n }\n const requestIdMatch = /\\[request_id=([^\\]]+)\\]/u.exec(msg);\n if (requestIdMatch !== null) {\n options.request_id = requestIdMatch[1];\n }\n return options;\n}\n\nfunction parseValidationOptions(msg: string): BlpValidationErrorOptions {\n const options: { element?: string; suggestion?: string } = {};\n const suggestionMatch = /\\(did you mean '([^']+)'\\?\\)/u.exec(msg);\n if (suggestionMatch !== null) {\n options.suggestion = suggestionMatch[1];\n }\n return options;\n}\n","export const nativeBinaryName = 'napi_xbbg.node';\n\nexport const nativePackageFiles = Object.freeze([\n 'index.js',\n 'index.d.ts',\n 'README.md',\n 'LICENSE',\n 'package.json',\n nativeBinaryName,\n] as const);\n\nexport const nativePackageDescriptors = Object.freeze({\n 'darwin-arm64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'arm64',\n files: nativePackageFiles,\n key: 'darwin-arm64',\n os: 'darwin',\n packageDir: 'packages/xbbg-core-darwin-arm64',\n packageName: '@xbbg/core-darwin-arm64',\n }),\n 'linux-x64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'x64',\n files: nativePackageFiles,\n key: 'linux-x64',\n os: 'linux',\n packageDir: 'packages/xbbg-core-linux-x64',\n packageName: '@xbbg/core-linux-x64',\n }),\n 'win32-x64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'x64',\n files: nativePackageFiles,\n key: 'win32-x64',\n os: 'win32',\n packageDir: 'packages/xbbg-core-win32-x64',\n packageName: '@xbbg/core-win32-x64',\n }),\n} as const);\n\nexport type PlatformKey = keyof typeof nativePackageDescriptors;\nexport type NativePackageDescriptor = (typeof nativePackageDescriptors)[PlatformKey];\nexport type NativePackageName = NativePackageDescriptor['packageName'];\n\nexport const platformPackages = Object.freeze({\n 'darwin-arm64': nativePackageDescriptors['darwin-arm64'].packageName,\n 'linux-x64': nativePackageDescriptors['linux-x64'].packageName,\n 'win32-x64': nativePackageDescriptors['win32-x64'].packageName,\n}) satisfies Readonly<{ [K in PlatformKey]: (typeof nativePackageDescriptors)[K]['packageName'] }>;\n\nexport function nativePackageForKey(key: string): NativePackageDescriptor | null {\n return (\n (nativePackageDescriptors as Readonly<Record<string, NativePackageDescriptor | undefined>>)[\n key\n ] ?? null\n );\n}\n\nexport function platformKey(\n platform: NodeJS.Platform = process.platform,\n arch: string = process.arch,\n): string {\n return `${platform}-${arch}`;\n}\n","import fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { nativePackageForKey, platformKey } from './platform-map';\nimport type { NativePackageDescriptor } from './platform-map';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface NativePackageResolution {\n readonly binaryPath: string;\n}\n\nexport interface NativeAddonResolution {\n readonly key: string;\n readonly packageName: string | null;\n readonly binaryPath: string | null;\n}\n\ninterface NativeResolverBaseOptions {\n readonly repoRoot: string;\n readonly requirePackage: (id: string) => unknown;\n readonly exists: (target: string) => boolean;\n}\n\ninterface SupportedNativeResolverOptions extends NativeResolverBaseOptions {\n readonly nativePackage: NativePackageDescriptor;\n}\n\ninterface UnsupportedNativeResolverOptions extends NativeResolverBaseOptions {\n readonly key: string;\n readonly nativePackage: null;\n}\n\nexport type NativeResolverOptions =\n | SupportedNativeResolverOptions\n | UnsupportedNativeResolverOptions;\n\nfunction exists(target: string): boolean {\n try {\n fs.accessSync(target);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isResolutionObject(value: unknown): value is NativePackageResolution {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction validateNativePackage(packageName: string, resolved: unknown): NativePackageResolution {\n if (!isResolutionObject(resolved)) {\n throw new Error(`Invalid native package ${packageName}: expected an object with binaryPath`);\n }\n if (!('binaryPath' in resolved)) {\n throw new Error(`Invalid native package ${packageName}: missing binaryPath`);\n }\n if (typeof resolved.binaryPath !== 'string') {\n throw new TypeError(`Invalid native package ${packageName}: binaryPath must be a string`);\n }\n return resolved;\n}\n\nfunction localPackageIndex(repoRoot: string, packageDir: string): string {\n return path.join(repoRoot, packageDir, 'index.js');\n}\n\nfunction isOptionalPackageMissing(err: unknown, packageName: string): boolean {\n if (!(err instanceof Error)) {\n return false;\n }\n const code = 'code' in err ? (err as { readonly code?: unknown }).code : undefined;\n if (code !== 'MODULE_NOT_FOUND') {\n return false;\n }\n return (\n err.message.includes(`Cannot find module '${packageName}'`) ||\n err.message.includes(`Cannot find module \"${packageName}\"`) ||\n err.message.includes(`Cannot find package '${packageName}'`) ||\n err.message.includes(`Cannot find package \"${packageName}\"`)\n );\n}\n\nfunction resolveInstalledPackage(\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n try {\n const resolved = validateNativePackage(packageName, requirePackage(packageName));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n } catch (error) {\n if (isOptionalPackageMissing(error, packageName)) {\n return null;\n }\n throw error;\n }\n}\n\nfunction resolveLocalPackage(\n repoRoot: string,\n nativePackage: NativePackageDescriptor,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n const localIndex = localPackageIndex(repoRoot, nativePackage.packageDir);\n if (!existsFile(localIndex)) {\n return null;\n }\n\n const resolved = validateNativePackage(nativePackage.packageName, requirePackage(localIndex));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${nativePackage.packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n}\n\nexport function resolveNativeAddonCore(options: NativeResolverOptions): NativeAddonResolution {\n const { nativePackage, repoRoot, requirePackage, exists: existsFile } = options;\n if (nativePackage === null) {\n return { binaryPath: null, key: options.key, packageName: null };\n }\n\n const { key, packageName } = nativePackage;\n const installed = resolveInstalledPackage(packageName, requirePackage, existsFile);\n if (installed !== null) {\n return { binaryPath: installed.binaryPath, key, packageName };\n }\n\n const local = resolveLocalPackage(repoRoot, nativePackage, requirePackage, existsFile);\n if (local !== null) {\n return { binaryPath: local.binaryPath, key, packageName };\n }\n\n return { binaryPath: null, key, packageName };\n}\n\nexport function resolveNativeAddon(repoRoot: string): NativeAddonResolution {\n const key = platformKey();\n const nativePackage = nativePackageForKey(key);\n const requirePackage = (id: string): unknown => nodeRequire(id) as unknown;\n if (nativePackage === null) {\n return resolveNativeAddonCore({ exists, key, nativePackage, repoRoot, requirePackage });\n }\n return resolveNativeAddonCore({ exists, nativePackage, repoRoot, requirePackage });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nconst BLPAPI_RUNTIME_NAMES = Object.freeze([\n 'blpapi3_64.dll',\n 'blpapi3_32.dll',\n 'libblpapi3.dylib',\n 'libblpapi3_64.so',\n 'libblpapi3.so',\n]);\n\nconst WINDOWS_PATH_SEPARATOR = ';';\n\ntype Exists = (target: string) => boolean;\ntype ReadDir = (target: string) => fs.Dirent[];\n\nexport interface RuntimeSearchPathOptions {\n readonly env?: NodeJS.ProcessEnv;\n readonly exists?: Exists;\n readonly platform?: NodeJS.Platform;\n readonly readDir?: ReadDir;\n readonly repoRoot?: string;\n}\n\nconst readDirectory: ReadDir = (target) => fs.readdirSync(target, { withFileTypes: true });\n\nfunction windowsPathKey(value: string): string {\n return path.win32.normalize(value).toLowerCase();\n}\n\nfunction candidateKey(value: string, platform: NodeJS.Platform): string {\n return platform === 'win32' ? windowsPathKey(value) : path.resolve(value);\n}\n\nfunction pushUnique(\n candidates: string[],\n seen: Set<string>,\n candidate: string | undefined,\n platform: NodeJS.Platform,\n): void {\n if (candidate === undefined || candidate.length === 0) {\n return;\n }\n const key = candidateKey(candidate, platform);\n if (seen.has(key)) {\n return;\n }\n seen.add(key);\n candidates.push(candidate);\n}\n\nfunction windowsDrive(value: string | undefined): string {\n if (value !== undefined && /^[A-Za-z]:/u.test(value)) {\n return value.slice(0, 2);\n }\n return 'C:';\n}\n\nexport function collectWindowsDapiRootCandidates(env: NodeJS.ProcessEnv = process.env): string[] {\n const candidates: string[] = [];\n const seen = new Set<string>();\n const add = (candidate: string | undefined): void => {\n pushUnique(candidates, seen, candidate, 'win32');\n };\n\n const systemDrive = windowsDrive(env.SystemDrive);\n const systemDriveRoot = `${systemDrive}\\\\`;\n add(path.win32.join(systemDriveRoot, 'blp', 'DAPI'));\n if (systemDrive.toLowerCase() !== 'c:') {\n add(path.win32.join('C:\\\\', 'blp', 'DAPI'));\n }\n\n const programFilesRoots = [\n env.ProgramFiles,\n path.win32.join(systemDriveRoot, 'Program Files'),\n env['ProgramFiles(x86)'],\n path.win32.join(systemDriveRoot, 'Program Files (x86)'),\n ];\n for (const root of programFilesRoots) {\n add(root === undefined ? undefined : path.win32.join(root, 'Bloomberg', 'Blp', 'DAPI'));\n }\n\n const localAppData =\n env.LOCALAPPDATA ??\n (env.USERPROFILE === undefined\n ? undefined\n : path.win32.join(env.USERPROFILE, 'AppData', 'Local'));\n if (localAppData !== undefined) {\n add(path.win32.join(localAppData, 'Bloomberg', 'DAPI'));\n add(path.win32.join(localAppData, 'Bloomberg', 'Blp', 'DAPI'));\n }\n\n return candidates;\n}\n\nexport function containsBlpapiRuntime(dir: string, exists: Exists = fs.existsSync): boolean {\n if (dir.length === 0) {\n return false;\n }\n return BLPAPI_RUNTIME_NAMES.some((name) => exists(path.join(dir, name)));\n}\n\nfunction parseVersionParts(name: string): number[] | null {\n const parts = name.split('.').map((part) => Number(part));\n return parts.every((part) => Number.isInteger(part) && part >= 0) ? parts : null;\n}\n\nexport function compareSdkRoots(left: string, right: string): number {\n const leftParts = parseVersionParts(path.basename(left));\n const rightParts = parseVersionParts(path.basename(right));\n if (leftParts !== null && rightParts !== null) {\n const length = Math.max(leftParts.length, rightParts.length);\n for (let index = 0; index < length; index += 1) {\n const leftPart = leftParts[index] ?? 0;\n const rightPart = rightParts[index] ?? 0;\n if (leftPart !== rightPart) {\n return rightPart - leftPart;\n }\n }\n }\n if (leftParts !== null) {\n return -1;\n }\n if (rightParts !== null) {\n return 1;\n }\n return right.localeCompare(left);\n}\n\nexport function pushSdkRuntimeCandidates(candidates: string[], sdkRoot: string): void {\n const resolved = path.resolve(sdkRoot);\n candidates.push(\n resolved,\n path.join(resolved, 'bin'),\n path.join(resolved, 'lib'),\n path.join(resolved, 'Lib'),\n path.join(resolved, 'lib', 'win64'),\n path.join(resolved, 'lib', 'win32'),\n );\n}\n\nfunction addSdkRuntimeRoot(add: (candidate: string | undefined) => void, sdkRoot: string): void {\n const sdkCandidates: string[] = [];\n pushSdkRuntimeCandidates(sdkCandidates, sdkRoot);\n for (const candidate of sdkCandidates) {\n add(candidate);\n }\n}\n\nexport function resolveVendorSdkRoot(\n repoRoot: string,\n exists: Exists = fs.existsSync,\n readDir: ReadDir = readDirectory,\n): string | null {\n const vendorDir = path.join(repoRoot, 'vendor', 'blpapi-sdk');\n if (!exists(vendorDir)) {\n return null;\n }\n const candidates = [vendorDir];\n for (const entry of readDir(vendorDir)) {\n if (entry.isDirectory()) {\n candidates.push(path.join(vendorDir, entry.name));\n }\n }\n candidates.sort(compareSdkRoots);\n return (\n candidates.find((candidate) => {\n const dirs = [\n candidate,\n path.join(candidate, 'bin'),\n path.join(candidate, 'lib'),\n path.join(candidate, 'Lib'),\n ];\n return dirs.some((dir) => containsBlpapiRuntime(dir, exists));\n }) ?? null\n );\n}\n\nexport function collectRuntimeSearchCandidates(options: RuntimeSearchPathOptions = {}): string[] {\n const env = options.env ?? process.env;\n const exists = options.exists ?? fs.existsSync;\n const platform = options.platform ?? process.platform;\n const readDir = options.readDir ?? readDirectory;\n const repoRoot = options.repoRoot ?? path.resolve(__dirname, '..', '..');\n const candidates: string[] = [];\n const seen = new Set<string>();\n const add = (candidate: string | undefined): void => {\n pushUnique(candidates, seen, candidate, platform);\n };\n\n const libDir = env.BLPAPI_LIB_DIR;\n if (libDir !== undefined && libDir.length > 0) {\n add(path.resolve(libDir));\n }\n\n const root = env.BLPAPI_ROOT;\n if (root !== undefined && root.length > 0) {\n addSdkRuntimeRoot(add, root);\n }\n\n const devRoot = env.XBBG_DEV_SDK_ROOT;\n if (devRoot !== undefined && devRoot.length > 0) {\n const resolved = path.isAbsolute(devRoot) ? devRoot : path.resolve(repoRoot, devRoot);\n addSdkRuntimeRoot(add, resolved);\n }\n\n const vendorRoot = resolveVendorSdkRoot(repoRoot, exists, readDir);\n if (vendorRoot !== null) {\n addSdkRuntimeRoot(add, vendorRoot);\n }\n\n if (platform === 'win32') {\n for (const dapiRoot of collectWindowsDapiRootCandidates(env)) {\n add(dapiRoot);\n }\n }\n\n return candidates;\n}\n\nfunction prependWindowsPath(env: NodeJS.ProcessEnv, candidate: string): void {\n const key = Object.keys(env).find((envKey) => envKey.toUpperCase() === 'PATH') ?? 'PATH';\n const currentPath = env[key] ?? '';\n const currentParts = currentPath.split(WINDOWS_PATH_SEPARATOR).filter((part) => part.length > 0);\n const candidatePathKey = windowsPathKey(candidate);\n if (currentParts.some((part) => windowsPathKey(part) === candidatePathKey)) {\n return;\n }\n env[key] =\n currentPath.length > 0 ? `${candidate}${WINDOWS_PATH_SEPARATOR}${currentPath}` : candidate;\n}\n\nexport function configureRuntimeSearchPath(options: RuntimeSearchPathOptions = {}): string | null {\n const env = options.env ?? process.env;\n const exists = options.exists ?? fs.existsSync;\n const platform = options.platform ?? process.platform;\n if (platform !== 'win32') {\n return null;\n }\n\n for (const candidate of collectRuntimeSearchCandidates(options)) {\n if (!containsBlpapiRuntime(candidate, exists)) {\n continue;\n }\n prependWindowsPath(env, candidate);\n return candidate;\n }\n\n return null;\n}\n","/* oxlint-disable import/max-dependencies -- public entry point intentionally consolidates native and helper modules. */\nimport type { Table } from 'apache-arrow';\n\nimport { tableFromIPC } from 'apache-arrow';\nimport fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { tableFromNativeArrowBatch } from './arrow-zero-copy';\nimport { Backend, Format } from './backends';\n// Date / datetime helpers (#317): isolated module so they can be tested\n// Without loading the native NAPI addon. Re-exported as public API below.\nimport { formatDate, formatDateTime, hasToJSDate } from './dates';\nimport {\n BlpError,\n BlpInternalError,\n BlpRequestError,\n BlpSessionError,\n BlpTimeoutError,\n BlpValidationError,\n wrapError,\n} from './errors';\nimport type {\n NativeAddon,\n NativeArrowZeroCopyBatch,\n NativeEngine,\n NativeSubscription,\n NativeSubscriptionUpdate,\n} from './napi';\nimport { resolveNativeAddon } from './native/resolve-native';\nimport { configureRuntimeSearchPath } from './runtime-search-path';\nimport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n} from './types';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface PackageJsonShape {\n readonly version: string;\n}\n\ninterface PolarsModule {\n readIPC(buffer: Buffer): unknown;\n}\n\nfunction parsePackageJsonShape(value: unknown): PackageJsonShape {\n if (isPlainObject(value) && typeof value.version === 'string') {\n return { version: value.version };\n }\n throw new TypeError('@xbbg/core package.json is missing a string version field');\n}\n\nfunction isNativeAddon(value: unknown): value is NativeAddon {\n return (\n isPlainObject(value) &&\n typeof value.JsEngine === 'function' &&\n typeof value.getLogLevel === 'function' &&\n typeof value.setLogLevel === 'function'\n );\n}\n\nfunction requireNativeAddon(modulePath: string): NativeAddon {\n const loaded: unknown = nodeRequire(modulePath);\n if (isNativeAddon(loaded)) {\n return loaded;\n }\n throw new TypeError(`Native addon ${modulePath} does not expose the expected @xbbg/core surface`);\n}\n\nfunction isPolarsModule(value: unknown): value is PolarsModule {\n return isPlainObject(value) && typeof value.readIPC === 'function';\n}\n\nfunction requirePolarsModule(): PolarsModule {\n const loaded: unknown = nodeRequire('nodejs-polars');\n if (isPolarsModule(loaded)) {\n return loaded;\n }\n throw new TypeError('nodejs-polars did not expose readIPC(buffer)');\n}\n\nfunction isBdhOptionsInput(value: DateLike | BdhOptions | undefined): value is BdhOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nfunction isBdibOptionsInput(\n value: DateTimeLike | BdibOptions | number | undefined,\n): value is BdibOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nconst packageJson = parsePackageJsonShape(nodeRequire('../package.json'));\n\nconfigureRuntimeSearchPath();\n\nfunction loadNative(): NativeAddon {\n const root = path.resolve(__dirname, '..', '..');\n\n const candidates = [\n path.join(__dirname, 'napi_xbbg.node'),\n path.join(__dirname, '..', 'napi_xbbg.node'),\n path.join(__dirname, 'napi-xbbg.node'),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n return requireNativeAddon(candidate);\n }\n }\n\n const { key, packageName, binaryPath } = resolveNativeAddon(root);\n if (binaryPath !== null) {\n return requireNativeAddon(binaryPath);\n }\n if (packageName === null) {\n throw new Error(\n `No packaged @xbbg/core native addon is available for ${key}. Build it locally with \"npm run build\" from js-xbbg.`,\n );\n }\n\n throw new Error(\n `Unable to load native napi-xbbg module for ${key}. Install ${packageName} via Bun/npm, or build it locally with \"npm run build\" from js-xbbg.`,\n );\n}\n\nconst native = loadNative();\n\n// ── Constants ───────────────────────────────────────────────────────────\nexport { Backend, Format };\n\nexport const CDX_INFO_FIELDS = Object.freeze([\n 'ROLLING_SERIES',\n 'VERSION',\n 'ON_THE_RUN_CURRENT_BD_INDICATOR',\n 'CDS_FIRST_ACCRUAL_START_DATE',\n 'NAME',\n 'NUM_CURRENT_COMPANIES_CCY_TKR',\n 'NUM_ORIG_COMPANIES_CRNCY_TKR',\n 'PX_LAST',\n]);\n\nexport const CDX_PRICING_FIELDS = Object.freeze([\n 'PX_LAST',\n 'PX_BID',\n 'PX_ASK',\n 'UPFRONT_LAST',\n 'UPFRONT_BID',\n 'UPFRONT_ASK',\n 'CDS_FLAT_SPREAD',\n 'UPFRONT_FEE',\n 'PV_CDS_PREMIUM_LEG',\n 'PV_CDS_DEFAULT_LEG',\n]);\n\nexport const CDX_RISK_FIELDS = Object.freeze([\n 'SW_CNV_BPV',\n 'SW_EQV_BPV',\n 'CDS_SPREAD_MID_MODIFIED_DURATION',\n 'CDS_SPREAD_MID_CONVEXITY',\n 'RECOVERY_RATE_SEN',\n 'CDS_RECOVERY_RT',\n]);\n\nconst TA_STUDIES: Readonly<Record<string, string>> = Object.freeze({\n ado: 'adoStudyAttributes',\n adx: 'dmiStudyAttributes',\n al: 'alStudyAttributes',\n atr: 'atrStudyAttributes',\n bb: 'bollStudyAttributes',\n boll: 'bollStudyAttributes',\n bs: 'bsStudyAttributes',\n chko: 'chkoStudyAttributes',\n cmci: 'cmciStudyAttributes',\n dmi: 'dmiStudyAttributes',\n ema: 'emavgStudyAttributes',\n emavg: 'emavgStudyAttributes',\n etd: 'etdStudyAttributes',\n fear_greed: 'fgStudyAttributes',\n fg: 'fgStudyAttributes',\n goc: 'gocStudyAttributes',\n hurst: 'hurstStudyAttributes',\n ichimoku: 'gocStudyAttributes',\n ipmavg: 'ipmavgStudyAttributes',\n keltner: 'kltnStudyAttributes',\n kltn: 'kltnStudyAttributes',\n macd: 'macdStudyAttributes',\n mae: 'maeStudyAttributes',\n mao: 'maoStudyAttributes',\n maxmin: 'maxminStudyAttributes',\n mom: 'momentumStudyAttributes',\n momentum: 'momentumStudyAttributes',\n or: 'orStudyAttributes',\n parabolic: 'ptpsStudyAttributes',\n pcr: 'pcrStudyAttributes',\n pd: 'pdStudyAttributes',\n pivot: 'pivotStudyAttributes',\n ptps: 'ptpsStudyAttributes',\n rex: 'rexStudyAttributes',\n roc: 'rocStudyAttributes',\n rsi: 'rsiStudyAttributes',\n rv: 'rvStudyAttributes',\n sar: 'ptpsStudyAttributes',\n sma: 'smavgStudyAttributes',\n smavg: 'smavgStudyAttributes',\n stoch: 'tasStudyAttributes',\n tas: 'tasStudyAttributes',\n te: 'teStudyAttributes',\n tma: 'tmavgStudyAttributes',\n tmavg: 'tmavgStudyAttributes',\n trender: 'trenderStudyAttributes',\n tvat: 'tvatStudyAttributes',\n vat: 'vatStudyAttributes',\n vma: 'vmavgStudyAttributes',\n vmavg: 'vmavgStudyAttributes',\n williams: 'wlprStudyAttributes',\n wlpr: 'wlprStudyAttributes',\n wma: 'wmavgStudyAttributes',\n wmavg: 'wmavgStudyAttributes',\n});\n\ntype StudyParams = Record<string, PrimitiveValue | undefined>;\n\nconst TA_DEFAULTS: Readonly<Record<string, Readonly<StudyParams>>> = Object.freeze({\n atrStudyAttributes: Object.freeze({\n maType: 'Simple',\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n bollStudyAttributes: Object.freeze({\n period: 20,\n upperBand: 2.0,\n lowerBand: 2.0,\n priceSourceClose: 'PX_LAST',\n }),\n dmiStudyAttributes: Object.freeze({\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n emavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n macdStudyAttributes: Object.freeze({\n maPeriod1: 12,\n maPeriod2: 26,\n sigPeriod: 9,\n priceSourceClose: 'PX_LAST',\n }),\n rsiStudyAttributes: Object.freeze({ period: 14, priceSourceClose: 'PX_LAST' }),\n smavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n tasStudyAttributes: Object.freeze({\n periodK: 14,\n periodD: 3,\n periodDS: 3,\n periodDSS: 3,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n tmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n vmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n wmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n});\n\nconst MKTDATA_SERVICE = '//blp/mktdata';\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction toArrowTableFromNative(batch: NativeArrowZeroCopyBatch): Table {\n return tableFromNativeArrowBatch(batch);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction toRequestString(value: unknown): string {\n return String(value);\n}\n\nfunction mapObjectToPairs(obj: OverridesMap | undefined): StringPair[] | undefined {\n if (obj === undefined) {\n return undefined;\n }\n return Object.entries(obj).map(([key, value]) => ({\n key: toRequestString(key),\n value: toRequestString(value),\n }));\n}\n\ntype BdtickBooleanOption =\n | 'includeConditionCodes'\n | 'includeExchangeCodes'\n | 'includeBrokerCodes'\n | 'includeRpsCodes'\n | 'includeBicMicCodes'\n | 'includeNonPlottableEvents'\n | 'includeBloombergStandardConditionCodes';\n\nconst BDTICK_BOOLEAN_KWARGS: readonly [BdtickBooleanOption, string][] = Object.freeze([\n ['includeConditionCodes', 'includeConditionCodes'],\n ['includeExchangeCodes', 'includeExchangeCodes'],\n ['includeBrokerCodes', 'includeBrokerCodes'],\n ['includeRpsCodes', 'includeRpsCodes'],\n ['includeBicMicCodes', 'includeBicMicCodes'],\n ['includeNonPlottableEvents', 'includeNonPlottableEvents'],\n ['includeBloombergStandardConditionCodes', 'includeBloombergStandardConditionCodes'],\n]);\n\nfunction upsertStringPair(pairs: StringPair[], key: string, value: string): void {\n const existing = pairs.find((pair) => pair.key === key);\n if (existing === undefined) {\n pairs.push({ key, value });\n return;\n }\n existing.value = value;\n}\n\nfunction buildBdtickKwargs(options: BdtickOptions): StringPair[] | undefined {\n const pairs = mapObjectToPairs(options.kwargs) ?? [];\n for (const [optionName, requestName] of BDTICK_BOOLEAN_KWARGS) {\n const typedValue = options[optionName];\n if (typedValue !== undefined) {\n upsertStringPair(pairs, requestName, typedValue ? 'true' : 'false');\n }\n }\n return pairs.length > 0 ? pairs : undefined;\n}\n\nfunction toStringArray(value: string | readonly string[] | null | undefined): string[] {\n if (Array.isArray(value)) {\n return value.map((item) => toRequestString(item));\n }\n if (value === null || value === undefined) {\n return [];\n }\n return [toRequestString(value)];\n}\n\nfunction encodeVolFieldSpec(field: string, spec: VolFieldSpec | undefined): string {\n if (spec === undefined) {\n return field;\n }\n return [\n field,\n spec.metric ?? '',\n spec.tenor ?? '',\n spec.pointType ?? '',\n spec.point === undefined ? '' : String(spec.point),\n ].join('|');\n}\n\nfunction isVolFieldSpecMap(\n fields: VolSurfaceOptions['fields'],\n): fields is Record<string, VolFieldSpec> {\n return fields !== undefined && !Array.isArray(fields);\n}\n\nfunction normalizeVolFieldSpecs(fields: VolSurfaceOptions['fields'] | undefined): string[] | null {\n if (fields === undefined) {\n return null;\n }\n if (!isVolFieldSpecMap(fields)) {\n return fields.map((field) => toRequestString(field));\n }\n return Object.entries(fields).map(([field, spec]) => encodeVolFieldSpec(field, spec));\n}\n\nfunction isVolSurfacePresetArray(\n preset: VolSurfaceOptions['preset'],\n): preset is readonly VolSurfacePreset[] {\n return Array.isArray(preset);\n}\nfunction normalizeVolPresets(preset: VolSurfaceOptions['preset'] | undefined): string[] | null {\n if (preset === undefined || preset === null) {\n return null;\n }\n return isVolSurfacePresetArray(preset) ? [...preset] : [preset];\n}\n\nfunction subscriptionOptionKey(option: string): string {\n return normalizeSubscriptionOption(option).split('=')[0]?.trim().toLowerCase() ?? '';\n}\n\nfunction normalizeSubscriptionOption(option: string): string {\n let clean = option.trim();\n while (clean.startsWith('&')) {\n clean = clean.slice(1).trim();\n }\n return clean;\n}\n\nfunction buildStreamSubscriptionOptions(\n service: string,\n options: StreamOptions,\n): readonly string[] | undefined {\n const rawOptions = options.options;\n const { conflate } = options;\n\n if (rawOptions === undefined && conflate !== true) {\n return undefined;\n }\n\n const subscriptionOptions = (rawOptions ?? [])\n .map((option) => normalizeSubscriptionOption(option))\n .filter((option) => option.length > 0);\n\n if (conflate === true) {\n if (service !== MKTDATA_SERVICE) {\n throw new BlpValidationError(\n 'conflate=true is only supported for //blp/mktdata subscriptions',\n { element: 'conflate' },\n );\n }\n if (subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'interval')) {\n throw new BlpValidationError(\n 'conflate=true cannot be combined with interval options; intervalization overrides conflation',\n { element: 'conflate' },\n );\n }\n if (!subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'conflate')) {\n subscriptionOptions.push('conflate');\n }\n }\n\n return subscriptionOptions.length > 0 || rawOptions !== undefined\n ? subscriptionOptions\n : undefined;\n}\n\nfunction normalizeConfigureArgs(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n if (configOrHost === undefined) {\n return undefined;\n }\n if (typeof configOrHost === 'string' || port !== undefined) {\n const config: EngineConfig = {};\n if (typeof configOrHost === 'string') {\n config.host = configOrHost;\n }\n if (port !== undefined) {\n config.port = port;\n }\n return config;\n }\n if (isPlainObject(configOrHost)) {\n return { ...(configOrHost as EngineConfig) };\n }\n throw new TypeError('configure expects either a config object or host/port arguments');\n}\n\nfunction normalizeRecoveryOptions(options: CdxOptions = {}): BdpOptions {\n const normalized: CdxOptions = { ...options };\n const recoveryRate = normalized.recoveryRate ?? normalized.recovery_rate;\n delete normalized.recoveryRate;\n delete normalized.recovery_rate;\n if (recoveryRate !== undefined) {\n normalized.overrides = {\n ...normalized.overrides,\n CDS_RR: toRequestString(recoveryRate),\n };\n }\n return normalized;\n}\n\nfunction fullDayRange(dt: DateTimeLike): TimeRange {\n const formatted = formatDate(dt);\n if (formatted === undefined) {\n throw new TypeError('dt must be a non-empty date-like value');\n }\n const day = `${formatted.slice(0, 4)}-${formatted.slice(4, 6)}-${formatted.slice(6, 8)}`;\n return {\n end: `${day}T23:59:59`,\n start: `${day}T00:00:00`,\n };\n}\n\nfunction normalizeDate(value: DateLike | undefined): string | undefined {\n return formatDate(value);\n}\n\nfunction getStudyAttrName(study: string): string {\n const normalized = study.toLowerCase().replaceAll(/-/gu, '_').replaceAll(/ /gu, '_');\n const mapped = TA_STUDIES[normalized];\n if (mapped !== undefined) {\n return mapped;\n }\n if (normalized.endsWith('studyattributes')) {\n return normalized;\n }\n return `${normalized}StudyAttributes`;\n}\n\ninterface RawStudy {\n studyType?: string;\n study?: string;\n calcInterval?: string;\n interval?: number | string;\n length?: number;\n period?: number;\n [key: string]: PrimitiveValue | undefined;\n}\n\nfunction buildTaRequest(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n): StringPair[] {\n const rawStudy: RawStudy = typeof study === 'string' ? { studyType: study } : { ...study };\n const studyType =\n rawStudy.studyType ?? rawStudy.study ?? (typeof study === 'string' ? study : '');\n const attrName = getStudyAttrName(toRequestString(studyType));\n\n const kwargs: Record<string, PrimitiveValue> = { ...options.kwargs };\n const startDate = normalizeDate(\n stringOrUndef(kwargs.startDate) ??\n stringOrUndef(kwargs.start_date) ??\n options.startDate ??\n options.start_date,\n );\n const endDate = normalizeDate(\n stringOrUndef(kwargs.endDate) ??\n stringOrUndef(kwargs.end_date) ??\n options.endDate ??\n options.end_date,\n );\n const periodicity = toRequestString(\n stringOrUndef(kwargs.periodicitySelection) ??\n stringOrUndef(kwargs.periodicity) ??\n rawStudy.calcInterval ??\n options.periodicity ??\n 'DAILY',\n ).toUpperCase();\n const interval = kwargs.interval ?? rawStudy.interval ?? options.interval;\n\n delete kwargs.startDate;\n delete kwargs.start_date;\n delete kwargs.endDate;\n delete kwargs.end_date;\n delete kwargs.periodicitySelection;\n delete kwargs.periodicity;\n delete rawStudy.studyType;\n delete rawStudy.study;\n delete rawStudy.calcInterval;\n\n if (rawStudy.length !== undefined && rawStudy.period === undefined) {\n rawStudy.period = rawStudy.length;\n }\n delete rawStudy.length;\n\n const params: StudyParams = {\n ...TA_DEFAULTS[attrName],\n ...options.studyParams,\n ...(rawStudy as StudyParams),\n };\n\n if (params.length !== undefined && params.period === undefined) {\n params.period = params.length;\n }\n delete params.length;\n delete params.calcInterval;\n\n const elements: StringPair[] = [\n { key: 'priceSource.securityName', value: toRequestString(ticker) },\n ];\n\n if (periodicity === 'INTRADAY') {\n const prefix = 'priceSource.dataRange.intraday';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.eventType`, value: 'TRADE' });\n if (interval !== undefined) {\n elements.push({ key: `${prefix}.interval`, value: toRequestString(interval) });\n }\n } else {\n const prefix = 'priceSource.dataRange.historical';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.periodicitySelection`, value: periodicity });\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) {\n continue;\n }\n elements.push({\n key: `studyAttributes.${attrName}.${key}`,\n value: toRequestString(value),\n });\n }\n\n for (const [key, value] of Object.entries(kwargs)) {\n elements.push({ key: toRequestString(key), value: toRequestString(value) });\n }\n\n return elements;\n}\n\nfunction stringOrUndef(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nlet polarsModule: PolarsModule | undefined;\nlet polarsLoadError: Error | undefined;\n\nfunction cachePolarsLoadError(err: unknown): Error {\n const error = new Error(\n 'nodejs-polars is required for Polars backend. Install: npm install nodejs-polars',\n );\n Object.defineProperty(error, 'cause', { configurable: true, value: err });\n polarsLoadError = error;\n return error;\n}\n\nfunction loadPolars(): PolarsModule {\n if (polarsModule !== undefined) {\n return polarsModule;\n }\n if (polarsLoadError !== undefined) {\n throw polarsLoadError;\n }\n try {\n polarsModule = requirePolarsModule();\n return polarsModule;\n } catch (error) {\n throw cachePolarsLoadError(error);\n }\n}\n\nfunction normalizeBackend(backend: BackendKind | undefined): BackendKind {\n const selected: unknown = backend ?? Backend.ARROW;\n if (selected === Backend.ARROW || selected === Backend.JSON || selected === Backend.POLARS) {\n return selected;\n }\n throw new TypeError(\n `Unsupported @xbbg/core backend \"${toRequestString(selected)}\". Expected one of: ${Object.values(\n Backend,\n ).join(', ')}`,\n );\n}\n\nfunction ipcToBackend(buffer: Buffer, backend: BackendKind | undefined): unknown {\n const selected = normalizeBackend(backend);\n if (selected === Backend.JSON) {\n return [...tableFromIPC(buffer)];\n }\n if (selected === Backend.POLARS) {\n return loadPolars().readIPC(buffer);\n }\n return tableFromIPC(buffer);\n}\n\n// ── Configured engine state ─────────────────────────────────────────────\n\nlet configuredEngineConfig: EngineConfig | undefined;\nlet configuredEnginePromise: Promise<Engine> | undefined;\n\nfunction clearConfiguredEngine(): void {\n const existing = configuredEnginePromise;\n configuredEnginePromise = undefined;\n if (existing !== undefined) {\n void (async (): Promise<void> => {\n try {\n const engine = await existing;\n engine.signalShutdown();\n } catch {\n /* Ignore shutdown errors */\n }\n })();\n }\n}\n\nasync function getConfiguredEngine(): Promise<Engine> {\n if (configuredEnginePromise === undefined) {\n const pending = connect(configuredEngineConfig);\n pending.catch(() => {\n if (configuredEnginePromise === pending) {\n configuredEnginePromise = undefined;\n }\n });\n configuredEnginePromise = pending;\n }\n return await configuredEnginePromise;\n}\n\n// ── Subscription class ──────────────────────────────────────────────────\n\nexport type TickValue = null | boolean | number | bigint | string | Date;\n\nexport class FieldHandle {\n public constructor(public readonly name: string) {}\n}\n\nexport class Tick {\n private readonly positions: Map<string, number>;\n\n public constructor(private readonly update: NativeSubscriptionUpdate) {\n this.positions = new Map(update.fields.map((field, index) => [field, index]));\n }\n\n public get topic(): string {\n return this.update.topic;\n }\n\n public get timestampUs(): number {\n return this.update.timestampUs;\n }\n\n public get layoutVersion(): number {\n return this.update.layoutVersion;\n }\n\n public get(field: string | FieldHandle): TickValue {\n const name = typeof field === 'string' ? field : field.name;\n const index = this.positions.get(name);\n if (index === undefined) {\n return null;\n }\n const value = this.update.values[index] ?? null;\n const kind = this.update.valueKinds[index] ?? 'unknown';\n if (value === null) {\n return null;\n }\n if (kind === 'i64' || kind === 'time64_us' || kind === 'timestamp_us') {\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n if (kind === 'date32' && typeof value === 'number') {\n return new Date(Date.UTC(1970, 0, 1 + value));\n }\n return value;\n }\n\n public f64(field: string | FieldHandle): number | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n\n public i64(field: string | FieldHandle): bigint | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n\n public str(field: string | FieldHandle): string | null {\n const value = this.get(field);\n return value === null ? null : String(value);\n }\n\n public toObject(): Record<string, unknown> {\n const out: Record<string, unknown> = { timestampUs: this.timestampUs, topic: this.topic };\n for (const field of this.update.fields) {\n out[field] = this.get(field);\n }\n return out;\n }\n}\n\nexport class ArrowSubscription implements AsyncIterator<Table>, AsyncIterable<Table> {\n public constructor(private readonly inner: NativeSubscription) {}\n\n public async next(): Promise<IteratorResult<Table>> {\n try {\n const batch = await this.inner.nextArrow();\n if (batch === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: toArrowTableFromNative(batch) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Table[]> {\n try {\n const drained = await this.inner.unsubscribeArrow(drain);\n return drained?.map(toArrowTableFromNative) ?? [];\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\nexport class Subscription implements AsyncIterator<Tick>, AsyncIterable<Tick> {\n private readonly inner: NativeSubscription;\n\n public constructor(inner: NativeSubscription) {\n this.inner = inner;\n }\n\n public async next(): Promise<IteratorResult<Tick>> {\n try {\n const update = await this.inner.nextUpdate();\n if (update === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: new Tick(update) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async add(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.add(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async remove(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.remove(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Tick[]> {\n try {\n const drained = await this.inner.unsubscribe(drain);\n if (drained === null) {\n return [];\n }\n return drained.map((update) => new Tick(update));\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public field(name: string): FieldHandle {\n return new FieldHandle(name);\n }\n\n public arrow(): ArrowSubscription {\n return new ArrowSubscription(this.inner);\n }\n\n public get tickers(): string[] {\n return this.inner.tickers;\n }\n\n public get fields(): string[] {\n return this.inner.fields;\n }\n\n public get isActive(): boolean {\n return this.inner.isActive;\n }\n\n public get stats(): SubscriptionStats {\n return this.inner.stats;\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\n// ── Engine class ────────────────────────────────────────────────────────\n\nexport class Engine {\n // Set via constructor or via `withConfig` (which instantiates via Object.create).\n private inner!: NativeEngine;\n\n public constructor(host = 'localhost', port = 8194) {\n try {\n this.inner = new native.JsEngine(host, port);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public static withConfig(config: EngineConfig = {}): Engine {\n const maybeEngine: unknown = Object.create(Engine.prototype);\n if (!(maybeEngine instanceof Engine)) {\n throw new TypeError('Failed to allocate Engine instance');\n }\n const engine = maybeEngine;\n try {\n engine.inner = native.JsEngine.withConfig(config);\n } catch (error) {\n throw wrapError(error);\n }\n return engine;\n }\n\n public async request(params: RequestInput): Promise<unknown> {\n const backend = normalizeBackend(params.backend);\n const { backend: _discarded, ...nativeParams } = params;\n try {\n const buffer = await this.inner.request(nativeParams);\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async requestRaw(params: RequestInput): Promise<Buffer> {\n try {\n return await this.inner.request(params);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async bdp(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'refdata',\n fields,\n format: options.format,\n includeSecurityErrors: Boolean(options.includeSecurityErrors),\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bds(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'bulk',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bdh(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdhOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDate: formatDate(options.end),\n extractor: 'histdata',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'HistoricalDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n startDate: formatDate(options.start),\n validateFields: options.validateFields,\n });\n }\n\n public async bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventType: options.eventType ?? 'TRADE',\n extractor: 'intraday_bar',\n interval: options.interval ?? 1,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'IntradayBarRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventTypes: options.eventTypes ?? ['TRADE'],\n extractor: 'intraday_tick',\n kwargs: buildBdtickKwargs(options),\n operation: 'IntradayTickRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bql(query: string, options: BqlOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'expression', value: toRequestString(query) }],\n extractor: 'bql',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'sendQuery',\n service: '//blp/bqlsvc',\n });\n }\n\n public async beqs(screen: string, options: BeqsOptions = {}): Promise<unknown> {\n const elements: StringPair[] = [\n { key: 'screenName', value: toRequestString(screen) },\n { key: 'screenType', value: toRequestString(options.screenType ?? 'PRIVATE') },\n { key: 'Group', value: toRequestString(options.group ?? 'General') },\n ];\n if (options.asof !== undefined) {\n const asofFormatted = formatDate(options.asof);\n if (asofFormatted !== undefined) {\n elements.push({ key: 'asOfDate', value: asofFormatted });\n }\n }\n const overrides: OverridesMap = { ...options.overrides };\n return await this.request({\n backend: options.backend,\n elements,\n extractor: 'generic',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'BeqsRequest',\n overrides: mapObjectToPairs(overrides),\n service: '//blp/refdata',\n });\n }\n\n public async bsrch(searchSpec: string, options: BsrchOptions = {}): Promise<unknown> {\n const elements: OverridesMap = {\n Domain: toRequestString(searchSpec),\n ...options.overrides,\n ...options.kwargs,\n };\n return await this.request({\n backend: options.backend,\n elements: mapObjectToPairs(elements),\n extractor: 'bsrch',\n format: options.format,\n operation: 'ExcelGetGridRequest',\n service: '//blp/exrsvc',\n });\n }\n\n public async bta(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: buildTaRequest(ticker, study, options),\n extractor: 'generic',\n format: options.format,\n operation: 'studyRequest',\n service: '//blp/tasvc',\n });\n }\n\n public async bflds(options: BfldsOptions = {}): Promise<unknown> {\n if (options.searchSpec !== undefined) {\n return await this.request({\n backend: options.backend,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldSearchRequest',\n searchSpec: toRequestString(options.searchSpec),\n service: '//blp/apiflds',\n });\n }\n const fields = toStringArray(options.fields);\n return await this.request({\n backend: options.backend,\n fieldIds: fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldInfoRequest',\n service: '//blp/apiflds',\n });\n }\n\n public async blkp(query: string, options: BlkpOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(query) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'instrumentListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bport(\n portfolio: string,\n fields: string | readonly string[],\n options: RequestOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n fields: Array.isArray(fields) ? fields : [toRequestString(fields)],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'PortfolioDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n security: toRequestString(portfolio),\n service: '//blp/refdata',\n });\n }\n\n public async bcurves(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'curveListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bgovts(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'govtListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async resolveFieldTypes(\n fields: readonly string[],\n overrides?: OverridesMap,\n defaultType = 'string',\n ): Promise<Record<string, string>> {\n const items = await this.inner.resolveFieldTypes(\n fields,\n mapObjectToPairs(overrides),\n defaultType,\n );\n return Object.fromEntries(items.map((item) => [item.key, item.value]));\n }\n\n public getFieldInfo(field: string): FieldInfo | null {\n return this.inner.getFieldInfo(field);\n }\n\n public clearFieldCache(): void {\n this.inner.clearFieldCache();\n }\n\n public saveFieldCache(): void {\n this.inner.saveFieldCache();\n }\n\n public async validateFields(fields: readonly string[]): Promise<string[]> {\n return await this.inner.validateFields(fields);\n }\n\n public isFieldValidationEnabled(): boolean {\n return this.inner.isFieldValidationEnabled();\n }\n\n public async getSchema(service: string): Promise<unknown> {\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async getOperation(service: string, operation: string): Promise<unknown> {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n\n public async listOperations(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public getCachedSchema(service: string): unknown {\n const json = this.inner.getCachedSchema(service);\n return json === null ? null : (JSON.parse(json) as unknown);\n }\n\n public invalidateSchema(service: string): void {\n this.inner.invalidateSchema(service);\n }\n\n public clearSchemaCache(): void {\n this.inner.clearSchemaCache();\n }\n\n public listCachedSchemas(): string[] {\n return this.inner.listCachedSchemas();\n }\n\n public async getEnumValues(\n service: string,\n operation: string,\n element: string,\n ): Promise<string[] | null> {\n return await this.inner.getEnumValues(service, operation, element);\n }\n\n public async listValidElements(service: string, operation: string): Promise<string[] | null> {\n return await this.inner.listValidElements(service, operation);\n }\n\n public async subscribe(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n try {\n const subscriptionOptions = buildStreamSubscriptionOptions(MKTDATA_SERVICE, options);\n const useOptions =\n subscriptionOptions !== undefined ||\n options.flushThreshold !== undefined ||\n options.overflowPolicy !== undefined ||\n options.streamCapacity !== undefined;\n const stream = useOptions\n ? await this.inner.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n subscriptionOptions,\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n )\n : await this.inner.subscribe(tickers, fields, options.allFields);\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async subscribeWithOptions(\n service: string,\n tickers: readonly string[],\n fields: readonly string[],\n options?: readonly string[],\n flushThreshold?: number,\n overflowPolicy?: string,\n streamCapacity?: number,\n allFields?: boolean,\n ): Promise<Subscription> {\n try {\n const stream = await this.inner.subscribeWithOptions(\n service,\n tickers,\n fields,\n options,\n flushThreshold,\n overflowPolicy,\n streamCapacity,\n allFields,\n );\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public signalShutdown(): void {\n this.inner.signalShutdown();\n }\n\n public isAvailable(): boolean {\n return this.inner.isAvailable();\n }\n\n public async stream(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n buildStreamSubscriptionOptions(MKTDATA_SERVICE, options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async vwap(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktvwap',\n tickers,\n fields,\n buildStreamSubscriptionOptions('//blp/mktvwap', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async mktbar(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktbar',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktbar', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async depth(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktdepthdata',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktdepthdata', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async chains(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktlist',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktlist', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async bops(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public async bschema(service: string, operation?: string): Promise<unknown> {\n if (operation !== undefined) {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async fieldInfo(\n fields: string | readonly string[],\n options: BfldsOptions = {},\n ): Promise<unknown> {\n return await this.bflds({\n fields: toStringArray(fields),\n ...options,\n });\n }\n\n public async fieldSearch(searchSpec: string, options: BfldsOptions = {}): Promise<unknown> {\n return await this.bflds({ searchSpec: toRequestString(searchSpec), ...options });\n }\n\n // ── Recipes ─────────────────────────────────────────────────────────\n\n public async bqr(ticker: string, options: BqrOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeBqr(\n toRequestString(ticker),\n formatDateTime(options.startDatetime),\n formatDateTime(options.endDatetime),\n options.eventTypes ?? null,\n options.includeBrokerCodes !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async yas(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: YasOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeYas(\n toStringArray(tickers),\n toStringArray(fields),\n formatDate(options.settleDt),\n options.yieldType ?? undefined,\n options.spread ?? undefined,\n options.yieldVal ?? undefined,\n options.price ?? undefined,\n options.benchmark ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async preferreds(equityTicker: string, options: PreferredsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipePreferreds(\n toRequestString(equityTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async corporateBonds(\n ticker: string,\n options: CorporateBondsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCorporateBonds(\n toRequestString(ticker),\n options.ccy ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.activeOnly !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futTicker(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFutTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeFutures(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveFutures(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futuresCurve(\n genTicker: string,\n options: FuturesCurveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFuturesCurve(\n toRequestString(genTicker),\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n options.chainField ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.maxContracts ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async cdxTicker(\n genTicker: string,\n dt: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCdxTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeCdx(\n genTicker: string,\n dt: DateLike,\n options: ActiveCdxOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveCdx(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.lookbackDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividend(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividend(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dvdType ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividendYield(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendYieldOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividendYield(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dividendTypes !== undefined ? toStringArray(options.dividendTypes) : null,\n options.windowDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async turnover(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: TurnoverOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeTurnover(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.ccy ?? undefined,\n options.factor ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async etfHoldings(etfTicker: string, options: EtfHoldingsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeEtfHoldings(\n toRequestString(etfTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async volSurface(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: VolSurfaceOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeVolSurface(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n normalizeVolPresets(options.preset ?? 'MONEYNESS_30D'),\n normalizeVolFieldSpecs(options.fields),\n options.asDecimal ?? true,\n options.includeDerived ?? false,\n options.riskFreeRate ?? undefined,\n options.dividendYieldField ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async indexMembers(index: string, options: IndexMembersOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIndexMembers(\n toRequestString(index),\n options.field ?? undefined,\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async resolveIsins(\n isins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeResolveIsins(toStringArray(isins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async issuerIsins(\n bondIsins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIssuerIsins(toStringArray(bondIsins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async currencyConversion(\n ticker: string,\n targetCcy: string,\n startDate: DateLike,\n endDate: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCurrencyConversion(\n toRequestString(ticker),\n toRequestString(targetCcy),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n}\n\n// ── Top-level wrappers ──────────────────────────────────────────────────\n\nexport async function connect(config?: EngineConfig): Promise<Engine> {\n return await Promise.resolve(config === undefined ? new Engine() : Engine.withConfig(config));\n}\n\nexport function configure(config?: EngineConfig): EngineConfig | undefined;\nexport function configure(host?: string, port?: number): EngineConfig | undefined;\nexport function configure(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n configuredEngineConfig = normalizeConfigureArgs(configOrHost, port);\n clearConfiguredEngine();\n return configuredEngineConfig;\n}\n\nexport async function abdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function bdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abdp(tickers, fields, options);\n}\n\nexport async function abdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n start?: DateLike | BdhOptions,\n end?: DateLike,\n options: BdhOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // ``BdhOptions`` is a plain object literal; Dates / Luxon DateTimes are\n // Typed objects so they fall through to the date-typed branch.\n if (isBdhOptionsInput(start)) {\n if (end !== undefined) {\n throw new TypeError('abdh options object cannot be combined with a positional end date');\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), start);\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), {\n ...options,\n end,\n start,\n });\n}\n\nexport async function bdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdhOptions = {},\n): Promise<unknown> {\n return await abdh(tickers, fields, options);\n}\n\nexport async function abds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n overrides?: OverridesMap,\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n const normalizedOptions: BdpOptions = isPlainObject(overrides)\n ? { ...options, overrides: { ...options.overrides, ...overrides } }\n : options;\n return await engine.bds(toStringArray(tickers), toStringArray(fields), normalizedOptions);\n}\n\nexport async function bds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abds(tickers, fields, undefined, options);\n}\n\nexport async function abdib(\n ticker: string,\n dt?: DateTimeLike | BdibOptions,\n interval: number | BdibOptions = 1,\n options: BdibOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // Distinguish a BdibOptions plain object from a Date / Luxon DateTime, both\n // Of which would also pass an ``isPlainObject`` check on bare typeof checks.\n if (isBdibOptionsInput(dt) && interval === 1 && Object.keys(options).length === 0) {\n return await engine.bdib(toRequestString(ticker), dt);\n }\n const normalizedOptions: BdibOptions = isBdibOptionsInput(interval)\n ? { ...interval }\n : { ...options, interval: typeof interval === 'number' ? interval : 1 };\n if (normalizedOptions.start === undefined && normalizedOptions.end === undefined) {\n if (dt === undefined || isBdibOptionsInput(dt)) {\n throw new TypeError('abdib requires dt or explicit start/end options');\n }\n const range = fullDayRange(dt);\n normalizedOptions.start = range.start;\n normalizedOptions.end = range.end;\n }\n return await engine.bdib(toRequestString(ticker), normalizedOptions);\n}\n\nexport async function bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await abdib(ticker, options);\n}\n\nexport async function abdtick(\n ticker: string,\n start: DateTimeLike | null | undefined,\n end: DateTimeLike | null | undefined,\n options: BdtickOptions = {},\n): Promise<unknown> {\n if (start === undefined || start === null || end === undefined || end === null) {\n throw new TypeError('abdtick requires both start and end datetimes');\n }\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), { ...options, end, start });\n}\n\nexport async function bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), options);\n}\n\nexport async function asubscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n const engine = await getConfiguredEngine();\n return await engine.subscribe(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function subscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n return await asubscribe(tickers, fields, options);\n}\n\nasync function acdxInfo(ticker: string, options: BdpOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp([toRequestString(ticker)], [...CDX_INFO_FIELDS], options);\n}\n\nasync function acdxPricing(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_PRICING_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nasync function acdxRisk(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_RISK_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nexport const blp = Object.freeze({\n abdh,\n abdib,\n abdp,\n abds,\n abdtick,\n asubscribe,\n bdh,\n bdib,\n bdp,\n bds,\n bdtick,\n subscribe,\n});\n\nexport const ext = Object.freeze({\n buildCorporateBondsQuery: native.extBuildCorporateBondsQuery,\n\n buildEarningHeaderRename: native.extBuildEarningHeaderRename,\n buildEtfHoldingsQuery: native.extBuildEtfHoldingsQuery,\n\n buildFuturesTicker: native.extBuildFuturesTicker,\n buildFxPair: native.extBuildFxPair,\n\n buildPreferredsQuery: native.extBuildPreferredsQuery,\n buildYasOverrides: native.extBuildYasOverrides,\n calculateLevelPercentages: native.extCalculateLevelPercentages,\n cdx: Object.freeze({\n acdx_info: acdxInfo,\n acdx_pricing: acdxPricing,\n acdx_risk: acdxRisk,\n }),\n cdxGenToSpecific: native.extCdxGenToSpecific,\n\n clearExchangeOverride: native.extClearExchangeOverride,\n contractIndex: native.extContractIndex,\n currenciesNeedingConversion: native.extCurrenciesNeedingConversion,\n defaultBqrDatetimes: native.extDefaultBqrDatetimes,\n defaultTurnoverDates: native.extDefaultTurnoverDates,\n\n deriveSessions: native.extDeriveSessions,\n filterCandidatesByCycle: native.extFilterCandidatesByCycle,\n filterEquityTickers: native.extFilterEquityTickers,\n\n filterValidContracts: native.extFilterValidContracts,\n fmtDate: native.extFmtDate,\n generateFuturesCandidates: native.extGenerateFuturesCandidates,\n\n getDvdCols: native.extGetDvdCols,\n getDvdType: native.extGetDvdType,\n\n getDvdTypes: native.extGetDvdTypes,\n getEtfCols: native.extGetEtfCols,\n getExchangeOverride: native.extGetExchangeOverride,\n getFuturesMonths: native.extGetFuturesMonths,\n getMarketRule: native.extGetMarketRule,\n getMonthCode: native.extGetMonthCode,\n getMonthName: native.extGetMonthName,\n\n inferTimezone: native.extInferTimezone,\n\n isLongFormat: native.extIsLongFormat,\n isSpecificContract: native.extIsSpecificContract,\n\n listExchangeOverrides: native.extListExchangeOverrides,\n normalizeTickers: native.extNormalizeTickers,\n parseCdxTicker: native.extParseCdxTicker,\n\n parseDate: native.extParseDate,\n parseTicker: native.extParseTicker,\n\n pivotToWide: native.extPivotToWide,\n previousCdxSeries: native.extPreviousCdxSeries,\n renameDividendColumns: native.extRenameDividendColumns,\n renameEtfColumns: native.extRenameEtfColumns,\n sameCurrency: native.extSameCurrency,\n sessionTimesToUtc: native.extSessionTimesToUtc,\n setExchangeOverride: native.extSetExchangeOverride,\n validateGenericTicker: native.extValidateGenericTicker,\n});\n\nexport function version(): string {\n return packageJson.version;\n}\n\nexport const { setLogLevel } = native;\nexport const { getLogLevel } = native;\n\n// Issue #317: native datetime/date acceptance helpers, re-exported.\nexport { formatDate, formatDateTime } from './dates';\n\nexport {\n BlpError,\n BlpSessionError,\n BlpRequestError,\n BlpValidationError,\n BlpTimeoutError,\n BlpInternalError,\n wrapError,\n};\n\nexport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/arrow-zero-copy.ts","../src/backends.ts","../src/dates.ts","../src/errors.ts","../src/native/platform-map.ts","../src/native/resolve-native.ts","../src/runtime-search-path.ts","../src/index.ts"],"names":["Field","Schema","makeData","Struct","Table","RecordBatch","Bool","Binary","DateDay","DateMillisecond","Float32","Float64","Int8","Int16","Int32","Int64","LargeBinary","LargeUtf8","Null","TimeMillisecond","TimeSecond","TimeMicrosecond","TimeNanosecond","TimestampMillisecond","TimestampNanosecond","TimestampSecond","TimestampMicrosecond","Uint8","Uint16","Uint32","Uint64","Utf8","dt","createRequire","fs","path","exists","nodeRequire","tableFromIPC","json"],"mappings":"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","file":"index.js","sourcesContent":["import type { Data, DataType } from 'apache-arrow';\n\nimport {\n Binary,\n Bool,\n DateDay,\n DateMillisecond,\n Field,\n Float32,\n Float64,\n Int8,\n Int16,\n Int32,\n Int64,\n LargeBinary,\n LargeUtf8,\n Null,\n RecordBatch,\n Schema,\n Struct,\n Table,\n TimeMillisecond,\n TimeMicrosecond,\n TimeNanosecond,\n TimeSecond,\n TimestampMillisecond,\n TimestampMicrosecond,\n TimestampNanosecond,\n TimestampSecond,\n Uint8,\n Uint16,\n Uint32,\n Uint64,\n Utf8,\n makeData,\n} from 'apache-arrow';\n\nimport type { NativeArrowColumn, NativeArrowZeroCopyBatch } from './napi';\n\nconst NATIVE_ARROW_BUFFERS = Symbol('@xbbg/nativeArrowBuffers');\n\nfunction unsupportedNativeArrowType(type: never): never {\n throw new Error(`Unsupported native Arrow column type: ${String(type)}`);\n}\n\ninterface TypedArrayConstructor<T extends ArrayBufferView> {\n readonly BYTES_PER_ELEMENT: number;\n new (buffer: ArrayBufferLike, byteOffset: number, length: number): T;\n}\n\nexport function tableFromNativeArrowBatch(batch: NativeArrowZeroCopyBatch): Table {\n const retainedBuffers: Buffer[] = [];\n const fields = batch.columns.map((column) => {\n const type = arrowType(column);\n return new Field(column.name, type, column.nullable);\n });\n const children = batch.columns.map((column) => dataFromColumn(column, retainedBuffers));\n\n const schema = new Schema(fields);\n const structData = makeData({\n children,\n length: batch.numRows,\n type: new Struct(fields),\n });\n const table = new Table(schema, new RecordBatch(schema, structData));\n\n // Keep the original Node Buffer views alive. Numeric Arrow vectors retain typed\n // Views over the same backing ArrayBuffers, but keeping these Buffer objects on\n // The Table makes the NAPI external-buffer lifetime explicit.\n Object.defineProperty(table, NATIVE_ARROW_BUFFERS, {\n enumerable: false,\n value: retainedBuffers,\n });\n\n return table;\n}\n\nfunction dataFromColumn(column: NativeArrowColumn, retainedBuffers: Buffer[]): Data {\n const nullBitmap = optionalUint8View(column.nullBitmap, retainedBuffers);\n switch (column.type) {\n case 'bool': {\n return makeData({\n type: new Bool(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n data: requiredUint8View(column, retainedBuffers, Math.ceil(column.length / 8)),\n });\n }\n case 'binary': {\n return makeData({\n type: new Binary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'date32': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateDay(), Int32Array);\n }\n case 'date64': {\n return scalarData(column, retainedBuffers, nullBitmap, new DateMillisecond(), BigInt64Array);\n }\n case 'float32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float32(), Float32Array);\n }\n case 'float64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Float64(), Float64Array);\n }\n case 'int8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int8(), Int8Array);\n }\n case 'int16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int16(), Int16Array);\n }\n case 'int32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int32(), Int32Array);\n }\n case 'int64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Int64(), BigInt64Array);\n }\n case 'large_binary': {\n return makeData({\n type: new LargeBinary(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'large_utf8': {\n return makeData({\n type: new LargeUtf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredLargeOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n case 'null': {\n return makeData({\n type: new Null(),\n length: column.length,\n });\n }\n case 'time32_ms': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMillisecond(), Int32Array);\n }\n case 'time32_s': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeSecond(), Int32Array);\n }\n case 'time64_us': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeMicrosecond(), BigInt64Array);\n }\n case 'time64_ns': {\n return scalarData(column, retainedBuffers, nullBitmap, new TimeNanosecond(), BigInt64Array);\n }\n case 'timestamp_ms': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMillisecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_ns': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampNanosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_s': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampSecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'timestamp_us': {\n return scalarData(\n column,\n retainedBuffers,\n nullBitmap,\n new TimestampMicrosecond(column.timezone),\n BigInt64Array,\n );\n }\n case 'uint8': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint8(), Uint8Array);\n }\n case 'uint16': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint16(), Uint16Array);\n }\n case 'uint32': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint32(), Uint32Array);\n }\n case 'uint64': {\n return scalarData(column, retainedBuffers, nullBitmap, new Uint64(), BigUint64Array);\n }\n case 'utf8': {\n return makeData({\n type: new Utf8(),\n length: column.length,\n nullCount: column.nullCount,\n nullBitmap,\n valueOffsets: requiredOffsets(column, retainedBuffers),\n data: requiredUint8View(column, retainedBuffers),\n });\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction arrowType(column: NativeArrowColumn): DataType {\n switch (column.type) {\n case 'bool': {\n return new Bool();\n }\n case 'binary': {\n return new Binary();\n }\n case 'date32': {\n return new DateDay();\n }\n case 'date64': {\n return new DateMillisecond();\n }\n case 'float32': {\n return new Float32();\n }\n case 'float64': {\n return new Float64();\n }\n case 'int8': {\n return new Int8();\n }\n case 'int16': {\n return new Int16();\n }\n case 'int32': {\n return new Int32();\n }\n case 'int64': {\n return new Int64();\n }\n case 'large_binary': {\n return new LargeBinary();\n }\n case 'large_utf8': {\n return new LargeUtf8();\n }\n case 'null': {\n return new Null();\n }\n case 'time32_ms': {\n return new TimeMillisecond();\n }\n case 'time32_s': {\n return new TimeSecond();\n }\n case 'time64_us': {\n return new TimeMicrosecond();\n }\n case 'time64_ns': {\n return new TimeNanosecond();\n }\n case 'timestamp_ms': {\n return new TimestampMillisecond(column.timezone);\n }\n case 'timestamp_ns': {\n return new TimestampNanosecond(column.timezone);\n }\n case 'timestamp_s': {\n return new TimestampSecond(column.timezone);\n }\n case 'timestamp_us': {\n return new TimestampMicrosecond(column.timezone);\n }\n case 'uint8': {\n return new Uint8();\n }\n case 'uint16': {\n return new Uint16();\n }\n case 'uint32': {\n return new Uint32();\n }\n case 'uint64': {\n return new Uint64();\n }\n case 'utf8': {\n return new Utf8();\n }\n }\n return unsupportedNativeArrowType(column.type);\n}\n\nfunction scalarData<T extends DataType & { TArray: ArrayBufferView }>(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n nullBitmap: Uint8Array | undefined,\n type: T,\n ctor: TypedArrayConstructor<T['TArray']>,\n): Data<T> {\n return makeData({\n data: requiredTypedView(column, ctor, retainedBuffers),\n length: column.length,\n nullBitmap,\n nullCount: column.nullCount,\n type,\n } as never) as Data<T>;\n}\n\nfunction requiredTypedView<T extends ArrayBufferView>(\n column: NativeArrowColumn,\n ctor: TypedArrayConstructor<T>,\n retainedBuffers: Buffer[],\n): T {\n const buffer = requireBuffer(column, 'data');\n assertBufferByteLength(column, 'data', buffer, column.length, ctor.BYTES_PER_ELEMENT);\n retainedBuffers.push(buffer);\n return new ctor(buffer.buffer, buffer.byteOffset, column.length);\n}\n\nfunction requiredOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): Int32Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n Int32Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new Int32Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredLargeOffsets(column: NativeArrowColumn, retainedBuffers: Buffer[]): BigInt64Array {\n const buffer = requireBuffer(column, 'offsets');\n assertBufferByteLength(\n column,\n 'offsets',\n buffer,\n column.length + 1,\n BigInt64Array.BYTES_PER_ELEMENT,\n );\n retainedBuffers.push(buffer);\n return new BigInt64Array(buffer.buffer, buffer.byteOffset, column.length + 1);\n}\n\nfunction requiredUint8View(\n column: NativeArrowColumn,\n retainedBuffers: Buffer[],\n byteLength?: number,\n): Uint8Array {\n const buffer = requireBuffer(column, 'data');\n if (byteLength !== undefined) {\n assertBufferByteLength(column, 'data', buffer, byteLength, 1);\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, byteLength ?? buffer.byteLength);\n}\n\nfunction optionalUint8View(\n buffer: Buffer | undefined,\n retainedBuffers: Buffer[],\n): Uint8Array | undefined {\n if (buffer === undefined) {\n return undefined;\n }\n retainedBuffers.push(buffer);\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n}\n\nfunction assertBufferByteLength(\n column: NativeArrowColumn,\n property: 'data' | 'offsets',\n buffer: Buffer,\n elements: number,\n bytesPerElement: number,\n): void {\n if (!Number.isSafeInteger(elements) || elements < 0) {\n throw new Error(\n `native Arrow column ${column.name} has invalid ${property} element count: ${elements}`,\n );\n }\n const requiredBytes = elements * bytesPerElement;\n if (!Number.isSafeInteger(requiredBytes) || buffer.byteLength < requiredBytes) {\n throw new Error(\n `native Arrow column ${column.name} ${property} buffer is too small: ` +\n `expected at least ${requiredBytes} bytes, got ${buffer.byteLength}`,\n );\n }\n}\n\nfunction requireBuffer(column: NativeArrowColumn, property: 'data' | 'offsets'): Buffer {\n const buffer = column[property];\n if (buffer === undefined) {\n throw new Error(`native Arrow column ${column.name} is missing ${property} buffer`);\n }\n return buffer;\n}\n","import type { BackendKind, FormatKind } from './types';\n\nexport const Backend = Object.freeze({\n ARROW: 'arrow',\n JSON: 'json',\n POLARS: 'polars',\n}) satisfies Readonly<Record<string, BackendKind>>;\n\nexport const Format = Object.freeze({\n LONG: 'long',\n LONG_TYPED: 'long_typed',\n LONG_WITH_METADATA: 'long_with_metadata',\n SEMI_LONG: 'semi_long',\n}) satisfies Readonly<Record<string, FormatKind>>;\n","/**\n * Date / datetime normalization helpers (issue #317).\n *\n * These helpers convert user-supplied date-like values into the wire formats\n * the Bloomberg engine expects:\n *\n * - {@link formatDate} -> Bloomberg-native ``YYYYMMDD`` (used by historical\n * requests, override fields, recipe inputs).\n * - {@link formatDateTime} -> RFC 3339 / ISO 8601 with optional offset (used\n * by intraday requests).\n *\n * They live in a dedicated module so the public surface in ``index.ts`` can\n * be tested without dragging in the native NAPI addon.\n */\n\nimport type { DateLike, DateTimeLike } from './types';\n\nconst ISO_DATE_RE = /^\\d{4}[-/]\\d{2}[-/]\\d{2}$/u;\nconst BBG_DATE_RE = /^\\d{8}$/u;\n// Whole-string ambiguous (e.g. \"01/17/2023\") OR ambiguous prefix in a\n// Datetime string (e.g. \"01/17/2023 10:30\" / \"01/17/2023T10:30\"). Year-leading\n// ISO is not flagged because ISO_DATE_RE matches it explicitly.\nconst AMBIGUOUS_DATE_RE = /^\\d{1,2}[-/]\\d{1,2}[-/]\\d{2,4}([T \\D]|$)/u;\n\nexport function hasToJSDate(value: unknown): value is { toJSDate: () => Date } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'toJSDate' in value &&\n typeof (value as { toJSDate?: unknown }).toJSDate === 'function'\n );\n}\n\nfunction rejectAmbiguousString(value: string): void {\n if (AMBIGUOUS_DATE_RE.test(value) && !ISO_DATE_RE.test(value.trim())) {\n throw new TypeError(\n `Ambiguous date format ${JSON.stringify(value)}: month/day order cannot be inferred. ` +\n `Use ISO 8601 (YYYY-MM-DD), Bloomberg-native (YYYYMMDD), or pass a Date / Luxon DateTime.`,\n );\n }\n}\n\nfunction dateLikeToJSDate(value: DateLike): Date {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'number') {\n return new Date(value);\n }\n if (hasToJSDate(value)) {\n return value.toJSDate();\n }\n if (typeof value === 'string') {\n const text = value.trim();\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n const year = Number(text.slice(0, 4));\n const month = Number(text.slice(4, 6)) - 1;\n const day = Number(text.slice(6, 8));\n const dt = new Date(Date.UTC(year, month, day));\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(`Invalid Bloomberg-native date ${JSON.stringify(value)}`);\n }\n return dt;\n }\n // Replace the first separating space with 'T' so \"2023-01-17 10:30\" parses.\n const normalized = text.replace(' ', 'T');\n const dt = new Date(normalized);\n if (Number.isNaN(dt.getTime())) {\n throw new TypeError(\n `Cannot parse ${JSON.stringify(value)} as a date. Expected ISO 8601, ` +\n `Bloomberg-native YYYYMMDD, Date, epoch ms, or Luxon DateTime.`,\n );\n }\n return dt;\n }\n throw new TypeError(`Cannot convert ${typeof value} value ${String(value)} to a Date.`);\n}\n\n/**\n * Format a date-like value to ``YYYYMMDD`` (Bloomberg-native).\n *\n * Accepts ``Date``, ISO 8601 / Bloomberg-native strings, epoch ms, and any\n * duck-typed Luxon-style ``{ toJSDate(): Date }``. Strict on ambiguous formats.\n */\nexport function formatDate(value: DateLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n if (BBG_DATE_RE.test(text)) {\n return text;\n }\n rejectAmbiguousString(text);\n if (ISO_DATE_RE.test(text)) {\n return text.replaceAll(/[-/]/gu, '');\n }\n }\n const date = dateLikeToJSDate(value);\n const y = String(date.getUTCFullYear()).padStart(4, '0');\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}${m}${d}`;\n}\n\n/**\n * Format a datetime-like value to RFC 3339 (ISO 8601 with optional offset).\n *\n * Naive ISO strings without a tz suffix are returned as-is so the Rust engine\n * can apply the caller's ``request_tz``. Anything else (Date, epoch ms, Luxon\n * DateTime, or ISO with explicit tz) is converted to a tz-bearing ISO string.\n */\nexport function formatDateTime(value: DateTimeLike | undefined | null): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n if (typeof value === 'string') {\n const text = value.trim();\n if (text.length === 0) {\n return undefined;\n }\n rejectAmbiguousString(text);\n if (BBG_DATE_RE.test(text)) {\n return `${text.slice(0, 4)}-${text.slice(4, 6)}-${text.slice(6, 8)}T00:00:00`;\n }\n // Preserve user-supplied naive strings; the Rust engine interprets them\n // According to ``request_tz``.\n return text.replace(' ', 'T');\n }\n const date = dateLikeToJSDate(value);\n return date.toISOString();\n}\n","export interface BlpRequestErrorOptions {\n readonly service?: string;\n readonly operation?: string;\n readonly request_id?: string;\n readonly code?: string | number;\n}\n\nexport interface BlpValidationErrorOptions {\n readonly element?: string;\n readonly suggestion?: string;\n}\n\nexport class BlpError extends Error {\n public constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\nexport class BlpSessionError extends BlpError {}\n\nexport class BlpRequestError extends BlpError {\n public readonly service?: string;\n public readonly operation?: string;\n public readonly request_id?: string;\n public readonly code?: string | number;\n\n public constructor(message: string, options: BlpRequestErrorOptions = {}) {\n super(message);\n this.service = options.service;\n this.operation = options.operation;\n this.request_id = options.request_id;\n this.code = options.code;\n }\n}\n\nexport class BlpLimitError extends BlpRequestError {}\n\nexport class BlpValidationError extends BlpError {\n public readonly element?: string;\n public readonly suggestion?: string;\n\n public constructor(message: string, options: BlpValidationErrorOptions = {}) {\n super(message);\n this.element = options.element;\n this.suggestion = options.suggestion;\n }\n}\n\nexport class BlpTimeoutError extends BlpError {}\n\nexport class BlpInternalError extends BlpError {}\n\n/**\n * Machine-readable code prefix emitted by the native layer:\n * `[XBBG:<CODE>] <message>`. Parsed first; the legacy message-pattern\n * heuristics below remain as a fallback for non-coded errors.\n */\nconst CODE_PREFIX = /^\\[XBBG:([A-Z]+)\\]\\s*/u;\n\nfunction fromCode(code: string, msg: string): BlpError {\n switch (code) {\n case 'SESSION':\n return new BlpSessionError(msg);\n case 'REQUEST':\n return new BlpRequestError(msg, parseRequestOptions(msg));\n case 'LIMIT':\n return new BlpLimitError(msg, parseRequestOptions(msg));\n case 'VALIDATION':\n return new BlpValidationError(msg, parseValidationOptions(msg));\n case 'TIMEOUT':\n return new BlpTimeoutError(msg);\n case 'CANCELLED':\n case 'INTERNAL':\n return new BlpInternalError(msg);\n default:\n return new BlpError(msg);\n }\n}\n\nexport function wrapError(napiError: unknown): BlpError {\n if (napiError instanceof BlpError) {\n return napiError;\n }\n const msg =\n napiError instanceof Error ? napiError.message : typeof napiError === 'string' ? napiError : '';\n\n const codeMatch = CODE_PREFIX.exec(msg);\n const nativeCode = codeMatch?.[1];\n const matchedPrefix = codeMatch?.[0];\n if (nativeCode !== undefined && matchedPrefix !== undefined) {\n return fromCode(nativeCode, msg.slice(matchedPrefix.length));\n }\n\n // Session errors\n if (\n msg.includes('Session start failed') ||\n msg.includes('session start failed') ||\n msg.includes('Failed to start session') ||\n msg.includes('Failed to open service') ||\n msg.includes('failed to spawn worker') ||\n msg.includes('connect event failed')\n ) {\n return new BlpSessionError(msg);\n }\n\n // Request errors\n if (msg.includes('Request failed') || msg.includes('Subscription failed')) {\n const options: BlpRequestErrorOptions = parseRequestOptions(msg);\n return new BlpRequestError(msg, options);\n }\n\n // Validation errors\n if (\n msg.includes('Invalid argument') ||\n msg.includes('Configuration error') ||\n msg.includes('Operation not found') ||\n msg.includes('Schema element not found') ||\n msg.includes('Schema type mismatch') ||\n msg.includes('Unsupported schema') ||\n msg.includes('invalid extractor') ||\n msg.includes('(did you mean')\n ) {\n const options: BlpValidationErrorOptions = parseValidationOptions(msg);\n return new BlpValidationError(msg, options);\n }\n\n // Timeout errors\n if (msg.includes('Request timed out')) {\n return new BlpTimeoutError(msg);\n }\n\n // Internal errors\n if (\n msg.includes('Internal error') ||\n msg.includes('Channel closed') ||\n msg.includes('Stream buffer full') ||\n msg.includes('Request was cancelled')\n ) {\n return new BlpInternalError(msg);\n }\n\n return new BlpError(msg);\n}\n\nfunction parseRequestOptions(msg: string): BlpRequestErrorOptions {\n const options: {\n service?: string;\n operation?: string;\n request_id?: string;\n code?: string | number;\n } = {};\n const serviceOpMatch = /on ([^:]+)::([^ (]+)/u.exec(msg);\n if (serviceOpMatch !== null) {\n options.service = serviceOpMatch[1];\n options.operation = serviceOpMatch[2];\n }\n const requestIdMatch = /\\[request_id=([^\\]]+)\\]/u.exec(msg);\n if (requestIdMatch !== null) {\n options.request_id = requestIdMatch[1];\n }\n return options;\n}\n\nfunction parseValidationOptions(msg: string): BlpValidationErrorOptions {\n const options: { element?: string; suggestion?: string } = {};\n const suggestionMatch = /\\(did you mean '([^']+)'\\?\\)/u.exec(msg);\n if (suggestionMatch !== null) {\n options.suggestion = suggestionMatch[1];\n }\n return options;\n}\n","export const nativeBinaryName = 'napi_xbbg.node';\n\nexport const nativePackageFiles = Object.freeze([\n 'index.js',\n 'index.d.ts',\n 'README.md',\n 'LICENSE',\n 'package.json',\n nativeBinaryName,\n] as const);\n\nexport const nativePackageDescriptors = Object.freeze({\n 'darwin-arm64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'arm64',\n files: nativePackageFiles,\n key: 'darwin-arm64',\n os: 'darwin',\n packageDir: 'packages/xbbg-core-darwin-arm64',\n packageName: '@xbbg/core-darwin-arm64',\n }),\n 'linux-x64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'x64',\n files: nativePackageFiles,\n key: 'linux-x64',\n os: 'linux',\n packageDir: 'packages/xbbg-core-linux-x64',\n packageName: '@xbbg/core-linux-x64',\n }),\n 'win32-x64': Object.freeze({\n binaryName: nativeBinaryName,\n cpu: 'x64',\n files: nativePackageFiles,\n key: 'win32-x64',\n os: 'win32',\n packageDir: 'packages/xbbg-core-win32-x64',\n packageName: '@xbbg/core-win32-x64',\n }),\n} as const);\n\nexport type PlatformKey = keyof typeof nativePackageDescriptors;\nexport type NativePackageDescriptor = (typeof nativePackageDescriptors)[PlatformKey];\nexport type NativePackageName = NativePackageDescriptor['packageName'];\n\nexport const platformPackages = Object.freeze({\n 'darwin-arm64': nativePackageDescriptors['darwin-arm64'].packageName,\n 'linux-x64': nativePackageDescriptors['linux-x64'].packageName,\n 'win32-x64': nativePackageDescriptors['win32-x64'].packageName,\n}) satisfies Readonly<{ [K in PlatformKey]: (typeof nativePackageDescriptors)[K]['packageName'] }>;\n\nexport function nativePackageForKey(key: string): NativePackageDescriptor | null {\n return (\n (nativePackageDescriptors as Readonly<Record<string, NativePackageDescriptor | undefined>>)[\n key\n ] ?? null\n );\n}\n\nexport function platformKey(\n platform: NodeJS.Platform = process.platform,\n arch: string = process.arch,\n): string {\n return `${platform}-${arch}`;\n}\n","import fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { nativePackageForKey, platformKey } from './platform-map';\nimport type { NativePackageDescriptor } from './platform-map';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface NativePackageResolution {\n readonly binaryPath: string;\n}\n\nexport interface NativeAddonResolution {\n readonly key: string;\n readonly packageName: string | null;\n readonly binaryPath: string | null;\n}\n\ninterface NativeResolverBaseOptions {\n readonly repoRoot: string;\n readonly requirePackage: (id: string) => unknown;\n readonly exists: (target: string) => boolean;\n}\n\ninterface SupportedNativeResolverOptions extends NativeResolverBaseOptions {\n readonly nativePackage: NativePackageDescriptor;\n}\n\ninterface UnsupportedNativeResolverOptions extends NativeResolverBaseOptions {\n readonly key: string;\n readonly nativePackage: null;\n}\n\nexport type NativeResolverOptions =\n | SupportedNativeResolverOptions\n | UnsupportedNativeResolverOptions;\n\nfunction exists(target: string): boolean {\n try {\n fs.accessSync(target);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isResolutionObject(value: unknown): value is NativePackageResolution {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction validateNativePackage(packageName: string, resolved: unknown): NativePackageResolution {\n if (!isResolutionObject(resolved)) {\n throw new Error(`Invalid native package ${packageName}: expected an object with binaryPath`);\n }\n if (!('binaryPath' in resolved)) {\n throw new Error(`Invalid native package ${packageName}: missing binaryPath`);\n }\n if (typeof resolved.binaryPath !== 'string') {\n throw new TypeError(`Invalid native package ${packageName}: binaryPath must be a string`);\n }\n return resolved;\n}\n\nfunction localPackageIndex(repoRoot: string, packageDir: string): string {\n return path.join(repoRoot, packageDir, 'index.js');\n}\n\nfunction isOptionalPackageMissing(err: unknown, packageName: string): boolean {\n if (!(err instanceof Error)) {\n return false;\n }\n const code = 'code' in err ? (err as { readonly code?: unknown }).code : undefined;\n if (code !== 'MODULE_NOT_FOUND') {\n return false;\n }\n return (\n err.message.includes(`Cannot find module '${packageName}'`) ||\n err.message.includes(`Cannot find module \"${packageName}\"`) ||\n err.message.includes(`Cannot find package '${packageName}'`) ||\n err.message.includes(`Cannot find package \"${packageName}\"`)\n );\n}\n\nfunction resolveInstalledPackage(\n packageName: string,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n try {\n const resolved = validateNativePackage(packageName, requirePackage(packageName));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n } catch (error) {\n if (isOptionalPackageMissing(error, packageName)) {\n return null;\n }\n throw error;\n }\n}\n\nfunction resolveLocalPackage(\n repoRoot: string,\n nativePackage: NativePackageDescriptor,\n requirePackage: (id: string) => unknown,\n existsFile: (target: string) => boolean,\n): NativePackageResolution | null {\n const localIndex = localPackageIndex(repoRoot, nativePackage.packageDir);\n if (!existsFile(localIndex)) {\n return null;\n }\n\n const resolved = validateNativePackage(nativePackage.packageName, requirePackage(localIndex));\n if (!existsFile(resolved.binaryPath)) {\n throw new Error(\n `Invalid native package ${nativePackage.packageName}: binaryPath does not exist: ${resolved.binaryPath}`,\n );\n }\n return resolved;\n}\n\nexport function resolveNativeAddonCore(options: NativeResolverOptions): NativeAddonResolution {\n const { nativePackage, repoRoot, requirePackage, exists: existsFile } = options;\n if (nativePackage === null) {\n return { binaryPath: null, key: options.key, packageName: null };\n }\n\n const { key, packageName } = nativePackage;\n const installed = resolveInstalledPackage(packageName, requirePackage, existsFile);\n if (installed !== null) {\n return { binaryPath: installed.binaryPath, key, packageName };\n }\n\n const local = resolveLocalPackage(repoRoot, nativePackage, requirePackage, existsFile);\n if (local !== null) {\n return { binaryPath: local.binaryPath, key, packageName };\n }\n\n return { binaryPath: null, key, packageName };\n}\n\nexport function resolveNativeAddon(repoRoot: string): NativeAddonResolution {\n const key = platformKey();\n const nativePackage = nativePackageForKey(key);\n const requirePackage = (id: string): unknown => nodeRequire(id) as unknown;\n if (nativePackage === null) {\n return resolveNativeAddonCore({ exists, key, nativePackage, repoRoot, requirePackage });\n }\n return resolveNativeAddonCore({ exists, nativePackage, repoRoot, requirePackage });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nconst BLPAPI_RUNTIME_NAMES = Object.freeze([\n 'blpapi3_64.dll',\n 'blpapi3_32.dll',\n 'libblpapi3.dylib',\n 'libblpapi3_64.so',\n 'libblpapi3.so',\n]);\n\nconst WINDOWS_PATH_SEPARATOR = ';';\n\ntype Exists = (target: string) => boolean;\ntype ReadDir = (target: string) => fs.Dirent[];\n\nexport interface RuntimeSearchPathOptions {\n readonly env?: NodeJS.ProcessEnv;\n readonly exists?: Exists;\n readonly platform?: NodeJS.Platform;\n readonly readDir?: ReadDir;\n readonly repoRoot?: string;\n}\n\nconst readDirectory: ReadDir = (target) => fs.readdirSync(target, { withFileTypes: true });\n\nfunction windowsPathKey(value: string): string {\n return path.win32.normalize(value).toLowerCase();\n}\n\nfunction candidateKey(value: string, platform: NodeJS.Platform): string {\n return platform === 'win32' ? windowsPathKey(value) : path.resolve(value);\n}\n\nfunction pushUnique(\n candidates: string[],\n seen: Set<string>,\n candidate: string | undefined,\n platform: NodeJS.Platform,\n): void {\n if (candidate === undefined || candidate.length === 0) {\n return;\n }\n const key = candidateKey(candidate, platform);\n if (seen.has(key)) {\n return;\n }\n seen.add(key);\n candidates.push(candidate);\n}\n\nfunction windowsDrive(value: string | undefined): string {\n if (value !== undefined && /^[A-Za-z]:/u.test(value)) {\n return value.slice(0, 2);\n }\n return 'C:';\n}\n\nexport function collectWindowsDapiRootCandidates(env: NodeJS.ProcessEnv = process.env): string[] {\n const candidates: string[] = [];\n const seen = new Set<string>();\n const add = (candidate: string | undefined): void => {\n pushUnique(candidates, seen, candidate, 'win32');\n };\n\n const systemDrive = windowsDrive(env.SystemDrive);\n const systemDriveRoot = `${systemDrive}\\\\`;\n add(path.win32.join(systemDriveRoot, 'blp', 'DAPI'));\n if (systemDrive.toLowerCase() !== 'c:') {\n add(path.win32.join('C:\\\\', 'blp', 'DAPI'));\n }\n\n const programFilesRoots = [\n env.ProgramFiles,\n path.win32.join(systemDriveRoot, 'Program Files'),\n env['ProgramFiles(x86)'],\n path.win32.join(systemDriveRoot, 'Program Files (x86)'),\n ];\n for (const root of programFilesRoots) {\n add(root === undefined ? undefined : path.win32.join(root, 'Bloomberg', 'Blp', 'DAPI'));\n }\n\n const localAppData =\n env.LOCALAPPDATA ??\n (env.USERPROFILE === undefined\n ? undefined\n : path.win32.join(env.USERPROFILE, 'AppData', 'Local'));\n if (localAppData !== undefined) {\n add(path.win32.join(localAppData, 'Bloomberg', 'DAPI'));\n add(path.win32.join(localAppData, 'Bloomberg', 'Blp', 'DAPI'));\n }\n\n return candidates;\n}\n\nexport function containsBlpapiRuntime(dir: string, exists: Exists = fs.existsSync): boolean {\n if (dir.length === 0) {\n return false;\n }\n return BLPAPI_RUNTIME_NAMES.some((name) => exists(path.join(dir, name)));\n}\n\nfunction parseVersionParts(name: string): number[] | null {\n const parts = name.split('.').map((part) => Number(part));\n return parts.every((part) => Number.isInteger(part) && part >= 0) ? parts : null;\n}\n\nexport function compareSdkRoots(left: string, right: string): number {\n const leftParts = parseVersionParts(path.basename(left));\n const rightParts = parseVersionParts(path.basename(right));\n if (leftParts !== null && rightParts !== null) {\n const length = Math.max(leftParts.length, rightParts.length);\n for (let index = 0; index < length; index += 1) {\n const leftPart = leftParts[index] ?? 0;\n const rightPart = rightParts[index] ?? 0;\n if (leftPart !== rightPart) {\n return rightPart - leftPart;\n }\n }\n }\n if (leftParts !== null) {\n return -1;\n }\n if (rightParts !== null) {\n return 1;\n }\n return right.localeCompare(left);\n}\n\nexport function pushSdkRuntimeCandidates(candidates: string[], sdkRoot: string): void {\n const resolved = path.resolve(sdkRoot);\n candidates.push(\n resolved,\n path.join(resolved, 'bin'),\n path.join(resolved, 'lib'),\n path.join(resolved, 'Lib'),\n path.join(resolved, 'lib', 'win64'),\n path.join(resolved, 'lib', 'win32'),\n );\n}\n\nfunction addSdkRuntimeRoot(add: (candidate: string | undefined) => void, sdkRoot: string): void {\n const sdkCandidates: string[] = [];\n pushSdkRuntimeCandidates(sdkCandidates, sdkRoot);\n for (const candidate of sdkCandidates) {\n add(candidate);\n }\n}\n\nexport function resolveVendorSdkRoot(\n repoRoot: string,\n exists: Exists = fs.existsSync,\n readDir: ReadDir = readDirectory,\n): string | null {\n const vendorDir = path.join(repoRoot, 'vendor', 'blpapi-sdk');\n if (!exists(vendorDir)) {\n return null;\n }\n const candidates = [vendorDir];\n for (const entry of readDir(vendorDir)) {\n if (entry.isDirectory()) {\n candidates.push(path.join(vendorDir, entry.name));\n }\n }\n candidates.sort(compareSdkRoots);\n return (\n candidates.find((candidate) => {\n const dirs = [\n candidate,\n path.join(candidate, 'bin'),\n path.join(candidate, 'lib'),\n path.join(candidate, 'Lib'),\n ];\n return dirs.some((dir) => containsBlpapiRuntime(dir, exists));\n }) ?? null\n );\n}\n\nexport function collectRuntimeSearchCandidates(options: RuntimeSearchPathOptions = {}): string[] {\n const env = options.env ?? process.env;\n const exists = options.exists ?? fs.existsSync;\n const platform = options.platform ?? process.platform;\n const readDir = options.readDir ?? readDirectory;\n const repoRoot = options.repoRoot ?? path.resolve(__dirname, '..', '..');\n const candidates: string[] = [];\n const seen = new Set<string>();\n const add = (candidate: string | undefined): void => {\n pushUnique(candidates, seen, candidate, platform);\n };\n\n const libDir = env.BLPAPI_LIB_DIR;\n if (libDir !== undefined && libDir.length > 0) {\n add(path.resolve(libDir));\n }\n\n const root = env.BLPAPI_ROOT;\n if (root !== undefined && root.length > 0) {\n addSdkRuntimeRoot(add, root);\n }\n\n const devRoot = env.XBBG_DEV_SDK_ROOT;\n if (devRoot !== undefined && devRoot.length > 0) {\n const resolved = path.isAbsolute(devRoot) ? devRoot : path.resolve(repoRoot, devRoot);\n addSdkRuntimeRoot(add, resolved);\n }\n\n const vendorRoot = resolveVendorSdkRoot(repoRoot, exists, readDir);\n if (vendorRoot !== null) {\n addSdkRuntimeRoot(add, vendorRoot);\n }\n\n if (platform === 'win32') {\n for (const dapiRoot of collectWindowsDapiRootCandidates(env)) {\n add(dapiRoot);\n }\n }\n\n return candidates;\n}\n\nfunction prependWindowsPath(env: NodeJS.ProcessEnv, candidate: string): void {\n const key = Object.keys(env).find((envKey) => envKey.toUpperCase() === 'PATH') ?? 'PATH';\n const currentPath = env[key] ?? '';\n const currentParts = currentPath.split(WINDOWS_PATH_SEPARATOR).filter((part) => part.length > 0);\n const candidatePathKey = windowsPathKey(candidate);\n if (currentParts.some((part) => windowsPathKey(part) === candidatePathKey)) {\n return;\n }\n env[key] =\n currentPath.length > 0 ? `${candidate}${WINDOWS_PATH_SEPARATOR}${currentPath}` : candidate;\n}\n\nexport function configureRuntimeSearchPath(options: RuntimeSearchPathOptions = {}): string | null {\n const env = options.env ?? process.env;\n const exists = options.exists ?? fs.existsSync;\n const platform = options.platform ?? process.platform;\n if (platform !== 'win32') {\n return null;\n }\n\n for (const candidate of collectRuntimeSearchCandidates(options)) {\n if (!containsBlpapiRuntime(candidate, exists)) {\n continue;\n }\n prependWindowsPath(env, candidate);\n return candidate;\n }\n\n return null;\n}\n","/* oxlint-disable import/max-dependencies -- public entry point intentionally consolidates native and helper modules. */\nimport type { Table } from 'apache-arrow';\n\nimport { tableFromIPC } from 'apache-arrow';\nimport fs from 'node:fs';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\n\nimport { tableFromNativeArrowBatch } from './arrow-zero-copy';\nimport { Backend, Format } from './backends';\n// Date / datetime helpers (#317): isolated module so they can be tested\n// Without loading the native NAPI addon. Re-exported as public API below.\nimport { formatDate, formatDateTime, hasToJSDate } from './dates';\nimport {\n BlpError,\n BlpLimitError,\n BlpInternalError,\n BlpRequestError,\n BlpSessionError,\n BlpTimeoutError,\n BlpValidationError,\n wrapError,\n} from './errors';\nimport type {\n NativeAddon,\n NativeArrowZeroCopyBatch,\n NativeEngine,\n NativeSubscription,\n NativeSubscriptionUpdate,\n} from './napi';\nimport { resolveNativeAddon } from './native/resolve-native';\nimport { configureRuntimeSearchPath } from './runtime-search-path';\nimport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n} from './types';\n\nconst nodeRequire = createRequire(__filename);\n\ninterface PackageJsonShape {\n readonly version: string;\n}\n\ninterface PolarsModule {\n readIPC(buffer: Buffer): unknown;\n}\n\nfunction parsePackageJsonShape(value: unknown): PackageJsonShape {\n if (isPlainObject(value) && typeof value.version === 'string') {\n return { version: value.version };\n }\n throw new TypeError('@xbbg/core package.json is missing a string version field');\n}\n\nfunction isNativeAddon(value: unknown): value is NativeAddon {\n return (\n isPlainObject(value) &&\n typeof value.JsEngine === 'function' &&\n typeof value.getLogLevel === 'function' &&\n typeof value.setLogLevel === 'function'\n );\n}\n\nfunction requireNativeAddon(modulePath: string): NativeAddon {\n const loaded: unknown = nodeRequire(modulePath);\n if (isNativeAddon(loaded)) {\n return loaded;\n }\n throw new TypeError(`Native addon ${modulePath} does not expose the expected @xbbg/core surface`);\n}\n\nfunction isPolarsModule(value: unknown): value is PolarsModule {\n return isPlainObject(value) && typeof value.readIPC === 'function';\n}\n\nfunction requirePolarsModule(): PolarsModule {\n const loaded: unknown = nodeRequire('nodejs-polars');\n if (isPolarsModule(loaded)) {\n return loaded;\n }\n throw new TypeError('nodejs-polars did not expose readIPC(buffer)');\n}\n\nfunction isBdhOptionsInput(value: DateLike | BdhOptions | undefined): value is BdhOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nfunction isBdibOptionsInput(\n value: DateTimeLike | BdibOptions | number | undefined,\n): value is BdibOptions {\n return isPlainObject(value) && !(value instanceof Date) && !hasToJSDate(value);\n}\n\nconst packageJson = parsePackageJsonShape(nodeRequire('../package.json'));\n\nconfigureRuntimeSearchPath();\n\nfunction loadNative(): NativeAddon {\n const root = path.resolve(__dirname, '..', '..');\n\n const candidates = [\n path.join(__dirname, 'napi_xbbg.node'),\n path.join(__dirname, '..', 'napi_xbbg.node'),\n path.join(__dirname, 'napi-xbbg.node'),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n return requireNativeAddon(candidate);\n }\n }\n\n const { key, packageName, binaryPath } = resolveNativeAddon(root);\n if (binaryPath !== null) {\n return requireNativeAddon(binaryPath);\n }\n if (packageName === null) {\n throw new Error(\n `No packaged @xbbg/core native addon is available for ${key}. Build it locally with \"npm run build\" from js-xbbg.`,\n );\n }\n\n throw new Error(\n `Unable to load native napi-xbbg module for ${key}. Install ${packageName} via Bun/npm, or build it locally with \"npm run build\" from js-xbbg.`,\n );\n}\n\nconst native = loadNative();\n\n// ── Constants ───────────────────────────────────────────────────────────\nexport { Backend, Format };\n\nexport const CDX_INFO_FIELDS = Object.freeze([\n 'ROLLING_SERIES',\n 'VERSION',\n 'ON_THE_RUN_CURRENT_BD_INDICATOR',\n 'CDS_FIRST_ACCRUAL_START_DATE',\n 'NAME',\n 'NUM_CURRENT_COMPANIES_CCY_TKR',\n 'NUM_ORIG_COMPANIES_CRNCY_TKR',\n 'PX_LAST',\n]);\n\nexport const CDX_PRICING_FIELDS = Object.freeze([\n 'PX_LAST',\n 'PX_BID',\n 'PX_ASK',\n 'UPFRONT_LAST',\n 'UPFRONT_BID',\n 'UPFRONT_ASK',\n 'CDS_FLAT_SPREAD',\n 'UPFRONT_FEE',\n 'PV_CDS_PREMIUM_LEG',\n 'PV_CDS_DEFAULT_LEG',\n]);\n\nexport const CDX_RISK_FIELDS = Object.freeze([\n 'SW_CNV_BPV',\n 'SW_EQV_BPV',\n 'CDS_SPREAD_MID_MODIFIED_DURATION',\n 'CDS_SPREAD_MID_CONVEXITY',\n 'RECOVERY_RATE_SEN',\n 'CDS_RECOVERY_RT',\n]);\n\nconst TA_STUDIES: Readonly<Record<string, string>> = Object.freeze({\n ado: 'adoStudyAttributes',\n adx: 'dmiStudyAttributes',\n al: 'alStudyAttributes',\n atr: 'atrStudyAttributes',\n bb: 'bollStudyAttributes',\n boll: 'bollStudyAttributes',\n bs: 'bsStudyAttributes',\n chko: 'chkoStudyAttributes',\n cmci: 'cmciStudyAttributes',\n dmi: 'dmiStudyAttributes',\n ema: 'emavgStudyAttributes',\n emavg: 'emavgStudyAttributes',\n etd: 'etdStudyAttributes',\n fear_greed: 'fgStudyAttributes',\n fg: 'fgStudyAttributes',\n goc: 'gocStudyAttributes',\n hurst: 'hurstStudyAttributes',\n ichimoku: 'gocStudyAttributes',\n ipmavg: 'ipmavgStudyAttributes',\n keltner: 'kltnStudyAttributes',\n kltn: 'kltnStudyAttributes',\n macd: 'macdStudyAttributes',\n mae: 'maeStudyAttributes',\n mao: 'maoStudyAttributes',\n maxmin: 'maxminStudyAttributes',\n mom: 'momentumStudyAttributes',\n momentum: 'momentumStudyAttributes',\n or: 'orStudyAttributes',\n parabolic: 'ptpsStudyAttributes',\n pcr: 'pcrStudyAttributes',\n pd: 'pdStudyAttributes',\n pivot: 'pivotStudyAttributes',\n ptps: 'ptpsStudyAttributes',\n rex: 'rexStudyAttributes',\n roc: 'rocStudyAttributes',\n rsi: 'rsiStudyAttributes',\n rv: 'rvStudyAttributes',\n sar: 'ptpsStudyAttributes',\n sma: 'smavgStudyAttributes',\n smavg: 'smavgStudyAttributes',\n stoch: 'tasStudyAttributes',\n tas: 'tasStudyAttributes',\n te: 'teStudyAttributes',\n tma: 'tmavgStudyAttributes',\n tmavg: 'tmavgStudyAttributes',\n trender: 'trenderStudyAttributes',\n tvat: 'tvatStudyAttributes',\n vat: 'vatStudyAttributes',\n vma: 'vmavgStudyAttributes',\n vmavg: 'vmavgStudyAttributes',\n williams: 'wlprStudyAttributes',\n wlpr: 'wlprStudyAttributes',\n wma: 'wmavgStudyAttributes',\n wmavg: 'wmavgStudyAttributes',\n});\n\ntype StudyParams = Record<string, PrimitiveValue | undefined>;\n\nconst TA_DEFAULTS: Readonly<Record<string, Readonly<StudyParams>>> = Object.freeze({\n atrStudyAttributes: Object.freeze({\n maType: 'Simple',\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n bollStudyAttributes: Object.freeze({\n period: 20,\n upperBand: 2.0,\n lowerBand: 2.0,\n priceSourceClose: 'PX_LAST',\n }),\n dmiStudyAttributes: Object.freeze({\n period: 14,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n emavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n macdStudyAttributes: Object.freeze({\n maPeriod1: 12,\n maPeriod2: 26,\n sigPeriod: 9,\n priceSourceClose: 'PX_LAST',\n }),\n rsiStudyAttributes: Object.freeze({ period: 14, priceSourceClose: 'PX_LAST' }),\n smavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n tasStudyAttributes: Object.freeze({\n periodK: 14,\n periodD: 3,\n periodDS: 3,\n periodDSS: 3,\n priceSourceHigh: 'PX_HIGH',\n priceSourceLow: 'PX_LOW',\n priceSourceClose: 'PX_LAST',\n }),\n tmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n vmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n wmavgStudyAttributes: Object.freeze({ period: 20, priceSourceClose: 'PX_LAST' }),\n});\n\nconst MKTDATA_SERVICE = '//blp/mktdata';\n\n// ── Helpers ─────────────────────────────────────────────────────────────\n\nfunction toArrowTableFromNative(batch: NativeArrowZeroCopyBatch): Table {\n return tableFromNativeArrowBatch(batch);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction toRequestString(value: unknown): string {\n return String(value);\n}\n\nfunction mapObjectToPairs(obj: OverridesMap | undefined): StringPair[] | undefined {\n if (obj === undefined) {\n return undefined;\n }\n return Object.entries(obj).map(([key, value]) => ({\n key: toRequestString(key),\n value: toRequestString(value),\n }));\n}\n\ntype BdtickBooleanOption =\n | 'includeConditionCodes'\n | 'includeExchangeCodes'\n | 'includeBrokerCodes'\n | 'includeRpsCodes'\n | 'includeBicMicCodes'\n | 'includeNonPlottableEvents'\n | 'includeBloombergStandardConditionCodes';\n\nconst BDTICK_BOOLEAN_KWARGS: readonly [BdtickBooleanOption, string][] = Object.freeze([\n ['includeConditionCodes', 'includeConditionCodes'],\n ['includeExchangeCodes', 'includeExchangeCodes'],\n ['includeBrokerCodes', 'includeBrokerCodes'],\n ['includeRpsCodes', 'includeRpsCodes'],\n ['includeBicMicCodes', 'includeBicMicCodes'],\n ['includeNonPlottableEvents', 'includeNonPlottableEvents'],\n ['includeBloombergStandardConditionCodes', 'includeBloombergStandardConditionCodes'],\n]);\n\nfunction upsertStringPair(pairs: StringPair[], key: string, value: string): void {\n const existing = pairs.find((pair) => pair.key === key);\n if (existing === undefined) {\n pairs.push({ key, value });\n return;\n }\n existing.value = value;\n}\n\nfunction buildBdtickKwargs(options: BdtickOptions): StringPair[] | undefined {\n const pairs = mapObjectToPairs(options.kwargs) ?? [];\n for (const [optionName, requestName] of BDTICK_BOOLEAN_KWARGS) {\n const typedValue = options[optionName];\n if (typedValue !== undefined) {\n upsertStringPair(pairs, requestName, typedValue ? 'true' : 'false');\n }\n }\n return pairs.length > 0 ? pairs : undefined;\n}\n\nfunction toStringArray(value: string | readonly string[] | null | undefined): string[] {\n if (Array.isArray(value)) {\n return value.map((item) => toRequestString(item));\n }\n if (value === null || value === undefined) {\n return [];\n }\n return [toRequestString(value)];\n}\n\nfunction encodeVolFieldSpec(field: string, spec: VolFieldSpec | undefined): string {\n if (spec === undefined) {\n return field;\n }\n return [\n field,\n spec.metric ?? '',\n spec.tenor ?? '',\n spec.pointType ?? '',\n spec.point === undefined ? '' : String(spec.point),\n ].join('|');\n}\n\nfunction isVolFieldSpecMap(\n fields: VolSurfaceOptions['fields'],\n): fields is Record<string, VolFieldSpec> {\n return fields !== undefined && !Array.isArray(fields);\n}\n\nfunction normalizeVolFieldSpecs(fields: VolSurfaceOptions['fields'] | undefined): string[] | null {\n if (fields === undefined) {\n return null;\n }\n if (!isVolFieldSpecMap(fields)) {\n return fields.map((field) => toRequestString(field));\n }\n return Object.entries(fields).map(([field, spec]) => encodeVolFieldSpec(field, spec));\n}\n\nfunction isVolSurfacePresetArray(\n preset: VolSurfaceOptions['preset'],\n): preset is readonly VolSurfacePreset[] {\n return Array.isArray(preset);\n}\nfunction normalizeVolPresets(preset: VolSurfaceOptions['preset'] | undefined): string[] | null {\n if (preset === undefined || preset === null) {\n return null;\n }\n return isVolSurfacePresetArray(preset) ? [...preset] : [preset];\n}\n\nfunction subscriptionOptionKey(option: string): string {\n return normalizeSubscriptionOption(option).split('=')[0]?.trim().toLowerCase() ?? '';\n}\n\nfunction normalizeSubscriptionOption(option: string): string {\n let clean = option.trim();\n while (clean.startsWith('&')) {\n clean = clean.slice(1).trim();\n }\n return clean;\n}\n\nfunction buildStreamSubscriptionOptions(\n service: string,\n options: StreamOptions,\n): readonly string[] | undefined {\n const rawOptions = options.options;\n const { conflate } = options;\n\n if (rawOptions === undefined && conflate !== true) {\n return undefined;\n }\n\n const subscriptionOptions = (rawOptions ?? [])\n .map((option) => normalizeSubscriptionOption(option))\n .filter((option) => option.length > 0);\n\n if (conflate === true) {\n if (service !== MKTDATA_SERVICE) {\n throw new BlpValidationError(\n 'conflate=true is only supported for //blp/mktdata subscriptions',\n { element: 'conflate' },\n );\n }\n if (subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'interval')) {\n throw new BlpValidationError(\n 'conflate=true cannot be combined with interval options; intervalization overrides conflation',\n { element: 'conflate' },\n );\n }\n if (!subscriptionOptions.some((option) => subscriptionOptionKey(option) === 'conflate')) {\n subscriptionOptions.push('conflate');\n }\n }\n\n return subscriptionOptions.length > 0 || rawOptions !== undefined\n ? subscriptionOptions\n : undefined;\n}\n\nfunction normalizeConfigureArgs(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n if (configOrHost === undefined) {\n return undefined;\n }\n if (typeof configOrHost === 'string' || port !== undefined) {\n const config: EngineConfig = {};\n if (typeof configOrHost === 'string') {\n config.host = configOrHost;\n }\n if (port !== undefined) {\n config.port = port;\n }\n return config;\n }\n if (isPlainObject(configOrHost)) {\n return { ...(configOrHost as EngineConfig) };\n }\n throw new TypeError('configure expects either a config object or host/port arguments');\n}\n\nfunction normalizeRecoveryOptions(options: CdxOptions = {}): BdpOptions {\n const normalized: CdxOptions = { ...options };\n const recoveryRate = normalized.recoveryRate ?? normalized.recovery_rate;\n delete normalized.recoveryRate;\n delete normalized.recovery_rate;\n if (recoveryRate !== undefined) {\n normalized.overrides = {\n ...normalized.overrides,\n CDS_RR: toRequestString(recoveryRate),\n };\n }\n return normalized;\n}\n\nfunction fullDayRange(dt: DateTimeLike): TimeRange {\n const formatted = formatDate(dt);\n if (formatted === undefined) {\n throw new TypeError('dt must be a non-empty date-like value');\n }\n const day = `${formatted.slice(0, 4)}-${formatted.slice(4, 6)}-${formatted.slice(6, 8)}`;\n return {\n end: `${day}T23:59:59`,\n start: `${day}T00:00:00`,\n };\n}\n\nfunction normalizeDate(value: DateLike | undefined): string | undefined {\n return formatDate(value);\n}\n\nfunction getStudyAttrName(study: string): string {\n const normalized = study.toLowerCase().replaceAll(/-/gu, '_').replaceAll(/ /gu, '_');\n const mapped = TA_STUDIES[normalized];\n if (mapped !== undefined) {\n return mapped;\n }\n if (normalized.endsWith('studyattributes')) {\n return normalized;\n }\n return `${normalized}StudyAttributes`;\n}\n\ninterface RawStudy {\n studyType?: string;\n study?: string;\n calcInterval?: string;\n interval?: number | string;\n length?: number;\n period?: number;\n [key: string]: PrimitiveValue | undefined;\n}\n\nfunction buildTaRequest(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n): StringPair[] {\n const rawStudy: RawStudy = typeof study === 'string' ? { studyType: study } : { ...study };\n const studyType =\n rawStudy.studyType ?? rawStudy.study ?? (typeof study === 'string' ? study : '');\n const attrName = getStudyAttrName(toRequestString(studyType));\n\n const kwargs: Record<string, PrimitiveValue> = { ...options.kwargs };\n const startDate = normalizeDate(\n stringOrUndef(kwargs.startDate) ??\n stringOrUndef(kwargs.start_date) ??\n options.startDate ??\n options.start_date,\n );\n const endDate = normalizeDate(\n stringOrUndef(kwargs.endDate) ??\n stringOrUndef(kwargs.end_date) ??\n options.endDate ??\n options.end_date,\n );\n const periodicity = toRequestString(\n stringOrUndef(kwargs.periodicitySelection) ??\n stringOrUndef(kwargs.periodicity) ??\n rawStudy.calcInterval ??\n options.periodicity ??\n 'DAILY',\n ).toUpperCase();\n const interval = kwargs.interval ?? rawStudy.interval ?? options.interval;\n\n delete kwargs.startDate;\n delete kwargs.start_date;\n delete kwargs.endDate;\n delete kwargs.end_date;\n delete kwargs.periodicitySelection;\n delete kwargs.periodicity;\n delete rawStudy.studyType;\n delete rawStudy.study;\n delete rawStudy.calcInterval;\n\n if (rawStudy.length !== undefined && rawStudy.period === undefined) {\n rawStudy.period = rawStudy.length;\n }\n delete rawStudy.length;\n\n const params: StudyParams = {\n ...TA_DEFAULTS[attrName],\n ...options.studyParams,\n ...(rawStudy as StudyParams),\n };\n\n if (params.length !== undefined && params.period === undefined) {\n params.period = params.length;\n }\n delete params.length;\n delete params.calcInterval;\n\n const elements: StringPair[] = [\n { key: 'priceSource.securityName', value: toRequestString(ticker) },\n ];\n\n if (periodicity === 'INTRADAY') {\n const prefix = 'priceSource.dataRange.intraday';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.eventType`, value: 'TRADE' });\n if (interval !== undefined) {\n elements.push({ key: `${prefix}.interval`, value: toRequestString(interval) });\n }\n } else {\n const prefix = 'priceSource.dataRange.historical';\n if (startDate !== undefined) {\n elements.push({ key: `${prefix}.startDate`, value: startDate });\n }\n if (endDate !== undefined) {\n elements.push({ key: `${prefix}.endDate`, value: endDate });\n }\n elements.push({ key: `${prefix}.periodicitySelection`, value: periodicity });\n }\n\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined) {\n continue;\n }\n elements.push({\n key: `studyAttributes.${attrName}.${key}`,\n value: toRequestString(value),\n });\n }\n\n for (const [key, value] of Object.entries(kwargs)) {\n elements.push({ key: toRequestString(key), value: toRequestString(value) });\n }\n\n return elements;\n}\n\nfunction stringOrUndef(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n\nlet polarsModule: PolarsModule | undefined;\nlet polarsLoadError: Error | undefined;\n\nfunction cachePolarsLoadError(err: unknown): Error {\n const error = new Error(\n 'nodejs-polars is required for Polars backend. Install: npm install nodejs-polars',\n );\n Object.defineProperty(error, 'cause', { configurable: true, value: err });\n polarsLoadError = error;\n return error;\n}\n\nfunction loadPolars(): PolarsModule {\n if (polarsModule !== undefined) {\n return polarsModule;\n }\n if (polarsLoadError !== undefined) {\n throw polarsLoadError;\n }\n try {\n polarsModule = requirePolarsModule();\n return polarsModule;\n } catch (error) {\n throw cachePolarsLoadError(error);\n }\n}\n\nfunction normalizeBackend(backend: BackendKind | undefined): BackendKind {\n const selected: unknown = backend ?? Backend.ARROW;\n if (selected === Backend.ARROW || selected === Backend.JSON || selected === Backend.POLARS) {\n return selected;\n }\n throw new TypeError(\n `Unsupported @xbbg/core backend \"${toRequestString(selected)}\". Expected one of: ${Object.values(\n Backend,\n ).join(', ')}`,\n );\n}\n\nfunction ipcToBackend(buffer: Buffer, backend: BackendKind | undefined): unknown {\n const selected = normalizeBackend(backend);\n if (selected === Backend.JSON) {\n return [...tableFromIPC(buffer)];\n }\n if (selected === Backend.POLARS) {\n return loadPolars().readIPC(buffer);\n }\n return tableFromIPC(buffer);\n}\n\n// ── Configured engine state ─────────────────────────────────────────────\n\nlet configuredEngineConfig: EngineConfig | undefined;\nlet configuredEnginePromise: Promise<Engine> | undefined;\n\nfunction clearConfiguredEngine(): void {\n const existing = configuredEnginePromise;\n configuredEnginePromise = undefined;\n if (existing !== undefined) {\n void (async (): Promise<void> => {\n try {\n const engine = await existing;\n engine.signalShutdown();\n } catch {\n /* Ignore shutdown errors */\n }\n })();\n }\n}\n\nasync function getConfiguredEngine(): Promise<Engine> {\n if (configuredEnginePromise === undefined) {\n const pending = connect(configuredEngineConfig);\n pending.catch(() => {\n if (configuredEnginePromise === pending) {\n configuredEnginePromise = undefined;\n }\n });\n configuredEnginePromise = pending;\n }\n return await configuredEnginePromise;\n}\n\n// ── Subscription class ──────────────────────────────────────────────────\n\nexport type TickValue = null | boolean | number | bigint | string | Date;\n\nexport class FieldHandle {\n public constructor(public readonly name: string) {}\n}\n\nexport class Tick {\n private readonly positions: Map<string, number>;\n\n public constructor(private readonly update: NativeSubscriptionUpdate) {\n this.positions = new Map(update.fields.map((field, index) => [field, index]));\n }\n\n public get topic(): string {\n return this.update.topic;\n }\n\n public get timestampUs(): number {\n return this.update.timestampUs;\n }\n\n public get layoutVersion(): number {\n return this.update.layoutVersion;\n }\n\n public get(field: string | FieldHandle): TickValue {\n const name = typeof field === 'string' ? field : field.name;\n const index = this.positions.get(name);\n if (index === undefined) {\n return null;\n }\n const value = this.update.values[index] ?? null;\n const kind = this.update.valueKinds[index] ?? 'unknown';\n if (value === null) {\n return null;\n }\n if (kind === 'i64' || kind === 'time64_us' || kind === 'timestamp_us') {\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n if (kind === 'date32' && typeof value === 'number') {\n return new Date(Date.UTC(1970, 0, 1 + value));\n }\n return value;\n }\n\n public f64(field: string | FieldHandle): number | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n\n public i64(field: string | FieldHandle): bigint | null {\n const value = this.get(field);\n if (value === null) {\n return null;\n }\n try {\n return BigInt(String(value));\n } catch {\n return null;\n }\n }\n\n public str(field: string | FieldHandle): string | null {\n const value = this.get(field);\n return value === null ? null : String(value);\n }\n\n public toObject(): Record<string, unknown> {\n const out: Record<string, unknown> = { timestampUs: this.timestampUs, topic: this.topic };\n for (const field of this.update.fields) {\n out[field] = this.get(field);\n }\n return out;\n }\n}\n\nexport class ArrowSubscription implements AsyncIterator<Table>, AsyncIterable<Table> {\n public constructor(private readonly inner: NativeSubscription) {}\n\n public async next(): Promise<IteratorResult<Table>> {\n try {\n const batch = await this.inner.nextArrow();\n if (batch === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: toArrowTableFromNative(batch) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Table[]> {\n try {\n const drained = await this.inner.unsubscribeArrow(drain);\n return drained?.map(toArrowTableFromNative) ?? [];\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\nexport class Subscription implements AsyncIterator<Tick>, AsyncIterable<Tick> {\n private readonly inner: NativeSubscription;\n\n public constructor(inner: NativeSubscription) {\n this.inner = inner;\n }\n\n public async next(): Promise<IteratorResult<Tick>> {\n try {\n const update = await this.inner.nextUpdate();\n if (update === null) {\n return { done: true, value: undefined };\n }\n return { done: false, value: new Tick(update) };\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async add(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.add(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async remove(tickers: readonly string[]): Promise<void> {\n try {\n await this.inner.remove(tickers);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async unsubscribe(drain = false): Promise<Tick[]> {\n try {\n const drained = await this.inner.unsubscribe(drain);\n if (drained === null) {\n return [];\n }\n return drained.map((update) => new Tick(update));\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public field(name: string): FieldHandle {\n return new FieldHandle(name);\n }\n\n public arrow(): ArrowSubscription {\n return new ArrowSubscription(this.inner);\n }\n\n public get tickers(): string[] {\n return this.inner.tickers;\n }\n\n public get fields(): string[] {\n return this.inner.fields;\n }\n\n public get isActive(): boolean {\n return this.inner.isActive;\n }\n\n public get stats(): SubscriptionStats {\n return this.inner.stats;\n }\n\n public [Symbol.asyncIterator](): this {\n return this;\n }\n}\n\n// ── Engine class ────────────────────────────────────────────────────────\n\nexport class Engine {\n // Set via constructor or via `withConfig` (which instantiates via Object.create).\n private inner!: NativeEngine;\n\n public constructor(host = 'localhost', port = 8194) {\n try {\n this.inner = new native.JsEngine(host, port);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n /** Allocate an Engine around an already-constructed native engine. */\n private static fromInner(inner: NativeEngine): Engine {\n const maybeEngine: unknown = Object.create(Engine.prototype);\n if (!(maybeEngine instanceof Engine)) {\n throw new TypeError('Failed to allocate Engine instance');\n }\n maybeEngine.inner = inner;\n return maybeEngine;\n }\n\n public static withConfig(config: EngineConfig = {}): Engine {\n try {\n return Engine.fromInner(native.JsEngine.withConfig(config));\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n /**\n * Connect asynchronously: the Bloomberg session connect and service warmup\n * run off the JS thread. The sync constructor and `withConfig` block the\n * Node event loop for the duration of the connect (seconds, up to the 30s\n * session timeout) — prefer this factory in servers.\n */\n public static async connect(config?: EngineConfig): Promise<Engine> {\n try {\n const inner =\n config === undefined\n ? await native.JsEngine.connect()\n : await native.JsEngine.connectWithConfig(config);\n return Engine.fromInner(inner);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async request(params: RequestInput): Promise<unknown> {\n const backend = normalizeBackend(params.backend);\n const { backend: _discarded, ...nativeParams } = params;\n try {\n const buffer = await this.inner.request(nativeParams);\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async requestRaw(params: RequestInput): Promise<Buffer> {\n try {\n return await this.inner.request(params);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async bdp(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'refdata',\n fields,\n format: options.format,\n includeSecurityErrors: Boolean(options.includeSecurityErrors),\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bds(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdpOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n extractor: 'bulk',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'ReferenceDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n validateFields: options.validateFields,\n });\n }\n\n public async bdh(\n tickers: readonly string[],\n fields: readonly string[],\n options: BdhOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDate: formatDate(options.end),\n extractor: 'histdata',\n fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'HistoricalDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n securities: tickers,\n service: '//blp/refdata',\n startDate: formatDate(options.start),\n validateFields: options.validateFields,\n });\n }\n\n public async bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventType: options.eventType ?? 'TRADE',\n extractor: 'intraday_bar',\n interval: options.interval ?? 1,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'IntradayBarRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n endDatetime: formatDateTime(options.end),\n eventTypes: options.eventTypes ?? ['TRADE'],\n extractor: 'intraday_tick',\n kwargs: buildBdtickKwargs(options),\n operation: 'IntradayTickRequest',\n outputTz: options.outputTz,\n requestTz: options.requestTz,\n security: ticker,\n service: '//blp/refdata',\n startDatetime: formatDateTime(options.start),\n });\n }\n\n public async bql(query: string, options: BqlOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'expression', value: toRequestString(query) }],\n extractor: 'bql',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'sendQuery',\n service: '//blp/bqlsvc',\n });\n }\n\n public async beqs(screen: string, options: BeqsOptions = {}): Promise<unknown> {\n const elements: StringPair[] = [\n { key: 'screenName', value: toRequestString(screen) },\n { key: 'screenType', value: toRequestString(options.screenType ?? 'PRIVATE') },\n { key: 'Group', value: toRequestString(options.group ?? 'General') },\n ];\n if (options.asof !== undefined) {\n const asofFormatted = formatDate(options.asof);\n if (asofFormatted !== undefined) {\n elements.push({ key: 'asOfDate', value: asofFormatted });\n }\n }\n const overrides: OverridesMap = { ...options.overrides };\n return await this.request({\n backend: options.backend,\n elements,\n extractor: 'generic',\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'BeqsRequest',\n overrides: mapObjectToPairs(overrides),\n service: '//blp/refdata',\n });\n }\n\n public async bsrch(searchSpec: string, options: BsrchOptions = {}): Promise<unknown> {\n const elements: OverridesMap = {\n Domain: toRequestString(searchSpec),\n ...options.overrides,\n ...options.kwargs,\n };\n return await this.request({\n backend: options.backend,\n elements: mapObjectToPairs(elements),\n extractor: 'bsrch',\n format: options.format,\n operation: 'ExcelGetGridRequest',\n service: '//blp/exrsvc',\n });\n }\n\n public async bta(\n ticker: string,\n study: string | RawStudy,\n options: BtaOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: buildTaRequest(ticker, study, options),\n extractor: 'generic',\n format: options.format,\n operation: 'studyRequest',\n service: '//blp/tasvc',\n });\n }\n\n public async bflds(options: BfldsOptions = {}): Promise<unknown> {\n if (options.searchSpec !== undefined) {\n return await this.request({\n backend: options.backend,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldSearchRequest',\n searchSpec: toRequestString(options.searchSpec),\n service: '//blp/apiflds',\n });\n }\n const fields = toStringArray(options.fields);\n return await this.request({\n backend: options.backend,\n fieldIds: fields,\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'FieldInfoRequest',\n service: '//blp/apiflds',\n });\n }\n\n public async blkp(query: string, options: BlkpOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(query) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'instrumentListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bport(\n portfolio: string,\n fields: string | readonly string[],\n options: RequestOptions = {},\n ): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n fields: Array.isArray(fields) ? fields : [toRequestString(fields)],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'PortfolioDataRequest',\n overrides: mapObjectToPairs(options.overrides),\n security: toRequestString(portfolio),\n service: '//blp/refdata',\n });\n }\n\n public async bcurves(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'curveListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async bgovts(ticker: string, options: RequestOptions = {}): Promise<unknown> {\n return await this.request({\n backend: options.backend,\n elements: [{ key: 'query', value: toRequestString(ticker) }],\n format: options.format,\n kwargs: mapObjectToPairs(options.kwargs),\n operation: 'govtListRequest',\n service: '//blp/instruments',\n });\n }\n\n public async resolveFieldTypes(\n fields: readonly string[],\n overrides?: OverridesMap,\n defaultType = 'string',\n ): Promise<Record<string, string>> {\n const items = await this.inner.resolveFieldTypes(\n fields,\n mapObjectToPairs(overrides),\n defaultType,\n );\n return Object.fromEntries(items.map((item) => [item.key, item.value]));\n }\n\n public getFieldInfo(field: string): FieldInfo | null {\n return this.inner.getFieldInfo(field);\n }\n\n public clearFieldCache(): void {\n this.inner.clearFieldCache();\n }\n\n public saveFieldCache(): void {\n this.inner.saveFieldCache();\n }\n\n public async validateFields(fields: readonly string[]): Promise<string[]> {\n return await this.inner.validateFields(fields);\n }\n\n public isFieldValidationEnabled(): boolean {\n return this.inner.isFieldValidationEnabled();\n }\n\n public async getSchema(service: string): Promise<unknown> {\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async getOperation(service: string, operation: string): Promise<unknown> {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n\n public async listOperations(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public getCachedSchema(service: string): unknown {\n const json = this.inner.getCachedSchema(service);\n return json === null ? null : (JSON.parse(json) as unknown);\n }\n\n public invalidateSchema(service: string): void {\n this.inner.invalidateSchema(service);\n }\n\n public clearSchemaCache(): void {\n this.inner.clearSchemaCache();\n }\n\n public listCachedSchemas(): string[] {\n return this.inner.listCachedSchemas();\n }\n\n public async getEnumValues(\n service: string,\n operation: string,\n element: string,\n ): Promise<string[] | null> {\n return await this.inner.getEnumValues(service, operation, element);\n }\n\n public async listValidElements(service: string, operation: string): Promise<string[] | null> {\n return await this.inner.listValidElements(service, operation);\n }\n\n public async subscribe(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n try {\n const subscriptionOptions = buildStreamSubscriptionOptions(MKTDATA_SERVICE, options);\n const useOptions =\n subscriptionOptions !== undefined ||\n options.flushThreshold !== undefined ||\n options.overflowPolicy !== undefined ||\n options.streamCapacity !== undefined;\n const stream = useOptions\n ? await this.inner.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n subscriptionOptions,\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n )\n : await this.inner.subscribe(tickers, fields, options.allFields);\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async subscribeWithOptions(\n service: string,\n tickers: readonly string[],\n fields: readonly string[],\n options?: readonly string[],\n flushThreshold?: number,\n overflowPolicy?: string,\n streamCapacity?: number,\n allFields?: boolean,\n ): Promise<Subscription> {\n try {\n const stream = await this.inner.subscribeWithOptions(\n service,\n tickers,\n fields,\n options,\n flushThreshold,\n overflowPolicy,\n streamCapacity,\n allFields,\n );\n return new Subscription(stream);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public signalShutdown(): void {\n this.inner.signalShutdown();\n }\n\n public isAvailable(): boolean {\n return this.inner.isAvailable();\n }\n\n public async stream(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n MKTDATA_SERVICE,\n tickers,\n fields,\n buildStreamSubscriptionOptions(MKTDATA_SERVICE, options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async vwap(\n tickers: readonly string[],\n fields: readonly string[],\n options: StreamOptions = {},\n ): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktvwap',\n tickers,\n fields,\n buildStreamSubscriptionOptions('//blp/mktvwap', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async mktbar(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktbar',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktbar', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async depth(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktdepthdata',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktdepthdata', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async chains(ticker: string, options: StreamOptions = {}): Promise<Subscription> {\n return await this.subscribeWithOptions(\n '//blp/mktlist',\n [ticker],\n options.fields ?? [],\n buildStreamSubscriptionOptions('//blp/mktlist', options),\n options.flushThreshold,\n options.overflowPolicy,\n options.streamCapacity,\n options.allFields,\n );\n }\n\n public async bops(service: string): Promise<string[]> {\n return await this.inner.listOperations(service);\n }\n\n public async bschema(service: string, operation?: string): Promise<unknown> {\n if (operation !== undefined) {\n const json = await this.inner.getOperation(service, operation);\n return JSON.parse(json) as unknown;\n }\n const json = await this.inner.getSchema(service);\n return JSON.parse(json) as unknown;\n }\n\n public async fieldInfo(\n fields: string | readonly string[],\n options: BfldsOptions = {},\n ): Promise<unknown> {\n return await this.bflds({\n fields: toStringArray(fields),\n ...options,\n });\n }\n\n public async fieldSearch(searchSpec: string, options: BfldsOptions = {}): Promise<unknown> {\n return await this.bflds({ searchSpec: toRequestString(searchSpec), ...options });\n }\n\n // ── Recipes ─────────────────────────────────────────────────────────\n\n public async bqr(ticker: string, options: BqrOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeBqr(\n toRequestString(ticker),\n formatDateTime(options.startDatetime),\n formatDateTime(options.endDatetime),\n options.eventTypes ?? null,\n options.includeBrokerCodes !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async yas(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: YasOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeYas(\n toStringArray(tickers),\n toStringArray(fields),\n formatDate(options.settleDt),\n options.yieldType ?? undefined,\n options.spread ?? undefined,\n options.yieldVal ?? undefined,\n options.price ?? undefined,\n options.benchmark ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async preferreds(equityTicker: string, options: PreferredsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipePreferreds(\n toRequestString(equityTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async corporateBonds(\n ticker: string,\n options: CorporateBondsOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCorporateBonds(\n toRequestString(ticker),\n options.ccy ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.activeOnly !== false,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futTicker(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFutTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeFutures(\n genTicker: string,\n dt: DateLike,\n options: FuturesResolveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveFutures(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.freq ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async futuresCurve(\n genTicker: string,\n options: FuturesCurveOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeFuturesCurve(\n toRequestString(genTicker),\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n options.chainField ?? undefined,\n options.fields !== undefined ? toStringArray(options.fields) : null,\n options.maxContracts ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async cdxTicker(\n genTicker: string,\n dt: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCdxTicker(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async activeCdx(\n genTicker: string,\n dt: DateLike,\n options: ActiveCdxOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeActiveCdx(\n toRequestString(genTicker),\n formatDate(dt) ?? '',\n options.lookbackDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividend(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividend(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dvdType ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async dividendYield(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: DividendYieldOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeDividendYield(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.dividendTypes !== undefined ? toStringArray(options.dividendTypes) : null,\n options.windowDays ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async turnover(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: TurnoverOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeTurnover(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n options.ccy ?? undefined,\n options.factor ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async etfHoldings(etfTicker: string, options: EtfHoldingsOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeEtfHoldings(\n toRequestString(etfTicker),\n options.fields !== undefined ? toStringArray(options.fields) : null,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async volSurface(\n tickers: string | readonly string[],\n startDate: DateLike,\n endDate: DateLike,\n options: VolSurfaceOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeVolSurface(\n toStringArray(tickers),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n normalizeVolPresets(options.preset ?? 'MONEYNESS_30D'),\n normalizeVolFieldSpecs(options.fields),\n options.asDecimal ?? true,\n options.includeDerived ?? false,\n options.riskFreeRate ?? undefined,\n options.dividendYieldField ?? undefined,\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async indexMembers(index: string, options: IndexMembersOptions = {}): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIndexMembers(\n toRequestString(index),\n options.field ?? undefined,\n options.asof === undefined ? undefined : (formatDate(options.asof) ?? ''),\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async resolveIsins(\n isins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeResolveIsins(toStringArray(isins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async issuerIsins(\n bondIsins: string | readonly string[],\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeIssuerIsins(toStringArray(bondIsins));\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n\n public async currencyConversion(\n ticker: string,\n targetCcy: string,\n startDate: DateLike,\n endDate: DateLike,\n options: RecipeBackendOptions = {},\n ): Promise<unknown> {\n const backend = normalizeBackend(options.backend);\n try {\n const buffer = await this.inner.recipeCurrencyConversion(\n toRequestString(ticker),\n toRequestString(targetCcy),\n formatDate(startDate) ?? '',\n formatDate(endDate) ?? '',\n );\n return ipcToBackend(buffer, backend);\n } catch (error) {\n throw wrapError(error);\n }\n }\n}\n\n// ── Top-level wrappers ──────────────────────────────────────────────────\n\nexport async function connect(config?: EngineConfig): Promise<Engine> {\n return await Engine.connect(config);\n}\n\nexport function configure(config?: EngineConfig): EngineConfig | undefined;\nexport function configure(host?: string, port?: number): EngineConfig | undefined;\nexport function configure(\n configOrHost?: EngineConfig | string,\n port?: number,\n): EngineConfig | undefined {\n configuredEngineConfig = normalizeConfigureArgs(configOrHost, port);\n clearConfiguredEngine();\n return configuredEngineConfig;\n}\n\nexport async function abdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function bdp(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abdp(tickers, fields, options);\n}\n\nexport async function abdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n start?: DateLike | BdhOptions,\n end?: DateLike,\n options: BdhOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // ``BdhOptions`` is a plain object literal; Dates / Luxon DateTimes are\n // Typed objects so they fall through to the date-typed branch.\n if (isBdhOptionsInput(start)) {\n if (end !== undefined) {\n throw new TypeError('abdh options object cannot be combined with a positional end date');\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), start);\n }\n return await engine.bdh(toStringArray(tickers), toStringArray(fields), {\n ...options,\n end,\n start,\n });\n}\n\nexport async function bdh(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdhOptions = {},\n): Promise<unknown> {\n return await abdh(tickers, fields, options);\n}\n\nexport async function abds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n overrides?: OverridesMap,\n options: BdpOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n const normalizedOptions: BdpOptions = isPlainObject(overrides)\n ? { ...options, overrides: { ...options.overrides, ...overrides } }\n : options;\n return await engine.bds(toStringArray(tickers), toStringArray(fields), normalizedOptions);\n}\n\nexport async function bds(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: BdpOptions = {},\n): Promise<unknown> {\n return await abds(tickers, fields, undefined, options);\n}\n\nexport async function abdib(\n ticker: string,\n dt?: DateTimeLike | BdibOptions,\n interval: number | BdibOptions = 1,\n options: BdibOptions = {},\n): Promise<unknown> {\n const engine = await getConfiguredEngine();\n // Distinguish a BdibOptions plain object from a Date / Luxon DateTime, both\n // Of which would also pass an ``isPlainObject`` check on bare typeof checks.\n if (isBdibOptionsInput(dt) && interval === 1 && Object.keys(options).length === 0) {\n return await engine.bdib(toRequestString(ticker), dt);\n }\n const normalizedOptions: BdibOptions = isBdibOptionsInput(interval)\n ? { ...interval }\n : { ...options, interval: typeof interval === 'number' ? interval : 1 };\n if (normalizedOptions.start === undefined && normalizedOptions.end === undefined) {\n if (dt === undefined || isBdibOptionsInput(dt)) {\n throw new TypeError('abdib requires dt or explicit start/end options');\n }\n const range = fullDayRange(dt);\n normalizedOptions.start = range.start;\n normalizedOptions.end = range.end;\n }\n return await engine.bdib(toRequestString(ticker), normalizedOptions);\n}\n\nexport async function bdib(ticker: string, options: BdibOptions = {}): Promise<unknown> {\n return await abdib(ticker, options);\n}\n\nexport async function abdtick(\n ticker: string,\n start: DateTimeLike | null | undefined,\n end: DateTimeLike | null | undefined,\n options: BdtickOptions = {},\n): Promise<unknown> {\n if (start === undefined || start === null || end === undefined || end === null) {\n throw new TypeError('abdtick requires both start and end datetimes');\n }\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), { ...options, end, start });\n}\n\nexport async function bdtick(ticker: string, options: BdtickOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdtick(toRequestString(ticker), options);\n}\n\nexport async function asubscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n const engine = await getConfiguredEngine();\n return await engine.subscribe(toStringArray(tickers), toStringArray(fields), options);\n}\n\nexport async function subscribe(\n tickers: string | readonly string[],\n fields: string | readonly string[],\n options: StreamOptions = {},\n): Promise<Subscription> {\n return await asubscribe(tickers, fields, options);\n}\n\nasync function acdxInfo(ticker: string, options: BdpOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp([toRequestString(ticker)], [...CDX_INFO_FIELDS], options);\n}\n\nasync function acdxPricing(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_PRICING_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nasync function acdxRisk(ticker: string, options: CdxOptions = {}): Promise<unknown> {\n const engine = await getConfiguredEngine();\n return await engine.bdp(\n [toRequestString(ticker)],\n [...CDX_RISK_FIELDS],\n normalizeRecoveryOptions(options),\n );\n}\n\nexport const blp = Object.freeze({\n abdh,\n abdib,\n abdp,\n abds,\n abdtick,\n asubscribe,\n bdh,\n bdib,\n bdp,\n bds,\n bdtick,\n subscribe,\n});\n\nexport const ext = Object.freeze({\n buildCorporateBondsQuery: native.extBuildCorporateBondsQuery,\n\n buildEarningHeaderRename: native.extBuildEarningHeaderRename,\n buildEtfHoldingsQuery: native.extBuildEtfHoldingsQuery,\n\n buildFuturesTicker: native.extBuildFuturesTicker,\n buildFxPair: native.extBuildFxPair,\n\n buildPreferredsQuery: native.extBuildPreferredsQuery,\n buildYasOverrides: native.extBuildYasOverrides,\n calculateLevelPercentages: native.extCalculateLevelPercentages,\n cdx: Object.freeze({\n acdx_info: acdxInfo,\n acdx_pricing: acdxPricing,\n acdx_risk: acdxRisk,\n }),\n cdxGenToSpecific: native.extCdxGenToSpecific,\n\n clearExchangeOverride: native.extClearExchangeOverride,\n contractIndex: native.extContractIndex,\n currenciesNeedingConversion: native.extCurrenciesNeedingConversion,\n defaultBqrDatetimes: native.extDefaultBqrDatetimes,\n defaultTurnoverDates: native.extDefaultTurnoverDates,\n\n deriveSessions: native.extDeriveSessions,\n filterCandidatesByCycle: native.extFilterCandidatesByCycle,\n filterEquityTickers: native.extFilterEquityTickers,\n\n filterValidContracts: native.extFilterValidContracts,\n fmtDate: native.extFmtDate,\n generateFuturesCandidates: native.extGenerateFuturesCandidates,\n\n getDvdCols: native.extGetDvdCols,\n getDvdType: native.extGetDvdType,\n\n getDvdTypes: native.extGetDvdTypes,\n getEtfCols: native.extGetEtfCols,\n getExchangeOverride: native.extGetExchangeOverride,\n getFuturesMonths: native.extGetFuturesMonths,\n getMarketRule: native.extGetMarketRule,\n getMonthCode: native.extGetMonthCode,\n getMonthName: native.extGetMonthName,\n\n inferTimezone: native.extInferTimezone,\n\n isLongFormat: native.extIsLongFormat,\n isSpecificContract: native.extIsSpecificContract,\n\n listExchangeOverrides: native.extListExchangeOverrides,\n normalizeTickers: native.extNormalizeTickers,\n parseCdxTicker: native.extParseCdxTicker,\n\n parseDate: native.extParseDate,\n parseTicker: native.extParseTicker,\n\n pivotToWide: native.extPivotToWide,\n previousCdxSeries: native.extPreviousCdxSeries,\n renameDividendColumns: native.extRenameDividendColumns,\n renameEtfColumns: native.extRenameEtfColumns,\n sameCurrency: native.extSameCurrency,\n sessionTimesToUtc: native.extSessionTimesToUtc,\n setExchangeOverride: native.extSetExchangeOverride,\n validateGenericTicker: native.extValidateGenericTicker,\n});\n\nexport function version(): string {\n return packageJson.version;\n}\n\nexport const { setLogLevel } = native;\nexport const { getLogLevel } = native;\n\n// Issue #317: native datetime/date acceptance helpers, re-exported.\nexport { formatDate, formatDateTime } from './dates';\n\nexport {\n BlpError,\n BlpSessionError,\n BlpLimitError,\n BlpRequestError,\n BlpValidationError,\n BlpTimeoutError,\n BlpInternalError,\n wrapError,\n};\n\nexport type {\n ActiveCdxOptions,\n AuthConfig,\n BackendKind,\n BdhOptions,\n BdibOptions,\n BdpOptions,\n BdtickOptions,\n BeqsOptions,\n BfldsOptions,\n BlkpOptions,\n BqlOptions,\n BqrOptions,\n BsrchOptions,\n BtaOptions,\n CdxOptions,\n CdxTickerInfo,\n CorporateBondsOptions,\n DateLike,\n DateTimeLike,\n DividendOptions,\n DividendYieldOptions,\n EngineConfig,\n EtfHoldingsOptions,\n ExchangeInfoResult,\n ExchangeOverrideInput,\n FieldInfo,\n FormatKind,\n FuturesCandidate,\n FuturesResolveOptions,\n FuturesCurveOptions,\n FxPairInfo,\n MarketRule,\n OverridesMap,\n IndexMembersOptions,\n PreferredsOptions,\n PrimitiveValue,\n RecipeBackendOptions,\n RequestInput,\n RequestOptions,\n ServerAddress,\n SessionWindowsInfo,\n Socks5Config,\n StreamOptions,\n StringPair,\n SubscriptionStats,\n TickerParts,\n TimeRange,\n TlsConfig,\n TurnoverOptions,\n VolFieldSpec,\n VolSurfaceOptions,\n VolSurfacePreset,\n YasOptions,\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xbbg/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Independent Node.js client for Bloomberg-connected data workflows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apache-arrow",
|
|
@@ -103,9 +103,9 @@
|
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
"optionalDependencies": {
|
|
106
|
-
"@xbbg/core-darwin-arm64": "1.
|
|
107
|
-
"@xbbg/core-linux-x64": "1.
|
|
108
|
-
"@xbbg/core-win32-x64": "1.
|
|
106
|
+
"@xbbg/core-darwin-arm64": "1.3.0",
|
|
107
|
+
"@xbbg/core-linux-x64": "1.3.0",
|
|
108
|
+
"@xbbg/core-win32-x64": "1.3.0"
|
|
109
109
|
},
|
|
110
110
|
"engines": {
|
|
111
111
|
"node": ">=24"
|