@xmachines/play-xstate 3.0.0 → 5.0.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/README.md +190 -68
- package/dist/capabilities.d.ts +93 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +4 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/define-player.d.ts +7 -1
- package/dist/define-player.d.ts.map +1 -1
- package/dist/define-player.js +9 -60
- package/dist/define-player.js.map +1 -1
- package/dist/errors.d.ts +64 -23
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +93 -31
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/player-actor.d.ts +73 -137
- package/dist/player-actor.d.ts.map +1 -1
- package/dist/player-actor.js +108 -254
- package/dist/player-actor.js.map +1 -1
- package/dist/routing/build-url.d.ts +8 -1
- package/dist/routing/build-url.d.ts.map +1 -1
- package/dist/routing/build-url.js +34 -54
- package/dist/routing/build-url.js.map +1 -1
- package/dist/routing/derive-current-route.d.ts +12 -38
- package/dist/routing/derive-current-route.d.ts.map +1 -1
- package/dist/routing/derive-current-route.js +24 -82
- package/dist/routing/derive-current-route.js.map +1 -1
- package/dist/routing/derive-initial-route.d.ts +2 -1
- package/dist/routing/derive-initial-route.d.ts.map +1 -1
- package/dist/routing/derive-initial-route.js +13 -2
- package/dist/routing/derive-initial-route.js.map +1 -1
- package/dist/routing/derive-route.d.ts +81 -2
- package/dist/routing/derive-route.d.ts.map +1 -1
- package/dist/routing/derive-route.js +97 -3
- package/dist/routing/derive-route.js.map +1 -1
- package/dist/routing/format-play-route-transitions.d.ts +8 -2
- package/dist/routing/format-play-route-transitions.d.ts.map +1 -1
- package/dist/routing/format-play-route-transitions.js +175 -43
- package/dist/routing/format-play-route-transitions.js.map +1 -1
- package/dist/routing/index.d.ts +1 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/types.d.ts +9 -5
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/state-meta.d.ts +52 -0
- package/dist/state-meta.d.ts.map +1 -0
- package/dist/state-meta.js +77 -0
- package/dist/state-meta.js.map +1 -0
- package/dist/types.d.ts +20 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/view/derive-current-view.d.ts +7 -6
- package/dist/view/derive-current-view.d.ts.map +1 -1
- package/dist/view/derive-current-view.js +7 -6
- package/dist/view/derive-current-view.js.map +1 -1
- package/dist/with-routing.d.ts +45 -0
- package/dist/with-routing.d.ts.map +1 -0
- package/dist/with-routing.js +140 -0
- package/dist/with-routing.js.map +1 -0
- package/dist/with-view.d.ts +57 -0
- package/dist/with-view.d.ts.map +1 -0
- package/dist/with-view.js +158 -0
- package/dist/with-view.js.map +1 -0
- package/package.json +40 -18
- package/dist/guards/compose.d.ts +0 -158
- package/dist/guards/compose.d.ts.map +0 -1
- package/dist/guards/compose.js +0 -188
- package/dist/guards/compose.js.map +0 -1
- package/dist/guards/helpers.d.ts +0 -62
- package/dist/guards/helpers.d.ts.map +0 -1
- package/dist/guards/helpers.js +0 -85
- package/dist/guards/helpers.js.map +0 -1
- package/dist/guards/index.d.ts +0 -20
- package/dist/guards/index.d.ts.map +0 -1
- package/dist/guards/index.js +0 -18
- package/dist/guards/index.js.map +0 -1
- package/dist/guards/types.d.ts +0 -22
- package/dist/guards/types.d.ts.map +0 -1
- package/dist/guards/types.js +0 -2
- package/dist/guards/types.js.map +0 -1
package/dist/player-actor.d.ts
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
|
-
import { Actor, type AnyStateMachine, type
|
|
2
|
-
import
|
|
1
|
+
import { Actor, type AnyStateMachine, type AnyMachineSnapshot, type InputFrom, type ActorOptions, type Observer, type Snapshot, type SnapshotFrom, type Subscription, type EventFromLogic } from "xstate";
|
|
2
|
+
import type { PlayActor } from "@xmachines/play-actor";
|
|
3
3
|
import { DISPOSE } from "@xmachines/play";
|
|
4
|
-
import {
|
|
4
|
+
import type { Atom } from "@xmachines/play-atom";
|
|
5
5
|
import type { PlayerOptions } from "./types.js";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Normalizes a failure of the actor for `onError`.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* @internal
|
|
10
|
+
*
|
|
11
|
+
* The function gives an `Error` to the handler without a change. The error of the
|
|
12
|
+
* machine therefore keeps its identity: an `instanceof` test of a consumer still
|
|
13
|
+
* works, and the path without an `onError` throws that same object again. Every
|
|
14
|
+
* other value is ours to build, and it becomes a `PlayError` with a code. That
|
|
15
|
+
* error carries the value from the throw as its `cause`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const toError: (value: unknown) => Error;
|
|
18
|
+
/**
|
|
19
|
+
* The concrete XState actor. It implements the atom protocol of the Play Architecture
|
|
20
|
+
*
|
|
21
|
+
* The class extends the `Actor` class of XState directly, and it implements
|
|
22
|
+
* {@link @xmachines/play-actor!PlayActor}. It gives you the XState v5 integration, and it keeps the
|
|
11
23
|
* compatibility with the ecosystem, such as the XState inspection and the devtools.
|
|
12
24
|
* The constructor of the base class receives the machine. Therefore a `PlayerActor`
|
|
13
25
|
* **is** the XState actor, and it is no wrapper around one: every member of the
|
|
14
26
|
* XState `Actor` class works on the state of this instance, and this class adds the
|
|
15
|
-
* reactive state on the
|
|
27
|
+
* reactive state on the atoms for the observation by the infrastructure.
|
|
16
28
|
*
|
|
17
29
|
* **Capabilities:** the class implements both the
|
|
18
|
-
* {@link @xmachines/play-
|
|
19
|
-
* {@link @xmachines/play-
|
|
30
|
+
* {@link @xmachines/play-router!index.Routable} interface and the
|
|
31
|
+
* {@link @xmachines/play-view!index.Viewable} interface. It therefore supports the
|
|
20
32
|
* routing and the view rendering.
|
|
21
33
|
*
|
|
22
34
|
* **Architectural context:** the class implements **Actor Authority (INV-01)**,
|
|
23
35
|
* because the guards of the XState machine control every decision of the
|
|
24
|
-
* navigation. The infrastructure observes the
|
|
36
|
+
* navigation. The infrastructure observes the atoms of the actor (`state`,
|
|
25
37
|
* `currentRoute`, and `currentView`), but it changes no state directly: every
|
|
26
38
|
* change goes through the event handlers of the state machine.
|
|
27
39
|
*
|
|
@@ -31,7 +43,7 @@ import type { PlayerOptions } from "./types.js";
|
|
|
31
43
|
* The creation of an actor, and its lifecycle
|
|
32
44
|
* ```typescript
|
|
33
45
|
* import { setup } from "xstate";
|
|
34
|
-
* import { definePlayer } from "@xmachines/play-xstate";
|
|
46
|
+
* import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
35
47
|
*
|
|
36
48
|
* const machine = setup({}).createMachine({
|
|
37
49
|
* initial: 'idle',
|
|
@@ -53,33 +65,31 @@ import type { PlayerOptions } from "./types.js";
|
|
|
53
65
|
* const actor = createPlayer();
|
|
54
66
|
* actor.start();
|
|
55
67
|
*
|
|
56
|
-
* // Observe the
|
|
68
|
+
* // Observe the atoms
|
|
57
69
|
* console.log(actor.currentRoute.get()); // '/'
|
|
58
70
|
* console.log(actor.currentView.get()?.root); // 'home'
|
|
59
71
|
* ```
|
|
60
72
|
*
|
|
61
73
|
* @example
|
|
62
|
-
* The
|
|
74
|
+
* The atom lifecycle with a watch
|
|
63
75
|
* ```typescript
|
|
64
|
-
* import {
|
|
76
|
+
* import { watchAtom } from "@xmachines/play-atom";
|
|
65
77
|
*
|
|
66
|
-
* const
|
|
67
|
-
*
|
|
68
|
-
* const pending = watcher.getPending();
|
|
69
|
-
* console.log('State changed:', actor.state.get());
|
|
70
|
-
* });
|
|
78
|
+
* const stop = watchAtom(actor.state, (snapshot) => {
|
|
79
|
+
* console.log('State changed:', snapshot.value);
|
|
71
80
|
* });
|
|
72
81
|
*
|
|
73
|
-
* watcher.watch(actor.state);
|
|
74
82
|
* actor.send({ type: 'play.route', to: '#about' });
|
|
75
|
-
* //
|
|
83
|
+
* // watchAtom delivers the new value from a microtask
|
|
84
|
+
*
|
|
85
|
+
* stop();
|
|
76
86
|
* ```
|
|
77
87
|
*
|
|
78
88
|
* @see [Play RFC](../../docs/rfc/play.md)
|
|
79
89
|
* @see {@link definePlayer} for the creation through a factory
|
|
80
|
-
* @see {@link @xmachines/play-actor!
|
|
81
|
-
* @see {@link @xmachines/play-
|
|
82
|
-
* @see {@link @xmachines/play-
|
|
90
|
+
* @see {@link @xmachines/play-actor!PlayActor} for the atom protocol
|
|
91
|
+
* @see {@link @xmachines/play-router!index.Routable} for the routing capability
|
|
92
|
+
* @see {@link @xmachines/play-view!index.Viewable} for the view rendering capability
|
|
83
93
|
*
|
|
84
94
|
* @remarks
|
|
85
95
|
* **The routing:** this actor supports the `route: {}` config pattern of XState and
|
|
@@ -87,13 +97,27 @@ import type { PlayerOptions } from "./types.js";
|
|
|
87
97
|
* `meta.route`, which is the Stately pattern, for a URL template, and it substitutes
|
|
88
98
|
* each parameter.
|
|
89
99
|
*
|
|
90
|
-
* **The pattern of the view
|
|
91
|
-
* `
|
|
92
|
-
*
|
|
93
|
-
*
|
|
100
|
+
* **The pattern of the view atom:** `withView` of `@xmachines/play-xstate/view` adds
|
|
101
|
+
* `currentView`, and that atom is a COMPUTED atom over `state`. One write for each
|
|
102
|
+
* transition — `state.set(snapshot)` — therefore reaches the view and the route in one
|
|
103
|
+
* flush, and no subscriber reads the new state beside an old derivation. The atom
|
|
104
|
+
* memoizes the result, so a repeated read computes no view again.
|
|
94
105
|
*/
|
|
95
|
-
export declare class PlayerActor<TMachine extends AnyStateMachine> extends
|
|
106
|
+
export declare class PlayerActor<TMachine extends AnyStateMachine> extends Actor<TMachine> implements PlayActor<ReturnType<TMachine["transition"]>, EventFromLogic<TMachine>> {
|
|
96
107
|
private playerOptions?;
|
|
108
|
+
/**
|
|
109
|
+
* The three inputs of the constructor that a CAPABILITY needs.
|
|
110
|
+
*
|
|
111
|
+
* A mixin over a generic base cannot declare a constructor: TypeScript then demands the
|
|
112
|
+
* signature `...args: any[]` (TS2545), which this workspace does not write. A field
|
|
113
|
+
* initializer of a subclass runs after `super()` instead, and it reads these. The
|
|
114
|
+
* routing capability derives `initialRoute` from all three.
|
|
115
|
+
*/
|
|
116
|
+
protected readonly playerMachine: TMachine;
|
|
117
|
+
/** @see {@link playerMachine} */
|
|
118
|
+
protected readonly playerInput: InputFrom<TMachine> | undefined;
|
|
119
|
+
/** @see {@link playerMachine} */
|
|
120
|
+
protected readonly playerRestoredSnapshot: ActorOptions<TMachine>["snapshot"] | undefined;
|
|
97
121
|
/**
|
|
98
122
|
* Tells you if this constructor returned already.
|
|
99
123
|
*
|
|
@@ -120,7 +144,7 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
120
144
|
* one, therefore resets each value of the window to `undefined`. A `declare`
|
|
121
145
|
* modifier emits nothing, and those values survive.
|
|
122
146
|
*/
|
|
123
|
-
|
|
147
|
+
protected get hooks(): PlayerOptions<TMachine>;
|
|
124
148
|
/**
|
|
125
149
|
* The record of the real lifecycle transitions, so that onStart and onStop each
|
|
126
150
|
* fire one time. The status of XState is internal, and a machine snapshot reads
|
|
@@ -137,21 +161,12 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
137
161
|
* times.
|
|
138
162
|
*/
|
|
139
163
|
private nextOnlySubscriptions?;
|
|
140
|
-
|
|
141
|
-
* The last snapshot of the view pipeline. XState notifies each observer on EVERY
|
|
142
|
-
* event that it processes, and an event that it ignores delivers the identical
|
|
143
|
-
* snapshot again. deriveCurrentView is pure in the snapshot. Therefore an identical
|
|
144
|
-
* reference can change no result. The first value is undefined, and never a
|
|
145
|
-
* snapshot: the snapshot of the construction has the same reference as the snapshot
|
|
146
|
-
* that start() replays, and that value therefore stops the first view.
|
|
147
|
-
*/
|
|
148
|
-
private lastViewSnapshot;
|
|
149
|
-
state: Signal.State<ReturnType<TMachine["transition"]>>;
|
|
164
|
+
state: Atom<ReturnType<TMachine["transition"]>>;
|
|
150
165
|
/**
|
|
151
166
|
* Tells you if the current state of the actor accepts the given event.
|
|
152
167
|
*
|
|
153
168
|
* The type is the event union of the machine. An unknown event type is therefore a
|
|
154
|
-
* compile error. The method evaluates the event against the snapshot
|
|
169
|
+
* compile error. The method evaluates the event against the snapshot atom.
|
|
155
170
|
*
|
|
156
171
|
* @example
|
|
157
172
|
* ```typescript
|
|
@@ -159,77 +174,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
159
174
|
* ```
|
|
160
175
|
*/
|
|
161
176
|
can(event: EventFromLogic<TMachine>): boolean;
|
|
162
|
-
/**
|
|
163
|
-
* A TC39 `Signal.Computed`. It derives the current URL path from the `meta.route`
|
|
164
|
-
* template of the active machine state and from the context of the actor.
|
|
165
|
-
*
|
|
166
|
-
* It returns `null` when the current state has no `meta.route` field, and also when
|
|
167
|
-
* it cannot resolve the complete route template. A necessary `:param` that the
|
|
168
|
-
* context does not hold is caught inside the signal, and a
|
|
169
|
-
* `MissingRouteParamError` therefore never leaves `get()`: that condition is
|
|
170
|
-
* temporary during a transition, and the signal computes the value again on the next
|
|
171
|
-
* snapshot.
|
|
172
|
-
*
|
|
173
|
-
* @example
|
|
174
|
-
* ```typescript
|
|
175
|
-
* // It returns "/profile/alice" when context.params.userId === "alice",
|
|
176
|
-
* // and null while the param is still absent.
|
|
177
|
-
* const route = actor.currentRoute.get();
|
|
178
|
-
* ```
|
|
179
|
-
*/
|
|
180
|
-
currentRoute: Signal.Computed<string | null>;
|
|
181
|
-
/**
|
|
182
|
-
* The route of the initial state of the machine. The constructor fixes it, and it
|
|
183
|
-
* never changes, also when the code restores the actor from a snapshot.
|
|
184
|
-
*
|
|
185
|
-
* A router bridge compares it with the browser URL, and it therefore separates a
|
|
186
|
-
* deep link (a URL that is not the initial one → the router wins) from a restore
|
|
187
|
-
* (the initial URL, and the actor at a different route from the restore → the actor
|
|
188
|
-
* wins).
|
|
189
|
-
*
|
|
190
|
-
* `deriveInitialRoute` derives the value statically from the machine definition,
|
|
191
|
-
* with the pure `initialTransition` helper of XState: the chain of the initial states
|
|
192
|
-
* and their `meta.route` templates are fixed at the moment of the machine
|
|
193
|
-
* definition, and the substitution of a `:param` uses the real initial context of
|
|
194
|
-
* the machine for the `input` of this actor. The code makes no second actor, and a
|
|
195
|
-
* snapshot of a restore changes the value never: it is always the **default**
|
|
196
|
-
* initial route of the machine.
|
|
197
|
-
*/
|
|
198
|
-
readonly initialRoute: string | null;
|
|
199
|
-
/**
|
|
200
|
-
* The reactive signal of the current view spec. The signal derives the spec from
|
|
201
|
-
* the `meta.view` metadata of the active state.
|
|
202
|
-
*
|
|
203
|
-
* It emits a **new object reference** on each real change of the view on the
|
|
204
|
-
* screen: the view of a different state, or a change of a param or of the context
|
|
205
|
-
* that changes the resolved spec. A re-entry with `reenter: true` and new params
|
|
206
|
-
* also changes the spec. A snapshot that changes no view on the screen, such as an
|
|
207
|
-
* assign of the context alone, keeps the previous reference. A provider below the
|
|
208
|
-
* signal therefore mounts the UI again not on every event.
|
|
209
|
-
*
|
|
210
|
-
* The `PlaySpec` of the emission carries the context of the machine in its composed
|
|
211
|
-
* `state` field, under the read-only `/context` subtree. A spec therefore reads the
|
|
212
|
-
* context, and also each URL param, through the ordinary state grammar
|
|
213
|
-
* (`{ $state: "/context/params/section" }`). The context-projection module of
|
|
214
|
-
* `@xmachines/play-actor` holds the complete contract.
|
|
215
|
-
*
|
|
216
|
-
* The signal returns `null` when the current state has no `meta.view` metadata.
|
|
217
|
-
*
|
|
218
|
-
* Two states can declare two separate `meta.view` literals with an identical
|
|
219
|
-
* structure. A transition between those two states then emits two different
|
|
220
|
-
* references, and a provider mounts the UI again. Move the shared literal into one
|
|
221
|
-
* `typedSpec` constant, and the identity then removes the duplicate.
|
|
222
|
-
*
|
|
223
|
-
* @example
|
|
224
|
-
* ```typescript
|
|
225
|
-
* const view = actor.currentView.get();
|
|
226
|
-
* if (view) {
|
|
227
|
-
* console.log(view.root); // for example "root"
|
|
228
|
-
* console.log(view.elements); // the Spec elements of @xmachines/json-render-core
|
|
229
|
-
* }
|
|
230
|
-
* ```
|
|
231
|
-
*/
|
|
232
|
-
readonly currentView: Signal.State<PlaySpec | null>;
|
|
233
177
|
constructor(machine: TMachine, options: PlayerOptions<TMachine>, input?: InputFrom<TMachine>, restoredSnapshot?: ActorOptions<TMachine>["snapshot"]);
|
|
234
178
|
/**
|
|
235
179
|
* Starts the actor.
|
|
@@ -275,10 +219,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
275
219
|
* ```
|
|
276
220
|
*/
|
|
277
221
|
send(event: EventFromLogic<TMachine>): void;
|
|
278
|
-
/**
|
|
279
|
-
* Returns the current snapshot
|
|
280
|
-
*/
|
|
281
|
-
getSnapshot(): ReturnType<Actor<TMachine>["getSnapshot"]>;
|
|
282
222
|
/**
|
|
283
223
|
* Subscribes to the snapshot updates of this actor.
|
|
284
224
|
*
|
|
@@ -299,16 +239,6 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
299
239
|
* @returns The subscription, with an `unsubscribe()` method.
|
|
300
240
|
*/
|
|
301
241
|
subscribe(nextListener?: (snapshot: SnapshotFrom<TMachine>) => void, errorListener?: (error: unknown) => void, completeListener?: () => void): Subscription;
|
|
302
|
-
/**
|
|
303
|
-
* Listens for the events that this actor emits with the `emit` action.
|
|
304
|
-
*
|
|
305
|
-
* @param type - The type of the emitted event to listen for, or `"*"` for every event.
|
|
306
|
-
* @param handler - The actor calls it with each emitted event that matches.
|
|
307
|
-
* @returns The subscription, with an `unsubscribe()` method.
|
|
308
|
-
*/
|
|
309
|
-
on<TType extends EmittedFrom<TMachine>["type"] | "*">(type: TType, handler: (emitted: EmittedFrom<TMachine> & (TType extends "*" ? unknown : {
|
|
310
|
-
type: TType;
|
|
311
|
-
})) => void): Subscription;
|
|
312
242
|
/**
|
|
313
243
|
* Returns the persisted snapshot of this actor.
|
|
314
244
|
*
|
|
@@ -317,20 +247,26 @@ export declare class PlayerActor<TMachine extends AnyStateMachine> extends Abstr
|
|
|
317
247
|
*/
|
|
318
248
|
getPersistedSnapshot(options?: unknown): Snapshot<unknown>;
|
|
319
249
|
/**
|
|
320
|
-
*
|
|
321
|
-
* each transition. The signal holds the view, and the code computes it not on each
|
|
322
|
-
* read.
|
|
250
|
+
* The point where a capability derives its own atoms from a new snapshot.
|
|
323
251
|
*
|
|
324
|
-
*
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
*
|
|
252
|
+
* The base derives nothing: `PlayActor` asks for `state` and `send`, and this class
|
|
253
|
+
* gives exactly those.
|
|
254
|
+
*
|
|
255
|
+
* A capability that PUBLISHES a value overrides this method NOT. It derives the value
|
|
256
|
+
* with a computed atom over `state`, as `withRouting` and `withView` both do, and the
|
|
257
|
+
* engine then evaluates every derivation from the one write of a transition, in
|
|
258
|
+
* topological order. The composition order therefore decides no value.
|
|
259
|
+
*
|
|
260
|
+
* This method remains for a capability that must run an EFFECT on a transition. Such a
|
|
261
|
+
* mixin overrides it and calls `super.onSnapshot(snapshot)` FIRST, so that every
|
|
262
|
+
* capability composed before it runs its own effect first.
|
|
263
|
+
*
|
|
264
|
+
* The method runs after `state` holds the new snapshot and before the `onStateChange`
|
|
265
|
+
* hook of the options.
|
|
329
266
|
*
|
|
330
|
-
* @
|
|
331
|
-
* next major.
|
|
267
|
+
* @param snapshot - The stable snapshot of this transition.
|
|
332
268
|
*/
|
|
333
|
-
|
|
269
|
+
protected onSnapshot(snapshot: AnyMachineSnapshot): void;
|
|
334
270
|
/**
|
|
335
271
|
* Stops the actor when the scope of a `using` declaration ends.
|
|
336
272
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EACL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"player-actor.d.ts","sourceRoot":"","sources":["../src/player-actor.ts"],"names":[],"mappings":"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"}
|