@1sat/permission-module 0.0.50 → 0.0.52
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/apply.d.ts +1 -1
- package/dist/apply.d.ts.map +1 -1
- package/dist/apply.js +3 -3
- package/dist/apply.js.map +1 -1
- package/dist/apply.test.js +48 -43
- package/dist/apply.test.js.map +1 -1
- package/dist/basketAccess.d.ts +40 -0
- package/dist/basketAccess.d.ts.map +1 -0
- package/dist/basketAccess.js +238 -0
- package/dist/basketAccess.js.map +1 -0
- package/dist/buildPromptIntent.d.ts +15 -0
- package/dist/buildPromptIntent.d.ts.map +1 -0
- package/dist/buildPromptIntent.js +575 -0
- package/dist/buildPromptIntent.js.map +1 -0
- package/dist/createOneSatPermissionModule.d.ts +10 -5
- package/dist/createOneSatPermissionModule.d.ts.map +1 -1
- package/dist/createOneSatPermissionModule.js +28 -6
- package/dist/createOneSatPermissionModule.js.map +1 -1
- package/dist/enrichIntent.d.ts +121 -5
- package/dist/enrichIntent.d.ts.map +1 -1
- package/dist/enrichIntent.js +576 -137
- package/dist/enrichIntent.js.map +1 -1
- package/dist/handlers.d.ts +12 -32
- package/dist/handlers.d.ts.map +1 -1
- package/dist/handlers.js +121 -155
- package/dist/handlers.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/listOutputsScope.test.d.ts +2 -0
- package/dist/listOutputsScope.test.d.ts.map +1 -0
- package/dist/listOutputsScope.test.js +126 -0
- package/dist/listOutputsScope.test.js.map +1 -0
- package/dist/promptModel.d.ts +115 -0
- package/dist/promptModel.d.ts.map +1 -0
- package/dist/promptModel.js +7 -0
- package/dist/promptModel.js.map +1 -0
- package/dist/types.d.ts +36 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/verifyIntent.d.ts +4 -4
- package/dist/verifyIntent.d.ts.map +1 -1
- package/dist/verifyIntent.js +120 -40
- package/dist/verifyIntent.js.map +1 -1
- package/dist/viewScope.d.ts +51 -0
- package/dist/viewScope.d.ts.map +1 -0
- package/dist/viewScope.js +113 -0
- package/dist/viewScope.js.map +1 -0
- package/dist/viewScope.test.d.ts +2 -0
- package/dist/viewScope.test.d.ts.map +1 -0
- package/dist/viewScope.test.js +60 -0
- package/dist/viewScope.test.js.map +1 -0
- package/package.json +42 -42
|
@@ -1,24 +1,28 @@
|
|
|
1
|
+
import { PERMISSION_SCHEMES, PERMISSION_SCHEME_IDS, basketForScheme, } from '@1sat/types';
|
|
1
2
|
import { CommitmentCache } from './commitmentCache';
|
|
2
3
|
import { handleCreateActionRequest, handleCreateActionResponse, handleCreateSignatureRequest, handleGetPublicKeyRequest, handleInternalizeActionRequest, handleListOutputsRequest, } from './handlers';
|
|
3
4
|
import { DEFAULT_COMMITMENT_TTL_SECONDS, } from './types';
|
|
4
5
|
/**
|
|
5
|
-
* Build a permission module
|
|
6
|
-
* commitments captured at createAction time.
|
|
6
|
+
* Build a permission module for one BRC-99 scheme id.
|
|
7
7
|
*
|
|
8
|
-
* Register
|
|
8
|
+
* Register under that scheme in `WalletPermissionsManager`:
|
|
9
9
|
*
|
|
10
|
-
* const
|
|
10
|
+
* const modules = createAssetPermissionModules({ wallet, promptHandler });
|
|
11
11
|
* new WalletPermissionsManager(wallet, adminOriginator, {
|
|
12
|
-
* permissionModules:
|
|
12
|
+
* permissionModules: modules,
|
|
13
13
|
* });
|
|
14
14
|
*/
|
|
15
15
|
export function createOneSatPermissionModule(args) {
|
|
16
|
+
const schemeId = args.schemeId ?? PERMISSION_SCHEMES.ONESAT;
|
|
17
|
+
const ownedBaskets = new Set((args.baskets ?? [basketForScheme(schemeId)]).map((b) => b.trim().toLowerCase()));
|
|
16
18
|
const cache = new CommitmentCache(args.commitmentTtlSeconds ?? DEFAULT_COMMITMENT_TTL_SECONDS);
|
|
17
19
|
cache.start();
|
|
18
20
|
const deps = {
|
|
19
21
|
wallet: args.wallet,
|
|
20
22
|
promptHandler: args.promptHandler,
|
|
21
23
|
cache,
|
|
24
|
+
schemeId,
|
|
25
|
+
ownedBaskets,
|
|
22
26
|
adminOriginator: args.adminOriginator,
|
|
23
27
|
permissionStore: args.permissionStore,
|
|
24
28
|
services: args.services,
|
|
@@ -39,7 +43,14 @@ export function createOneSatPermissionModule(args) {
|
|
|
39
43
|
return { args: next };
|
|
40
44
|
}
|
|
41
45
|
case 'listOutputs': {
|
|
42
|
-
const next = await handleListOutputsRequest(
|
|
46
|
+
const next = await handleListOutputsRequest({
|
|
47
|
+
schemeId: deps.schemeId,
|
|
48
|
+
ownedBaskets: deps.ownedBaskets,
|
|
49
|
+
promptHandler: deps.promptHandler,
|
|
50
|
+
adminOriginator: deps.adminOriginator,
|
|
51
|
+
permissionStore: deps.permissionStore,
|
|
52
|
+
services: deps.services,
|
|
53
|
+
}, req.args, req.originator);
|
|
43
54
|
return { args: next };
|
|
44
55
|
}
|
|
45
56
|
case 'internalizeAction': {
|
|
@@ -61,4 +72,15 @@ export function createOneSatPermissionModule(args) {
|
|
|
61
72
|
},
|
|
62
73
|
};
|
|
63
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Build one module instance per known asset scheme (`1sat`, `opns`, `bsv21`, `lock`).
|
|
77
|
+
* Hosts spread the result into `permissionModules`.
|
|
78
|
+
*/
|
|
79
|
+
export function createAssetPermissionModules(args) {
|
|
80
|
+
const out = {};
|
|
81
|
+
for (const schemeId of PERMISSION_SCHEME_IDS) {
|
|
82
|
+
out[schemeId] = createOneSatPermissionModule({ ...args, schemeId });
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
64
86
|
//# sourceMappingURL=createOneSatPermissionModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createOneSatPermissionModule.js","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"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"}
|
package/dist/enrichIntent.d.ts
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* before dispatching to permission modules — so we can't read them.
|
|
8
8
|
* What's left:
|
|
9
9
|
*
|
|
10
|
-
* - `args.labels` — unencrypted; carries our `'p
|
|
11
|
-
*
|
|
10
|
+
* - `args.labels` — unencrypted; carries our `'p <scheme> input <key>'`
|
|
11
|
+
* lookup keys
|
|
12
12
|
* - `args.outputs[i].lockingScript` — decode P2PKH for recipient address
|
|
13
13
|
* - `args.outputs[i].satoshis`
|
|
14
14
|
*
|
|
@@ -30,11 +30,101 @@ export interface EnrichedAsset {
|
|
|
30
30
|
tags: string[];
|
|
31
31
|
customInstructions?: string;
|
|
32
32
|
}
|
|
33
|
+
/** Recognized locking-script template for a tx leg. */
|
|
34
|
+
export type ScriptTemplateKind = 'p2pkh' | 'ordlock' | 'lock' | 'pushdrop' | 'sigma' | 'bsv21' | 'unrecognized';
|
|
35
|
+
/**
|
|
36
|
+
* One understood (or partially understood) input or output in the action.
|
|
37
|
+
* Non-ordinal detail and seal callouts; ordinal tip→tip stories use {@link OrdinalEdge}.
|
|
38
|
+
*/
|
|
39
|
+
export interface TxLeg {
|
|
40
|
+
side: 'input' | 'output';
|
|
41
|
+
index: number;
|
|
42
|
+
satoshis: number;
|
|
43
|
+
template: ScriptTemplateKind;
|
|
44
|
+
/** Short human line for this leg. */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Apply will write a signature into this output script. */
|
|
47
|
+
sealPending?: boolean;
|
|
48
|
+
sealKind?: 'pushdrop' | 'sigma';
|
|
49
|
+
basket?: string;
|
|
50
|
+
tags?: string[];
|
|
51
|
+
id?: string;
|
|
52
|
+
outpoint?: string;
|
|
53
|
+
recipient?: string;
|
|
54
|
+
listingPriceSats?: number;
|
|
55
|
+
listingSeller?: string;
|
|
56
|
+
lockUntilHeight?: number;
|
|
57
|
+
opnsProfileName?: string;
|
|
58
|
+
opnsAvatarOrigin?: string;
|
|
59
|
+
origin?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
/** True when this leg is part of an {@link OrdinalEdge} (UI may de-dupe). */
|
|
62
|
+
inOrdinalEdge?: boolean;
|
|
63
|
+
tokenId?: string;
|
|
64
|
+
tokenAmt?: string;
|
|
65
|
+
tokenSym?: string;
|
|
66
|
+
tokenOp?: string;
|
|
67
|
+
isIndexerFee?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Ordinal (or OpNS-like 1-sat collectable) tip→tip story.
|
|
71
|
+
* Derived from input/output shape — same vocabulary as BRC-303 operation table.
|
|
72
|
+
*/
|
|
73
|
+
export type OrdinalOperation = 'inscribe' | 'transfer' | 'burn' | 'list' | 'cancel-listing' | 'purchase'
|
|
74
|
+
/** OpNS self-spend into signed PushDrop bind. */
|
|
75
|
+
| 'register'
|
|
76
|
+
/** OpNS unpublish / drop bind (when detectable). */
|
|
77
|
+
| 'unregister';
|
|
78
|
+
export interface OrdinalEdge {
|
|
79
|
+
operation: OrdinalOperation;
|
|
80
|
+
title: string;
|
|
81
|
+
summary: string;
|
|
82
|
+
/** Wallet-owned spend when known from input labels. */
|
|
83
|
+
spend?: {
|
|
84
|
+
basket: string;
|
|
85
|
+
id: string;
|
|
86
|
+
outpoint: string;
|
|
87
|
+
satoshis: number;
|
|
88
|
+
tags: string[];
|
|
89
|
+
name?: string;
|
|
90
|
+
origin?: string;
|
|
91
|
+
isListing?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/** Resulting collectable / listing output when present. */
|
|
94
|
+
create?: {
|
|
95
|
+
index: number;
|
|
96
|
+
satoshis: number;
|
|
97
|
+
basket?: string;
|
|
98
|
+
tags: string[];
|
|
99
|
+
template?: ScriptTemplateKind;
|
|
100
|
+
sealPending?: boolean;
|
|
101
|
+
sealKind?: 'pushdrop' | 'sigma';
|
|
102
|
+
recipient?: string;
|
|
103
|
+
listingPriceSats?: number;
|
|
104
|
+
listingSeller?: string;
|
|
105
|
+
opnsProfileName?: string;
|
|
106
|
+
opnsAvatarOrigin?: string;
|
|
107
|
+
name?: string;
|
|
108
|
+
origin?: string;
|
|
109
|
+
/** Best-effort content type from tags (`type:image/png`). */
|
|
110
|
+
contentType?: string;
|
|
111
|
+
/** UTF-8 body decoded from the output inscription script. */
|
|
112
|
+
inscriptionText?: string;
|
|
113
|
+
/** `data:image/…;base64,…` from the output inscription script. */
|
|
114
|
+
inscriptionDataUrl?: string;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
33
117
|
export interface EnrichedOutput {
|
|
34
118
|
index: number;
|
|
35
119
|
satoshis: number;
|
|
36
120
|
basket?: string;
|
|
37
121
|
tags: string[];
|
|
122
|
+
template?: ScriptTemplateKind;
|
|
123
|
+
/** Raw locking script hex (for re-decode at panel build). */
|
|
124
|
+
lockingScript?: string;
|
|
125
|
+
/** Apply will seal a placeholder signature in this output. */
|
|
126
|
+
sealPending?: boolean;
|
|
127
|
+
sealKind?: 'pushdrop' | 'sigma';
|
|
38
128
|
/** Recipient address if the locking script is P2PKH (or P2PKH-suffixed). */
|
|
39
129
|
recipient?: string;
|
|
40
130
|
/**
|
|
@@ -62,6 +152,24 @@ export interface EnrichedOutput {
|
|
|
62
152
|
opnsProfileName?: string;
|
|
63
153
|
/** Avatar origin outpoint (`txid_vout`) decoded from an OpNS bind. */
|
|
64
154
|
opnsAvatarOrigin?: string;
|
|
155
|
+
/** Case-preserving display name from customInstructions when present. */
|
|
156
|
+
customInstructions?: string;
|
|
157
|
+
/** BSV21 token id from script (or tags). */
|
|
158
|
+
tokenId?: string;
|
|
159
|
+
/** BSV21 amount string from script (or tags). */
|
|
160
|
+
tokenAmt?: string;
|
|
161
|
+
/** BSV21 symbol when present on script/tags. */
|
|
162
|
+
tokenSym?: string;
|
|
163
|
+
/** BSV21 op from script (`transfer`, `mint`, …). */
|
|
164
|
+
tokenOp?: string;
|
|
165
|
+
/** True when tags mark this as an overlay indexer fee. */
|
|
166
|
+
isIndexerFee?: boolean;
|
|
167
|
+
/** MIME from Inscription.decode on the locking script. */
|
|
168
|
+
inscriptionType?: string;
|
|
169
|
+
/** UTF-8 inscription body (text/json/html), from the script. */
|
|
170
|
+
inscriptionText?: string;
|
|
171
|
+
/** Image/svg data URL from the script. */
|
|
172
|
+
inscriptionDataUrl?: string;
|
|
65
173
|
}
|
|
66
174
|
export type TrustState = 'verified' | 'unverified' | 'mismatch';
|
|
67
175
|
export interface EnrichedTrust {
|
|
@@ -70,12 +178,20 @@ export interface EnrichedTrust {
|
|
|
70
178
|
}
|
|
71
179
|
export interface EnrichedIntent {
|
|
72
180
|
kind: EnrichedIntentKind;
|
|
73
|
-
/**
|
|
74
|
-
p1satIntent?: string;
|
|
75
|
-
/** One entry per `'p 1sat input <basket> <id>'` label. */
|
|
181
|
+
/** One entry per `'p <scheme> input <key>'` label. */
|
|
76
182
|
inputs: EnrichedAsset[];
|
|
77
183
|
/** All raw outputs with recipient decoded from script. */
|
|
78
184
|
outputs: EnrichedOutput[];
|
|
185
|
+
/**
|
|
186
|
+
* Per-leg detail for the prompt body (templates, seals, non-ordinal outs).
|
|
187
|
+
* Header still uses `kind` / `summary`.
|
|
188
|
+
*/
|
|
189
|
+
legs: TxLeg[];
|
|
190
|
+
/**
|
|
191
|
+
* Ordinal/OpNS tip→tip operations (send, list, buy, …).
|
|
192
|
+
* Rich UI helpers key off `operation`, not whole-tx kind alone.
|
|
193
|
+
*/
|
|
194
|
+
ordinalEdges: OrdinalEdge[];
|
|
79
195
|
labels: string[];
|
|
80
196
|
summary: string;
|
|
81
197
|
/** ORDFS or compatible content URL builder. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichIntent.d.ts","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"enrichIntent.d.ts","sourceRoot":"","sources":["../src/enrichIntent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAuBH,OAAO,KAAK,EACX,gBAAgB,EAEhB,eAAe,EAEf,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAsCnD,MAAM,MAAM,kBAAkB,GAC3B,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,GACN,QAAQ,GACR,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,MAAM,GACN,SAAS,CAAA;AAEZ,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAC3B,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,OAAO,GACP,cAAc,CAAA;AAEjB;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACzB,UAAU,GACV,UAAU,GACV,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,UAAU;AACZ,iDAAiD;GAC/C,UAAU;AACZ,oDAAoD;GAClD,YAAY,CAAA;AAEf,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,gBAAgB,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,KAAK,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,2DAA2D;IAC3D,MAAM,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,EAAE,CAAA;QACd,QAAQ,CAAC,EAAE,kBAAkB,CAAA;QAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,6DAA6D;QAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,6DAA6D;QAC7D,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,kEAAkE;QAClE,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;CACD;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC/B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAA;AAE/D,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAA;IACxB,sDAAsD;IACtD,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,0DAA0D;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB;;;OAGG;IACH,IAAI,EAAE,KAAK,EAAE,CAAA;IACb;;;OAGG;IACH,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,iFAAiF;IACjF,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAYD,UAAU,aAAa;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAC/B;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,gBAAgB,EACtB,IAAI,GAAE,aAAkB,GACtB,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAg8BD,wBAAgB,QAAQ,CACvB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GACT,MAAM,GAAG,SAAS,CAOpB"}
|