kairos-lib 0.0.1

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.
Files changed (86) hide show
  1. package/README.md +7 -0
  2. package/dist/lib/encode-decode.d.ts +7 -0
  3. package/dist/lib/encode-decode.d.ts.map +1 -0
  4. package/dist/lib/encode-decode.js +32 -0
  5. package/dist/lib/encode-decode.js.map +1 -0
  6. package/dist/lib/lib.d.ts +2 -0
  7. package/dist/lib/lib.d.ts.map +1 -0
  8. package/dist/lib/lib.js +7 -0
  9. package/dist/lib/lib.js.map +1 -0
  10. package/dist/lib/omit-readonly.d.ts +23 -0
  11. package/dist/lib/omit-readonly.d.ts.map +1 -0
  12. package/dist/lib/omit-readonly.js +3 -0
  13. package/dist/lib/omit-readonly.js.map +1 -0
  14. package/dist/lib/reference.d.ts +165 -0
  15. package/dist/lib/reference.d.ts.map +1 -0
  16. package/dist/lib/reference.js +437 -0
  17. package/dist/lib/reference.js.map +1 -0
  18. package/dist/main.d.ts +5 -0
  19. package/dist/main.d.ts.map +1 -0
  20. package/dist/main.js +8 -0
  21. package/dist/main.js.map +1 -0
  22. package/dist/types/audio-mixer.d.ts +11 -0
  23. package/dist/types/audio-mixer.d.ts.map +1 -0
  24. package/dist/types/audio-mixer.js +3 -0
  25. package/dist/types/audio-mixer.js.map +1 -0
  26. package/dist/types/audio-player.d.ts +8 -0
  27. package/dist/types/audio-player.d.ts.map +1 -0
  28. package/dist/types/audio-player.js +3 -0
  29. package/dist/types/audio-player.js.map +1 -0
  30. package/dist/types/auxes.d.ts +31 -0
  31. package/dist/types/auxes.d.ts.map +1 -0
  32. package/dist/types/auxes.js +18 -0
  33. package/dist/types/auxes.js.map +1 -0
  34. package/dist/types/clip-player.d.ts +35 -0
  35. package/dist/types/clip-player.d.ts.map +1 -0
  36. package/dist/types/clip-player.js +16 -0
  37. package/dist/types/clip-player.js.map +1 -0
  38. package/dist/types/effects.d.ts +859 -0
  39. package/dist/types/effects.d.ts.map +1 -0
  40. package/dist/types/effects.js +70 -0
  41. package/dist/types/effects.js.map +1 -0
  42. package/dist/types/gfx-channel.d.ts +8 -0
  43. package/dist/types/gfx-channel.d.ts.map +1 -0
  44. package/dist/types/gfx-channel.js +3 -0
  45. package/dist/types/gfx-channel.js.map +1 -0
  46. package/dist/types/gfx-scene.d.ts +42 -0
  47. package/dist/types/gfx-scene.d.ts.map +1 -0
  48. package/dist/types/gfx-scene.js +3 -0
  49. package/dist/types/gfx-scene.js.map +1 -0
  50. package/dist/types/image-store.d.ts +39 -0
  51. package/dist/types/image-store.d.ts.map +1 -0
  52. package/dist/types/image-store.js +12 -0
  53. package/dist/types/image-store.js.map +1 -0
  54. package/dist/types/input.d.ts +44 -0
  55. package/dist/types/input.d.ts.map +1 -0
  56. package/dist/types/input.js +18 -0
  57. package/dist/types/input.js.map +1 -0
  58. package/dist/types/lib-types.d.ts +29 -0
  59. package/dist/types/lib-types.d.ts.map +1 -0
  60. package/dist/types/lib-types.js +16 -0
  61. package/dist/types/lib-types.js.map +1 -0
  62. package/dist/types/macro.d.ts +14 -0
  63. package/dist/types/macro.d.ts.map +1 -0
  64. package/dist/types/macro.js +12 -0
  65. package/dist/types/macro.js.map +1 -0
  66. package/dist/types/main.d.ts +16 -0
  67. package/dist/types/main.d.ts.map +1 -0
  68. package/dist/types/main.js +19 -0
  69. package/dist/types/main.js.map +1 -0
  70. package/dist/types/media.d.ts +8 -0
  71. package/dist/types/media.d.ts.map +1 -0
  72. package/dist/types/media.js +3 -0
  73. package/dist/types/media.js.map +1 -0
  74. package/dist/types/ramrec-player.d.ts +8 -0
  75. package/dist/types/ramrec-player.d.ts.map +1 -0
  76. package/dist/types/ramrec-player.js +3 -0
  77. package/dist/types/ramrec-player.js.map +1 -0
  78. package/dist/types/scene.d.ts +421 -0
  79. package/dist/types/scene.d.ts.map +1 -0
  80. package/dist/types/scene.js +122 -0
  81. package/dist/types/scene.js.map +1 -0
  82. package/dist/types/sources.d.ts +23 -0
  83. package/dist/types/sources.d.ts.map +1 -0
  84. package/dist/types/sources.js +13 -0
  85. package/dist/types/sources.js.map +1 -0
  86. package/package.json +31 -0
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # KAIROS-connection
2
+
3
+ _Note: This library is not affiliated with Panasonic in any way._
4
+
5
+ A small utilities and types library for the [`kairos-connection`](https://www.npmjs.com/package/kairos-connection) package. It exposes shared TypeScript types and helper utilities so projects that cannot or should not pull in the full connection package can still interact with Kairos types and references.
6
+
7
+ More documentation can be found here: [github.com/Sofie-Automation/sofie-kairos-connection](https://github.com/Sofie-Automation/sofie-kairos-connection)
@@ -0,0 +1,7 @@
1
+ export type RefPath = string[];
2
+ export type RefPathSingle = [string];
3
+ export declare function protocolEncodeStr(str: string): string;
4
+ export declare function protocolEncodePath(refPath: RefPath): string;
5
+ export declare function protocolDecodeStr(str: string): string;
6
+ export declare function protocolDecodePath(encodedStr: string): RefPath;
7
+ //# sourceMappingURL=encode-decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-decode.d.ts","sourceRoot":"","sources":["../../src/lib/encode-decode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;AAC9B,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAA;AAepC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAG9D"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.protocolEncodeStr = protocolEncodeStr;
4
+ exports.protocolEncodePath = protocolEncodePath;
5
+ exports.protocolDecodeStr = protocolDecodeStr;
6
+ exports.protocolDecodePath = protocolDecodePath;
7
+ const PROTOCOL_ENCODE_MAP = {
8
+ ':': ':',
9
+ '.': '.',
10
+ '=': '=',
11
+ '\\': '\',
12
+ '\r': '
',
13
+ '\n': '
',
14
+ };
15
+ // const PROTOCOL_DECODE_MAP = Object.fromEntries(Object.entries(PROTOCOL_ENCODE_MAP).map(([key, value]) => [value, key]))
16
+ const PROTOCOL_ENCODE_REGEXP = /[:.=\\\r\n]/g;
17
+ const PROTOCOL_DECODE_REGEXP = /&#(\d+);/g;
18
+ function protocolEncodeStr(str) {
19
+ return str.replaceAll(PROTOCOL_ENCODE_REGEXP, (char) => PROTOCOL_ENCODE_MAP[char] || char);
20
+ }
21
+ function protocolEncodePath(refPath) {
22
+ return refPath.map(protocolEncodeStr).join('.');
23
+ }
24
+ function protocolDecodeStr(str) {
25
+ return str.replaceAll(PROTOCOL_DECODE_REGEXP, (_, match) => String.fromCharCode(Number(match)) || match);
26
+ }
27
+ function protocolDecodePath(encodedStr) {
28
+ if (encodedStr === '')
29
+ return [];
30
+ return encodedStr.split('.').map(protocolDecodeStr);
31
+ }
32
+ //# sourceMappingURL=encode-decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-decode.js","sourceRoot":"","sources":["../../src/lib/encode-decode.ts"],"names":[],"mappings":";;AAgBA,8CAEC;AAED,gDAEC;AAED,8CAEC;AAED,gDAGC;AA5BD,MAAM,mBAAmB,GAA2B;IACnD,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACb,CAAA;AACD,0HAA0H;AAE1H,MAAM,sBAAsB,GAAG,cAAc,CAAA;AAC7C,MAAM,sBAAsB,GAAG,WAAW,CAAA;AAE1C,SAAgB,iBAAiB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;AACnG,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAgB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;AACjH,CAAC;AAED,SAAgB,kBAAkB,CAAC,UAAkB;IACpD,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function assertNever(_never: never): void;
2
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib/lib.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAE/C"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertNever = assertNever;
4
+ function assertNever(_never) {
5
+ // Do nothing. This is a type guard
6
+ }
7
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib/lib.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAFD,SAAgB,WAAW,CAAC,MAAa;IACxC,mCAAmC;AACpC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** Copied from https://github.com/piotrwitek/utility-types/blob/2ae7412a9edf12f34fedbf594facf43cf04f7e32/src/mapped-types.ts#L112 */
2
+ /**
3
+ * MutableKeys
4
+ * @desc Get union type of keys that are mutable in object type `T`
5
+ * Credit: Matt McCutchen
6
+ * https://stackoverflow.com/questions/52443276/how-to-exclude-getter-only-properties-from-type-in-typescript
7
+ * @example
8
+ * type Props = { readonly foo: string; bar: number };
9
+ *
10
+ * // Expect: "bar"
11
+ * type Keys = MutableKeys<Props>;
12
+ */
13
+ type MutableKeys<T extends object> = {
14
+ [P in keyof T]-?: IfEquals<{
15
+ [Q in P]: T[P];
16
+ }, {
17
+ -readonly [Q in P]: T[P];
18
+ }, P>;
19
+ }[keyof T];
20
+ type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
21
+ export type OmitReadonly<T extends object> = Pick<T, MutableKeys<T>>;
22
+ export {};
23
+ //# sourceMappingURL=omit-readonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omit-readonly.d.ts","sourceRoot":"","sources":["../../src/lib/omit-readonly.ts"],"names":[],"mappings":"AAAA,qIAAqI;AACrI;;;;;;;;;;GAUG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAAE,EAAE;QAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAAE,EAAE,CAAC,CAAC;CAC/E,CAAC,MAAM,CAAC,CAAC,CAAA;AAEV,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEnH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=omit-readonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omit-readonly.js","sourceRoot":"","sources":["../../src/lib/omit-readonly.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ import { RefPath, RefPathSingle } from './encode-decode.js';
2
+ export type AnyRef = SceneRef | SceneLayerRef | SceneLayerEffectRef | MediaClipRef | MediaStillRef | MediaRamRecRef | MediaImageRef | MediaSoundRef | SceneTransitionRef | SceneTransitionMixRef | SceneTransitionMixEffectRef | SceneSnapshotRef | MacroRef | RamRecorderRef | ClipPlayerRef | ImageStoreRef | SourceBaseRef | SourceIntRef | GfxSceneRef | GfxSceneItemRef | AudioMixerChannelRef | MattesRef | AuxRef | AuxEffectRef | InputRef | FxInputRef | MatteRef;
3
+ export declare function isRef(ref: unknown): ref is AnyRef;
4
+ /** Any refs that can be used as sources */
5
+ export type SourceRef = RamRecorderRef | ClipPlayerRef | ImageStoreRef | SourceBaseRef | SourceIntRef | SceneRef | MattesRef | AuxRef | InputRef;
6
+ export declare function isSourceRef(ref: AnyRef): ref is SourceRef;
7
+ export declare function refToPath(ref: AnyRef): string;
8
+ export declare function pathRoRef(ref: string): AnyRef | string;
9
+ /**
10
+ * Splits a RefPath into multiple paths based on the provided splits.
11
+ * example: splitPath(['SCENES', 'Scene1', 'Layers', 'LayerGroup', 'Layer1'], 'Layers')
12
+ * returns [['SCENES', 'Scene1'], ['LayerGroup', 'Layer1']]
13
+ */
14
+ export declare function splitPath(path: RefPath, ...splits: string[]): RefPath[];
15
+ export type SceneRef = {
16
+ realm: 'scene';
17
+ scenePath: RefPath;
18
+ };
19
+ export declare function refScene(scenePath: RefPath): SceneRef;
20
+ export type SceneLayerRef = {
21
+ realm: 'scene-layer';
22
+ scenePath: RefPath;
23
+ layerPath: RefPath;
24
+ };
25
+ export declare function refSceneLayer(sceneRef: SceneRef, layerPath: RefPath): SceneLayerRef;
26
+ export type SceneLayerEffectRef = {
27
+ realm: 'scene-layer-effect';
28
+ scenePath: RefPath;
29
+ layerPath: RefPath;
30
+ effectPath: RefPath;
31
+ };
32
+ export declare function refSceneLayerEffect(layerRef: SceneLayerRef, effectPath: RefPath): SceneLayerEffectRef;
33
+ export type SceneSnapshotRef = {
34
+ realm: 'scene-snapshot';
35
+ scenePath: RefPath;
36
+ snapshotPath: RefPath;
37
+ };
38
+ export declare function refSceneSnapshot(sceneRef: SceneRef, snapshotPath: RefPath): SceneSnapshotRef;
39
+ export type SceneTransitionRef = {
40
+ realm: 'scene-transition';
41
+ scenePath: RefPath;
42
+ transitionPath: RefPathSingle;
43
+ };
44
+ export declare function refSceneTransition(sceneRef: SceneRef, transitionPath: RefPathSingle): SceneTransitionRef;
45
+ export type SceneTransitionMixRef = {
46
+ realm: 'scene-transition-mix';
47
+ scenePath: RefPath;
48
+ transitionPath: RefPathSingle;
49
+ mixPath: RefPathSingle;
50
+ };
51
+ export declare function refSceneTransitionMix(transitionRef: SceneTransitionRef, mixPath: RefPathSingle): SceneTransitionMixRef;
52
+ export type SceneTransitionMixEffectRef = {
53
+ realm: 'scene-transition-mix-effect';
54
+ scenePath: RefPath;
55
+ transitionPath: RefPathSingle;
56
+ mixPath: RefPathSingle;
57
+ effectPath: RefPathSingle;
58
+ };
59
+ export declare function refSceneTransitionMixEffect(mixRef: SceneTransitionMixRef, effectPath: RefPathSingle): SceneTransitionMixEffectRef;
60
+ export type FxInputRef = {
61
+ realm: 'fxInput';
62
+ fxInputPath: RefPath;
63
+ };
64
+ export declare function refFxInput(fxInputPath: RefPath): FxInputRef;
65
+ export type MatteRef = {
66
+ realm: 'matte';
67
+ mattePath: RefPath;
68
+ };
69
+ export declare function refMatte(mattePath: RefPath): MatteRef;
70
+ export type MediaClipRef = {
71
+ realm: 'media-clip';
72
+ clipPath: RefPath;
73
+ };
74
+ export type MediaStillRef = {
75
+ realm: 'media-still';
76
+ clipPath: RefPath;
77
+ };
78
+ export type MediaRamRecRef = {
79
+ realm: 'media-ramrec';
80
+ clipPath: RefPath;
81
+ };
82
+ export type MediaImageRef = {
83
+ realm: 'media-image';
84
+ clipPath: RefPath;
85
+ };
86
+ export type MediaSoundRef = {
87
+ realm: 'media-sound';
88
+ clipPath: RefPath;
89
+ };
90
+ export declare function refMediaClip(clipPath: RefPath): MediaClipRef;
91
+ export declare function refMediaStill(clipPath: RefPath): MediaStillRef;
92
+ export declare function refMediaRamRec(clipPath: RefPath): MediaRamRecRef;
93
+ export declare function refMediaImage(clipPath: RefPath): MediaImageRef;
94
+ export declare function refMediaSound(clipPath: RefPath): MediaSoundRef;
95
+ export type MacroRef = {
96
+ realm: 'macro';
97
+ macroPath: RefPath;
98
+ };
99
+ export declare function refMacro(macroPath: RefPath): MacroRef;
100
+ export type RamRecorderRef = {
101
+ realm: 'ramRecorder';
102
+ path: ['RR1' | 'RR2' | 'RR3' | 'RR4' | 'RR5' | 'RR6' | 'RR7' | 'RR8'];
103
+ };
104
+ export declare function refRamRecorder(path: RamRecorderRef['path']): RamRecorderRef;
105
+ export type ClipPlayerRef = {
106
+ realm: 'clipPlayer';
107
+ path: ['CP1' | 'CP2'];
108
+ };
109
+ export declare function refClipPlayer(path: ClipPlayerRef['path']): ClipPlayerRef;
110
+ export type ImageStoreRef = {
111
+ realm: 'imageStore';
112
+ path: ['IS1' | 'IS2' | 'IS3' | 'IS4' | 'IS5' | 'IS6' | 'IS7' | 'IS8'];
113
+ };
114
+ export declare function refImageStore(path: ImageStoreRef['path']): ImageStoreRef;
115
+ export type GfxSceneRef = {
116
+ realm: 'gfxScene';
117
+ scenePath: RefPath;
118
+ };
119
+ export type GfxSceneItemRef = {
120
+ realm: 'gfxScene-item';
121
+ scenePath: RefPath;
122
+ sceneItemPath: RefPath;
123
+ };
124
+ export declare function refGfxScene(scenePath: RefPath): GfxSceneRef;
125
+ export declare function refGfxSceneItem(scenePath: GfxSceneRef, sceneItemPath: RefPath): GfxSceneItemRef;
126
+ export type SourceBaseRef = {
127
+ realm: 'source-base';
128
+ path: ['BLACK' | 'WHITE'];
129
+ };
130
+ export declare function refSourceBase(path: SourceBaseRef['path']): SourceBaseRef;
131
+ export type SourceIntRef = {
132
+ realm: 'source-int';
133
+ path: ['ColorBar' | 'ColorCircle' | 'MV1' | 'MV2' | 'MV3' | 'MV4'];
134
+ };
135
+ export declare function refSourceInt(path: SourceIntRef['path']): SourceIntRef;
136
+ export type AudioMixerChannelRef = {
137
+ realm: 'audioMixer-channel';
138
+ channelPath: RefPath;
139
+ };
140
+ export declare function refAudioMixerChannel(channelPath: RefPath): AudioMixerChannelRef;
141
+ export type MattesRef = {
142
+ realm: 'mattes';
143
+ path: RefPath;
144
+ };
145
+ export declare function refMattes(path: MattesRef['path']): MattesRef;
146
+ export type AuxRef = {
147
+ realm: 'aux';
148
+ path: string;
149
+ pathIsName: boolean;
150
+ };
151
+ export declare function refAuxId(path: AuxRef['path']): AuxRef;
152
+ export declare function refAuxName(path: AuxRef['path']): AuxRef;
153
+ export type InputRef = {
154
+ realm: 'input';
155
+ path: string;
156
+ };
157
+ export declare function refInput(path: InputRef['path']): InputRef;
158
+ export type AuxEffectRef = {
159
+ realm: 'aux-effect';
160
+ auxPath: string;
161
+ auxPathIsName: boolean;
162
+ effectPath: RefPath;
163
+ };
164
+ export declare function refAuxEffect(auxRef: AuxRef, effectPath: RefPath): AuxEffectRef;
165
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/lib/reference.ts"],"names":[],"mappings":"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"}