@fluidframework/runtime-definitions 2.0.0-rc.1.0.4 → 2.0.0-rc.2.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/.eslintrc.cjs +1 -1
- package/CHANGELOG.md +75 -0
- package/api-extractor-cjs.json +8 -0
- package/api-extractor-lint.json +1 -1
- package/api-extractor.json +1 -1
- package/api-report/runtime-definitions.api.md +103 -112
- package/dist/dataStoreContext.d.ts +124 -62
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +3 -0
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreFactory.d.ts +1 -1
- package/dist/dataStoreFactory.d.ts.map +1 -1
- package/dist/dataStoreFactory.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +1 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/{garbageCollection.d.ts → garbageCollectionDefinitions.d.ts} +8 -2
- package/dist/garbageCollectionDefinitions.d.ts.map +1 -0
- package/dist/{garbageCollection.js → garbageCollectionDefinitions.js} +9 -3
- package/dist/garbageCollectionDefinitions.js.map +1 -0
- package/dist/index.d.ts +12 -52
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -26
- package/dist/index.js.map +1 -1
- package/dist/package.json +3 -0
- package/dist/protocol.d.ts +2 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/runtime-definitions-alpha.d.ts +193 -166
- package/dist/runtime-definitions-beta.d.ts +37 -57
- package/dist/runtime-definitions-public.d.ts +37 -57
- package/dist/runtime-definitions-untrimmed.d.ts +200 -167
- package/dist/summary.d.ts +15 -20
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/attribution.d.ts +71 -0
- package/lib/attribution.d.ts.map +1 -0
- package/lib/attribution.js +6 -0
- package/lib/attribution.js.map +1 -0
- package/lib/dataStoreContext.d.ts +469 -0
- package/lib/dataStoreContext.d.ts.map +1 -0
- package/lib/dataStoreContext.js +67 -0
- package/lib/dataStoreContext.js.map +1 -0
- package/lib/dataStoreFactory.d.ts +33 -0
- package/lib/dataStoreFactory.d.ts.map +1 -0
- package/lib/dataStoreFactory.js +9 -0
- package/lib/dataStoreFactory.js.map +1 -0
- package/lib/dataStoreRegistry.d.ts +41 -0
- package/lib/dataStoreRegistry.d.ts.map +1 -0
- package/lib/dataStoreRegistry.js +9 -0
- package/lib/dataStoreRegistry.js.map +1 -0
- package/lib/garbageCollectionDefinitions.d.ts +62 -0
- package/lib/garbageCollectionDefinitions.d.ts.map +1 -0
- package/lib/garbageCollectionDefinitions.js +35 -0
- package/lib/garbageCollectionDefinitions.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/protocol.d.ts +77 -0
- package/lib/protocol.d.ts.map +1 -0
- package/lib/protocol.js +6 -0
- package/lib/protocol.js.map +1 -0
- package/lib/runtime-definitions-alpha.d.ts +1025 -0
- package/lib/runtime-definitions-beta.d.ts +244 -0
- package/lib/runtime-definitions-public.d.ts +244 -0
- package/lib/runtime-definitions-untrimmed.d.ts +1106 -0
- package/lib/summary.d.ts +322 -0
- package/lib/summary.d.ts.map +1 -0
- package/lib/summary.js +26 -0
- package/lib/summary.js.map +1 -0
- package/package.json +111 -34
- package/src/dataStoreContext.ts +148 -77
- package/src/dataStoreFactory.ts +1 -1
- package/src/dataStoreRegistry.ts +1 -1
- package/src/{garbageCollection.ts → garbageCollectionDefinitions.ts} +7 -1
- package/src/index.ts +26 -70
- package/src/protocol.ts +2 -1
- package/src/summary.ts +18 -20
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/dist/garbageCollection.d.ts.map +0 -1
- package/dist/garbageCollection.js.map +0 -1
|
@@ -1,39 +1,28 @@
|
|
|
1
|
-
import { AttachState } from '@fluidframework/container-definitions';
|
|
2
|
-
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
3
|
-
import { IAudience } from '@fluidframework/container-definitions';
|
|
4
|
-
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import { ISnapshotTree } from '@fluidframework/protocol-definitions';
|
|
24
|
-
import { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
25
|
-
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
26
|
-
import { ITree } from '@fluidframework/protocol-definitions';
|
|
1
|
+
import type { AttachState } from '@fluidframework/container-definitions';
|
|
2
|
+
import type { FluidObject } from '@fluidframework/core-interfaces';
|
|
3
|
+
import type { IAudience } from '@fluidframework/container-definitions';
|
|
4
|
+
import type { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
5
|
+
import type { IDeltaManager } from '@fluidframework/container-definitions';
|
|
6
|
+
import type { IDisposable } from '@fluidframework/core-interfaces';
|
|
7
|
+
import type { IDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
8
|
+
import type { IDocumentStorageService } from '@fluidframework/driver-definitions';
|
|
9
|
+
import type { IEvent } from '@fluidframework/core-interfaces';
|
|
10
|
+
import type { IEventProvider } from '@fluidframework/core-interfaces';
|
|
11
|
+
import type { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
12
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
13
|
+
import type { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
14
|
+
import type { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
15
|
+
import type { IRequest } from '@fluidframework/core-interfaces';
|
|
16
|
+
import type { IResponse } from '@fluidframework/core-interfaces';
|
|
17
|
+
import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
18
|
+
import type { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
19
|
+
import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
|
|
20
|
+
import type { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
21
|
+
import type { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
22
|
+
import type { ITree } from '@fluidframework/protocol-definitions';
|
|
27
23
|
import type { IUser } from '@fluidframework/protocol-definitions';
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import { SerializedIdCompressorWithNoSession } from '@fluidframework/id-compressor';
|
|
31
|
-
import { SerializedIdCompressorWithOngoingSession } from '@fluidframework/id-compressor';
|
|
32
|
-
import { SessionId } from '@fluidframework/id-compressor';
|
|
33
|
-
import { SessionSpaceCompressedId } from '@fluidframework/id-compressor';
|
|
34
|
-
import { StableId } from '@fluidframework/id-compressor';
|
|
35
|
-
import { SummaryTree } from '@fluidframework/protocol-definitions';
|
|
36
|
-
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
24
|
+
import type { SummaryTree } from '@fluidframework/protocol-definitions';
|
|
25
|
+
import type { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
|
|
37
26
|
|
|
38
27
|
/* Excluded from this release type: AliasResult */
|
|
39
28
|
|
|
@@ -61,6 +50,8 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
61
50
|
|
|
62
51
|
/* Excluded from this release type: gcBlobPrefix */
|
|
63
52
|
|
|
53
|
+
/* Excluded from this release type: gcDataBlobKey */
|
|
54
|
+
|
|
64
55
|
/* Excluded from this release type: gcDeletedBlobKey */
|
|
65
56
|
|
|
66
57
|
/* Excluded from this release type: gcTombstoneBlobKey */
|
|
@@ -75,10 +66,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
75
66
|
|
|
76
67
|
/* Excluded from this release type: IDataStore */
|
|
77
68
|
|
|
78
|
-
/* Excluded from this release type: IdCompressor */
|
|
79
|
-
|
|
80
|
-
/* Excluded from this release type: IdCreationRange */
|
|
81
|
-
|
|
82
69
|
/* Excluded from this release type: IDocumentStorageService */
|
|
83
70
|
|
|
84
71
|
/* Excluded from this release type: IEnvelope */
|
|
@@ -122,6 +109,8 @@ export declare interface IExperimentalIncrementalSummaryContext {
|
|
|
122
109
|
|
|
123
110
|
/* Excluded from this release type: IFluidDataStoreRegistry */
|
|
124
111
|
|
|
112
|
+
/* Excluded from this release type: IFluidParentContext */
|
|
113
|
+
|
|
125
114
|
/**
|
|
126
115
|
* Garbage collection data returned by nodes in a Container.
|
|
127
116
|
* Used for running GC in the Container.
|
|
@@ -137,9 +126,6 @@ export declare interface IGarbageCollectionData {
|
|
|
137
126
|
}
|
|
138
127
|
|
|
139
128
|
/* Excluded from this release type: IGarbageCollectionDetailsBase */
|
|
140
|
-
export { IIdCompressor }
|
|
141
|
-
|
|
142
|
-
/* Excluded from this release type: IIdCompressorCore */
|
|
143
129
|
|
|
144
130
|
/**
|
|
145
131
|
* Represents ISignalMessage with its type.
|
|
@@ -213,24 +199,30 @@ export declare interface ITelemetryContext {
|
|
|
213
199
|
* @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
|
|
214
200
|
* @param value - value to attribute to this summary telemetry data
|
|
215
201
|
*/
|
|
216
|
-
set(prefix: string, property: string, value:
|
|
202
|
+
set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
|
|
217
203
|
/**
|
|
218
204
|
* Sets multiple values for telemetry data being tracked.
|
|
219
205
|
* @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
|
|
220
206
|
* @param property - property name of the telemetry data being tracked (ex: "Options")
|
|
221
207
|
* @param values - A set of values to attribute to this summary telemetry data.
|
|
222
208
|
*/
|
|
223
|
-
setMultiple(prefix: string, property: string, values: Record<string,
|
|
209
|
+
setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
|
|
224
210
|
/**
|
|
225
211
|
* Get the telemetry data being tracked
|
|
212
|
+
*
|
|
213
|
+
* @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
|
|
214
|
+
*
|
|
226
215
|
* @param prefix - unique prefix for this data (ex: "fluid:map:")
|
|
227
216
|
* @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
|
|
228
217
|
* @returns undefined if item not found
|
|
229
218
|
*/
|
|
230
|
-
get(prefix: string, property: string):
|
|
219
|
+
get(prefix: string, property: string): TelemetryBaseEventPropertyType;
|
|
231
220
|
/**
|
|
232
221
|
* Returns a serialized version of all the telemetry data.
|
|
233
222
|
* Should be used when logging in telemetry events.
|
|
223
|
+
*
|
|
224
|
+
* @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
|
|
225
|
+
* but this functionality should not be used by other code being given an ITelemetryContext.
|
|
234
226
|
*/
|
|
235
227
|
serialize(): string;
|
|
236
228
|
}
|
|
@@ -242,18 +234,6 @@ export declare interface ITelemetryContext {
|
|
|
242
234
|
/* Excluded from this release type: NamedFluidDataStoreRegistryEntry */
|
|
243
235
|
|
|
244
236
|
/* Excluded from this release type: OpAttributionKey */
|
|
245
|
-
export { OpSpaceCompressedId }
|
|
246
|
-
|
|
247
|
-
/* Excluded from this release type: SerializedIdCompressor */
|
|
248
|
-
|
|
249
|
-
/* Excluded from this release type: SerializedIdCompressorWithNoSession */
|
|
250
|
-
|
|
251
|
-
/* Excluded from this release type: SerializedIdCompressorWithOngoingSession */
|
|
252
|
-
export { SessionId }
|
|
253
|
-
|
|
254
|
-
export { SessionSpaceCompressedId }
|
|
255
|
-
|
|
256
|
-
export { StableId }
|
|
257
237
|
|
|
258
238
|
/* Excluded from this release type: SummarizeInternalFn */
|
|
259
239
|
|
|
@@ -1,39 +1,28 @@
|
|
|
1
|
-
import { AttachState } from '@fluidframework/container-definitions';
|
|
2
|
-
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
3
|
-
import { IAudience } from '@fluidframework/container-definitions';
|
|
4
|
-
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import { ISnapshotTree } from '@fluidframework/protocol-definitions';
|
|
24
|
-
import { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
25
|
-
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
26
|
-
import { ITree } from '@fluidframework/protocol-definitions';
|
|
1
|
+
import type { AttachState } from '@fluidframework/container-definitions';
|
|
2
|
+
import type { FluidObject } from '@fluidframework/core-interfaces';
|
|
3
|
+
import type { IAudience } from '@fluidframework/container-definitions';
|
|
4
|
+
import type { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
5
|
+
import type { IDeltaManager } from '@fluidframework/container-definitions';
|
|
6
|
+
import type { IDisposable } from '@fluidframework/core-interfaces';
|
|
7
|
+
import type { IDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
8
|
+
import type { IDocumentStorageService } from '@fluidframework/driver-definitions';
|
|
9
|
+
import type { IEvent } from '@fluidframework/core-interfaces';
|
|
10
|
+
import type { IEventProvider } from '@fluidframework/core-interfaces';
|
|
11
|
+
import type { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
12
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
13
|
+
import type { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
14
|
+
import type { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
15
|
+
import type { IRequest } from '@fluidframework/core-interfaces';
|
|
16
|
+
import type { IResponse } from '@fluidframework/core-interfaces';
|
|
17
|
+
import type { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
18
|
+
import type { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
19
|
+
import type { ISnapshotTree } from '@fluidframework/protocol-definitions';
|
|
20
|
+
import type { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
21
|
+
import type { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
22
|
+
import type { ITree } from '@fluidframework/protocol-definitions';
|
|
27
23
|
import type { IUser } from '@fluidframework/protocol-definitions';
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import { SerializedIdCompressorWithNoSession } from '@fluidframework/id-compressor';
|
|
31
|
-
import { SerializedIdCompressorWithOngoingSession } from '@fluidframework/id-compressor';
|
|
32
|
-
import { SessionId } from '@fluidframework/id-compressor';
|
|
33
|
-
import { SessionSpaceCompressedId } from '@fluidframework/id-compressor';
|
|
34
|
-
import { StableId } from '@fluidframework/id-compressor';
|
|
35
|
-
import { SummaryTree } from '@fluidframework/protocol-definitions';
|
|
36
|
-
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
24
|
+
import type { SummaryTree } from '@fluidframework/protocol-definitions';
|
|
25
|
+
import type { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
|
|
37
26
|
|
|
38
27
|
/* Excluded from this release type: AliasResult */
|
|
39
28
|
|
|
@@ -61,6 +50,8 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
61
50
|
|
|
62
51
|
/* Excluded from this release type: gcBlobPrefix */
|
|
63
52
|
|
|
53
|
+
/* Excluded from this release type: gcDataBlobKey */
|
|
54
|
+
|
|
64
55
|
/* Excluded from this release type: gcDeletedBlobKey */
|
|
65
56
|
|
|
66
57
|
/* Excluded from this release type: gcTombstoneBlobKey */
|
|
@@ -75,10 +66,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
75
66
|
|
|
76
67
|
/* Excluded from this release type: IDataStore */
|
|
77
68
|
|
|
78
|
-
/* Excluded from this release type: IdCompressor */
|
|
79
|
-
|
|
80
|
-
/* Excluded from this release type: IdCreationRange */
|
|
81
|
-
|
|
82
69
|
/* Excluded from this release type: IDocumentStorageService */
|
|
83
70
|
|
|
84
71
|
/* Excluded from this release type: IEnvelope */
|
|
@@ -122,6 +109,8 @@ export declare interface IExperimentalIncrementalSummaryContext {
|
|
|
122
109
|
|
|
123
110
|
/* Excluded from this release type: IFluidDataStoreRegistry */
|
|
124
111
|
|
|
112
|
+
/* Excluded from this release type: IFluidParentContext */
|
|
113
|
+
|
|
125
114
|
/**
|
|
126
115
|
* Garbage collection data returned by nodes in a Container.
|
|
127
116
|
* Used for running GC in the Container.
|
|
@@ -137,9 +126,6 @@ export declare interface IGarbageCollectionData {
|
|
|
137
126
|
}
|
|
138
127
|
|
|
139
128
|
/* Excluded from this release type: IGarbageCollectionDetailsBase */
|
|
140
|
-
export { IIdCompressor }
|
|
141
|
-
|
|
142
|
-
/* Excluded from this release type: IIdCompressorCore */
|
|
143
129
|
|
|
144
130
|
/**
|
|
145
131
|
* Represents ISignalMessage with its type.
|
|
@@ -213,24 +199,30 @@ export declare interface ITelemetryContext {
|
|
|
213
199
|
* @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
|
|
214
200
|
* @param value - value to attribute to this summary telemetry data
|
|
215
201
|
*/
|
|
216
|
-
set(prefix: string, property: string, value:
|
|
202
|
+
set(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;
|
|
217
203
|
/**
|
|
218
204
|
* Sets multiple values for telemetry data being tracked.
|
|
219
205
|
* @param prefix - unique prefix to tag this data with (ex: "fluid:summarize:")
|
|
220
206
|
* @param property - property name of the telemetry data being tracked (ex: "Options")
|
|
221
207
|
* @param values - A set of values to attribute to this summary telemetry data.
|
|
222
208
|
*/
|
|
223
|
-
setMultiple(prefix: string, property: string, values: Record<string,
|
|
209
|
+
setMultiple(prefix: string, property: string, values: Record<string, TelemetryBaseEventPropertyType>): void;
|
|
224
210
|
/**
|
|
225
211
|
* Get the telemetry data being tracked
|
|
212
|
+
*
|
|
213
|
+
* @deprecated This interface should only be used for instrumenting, not for attempting to read already-set telemetry data.
|
|
214
|
+
*
|
|
226
215
|
* @param prefix - unique prefix for this data (ex: "fluid:map:")
|
|
227
216
|
* @param property - property name of the telemetry data being tracked (ex: "DirectoryCount")
|
|
228
217
|
* @returns undefined if item not found
|
|
229
218
|
*/
|
|
230
|
-
get(prefix: string, property: string):
|
|
219
|
+
get(prefix: string, property: string): TelemetryBaseEventPropertyType;
|
|
231
220
|
/**
|
|
232
221
|
* Returns a serialized version of all the telemetry data.
|
|
233
222
|
* Should be used when logging in telemetry events.
|
|
223
|
+
*
|
|
224
|
+
* @deprecated This interface should only be used for instrumenting. A concrete implementation will likely have a serialize function
|
|
225
|
+
* but this functionality should not be used by other code being given an ITelemetryContext.
|
|
234
226
|
*/
|
|
235
227
|
serialize(): string;
|
|
236
228
|
}
|
|
@@ -242,18 +234,6 @@ export declare interface ITelemetryContext {
|
|
|
242
234
|
/* Excluded from this release type: NamedFluidDataStoreRegistryEntry */
|
|
243
235
|
|
|
244
236
|
/* Excluded from this release type: OpAttributionKey */
|
|
245
|
-
export { OpSpaceCompressedId }
|
|
246
|
-
|
|
247
|
-
/* Excluded from this release type: SerializedIdCompressor */
|
|
248
|
-
|
|
249
|
-
/* Excluded from this release type: SerializedIdCompressorWithNoSession */
|
|
250
|
-
|
|
251
|
-
/* Excluded from this release type: SerializedIdCompressorWithOngoingSession */
|
|
252
|
-
export { SessionId }
|
|
253
|
-
|
|
254
|
-
export { SessionSpaceCompressedId }
|
|
255
|
-
|
|
256
|
-
export { StableId }
|
|
257
237
|
|
|
258
238
|
/* Excluded from this release type: SummarizeInternalFn */
|
|
259
239
|
|