@omnimedia/omnitool 1.1.0-5 → 1.1.0-8

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 (116) hide show
  1. package/package.json +3 -2
  2. package/s/demo/demo.css +5 -0
  3. package/s/demo/routines/transcode-test.ts +4 -2
  4. package/s/demo/routines/transitions-test.ts +2 -2
  5. package/s/driver/driver.ts +17 -9
  6. package/s/driver/fns/schematic.ts +44 -21
  7. package/s/driver/fns/work.ts +112 -97
  8. package/s/index.html.ts +6 -1
  9. package/s/timeline/index.ts +1 -0
  10. package/s/timeline/parts/basics.ts +1 -1
  11. package/s/timeline/parts/compositor/export.ts +77 -0
  12. package/s/timeline/parts/compositor/parts/html-tree.ts +37 -0
  13. package/s/timeline/parts/compositor/parts/schedulers.ts +85 -0
  14. package/s/timeline/parts/compositor/parts/tree-builder.ts +184 -0
  15. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +30 -0
  16. package/s/timeline/parts/compositor/playback.ts +81 -0
  17. package/s/timeline/parts/compositor/samplers/html.ts +115 -0
  18. package/s/timeline/parts/compositor/samplers/webcodecs.ts +60 -0
  19. package/s/timeline/parts/item.ts +38 -6
  20. package/s/timeline/parts/media.ts +21 -0
  21. package/s/timeline/parts/waveform.ts +1 -1
  22. package/s/timeline/sugar/builders.ts +102 -0
  23. package/s/timeline/sugar/o.ts +75 -16
  24. package/s/timeline/sugar/omni-test.ts +2 -2
  25. package/s/timeline/sugar/omni.ts +14 -11
  26. package/s/timeline/timeline.ts +22 -0
  27. package/s/timeline/types.ts +29 -0
  28. package/s/timeline/utils/audio-stream.ts +15 -0
  29. package/s/timeline/utils/matrix.ts +33 -0
  30. package/s/timeline/utils/video-cursor.ts +40 -0
  31. package/x/demo/demo.bundle.min.js +39 -37
  32. package/x/demo/demo.bundle.min.js.map +4 -4
  33. package/x/demo/demo.css +5 -0
  34. package/x/demo/routines/transcode-test.js +4 -2
  35. package/x/demo/routines/transcode-test.js.map +1 -1
  36. package/x/demo/routines/transitions-test.js +2 -2
  37. package/x/demo/routines/transitions-test.js.map +1 -1
  38. package/x/driver/driver.d.ts +3 -5
  39. package/x/driver/driver.js +16 -9
  40. package/x/driver/driver.js.map +1 -1
  41. package/x/driver/driver.worker.bundle.min.js +2537 -148
  42. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  43. package/x/driver/fns/host.d.ts +9 -2
  44. package/x/driver/fns/schematic.d.ts +38 -20
  45. package/x/driver/fns/work.d.ts +11 -4
  46. package/x/driver/fns/work.js +105 -96
  47. package/x/driver/fns/work.js.map +1 -1
  48. package/x/features/speech/transcribe/worker.bundle.min.js +541 -541
  49. package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
  50. package/x/index.html +13 -3
  51. package/x/index.html.js +6 -1
  52. package/x/index.html.js.map +1 -1
  53. package/x/timeline/index.d.ts +1 -0
  54. package/x/timeline/index.js +1 -0
  55. package/x/timeline/index.js.map +1 -1
  56. package/x/timeline/parts/basics.d.ts +1 -1
  57. package/x/timeline/parts/compositor/export.d.ts +9 -0
  58. package/x/timeline/parts/compositor/export.js +64 -0
  59. package/x/timeline/parts/compositor/export.js.map +1 -0
  60. package/x/timeline/parts/compositor/parts/html-tree.d.ts +3 -0
  61. package/x/timeline/parts/compositor/parts/html-tree.js +40 -0
  62. package/x/timeline/parts/compositor/parts/html-tree.js.map +1 -0
  63. package/x/timeline/parts/compositor/parts/schedulers.d.ts +15 -0
  64. package/x/timeline/parts/compositor/parts/schedulers.js +64 -0
  65. package/x/timeline/parts/compositor/parts/schedulers.js.map +1 -0
  66. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +37 -0
  67. package/x/timeline/parts/compositor/parts/tree-builder.js +147 -0
  68. package/x/timeline/parts/compositor/parts/tree-builder.js.map +1 -0
  69. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +3 -0
  70. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +28 -0
  71. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +1 -0
  72. package/x/timeline/parts/compositor/playback.d.ts +19 -0
  73. package/x/timeline/parts/compositor/playback.js +71 -0
  74. package/x/timeline/parts/compositor/playback.js.map +1 -0
  75. package/x/timeline/parts/compositor/samplers/html.d.ts +3 -0
  76. package/x/timeline/parts/compositor/samplers/html.js +106 -0
  77. package/x/timeline/parts/compositor/samplers/html.js.map +1 -0
  78. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +2 -0
  79. package/x/timeline/parts/compositor/samplers/webcodecs.js +55 -0
  80. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +1 -0
  81. package/x/timeline/parts/item.d.ts +34 -8
  82. package/x/timeline/parts/item.js +6 -3
  83. package/x/timeline/parts/item.js.map +1 -1
  84. package/x/timeline/parts/media.d.ts +3 -0
  85. package/x/timeline/parts/media.js +17 -0
  86. package/x/timeline/parts/media.js.map +1 -1
  87. package/x/timeline/parts/waveform.js +1 -1
  88. package/x/timeline/parts/waveform.js.map +1 -1
  89. package/x/timeline/sugar/builders.d.ts +96 -0
  90. package/x/timeline/sugar/builders.js +108 -0
  91. package/x/timeline/sugar/builders.js.map +1 -0
  92. package/x/timeline/sugar/o.d.ts +21 -8
  93. package/x/timeline/sugar/o.js +63 -14
  94. package/x/timeline/sugar/o.js.map +1 -1
  95. package/x/timeline/sugar/omni-test.js +1 -1
  96. package/x/timeline/sugar/omni-test.js.map +1 -1
  97. package/x/timeline/sugar/omni.d.ts +7 -3
  98. package/x/timeline/sugar/omni.js +9 -8
  99. package/x/timeline/sugar/omni.js.map +1 -1
  100. package/x/timeline/timeline.d.ts +9 -0
  101. package/x/timeline/timeline.js +22 -0
  102. package/x/timeline/timeline.js.map +1 -0
  103. package/x/timeline/types.d.ts +24 -0
  104. package/x/timeline/types.js +2 -0
  105. package/x/timeline/types.js.map +1 -0
  106. package/x/timeline/utils/audio-stream.d.ts +6 -0
  107. package/x/timeline/utils/audio-stream.js +17 -0
  108. package/x/timeline/utils/audio-stream.js.map +1 -0
  109. package/x/timeline/utils/matrix.d.ts +8 -0
  110. package/x/timeline/utils/matrix.js +26 -0
  111. package/x/timeline/utils/matrix.js.map +1 -0
  112. package/x/timeline/utils/video-cursor.d.ts +10 -0
  113. package/x/timeline/utils/video-cursor.js +36 -0
  114. package/x/timeline/utils/video-cursor.js.map +1 -0
  115. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +6 -6
  116. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +4 -4
@@ -2,10 +2,17 @@ import { Machina } from "../parts/machina.js";
2
2
  export declare const setupDriverHost: (machina: Machina) => import("@e280/comrade").SetupHost<{
3
3
  work: {
4
4
  hello(): Promise<void>;
5
- decode(input: {
5
+ decodeAudio(input: {
6
6
  source: import("./schematic.js").DecoderSource;
7
- video: WritableStream<VideoFrame>;
8
7
  audio: WritableStream<AudioData>;
8
+ start?: number;
9
+ end?: number;
10
+ }): Promise<void>;
11
+ decodeVideo(input: {
12
+ source: import("./schematic.js").DecoderSource;
13
+ video: WritableStream<VideoFrame>;
14
+ start?: number;
15
+ end?: number;
9
16
  }): Promise<void>;
10
17
  encode(input: import("./schematic.js").EncoderInput & {
11
18
  bridge: WritableStream<StreamTargetChunk>;
@@ -1,12 +1,20 @@
1
1
  import { AsSchematic } from "@e280/comrade";
2
2
  import type { AudioEncodingConfig, StreamTargetChunk, VideoEncodingConfig } from "mediabunny";
3
+ import { Mat6 } from "../../timeline/utils/matrix.js";
3
4
  export type DriverSchematic = AsSchematic<{
4
5
  work: {
5
6
  hello(): Promise<void>;
6
- decode(input: {
7
+ decodeAudio(input: {
7
8
  source: DecoderSource;
8
- video: WritableStream<VideoFrame>;
9
9
  audio: WritableStream<AudioData>;
10
+ start?: number;
11
+ end?: number;
12
+ }): Promise<void>;
13
+ decodeVideo(input: {
14
+ source: DecoderSource;
15
+ video: WritableStream<VideoFrame>;
16
+ start?: number;
17
+ end?: number;
10
18
  }): Promise<void>;
11
19
  encode(input: EncoderInput & {
12
20
  bridge: WritableStream<StreamTargetChunk>;
@@ -18,18 +26,19 @@ export type DriverSchematic = AsSchematic<{
18
26
  };
19
27
  }>;
20
28
  export interface EncoderInput {
21
- readables: {
22
- video: ReadableStream<VideoFrame>;
23
- audio: ReadableStream<AudioData>;
24
- };
25
- config: {
26
- video: VideoEncodingConfig;
27
- audio: AudioEncodingConfig;
28
- };
29
+ video?: ReadableStream<VideoFrame>;
30
+ audio?: ReadableStream<AudioData>;
31
+ config: RenderConfig;
32
+ }
33
+ export interface RenderConfig {
34
+ video: VideoEncodingConfig;
35
+ audio: AudioEncodingConfig;
29
36
  }
30
37
  export type DecoderSource = Blob | string | URL;
31
38
  export interface DecoderInput {
32
39
  source: DecoderSource;
40
+ start?: number;
41
+ end?: number;
33
42
  onFrame?: (frame: VideoFrame) => Promise<VideoFrame>;
34
43
  }
35
44
  export interface MuxOpts {
@@ -46,21 +55,30 @@ export interface MuxOpts {
46
55
  };
47
56
  }
48
57
  export type Composition = Layer | (Layer | Composition)[];
49
- export type Transform = {
50
- x?: number;
51
- y?: number;
52
- scale?: number;
53
- opacity?: number;
54
- anchor?: number;
55
- };
56
58
  export type TextLayer = {
57
59
  kind: 'text';
58
60
  content: string;
59
61
  fontSize?: number;
60
62
  color?: string;
61
- } & Transform;
63
+ matrix?: Mat6;
64
+ };
62
65
  export type ImageLayer = {
63
66
  kind: 'image';
64
67
  frame: VideoFrame;
65
- } & Transform;
66
- export type Layer = TextLayer | ImageLayer;
68
+ matrix?: Mat6;
69
+ };
70
+ export type TransitionLayer = {
71
+ kind: 'transition';
72
+ name: string;
73
+ progress: number;
74
+ from: VideoFrame;
75
+ to: VideoFrame;
76
+ };
77
+ export type GapLayer = {
78
+ kind: 'gap';
79
+ };
80
+ export type Audio = {
81
+ kind: "audio";
82
+ data: AudioData;
83
+ };
84
+ export type Layer = TextLayer | ImageLayer | TransitionLayer | GapLayer;
@@ -1,12 +1,19 @@
1
1
  import { Input } from "mediabunny";
2
- import { Composition } from "./schematic.js";
2
+ import { Composition, DecoderSource } from "./schematic.js";
3
3
  export declare const setupDriverWork: import("@e280/comrade").SetupWork<{
4
4
  work: {
5
5
  hello(): Promise<void>;
6
- decode(input: {
7
- source: import("./schematic.js").DecoderSource;
8
- video: WritableStream<VideoFrame>;
6
+ decodeAudio(input: {
7
+ source: DecoderSource;
9
8
  audio: WritableStream<AudioData>;
9
+ start?: number;
10
+ end?: number;
11
+ }): Promise<void>;
12
+ decodeVideo(input: {
13
+ source: DecoderSource;
14
+ video: WritableStream<VideoFrame>;
15
+ start?: number;
16
+ end?: number;
10
17
  }): Promise<void>;
11
18
  encode(input: import("./schematic.js").EncoderInput & {
12
19
  bridge: WritableStream<Input>;
@@ -1,75 +1,72 @@
1
1
  import { Comrade } from "@e280/comrade";
2
2
  import { autoDetectRenderer, Container, Sprite, Text, Texture, DOMAdapter, WebWorkerAdapter } from "pixi.js";
3
3
  import { Input, ALL_FORMATS, VideoSampleSink, Output, Mp4OutputFormat, VideoSampleSource, VideoSample, AudioSampleSink, AudioSampleSource, AudioSample, StreamTarget, BlobSource, UrlSource } from "mediabunny";
4
+ import { mat6ToMatrix } from "../../timeline/utils/matrix.js";
5
+ import { makeTransition } from "../../features/transition/transition.js";
4
6
  DOMAdapter.set(WebWorkerAdapter);
7
+ const loadSource = async (source) => {
8
+ if (source instanceof Blob) {
9
+ return new BlobSource(source);
10
+ }
11
+ else {
12
+ return new UrlSource(source);
13
+ }
14
+ };
5
15
  export const setupDriverWork = (Comrade.work(shell => ({
6
16
  async hello() {
7
17
  await shell.host.world();
8
18
  },
9
- async decode({ source, video, audio }) {
10
- const loadSource = async () => {
11
- if (source instanceof Blob) {
12
- return new BlobSource(source);
13
- }
14
- else {
15
- return new UrlSource(source);
19
+ async decodeAudio({ source, audio, start, end }) {
20
+ const input = new Input({
21
+ source: await loadSource(source),
22
+ formats: ALL_FORMATS
23
+ });
24
+ const audioTrack = await input.getPrimaryAudioTrack();
25
+ const audioDecodable = await audioTrack?.canDecode();
26
+ const audioWriter = audio.getWriter();
27
+ if (audioDecodable && audioTrack) {
28
+ const sink = new AudioSampleSink(audioTrack);
29
+ for await (const sample of sink.samples(start, end)) {
30
+ const frame = sample.toAudioData();
31
+ await audioWriter.write(frame);
32
+ sample.close();
33
+ frame.close();
16
34
  }
17
- };
35
+ await audioWriter.close();
36
+ }
37
+ },
38
+ async decodeVideo({ source, video, start, end }) {
18
39
  const input = new Input({
19
- source: await loadSource(),
40
+ source: await loadSource(source),
20
41
  formats: ALL_FORMATS
21
42
  });
22
- const [videoTrack, audioTrack] = await Promise.all([
23
- input.getPrimaryVideoTrack(),
24
- input.getPrimaryAudioTrack()
25
- ]);
43
+ const videoTrack = await input.getPrimaryVideoTrack();
26
44
  const videoDecodable = await videoTrack?.canDecode();
27
- const audioDecodable = await audioTrack?.canDecode();
28
45
  const videoWriter = video.getWriter();
29
- const audioWriter = audio.getWriter();
30
- await Promise.all([
31
- (async () => {
32
- if (videoDecodable && videoTrack) {
33
- const sink = new VideoSampleSink(videoTrack);
34
- for await (const sample of sink.samples()) {
35
- const frame = sample.toVideoFrame();
36
- await videoWriter.write(frame);
37
- sample.close();
38
- frame.close();
39
- }
40
- await videoWriter.close();
41
- }
42
- })(),
43
- (async () => {
44
- if (audioDecodable && audioTrack) {
45
- const sink = new AudioSampleSink(audioTrack);
46
- for await (const sample of sink.samples()) {
47
- const frame = sample.toAudioData();
48
- await audioWriter.write(frame);
49
- sample.close();
50
- frame.close();
51
- }
52
- await audioWriter.close();
53
- }
54
- })()
55
- ]);
46
+ if (videoDecodable && videoTrack) {
47
+ const sink = new VideoSampleSink(videoTrack);
48
+ for await (const sample of sink.samples(start, end)) {
49
+ const frame = sample.toVideoFrame();
50
+ await videoWriter.write(frame);
51
+ sample.close();
52
+ frame.close();
53
+ }
54
+ await videoWriter.close();
55
+ }
56
56
  },
57
- async encode({ readables, config, bridge }) {
57
+ async encode({ video, audio, config, bridge }) {
58
58
  const output = new Output({
59
59
  format: new Mp4OutputFormat(),
60
60
  target: new StreamTarget(bridge, { chunked: true })
61
61
  });
62
- const videoSource = new VideoSampleSource(config.video);
63
- output.addVideoTrack(videoSource);
64
62
  // since AudioSample is not transferable it fails to transfer encoder bitrate config
65
63
  // so it needs to be hardcoded not set through constants eg QUALITY_LOW
66
- const audioSource = new AudioSampleSource(config.audio);
67
- output.addAudioTrack(audioSource);
68
- await output.start();
69
- const videoReader = readables.video.getReader();
70
- const audioReader = readables.audio.getReader();
71
- await Promise.all([
72
- (async () => {
64
+ const promises = [];
65
+ if (video) {
66
+ const videoSource = new VideoSampleSource(config.video);
67
+ output.addVideoTrack(videoSource);
68
+ const videoReader = video.getReader();
69
+ promises.push((async () => {
73
70
  while (true) {
74
71
  const { done, value } = await videoReader.read();
75
72
  if (done)
@@ -78,8 +75,13 @@ export const setupDriverWork = (Comrade.work(shell => ({
78
75
  await videoSource.add(sample);
79
76
  sample.close();
80
77
  }
81
- })(),
82
- (async () => {
78
+ })());
79
+ }
80
+ if (audio) {
81
+ const audioSource = new AudioSampleSource(config.audio);
82
+ output.addAudioTrack(audioSource);
83
+ const audioReader = audio.getReader();
84
+ promises.push((async () => {
83
85
  while (true) {
84
86
  const { done, value } = await audioReader.read();
85
87
  if (done)
@@ -89,26 +91,25 @@ export const setupDriverWork = (Comrade.work(shell => ({
89
91
  sample.close();
90
92
  value.close();
91
93
  }
92
- })()
93
- ]);
94
+ })());
95
+ }
96
+ await output.start();
97
+ await Promise.all(promises);
94
98
  await output.finalize();
95
99
  },
96
100
  async composite(composition) {
97
101
  const { stage, renderer } = await renderPIXI(1920, 1080);
98
102
  stage.removeChildren();
99
- const { baseFrame, disposables } = await renderLayer(composition, stage);
103
+ const { dispose } = await renderLayer(composition, stage);
100
104
  renderer.render(stage);
101
105
  // make sure browser support webgl/webgpu otherwise it might take much longer to construct frame
102
106
  // if its very slow on eg edge try chrome
103
107
  const frame = new VideoFrame(renderer.canvas, {
104
- timestamp: baseFrame?.timestamp,
105
- duration: baseFrame?.duration ?? undefined,
108
+ timestamp: 0,
109
+ duration: 0,
106
110
  });
107
- baseFrame?.close();
108
111
  renderer.clear();
109
- for (const disposable of disposables) {
110
- disposable.destroy(true);
111
- }
112
+ dispose();
112
113
  shell.transfer = [frame];
113
114
  return frame;
114
115
  }
@@ -129,33 +130,33 @@ async function renderPIXI(width, height) {
129
130
  pixi = { renderer, stage };
130
131
  return pixi;
131
132
  }
132
- async function renderLayer(layer, parent, disposables = []) {
133
+ const transitions = new Map();
134
+ async function renderLayer(layer, parent) {
133
135
  if (Array.isArray(layer)) {
134
- let baseFrame;
136
+ const disposers = [];
135
137
  for (const child of layer) {
136
- const result = await renderLayer(child, parent, disposables);
137
- baseFrame ??= result.baseFrame;
138
+ const result = await renderLayer(child, parent);
139
+ disposers.push(result.dispose);
138
140
  }
139
- return { baseFrame, disposables };
140
- }
141
- if (!isRenderableLayer(layer)) {
142
- console.warn('Invalid layer', layer);
143
- return { disposables };
141
+ return { dispose: () => disposers.forEach(d => d()) };
144
142
  }
145
143
  switch (layer.kind) {
146
144
  case 'text':
147
- return renderTextLayer(layer, parent, disposables);
145
+ return renderTextLayer(layer, parent);
148
146
  case 'image':
149
- return renderImageLayer(layer, parent, disposables);
147
+ return renderImageLayer(layer, parent);
148
+ case 'transition':
149
+ return renderTransitionLayer(layer, parent);
150
+ case 'gap': {
151
+ pixi?.renderer.clear();
152
+ return { dispose: () => { } };
153
+ }
150
154
  default:
151
155
  console.warn('Unknown layer kind', layer.kind);
152
- return { disposables };
156
+ return { dispose: () => { } };
153
157
  }
154
158
  }
155
- function isRenderableLayer(layer) {
156
- return !!layer && typeof layer === 'object' && typeof layer.kind === 'string';
157
- }
158
- function renderTextLayer(layer, parent, disposables) {
159
+ function renderTextLayer(layer, parent) {
159
160
  const text = new Text({
160
161
  text: layer.content,
161
162
  style: {
@@ -164,29 +165,37 @@ function renderTextLayer(layer, parent, disposables) {
164
165
  fill: layer.color ?? 'white'
165
166
  }
166
167
  });
167
- applyTransform(text, layer);
168
+ applyTransform(text, layer.matrix);
168
169
  parent.addChild(text);
169
- disposables.push(text);
170
- return { disposables };
170
+ return { dispose: () => text.destroy(true) };
171
171
  }
172
- function renderImageLayer(layer, parent, disposables) {
172
+ function renderImageLayer(layer, parent) {
173
173
  const texture = Texture.from(layer.frame);
174
174
  const sprite = new Sprite(texture);
175
- applyTransform(sprite, layer);
175
+ applyTransform(sprite, layer.matrix);
176
+ parent.addChild(sprite);
177
+ return { dispose: () => {
178
+ sprite.destroy(true);
179
+ texture.destroy(true);
180
+ layer.frame.close();
181
+ } };
182
+ }
183
+ function renderTransitionLayer({ from, to, progress, name }, parent) {
184
+ const transition = transitions.get(name) ??
185
+ (transitions.set(name, makeTransition({
186
+ name: "circle",
187
+ renderer: pixi.renderer
188
+ })),
189
+ transitions.get(name));
190
+ const texture = transition.render({ from, to, progress, width: from.displayWidth, height: from.displayHeight });
191
+ const sprite = new Sprite(texture);
176
192
  parent.addChild(sprite);
177
- disposables.push(sprite, texture);
178
- return { baseFrame: layer.frame, disposables };
193
+ return { dispose: () => sprite.destroy(false) };
179
194
  }
180
- function applyTransform(target, t = {}) {
181
- if (t.x)
182
- target.x = t.x;
183
- if (t.y)
184
- target.y = t.y;
185
- if (t.scale)
186
- target.scale.set(t.scale);
187
- if (t.opacity)
188
- target.alpha = t.opacity;
189
- if (t.anchor && 'anchor' in target)
190
- target.anchor.set(t.anchor);
195
+ function applyTransform(target, worldMatrix) {
196
+ if (!worldMatrix)
197
+ return;
198
+ const mx = mat6ToMatrix(worldMatrix);
199
+ target.setFromMatrix(mx);
191
200
  }
192
201
  //# sourceMappingURL=work.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../s/driver/fns/work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../s/driver/fns/work.ts"],"names":[],"mappings":"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"}