@yume-chan/scrcpy-decoder-webcodecs 0.0.0-20240714132542

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 (76) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/LICENSE +21 -0
  3. package/README.md +49 -0
  4. package/esm/index.d.ts +2 -0
  5. package/esm/index.d.ts.map +1 -0
  6. package/esm/index.js +2 -0
  7. package/esm/index.js.map +1 -0
  8. package/esm/video/codec/av1.d.ts +8 -0
  9. package/esm/video/codec/av1.d.ts.map +1 -0
  10. package/esm/video/codec/av1.js +71 -0
  11. package/esm/video/codec/av1.js.map +1 -0
  12. package/esm/video/codec/h264.d.ts +7 -0
  13. package/esm/video/codec/h264.d.ts.map +1 -0
  14. package/esm/video/codec/h264.js +27 -0
  15. package/esm/video/codec/h264.js.map +1 -0
  16. package/esm/video/codec/h265.d.ts +7 -0
  17. package/esm/video/codec/h265.d.ts.map +1 -0
  18. package/esm/video/codec/h265.js +30 -0
  19. package/esm/video/codec/h265.js.map +1 -0
  20. package/esm/video/codec/h26x.d.ts +9 -0
  21. package/esm/video/codec/h26x.d.ts.map +1 -0
  22. package/esm/video/codec/h26x.js +35 -0
  23. package/esm/video/codec/h26x.js.map +1 -0
  24. package/esm/video/codec/index.d.ts +7 -0
  25. package/esm/video/codec/index.d.ts.map +1 -0
  26. package/esm/video/codec/index.js +7 -0
  27. package/esm/video/codec/index.js.map +1 -0
  28. package/esm/video/codec/type.d.ts +8 -0
  29. package/esm/video/codec/type.d.ts.map +1 -0
  30. package/esm/video/codec/type.js +2 -0
  31. package/esm/video/codec/type.js.map +1 -0
  32. package/esm/video/codec/utils.d.ts +4 -0
  33. package/esm/video/codec/utils.d.ts.map +1 -0
  34. package/esm/video/codec/utils.js +10 -0
  35. package/esm/video/codec/utils.js.map +1 -0
  36. package/esm/video/decoder.d.ts +35 -0
  37. package/esm/video/decoder.d.ts.map +1 -0
  38. package/esm/video/decoder.js +144 -0
  39. package/esm/video/decoder.js.map +1 -0
  40. package/esm/video/index.d.ts +4 -0
  41. package/esm/video/index.d.ts.map +1 -0
  42. package/esm/video/index.js +4 -0
  43. package/esm/video/index.js.map +1 -0
  44. package/esm/video/render/bitmap.d.ts +7 -0
  45. package/esm/video/render/bitmap.d.ts.map +1 -0
  46. package/esm/video/render/bitmap.js +17 -0
  47. package/esm/video/render/bitmap.js.map +1 -0
  48. package/esm/video/render/index.d.ts +4 -0
  49. package/esm/video/render/index.d.ts.map +1 -0
  50. package/esm/video/render/index.js +4 -0
  51. package/esm/video/render/index.js.map +1 -0
  52. package/esm/video/render/type.d.ts +4 -0
  53. package/esm/video/render/type.d.ts.map +1 -0
  54. package/esm/video/render/type.js +2 -0
  55. package/esm/video/render/type.js.map +1 -0
  56. package/esm/video/render/webgl.d.ts +16 -0
  57. package/esm/video/render/webgl.d.ts.map +1 -0
  58. package/esm/video/render/webgl.js +90 -0
  59. package/esm/video/render/webgl.js.map +1 -0
  60. package/package.json +52 -0
  61. package/src/index.ts +1 -0
  62. package/src/video/codec/av1.ts +101 -0
  63. package/src/video/codec/h264.ts +42 -0
  64. package/src/video/codec/h265.ts +47 -0
  65. package/src/video/codec/h26x.ts +45 -0
  66. package/src/video/codec/index.ts +6 -0
  67. package/src/video/codec/type.ts +12 -0
  68. package/src/video/codec/utils.ts +11 -0
  69. package/src/video/decoder.ts +197 -0
  70. package/src/video/index.ts +3 -0
  71. package/src/video/render/bitmap.ts +24 -0
  72. package/src/video/render/index.ts +3 -0
  73. package/src/video/render/type.ts +3 -0
  74. package/src/video/render/webgl.ts +118 -0
  75. package/tsconfig.build.json +21 -0
  76. package/tsconfig.build.tsbuildinfo +1 -0
@@ -0,0 +1,6 @@
1
+ export * from "./av1.js";
2
+ export * from "./h264.js";
3
+ export * from "./h265.js";
4
+ export * from "./h26x.js";
5
+ export * from "./type.js";
6
+ export * from "./utils.js";
@@ -0,0 +1,12 @@
1
+ import type { ScrcpyMediaStreamPacket } from "@yume-chan/scrcpy";
2
+
3
+ export interface CodecDecoder {
4
+ decode(packet: ScrcpyMediaStreamPacket): void;
5
+ }
6
+
7
+ export interface CodecDecoderConstructor {
8
+ new (
9
+ decoder: VideoDecoder,
10
+ updateSize: (width: number, height: number) => void,
11
+ ): CodecDecoder;
12
+ }
@@ -0,0 +1,11 @@
1
+ export function hexDigits(value: number) {
2
+ return value.toString(16).toUpperCase();
3
+ }
4
+
5
+ export function hexTwoDigits(value: number) {
6
+ return value.toString(16).toUpperCase().padStart(2, "0");
7
+ }
8
+
9
+ export function decimalTwoDigits(value: number) {
10
+ return value.toString(10).padStart(2, "0");
11
+ }
@@ -0,0 +1,197 @@
1
+ import { EventEmitter } from "@yume-chan/event";
2
+ import type { ScrcpyMediaStreamPacket } from "@yume-chan/scrcpy";
3
+ import { ScrcpyVideoCodecId } from "@yume-chan/scrcpy";
4
+ import type {
5
+ ScrcpyVideoDecoder,
6
+ ScrcpyVideoDecoderCapability,
7
+ TinyH264DecoderInit,
8
+ } from "@yume-chan/scrcpy-decoder-tinyh264";
9
+ import { createCanvas } from "@yume-chan/scrcpy-decoder-tinyh264";
10
+ import type { WritableStreamDefaultController } from "@yume-chan/stream-extra";
11
+ import { WritableStream } from "@yume-chan/stream-extra";
12
+
13
+ import { Av1Codec, H264Decoder, H265Decoder } from "./codec/index.js";
14
+ import type { CodecDecoder } from "./codec/type.js";
15
+ import type { FrameSink } from "./render/index.js";
16
+ import { BitmapFrameSink, WebGLFrameSink } from "./render/index.js";
17
+
18
+ export interface WebCodecsVideoDecoderInit extends TinyH264DecoderInit {
19
+ /**
20
+ * The video codec to decode
21
+ */
22
+ codec: ScrcpyVideoCodecId;
23
+
24
+ /**
25
+ * Whether to allow capturing the canvas content using APIs like `readPixels` and `toDataURL`.
26
+ * Enable this option may reduce performance.
27
+ */
28
+ enableCapture?: boolean | undefined;
29
+ }
30
+
31
+ export class WebCodecsVideoDecoder implements ScrcpyVideoDecoder {
32
+ static isSupported() {
33
+ return typeof globalThis.VideoDecoder !== "undefined";
34
+ }
35
+
36
+ static readonly capabilities: Record<string, ScrcpyVideoDecoderCapability> =
37
+ {
38
+ h264: {},
39
+ h265: {},
40
+ };
41
+
42
+ #codec: ScrcpyVideoCodecId;
43
+ get codec() {
44
+ return this.#codec;
45
+ }
46
+
47
+ #codecDecoder: CodecDecoder;
48
+
49
+ #writable: WritableStream<ScrcpyMediaStreamPacket>;
50
+ get writable() {
51
+ return this.#writable;
52
+ }
53
+
54
+ #renderer: HTMLCanvasElement | OffscreenCanvas;
55
+ get renderer() {
56
+ return this.#renderer;
57
+ }
58
+
59
+ #frameRendered = 0;
60
+ get framesRendered() {
61
+ return this.#frameRendered;
62
+ }
63
+
64
+ #frameSkipped = 0;
65
+ get framesSkipped() {
66
+ return this.#frameSkipped;
67
+ }
68
+
69
+ #sizeChanged = new EventEmitter<{ width: number; height: number }>();
70
+ get sizeChanged() {
71
+ return this.#sizeChanged.event;
72
+ }
73
+
74
+ #decoder: VideoDecoder;
75
+ #frameSink: FrameSink;
76
+
77
+ #currentFrameRendered = false;
78
+ #animationFrameId = 0;
79
+
80
+ /**
81
+ * Create a new WebCodecs video decoder.
82
+ */
83
+ constructor({ codec, canvas, enableCapture }: WebCodecsVideoDecoderInit) {
84
+ this.#codec = codec;
85
+
86
+ if (canvas) {
87
+ this.#renderer = canvas;
88
+ } else {
89
+ this.#renderer = createCanvas();
90
+ }
91
+
92
+ try {
93
+ this.#frameSink = new WebGLFrameSink(
94
+ this.#renderer,
95
+ !!enableCapture,
96
+ );
97
+ } catch {
98
+ this.#frameSink = new BitmapFrameSink(this.#renderer);
99
+ }
100
+
101
+ this.#decoder = new VideoDecoder({
102
+ output: (frame) => {
103
+ if (this.#currentFrameRendered) {
104
+ this.#frameRendered += 1;
105
+ } else {
106
+ this.#frameSkipped += 1;
107
+ }
108
+ this.#currentFrameRendered = false;
109
+
110
+ // PERF: Draw every frame to minimize latency at cost of performance.
111
+ // When multiple frames are drawn in one vertical sync interval,
112
+ // only the last one is visible to users.
113
+ // But this ensures users can always see the most up-to-date screen.
114
+ // This is also the behavior of official Scrcpy client.
115
+ // https://github.com/Genymobile/scrcpy/issues/3679
116
+ this.#updateSize(frame.displayWidth, frame.displayHeight);
117
+ this.#frameSink.draw(frame);
118
+ },
119
+ error(e) {
120
+ if (controller) {
121
+ try {
122
+ controller.error(e);
123
+ } catch {
124
+ // ignore
125
+ // `controller` may already in error state
126
+ }
127
+ } else {
128
+ error = e;
129
+ }
130
+ },
131
+ });
132
+
133
+ switch (this.#codec) {
134
+ case ScrcpyVideoCodecId.H264:
135
+ this.#codecDecoder = new H264Decoder(
136
+ this.#decoder,
137
+ this.#updateSize,
138
+ );
139
+ break;
140
+ case ScrcpyVideoCodecId.H265:
141
+ this.#codecDecoder = new H265Decoder(
142
+ this.#decoder,
143
+ this.#updateSize,
144
+ );
145
+ break;
146
+ case ScrcpyVideoCodecId.AV1:
147
+ this.#codecDecoder = new Av1Codec(
148
+ this.#decoder,
149
+ this.#updateSize,
150
+ );
151
+ break;
152
+ }
153
+
154
+ let error: Error | undefined;
155
+ let controller: WritableStreamDefaultController | undefined;
156
+ this.#writable = new WritableStream<ScrcpyMediaStreamPacket>({
157
+ start: (_controller) => {
158
+ if (error) {
159
+ _controller.error(error);
160
+ } else {
161
+ controller = _controller;
162
+ }
163
+ },
164
+ write: (packet) => {
165
+ this.#codecDecoder.decode(packet);
166
+ },
167
+ });
168
+
169
+ this.#onFramePresented();
170
+ }
171
+
172
+ #updateSize = (width: number, height: number) => {
173
+ if (
174
+ width !== this.#renderer.width ||
175
+ height !== this.#renderer.height
176
+ ) {
177
+ this.#renderer.width = width;
178
+ this.#renderer.height = height;
179
+ this.#sizeChanged.fire({
180
+ width: width,
181
+ height: height,
182
+ });
183
+ }
184
+ };
185
+
186
+ #onFramePresented = () => {
187
+ this.#currentFrameRendered = true;
188
+ this.#animationFrameId = requestAnimationFrame(this.#onFramePresented);
189
+ };
190
+
191
+ dispose() {
192
+ cancelAnimationFrame(this.#animationFrameId);
193
+ if (this.#decoder.state !== "closed") {
194
+ this.#decoder.close();
195
+ }
196
+ }
197
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./codec/index.js";
2
+ export * from "./decoder.js";
3
+ export * from "./render/index.js";
@@ -0,0 +1,24 @@
1
+ import type { FrameSink } from "./type.js";
2
+
3
+ export class BitmapFrameSink implements FrameSink {
4
+ #context: ImageBitmapRenderingContext;
5
+
6
+ constructor(canvas: HTMLCanvasElement | OffscreenCanvas) {
7
+ this.#context = canvas.getContext("bitmaprenderer", { alpha: false })!;
8
+ }
9
+
10
+ draw(frame: VideoFrame): void {
11
+ createImageBitmap(frame)
12
+ .then((bitmap) => {
13
+ this.#context.transferFromImageBitmap(bitmap);
14
+ frame.close();
15
+ })
16
+ .catch((e) => {
17
+ console.warn(
18
+ "[@yume-chan/scrcpy-decoder-webcodecs]",
19
+ "VideoDecoder error",
20
+ e,
21
+ );
22
+ });
23
+ }
24
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./bitmap.js";
2
+ export * from "./type.js";
3
+ export * from "./webgl.js";
@@ -0,0 +1,3 @@
1
+ export interface FrameSink {
2
+ draw(frame: VideoFrame): void;
3
+ }
@@ -0,0 +1,118 @@
1
+ import type { FrameSink } from "./type.js";
2
+
3
+ export class WebGLFrameSink implements FrameSink {
4
+ static vertexShaderSource = `
5
+ attribute vec2 xy;
6
+
7
+ varying highp vec2 uv;
8
+
9
+ void main(void) {
10
+ gl_Position = vec4(xy, 0.0, 1.0);
11
+ // Map vertex coordinates (-1 to +1) to UV coordinates (0 to 1).
12
+ // UV coordinates are Y-flipped relative to vertex coordinates.
13
+ uv = vec2((1.0 + xy.x) / 2.0, (1.0 - xy.y) / 2.0);
14
+ }
15
+ `;
16
+
17
+ static fragmentShaderSource = `
18
+ varying highp vec2 uv;
19
+
20
+ uniform sampler2D texture;
21
+
22
+ void main(void) {
23
+ gl_FragColor = texture2D(texture, uv);
24
+ }
25
+ `;
26
+
27
+ #context: WebGLRenderingContext;
28
+
29
+ /**
30
+ * Create a new WebGL frame renderer.
31
+ * @param canvas The canvas to render frames to.
32
+ * @param enableCapture
33
+ * Whether to allow capturing the canvas content using APIs like `readPixels` and `toDataURL`.
34
+ * Enable this option may reduce performance.
35
+ */
36
+ constructor(
37
+ canvas: HTMLCanvasElement | OffscreenCanvas,
38
+ enableCapture: boolean,
39
+ ) {
40
+ const attributes: WebGLContextAttributes = {
41
+ // Low-power GPU should be enough for video rendering.
42
+ powerPreference: "low-power",
43
+ alpha: false,
44
+ // Disallow software rendering.
45
+ // Other rendering methods are faster than software-based WebGL.
46
+ failIfMajorPerformanceCaveat: true,
47
+ preserveDrawingBuffer: enableCapture,
48
+ };
49
+
50
+ const gl =
51
+ canvas.getContext("webgl2", attributes) ||
52
+ canvas.getContext("webgl", attributes);
53
+ if (!gl) {
54
+ throw new Error("WebGL not supported");
55
+ }
56
+ this.#context = gl;
57
+
58
+ const vertexShader = gl.createShader(gl.VERTEX_SHADER)!;
59
+ gl.shaderSource(vertexShader, WebGLFrameSink.vertexShaderSource);
60
+ gl.compileShader(vertexShader);
61
+ if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
62
+ throw new Error(gl.getShaderInfoLog(vertexShader)!);
63
+ }
64
+
65
+ const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER)!;
66
+ gl.shaderSource(fragmentShader, WebGLFrameSink.fragmentShaderSource);
67
+ gl.compileShader(fragmentShader);
68
+ if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
69
+ throw new Error(gl.getShaderInfoLog(fragmentShader)!);
70
+ }
71
+
72
+ const shaderProgram = gl.createProgram()!;
73
+ gl.attachShader(shaderProgram, vertexShader);
74
+ gl.attachShader(shaderProgram, fragmentShader);
75
+ gl.linkProgram(shaderProgram);
76
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
77
+ throw new Error(gl.getProgramInfoLog(shaderProgram)!);
78
+ }
79
+ gl.useProgram(shaderProgram);
80
+
81
+ // Vertex coordinates, clockwise from bottom-left.
82
+ const vertexBuffer = gl.createBuffer();
83
+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
84
+ gl.bufferData(
85
+ gl.ARRAY_BUFFER,
86
+ new Float32Array([-1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0, -1.0]),
87
+ gl.STATIC_DRAW,
88
+ );
89
+
90
+ const xyLocation = gl.getAttribLocation(shaderProgram, "xy");
91
+ gl.vertexAttribPointer(xyLocation, 2, gl.FLOAT, false, 0, 0);
92
+ gl.enableVertexAttribArray(xyLocation);
93
+
94
+ // Create one texture to upload frames to.
95
+ const texture = gl.createTexture();
96
+ gl.bindTexture(gl.TEXTURE_2D, texture);
97
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
98
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
99
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
100
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
101
+ }
102
+
103
+ draw(frame: VideoFrame) {
104
+ const gl = this.#context;
105
+ gl.texImage2D(
106
+ gl.TEXTURE_2D,
107
+ 0,
108
+ gl.RGBA,
109
+ gl.RGBA,
110
+ gl.UNSIGNED_BYTE,
111
+ frame,
112
+ );
113
+ frame.close();
114
+
115
+ gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
116
+ gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
117
+ }
118
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "extends": "./node_modules/@yume-chan/tsconfig/tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": [
5
+ "ESNext",
6
+ "DOM"
7
+ ],
8
+ "types": []
9
+ },
10
+ "references": [
11
+ {
12
+ "path": "../scrcpy/tsconfig.build.json"
13
+ },
14
+ {
15
+ "path": "../scrcpy-decoder-tinyh264/tsconfig.build.json"
16
+ },
17
+ {
18
+ "path": "../stream-extra/tsconfig.build.json"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../scrcpy/esm/codec/av1.d.ts","../scrcpy/esm/codec/h264.d.ts","../scrcpy/esm/codec/nalu.d.ts","../scrcpy/esm/codec/h265.d.ts","../scrcpy/esm/codec/index.d.ts","../struct/esm/basic/options.d.ts","../struct/esm/basic/struct-value.d.ts","../struct/esm/basic/field-value.d.ts","../struct/esm/utils.d.ts","../struct/esm/basic/stream.d.ts","../struct/esm/basic/definition.d.ts","../struct/esm/basic/index.d.ts","../struct/esm/types/bigint.d.ts","../struct/esm/types/buffer/base.d.ts","../struct/esm/types/buffer/fixed-length.d.ts","../struct/esm/types/buffer/variable-length.d.ts","../struct/esm/types/buffer/index.d.ts","../struct/esm/types/number.d.ts","../struct/esm/types/index.d.ts","../struct/esm/struct.d.ts","../struct/esm/sync-promise.d.ts","../struct/esm/index.d.ts","../stream-extra/esm/types.d.ts","../stream-extra/esm/stream.d.ts","../stream-extra/esm/buffered.d.ts","../stream-extra/esm/buffered-transform.d.ts","../stream-extra/esm/concat.d.ts","../stream-extra/esm/consumable.d.ts","../stream-extra/esm/maybe-consumable.d.ts","../stream-extra/esm/distribution.d.ts","../stream-extra/esm/wrap-readable.d.ts","../stream-extra/esm/duplex.d.ts","../stream-extra/esm/encoding.d.ts","../stream-extra/esm/inspect.d.ts","../stream-extra/esm/pipe-from.d.ts","../stream-extra/esm/push-readable.d.ts","../stream-extra/esm/split-string.d.ts","../stream-extra/esm/struct-deserialize.d.ts","../stream-extra/esm/struct-serialize.d.ts","../stream-extra/esm/task.d.ts","../stream-extra/esm/wrap-writable.d.ts","../stream-extra/esm/index.d.ts","../scrcpy/esm/options/1_16/scroll.d.ts","../scrcpy/esm/options/codec.d.ts","../scrcpy/esm/options/types.d.ts","../scrcpy/esm/options/1_16/codec-options.d.ts","../scrcpy/esm/options/1_16/float.d.ts","../scrcpy/esm/options/1_16/init.d.ts","../scrcpy/esm/options/1_16/message.d.ts","../scrcpy/esm/options/1_16/options.d.ts","../scrcpy/esm/options/1_16/index.d.ts","../scrcpy/esm/options/1_17.d.ts","../scrcpy/esm/options/1_18.d.ts","../scrcpy/esm/options/1_21.d.ts","../scrcpy/esm/options/1_22/init.d.ts","../scrcpy/esm/options/1_22/options.d.ts","../scrcpy/esm/options/1_22/scroll.d.ts","../scrcpy/esm/options/1_22/index.d.ts","../scrcpy/esm/options/1_23.d.ts","../scrcpy/esm/options/1_24.d.ts","../scrcpy/esm/options/1_25/options.d.ts","../scrcpy/esm/options/1_25/scroll.d.ts","../scrcpy/esm/options/1_25/index.d.ts","../scrcpy/esm/options/2_0.d.ts","../scrcpy/esm/options/2_1.d.ts","../scrcpy/esm/options/2_2.d.ts","../scrcpy/esm/options/2_3.d.ts","../scrcpy/esm/options/latest.d.ts","../scrcpy/esm/options/index.d.ts","../scrcpy/esm/control/back-or-screen-on.d.ts","../scrcpy/esm/control/empty.d.ts","../scrcpy/esm/control/inject-touch.d.ts","../scrcpy/esm/control/hover-helper.d.ts","../scrcpy/esm/control/inject-keycode.d.ts","../scrcpy/esm/control/inject-scroll.d.ts","../scrcpy/esm/control/inject-text.d.ts","../scrcpy/esm/control/rotate-device.d.ts","../scrcpy/esm/control/set-clipboard.d.ts","../scrcpy/esm/control/set-screen-power-mode.d.ts","../scrcpy/esm/control/serializer.d.ts","../scrcpy/esm/control/type.d.ts","../scrcpy/esm/control/writer.d.ts","../scrcpy/esm/control/index.d.ts","../scrcpy/esm/index.d.ts","./src/video/codec/type.ts","./src/video/codec/utils.ts","./src/video/codec/av1.ts","./src/video/codec/h26x.ts","./src/video/codec/h264.ts","../no-data-view/esm/int16.d.ts","../no-data-view/esm/int32.d.ts","../no-data-view/esm/int64.d.ts","../no-data-view/esm/int8.d.ts","../no-data-view/esm/uint16.d.ts","../no-data-view/esm/uint32.d.ts","../no-data-view/esm/uint64.d.ts","../no-data-view/esm/index.d.ts","./src/video/codec/h265.ts","./src/video/codec/index.ts","../event/esm/disposable.d.ts","../event/esm/event.d.ts","../event/esm/event-emitter.d.ts","../event/esm/utils.d.ts","../event/esm/index.d.ts","../scrcpy-decoder-tinyh264/esm/types.d.ts","../scrcpy-decoder-tinyh264/esm/decoder.d.ts","../scrcpy-decoder-tinyh264/esm/wrapper.d.ts","../scrcpy-decoder-tinyh264/esm/index.d.ts","./src/video/render/type.ts","./src/video/render/bitmap.ts","./src/video/render/webgl.ts","./src/video/render/index.ts","./src/video/decoder.ts","./src/video/index.ts","./src/index.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5","impliedFormat":1},{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true,"impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"03c15761a67b0ffa6e0331e9ba7789dda22863d56d4a5e0f711aa041d8de70a9","impliedFormat":99},{"version":"8ba25a7b32fa40a6aad84745006f198b725c9c8013574df36505dbb4d098d92f","impliedFormat":99},{"version":"b01df61515da17aead1223b0d2b5b7cd811c615a1225f4d0bffe88320e42fae5","impliedFormat":99},{"version":"7daebe7d327887f1563abfa87c99f70bbee27162161cf12d85ae45b69a92265f","impliedFormat":99},{"version":"8dcee60e0ce1d2b35cb1ada17420565cd6a5307ae280f62b3d92e10fd344aebc","impliedFormat":99},{"version":"7ceac7d7800ef7065908464aba0a009e9a03ff95f177a44f999687bdf10d039f","impliedFormat":99},{"version":"6ed3421533e611f8542c17c128c32a26031cbedcd9b1e7c6c42c3a143982a99d","impliedFormat":99},{"version":"bd9cdd3ad0e61ff8a31bcbc38997fa68ec3f5f816727e299328bb3c99ef1304a","impliedFormat":99},{"version":"a740a1e2d889fc4344fbb49a7f8b02ee664850be5cdcf029ace8ceb4316623db","impliedFormat":99},{"version":"ffe3c0472cf0ad60edbf5037319135c645bd92e7acbf403d72101df3598258e0","impliedFormat":99},{"version":"64ebe41006e87ea8b5e9b3acf048018b5226c4b08c6575526a76f6801143bf90","impliedFormat":99},{"version":"5af3b8b1a9063e033fc1e32a3e95956f5f5e22548d5ccca628b1ab87e42087d1","impliedFormat":99},{"version":"3ac6ab1e74d8e16fc4ff4e0e6e6f04704f437a63a4604bc4179995d62f0bd764","impliedFormat":99},{"version":"01f77e142f3658666e7854140b20378d371762ea3272f19178c4e09c333d369f","impliedFormat":99},{"version":"e826cfae98dca09c23ae2a696a46c5e4382e0e610aae292d0b5e2283f049e90e","impliedFormat":99},{"version":"b83be4742f1a4ad499c55c23728723cf2d3f300daf0aa55159b1a0c578a80b36","impliedFormat":99},{"version":"5ea1325a998e722fffc89ff8c2d00eaf35e491f3fada16fb56c6360f63d16d79","impliedFormat":99},{"version":"10562a4947e441650dab502f7d4185b19a4fff5de6d75968060027efcc461372","impliedFormat":99},{"version":"e24d67437856c921a9a40f7fbac38ac576439e6616eb698fb769279ecbc7802a","impliedFormat":99},{"version":"d4fc56eec997d208dc6ed364a5640ac789a655c090322c00e8bb934d4863ef6b","impliedFormat":99},{"version":"1efeb47776a2e05521198493d35496d8034543ac1721d4881a5588f9c8346668","impliedFormat":99},{"version":"01056fd3092681e2f1c0cb0e1fec91ac081b5bb758551494fca1c1d27f06c2b4","affectsGlobalScope":true,"impliedFormat":99},{"version":"1745b892ed69e2698009450f90986116c0f806c15aa63ea0a2fbea61106f9ed0","impliedFormat":99},{"version":"61c1f41743dbb7959987a16d8a1a00e57b90065dba0b84635abe5580e9e44e6d","impliedFormat":99},{"version":"d189c9a6203dd8c814cbabb78ee77ec7f806a8c4f92c4029e8c84cf4d3b69013","impliedFormat":99},{"version":"7e9aecc83330a5c15b10f8995dfce2e1004f9bbdd0c4a9df18e8483facd76703","impliedFormat":99},{"version":"256ac5c01fbbd7f17ec5d916b2cf1c4639cef6d5ac2161c82849db6cdc8d0c42","impliedFormat":99},{"version":"0ba77fc8dd62280956264b9baefdf4ceacca3bcebca2becc8bc4ac41c18c7c90","impliedFormat":99},{"version":"b6d2bfb90337bf55e847179e55a7fb6d398c42df992aa43dfb5020a4c4651fa5","impliedFormat":99},{"version":"afe4250b9645928151991fd60790a92571d9251b60be91032152b472d6830ebf","impliedFormat":99},{"version":"17044e5e7e129f8374daa67588cfb05367a511523f62d55ac215f86ed31b7bd5","impliedFormat":99},{"version":"2089a59a5359a6e33ab03808a1f2eb66169a8854d31c165e5586a0c9e83a008c","impliedFormat":99},{"version":"d24fed323d65a8d753ff2d0ea105f5d0788a50b585c1a1334d9bd336b2f378c7","impliedFormat":99},{"version":"4ebc57d20caf062019a2b8c9ce1e54602a411022eb4f7fa325888b9bcf63693a","impliedFormat":99},{"version":"52279f70738da349b60a09be1294e3295c7e37189c10deb083ed6b5eb1c86744","impliedFormat":99},{"version":"6fa6950e14d6ca719a29c3ad2fb79d2b03a175af9e3441b3e762cf3b22c92d2b","impliedFormat":99},{"version":"98678d6ac29dfa3f80452de2a87f464dee4908476f817d6f5e0677802ad43f7b","impliedFormat":99},{"version":"be2556062b9bb578c9596037387d3ebbd738009f0b092031caad3c5a54c920af","impliedFormat":99},{"version":"29be431938e3fba1faf2c6a9d0bd0d44a11c62fc4961f56bd476f19afda75ab9","impliedFormat":99},{"version":"560a9f24b6bcfc74fc2a18f6e8355aff169d15541c6ebd0ff7e05bdaad2f8949","impliedFormat":99},{"version":"f36862ddf4c1d6dc6c2638baa6fa84ba196b0642b765e6af0163a4d688b6676d","impliedFormat":99},{"version":"8c203173f8b0e941c5957ee8b77ee3a3cafbf82051cb086a9c2b002236d27c8b","impliedFormat":99},{"version":"981cb93ad7614aa65352d5ac31a51e90802284d28fb41a9fc583150ec94621ce","impliedFormat":99},{"version":"3452362af277274458f83b06012e1ac40de25eadd46895b4da4b5c5526d4ba4f","impliedFormat":99},{"version":"0bd2061364d73112c178c12895e227a7a4c9b863b247450df846df89094281ef","impliedFormat":99},{"version":"80994b476f8262486b058483ee8d203f86fc2bb99e4157af32f4ffdb40978551","impliedFormat":99},{"version":"b94b66e37602143fca96b771841f77a473e04943d5300194117a050a38549d9a","impliedFormat":99},{"version":"52ba05f2c14d30fc792c73f2c66ebbc85465dd630cb5553da997b282a24ce6f3","impliedFormat":99},{"version":"0d5a0e1c293cb4d8176e8d810cfbe8ab2f7a387ffeff11933a02faae40566ee9","impliedFormat":99},{"version":"8a78a80d5482d7bf0e427a7114d1f96d33d5a87cd595cedc99eeef8b2f638198","impliedFormat":99},{"version":"b37bd86ead743bb113116532b133ae21f6a9fbe0220e4b2929209b3b9929891e","impliedFormat":99},{"version":"44227725548c8f56ba194d9904f3ee3fc56080dbbe7e0027715ede6754864f41","impliedFormat":99},{"version":"151bcc8dc5b6e4fe80aa1cc34260242fe1bd08a017ca3a6483a1f91928c9a594","impliedFormat":99},{"version":"fc4146522391aa3637a5f731115f21bac230e30065f974bb2d2ed3071cb78931","impliedFormat":99},{"version":"d82a659eab5a7bc4e555b8ed631db1e0b2277959c07097c3f1279c3dc74d843a","impliedFormat":99},{"version":"64cd11107f57c09d47ea8ce10270c2ff0ee0f6d96cffa409a1aaf9ab0b6a9e76","impliedFormat":99},{"version":"e332d35d49326925df3c905987be62a101b1ddd0278cea0d321c54fb32fc1d2a","impliedFormat":99},{"version":"72920918942e421145fa7d3405d1e20e36126336f11355b0fad4ddf66c96b395","impliedFormat":99},{"version":"2c2a1368e278cef5e5a6f2b1f275aaafeb382c2fa36c66405003bcef4183dc31","impliedFormat":99},{"version":"6db6d40e4e1dcedd07c250cb4b61fae50f045e6467194eaff1cb3aec7da72e74","impliedFormat":99},{"version":"656d82c15e38e9f7e61faa0624e51876d7ad85d120606406bab919dae1c36428","impliedFormat":99},{"version":"e3d41c24cd4417621a564456a433e66cb58a10404b8078dbe7e7b8b8f6f01d9f","impliedFormat":99},{"version":"ffe342c99bb841bdc1955f43c0b1f388f6522560612fe3dade4c45f9982198d4","impliedFormat":99},{"version":"1e2a1928c075bb0815dcb99ba198f1556ad4ee135610c52b87ce286bb455f6bc","impliedFormat":99},{"version":"d1b4e93cba4c645009a37c75835499aebbb1bf6846ec32b937128f3351cb629e","impliedFormat":99},{"version":"45d4df9134e9345d2429bca9e5bb1cd55c611ebbc08f4381b94b85690b29e094","impliedFormat":99},{"version":"053f5a27255fec0c951c736b93b1ad6c21ae2c0723284da1c3b74c4590515d4f","impliedFormat":99},{"version":"b11ae03d7be571989784aaba16c5ac6f8ddbbf66a01f6186df109f4dc284c6c3","impliedFormat":99},{"version":"2054d08bec68cd04aa28ebfe01b5ed9367a482b6746c2285bc0cab9c46d884b4","impliedFormat":99},{"version":"49d33b0cec814e71f33a3c680b46ef8112b7b4ac76c304e8d86bcf5e8aafc148","impliedFormat":99},{"version":"ea34979f4b1b2960d53b7ac9dfed6d986811da85bc7cc5e283b03076bf59ce20","impliedFormat":99},{"version":"7a6d5e8fbea7792752bd7db7a8e437d57ed28f3b4c2508807fbfc99999045fbf","impliedFormat":99},{"version":"014b27d82e806d9b835e7c09e499a07531c2f2f810fe2609d7c1eb597671f7b9","impliedFormat":99},{"version":"4affacce9770e85ee7c5999b175596a7e6aed7b022f0895089c7a9613d0a8764","impliedFormat":99},{"version":"75941176e22eb9eb3749de66634b65ab20420243da96054723fa823085c6c9ec","impliedFormat":99},{"version":"75010ee3a47aca74876cbe76c08636b376a0e4c622aeaa49fb905b767153a551","impliedFormat":99},{"version":"3d7cd95d231e345e45db12793781582bfaa84964e0d05882eb05b3aec2329cf1","impliedFormat":99},{"version":"5785cabdf475ceb1493b6e215070ae2d3d212effd091c46bfeecbc9fb69363b3","impliedFormat":99},{"version":"92dc737f6c44f1a60d1aa575cfbb7c1b31610c27a8e028d922ac2b322f0fe4af","impliedFormat":99},{"version":"02ea2d3aac7c0d0ad2765347909a79b1868dbf3e63c5e987b59691d15b51fc19","impliedFormat":99},{"version":"e76f1c18be68f038519be05bae9ff4557ce664adc2f6bbd6ba88ae2d7a23a20a","impliedFormat":99},{"version":"6252b829fbc7c8226314fe3e8a7f8deaca7d8a8b98679e202ea711c61eba29da","impliedFormat":99},{"version":"d3230f20880cd6eec8b9287d1e1e7a203dbc1051aa8c6ba015c7e1676c1d3c5a","impliedFormat":99},{"version":"abe562a78d142fea4aac9d8e8f53bd5e09b67329757c4759b1c76e548c072a8e","impliedFormat":99},{"version":"e44f22e2fc1bb4cf677ea492681a2e3943bb890eae6a9d94d2cbc843eff4eca6","signature":"c83370fdb09026cf145608f96181379a2d3127e649cc9abfe4080727bf8fed2b","impliedFormat":99},{"version":"1995ac5baa0ba2e7c5a481c6bd28025d0e3afdcc625da7777c61935e9381eaec","signature":"0c113f2f83d885555e893d1a85533fc9398d25e90dfa4b44783496a9459de581","impliedFormat":99},{"version":"c7f9fa69b3b9c2dc0906ed99605d6523f83c591fd16d42fc1832b1d7b8b20e7b","signature":"585cb03d7b8baae2c68e42ff13128f14be19e90c75b37121413ee190b6ef1a93","impliedFormat":99},{"version":"f68cd1017c300558e231458635c82c46076786bcc87c60723138258bee06680c","signature":"6722c5ee17c1696ce74aa3cff4620016a38edad90562c22b52d106abd3af6aad","impliedFormat":99},{"version":"86e25f62cf6dd437b8803bc78c64f53512c0865fe7a3c28fc511e09541c4dcb4","signature":"cf90952357d054289dacec13bc432dbc4c0020a3dfaed5c75554ccf3d3d19faf","impliedFormat":99},{"version":"ae05f9cd1c16cfc37310497693db5ae2a35187579d5bf1abeb033fc0cef5d711","impliedFormat":99},{"version":"58afd688a095623679cbe3a816936ee0f1dc41e2024f19be5c067594f61fcd87","impliedFormat":99},{"version":"1c7a7a88866d0a65928620cbbdd9f0a5d4e13a7ea9e629e2f26a96cacded7949","impliedFormat":99},{"version":"8d2e1284733147f944b2454b8013aa961527290720988eef4401a763213c03fa","impliedFormat":99},{"version":"e5592d565d21c0dab2769bdffe96ecc3409ab2711e651d277289adaa3e97fa35","impliedFormat":99},{"version":"ec4108b0012c9c2bed8d9c81e09a7d2f039564f9b0245eb7ad1fbc32120c1d96","impliedFormat":99},{"version":"5e56bf79192b77d47153ce8c8f7a2bd13ebcf2733538451d18e5c1edc8bd0f7b","impliedFormat":99},{"version":"5aba1004e83ebe1769f09111717b1d3438232eb659f8751d22c438ff14a001c7","impliedFormat":99},{"version":"59964bfdb6960bfdb7260712096c221e134f29a964a810e424442a26acf50ac1","signature":"eeca859aeefcbef3f70470d444746c58a2bc07fcfa8903f53631b3421d4565d7","impliedFormat":99},{"version":"1eda773c793d6b1fdb7678d21792baff013eda39cea4cc738149e54786a782b5","impliedFormat":99},{"version":"207ecf493b69ddca525bbbd8f1d120d99d00be1448ae8c0e690526f24dc182ca","impliedFormat":99},{"version":"af6ac8a19dbd05c34feff97d0eae81194fd0be1358bd2366478e9a574492d332","impliedFormat":99},{"version":"a21c587d34edbe9808b8f4fac207d190f802687b477ef55ee0f494d79a427f31","impliedFormat":99},{"version":"f00b8fc0c970cfd54d4df6047aae216bce4d7a2ceb6610655541a678ac54c57a","impliedFormat":99},{"version":"11fd6a023d60896a902933f64a2c8363102e5276838dbe29aa02a24c2e69fbd1","impliedFormat":99},{"version":"5b6cc01027305f95160b5684c2d0fc4f2b27ed39b4e0ea6466090b722b87a7ac","impliedFormat":99},{"version":"6b3737eb77fbe5726bad65b0d11bae0c92a466be117e5817e77fae6204dd3b93","impliedFormat":99},{"version":"f811e036cb1c0580170cf9354001e34ec3cb8df2f8788d9f07bf37c44c608e36","impliedFormat":99},{"version":"92d7af328f554f85413a55f83e6718c3b8a827c3ae5abe5bef319ea25c32153a","impliedFormat":99},{"version":"f1aac9516e1cfd1685663ec2e3e2d24bbcca1a2d23ea30a30e8b2da4f1135a58","impliedFormat":99},{"version":"33cc4f5634ce7365cac86f59d5da7ffb3d1e4beacd5c3a461b19d31d61eb6eb6","signature":"185cb99ed35318f40023e1754cf08a521b2df62fa960707c5c9fc78bf96e755d","impliedFormat":99},{"version":"a8007b241b6fd7cf56ae0e4fc3a6b5574c991d41bde3e60b52bc14e69a2c48a3","signature":"a169564f70525d6834d3c43869387d68f8e249c41ddeafde110f927b3ac7acf8","impliedFormat":99},{"version":"c3eb479e3ded0efac85dc8ac582e62e8ad2400e24a8b5d1b0cd8f171bca27478","impliedFormat":99},{"version":"17443aa6b56bcff56c90e5a1aac991dda184e2c1cdf193b076f0bb49e0be492d","signature":"a4d62c965940da3dc8cc7fd0897d7c26373073241273b1252ba03a61ded54e1b","impliedFormat":99},{"version":"9726a3b9858acf62a90d6533e52e9057ddb10951604fd26d2a483d045cbbe15a","impliedFormat":99},{"version":"6518e37e570e2fe16787191076a4e1303f9d2d803a99eab1516453d5442c7687","impliedFormat":99}],"root":[[157,161],170,171,[181,187]],"options":{"composite":true,"declaration":true,"declarationDir":"./esm","declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./esm","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":99,"verbatimModuleSyntax":true},"fileIdsList":[[172,173],[172],[172,173,174,175],[173],[162,163,164,165,166,167,168],[114,156,176,177],[177,178,179],[114,156,176],[176],[186],[156,157,158],[156,158,160],[156,158,160,169],[156,157],[157,158,159,160,161,170],[156],[114,156,157,171,176,180,184],[171,184,185],[181],[181,182,183],[75],[73,74,75,76],[141],[94],[144],[142,143,144,145,146,147,148,149,150,151,152,153,154],[141,144,146,147,150,151],[114,141,144,146,147,150,151],[77,141,155],[117],[115,118,119,120,121,122],[118],[94,155],[94,114,115,116,117,118,120,155],[117,118,120,123],[94,117,118,124,155],[94,117,125,141,155],[127,128,129],[126],[94,114,116,117,118,123,125,127],[94,123],[114,116,117,125,130,141],[117,125,131,141],[133,134],[117,123,132],[94,123,155],[94,114,116,117,123,125,132,155],[117,125,136,141],[117,125,136,137,141],[94,114,116,117,125,136,138,141],[114,117],[116,117,123,124,125,126,130,131,132,135,136,137,138,139,140],[125,139],[94,114,115,116,155],[94,96,97],[94,96],[96],[96,101],[94,96,103],[96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],[96,100],[95,96],[95],[94,98],[78,79,80,82],[78,79,83],[78,79,80,82,83],[81],[80,83],[81,84,91,92,93],[81,84,91],[84],[86],[86,87,88],[81,84,86],[85,89,90]],"referencedMap":[[174,1],[173,2],[176,3],[175,4],[169,5],[178,6],[180,7],[177,8],[179,9],[187,10],[159,11],[161,12],[170,13],[160,14],[171,15],[157,16],[185,17],[186,18],[182,19],[184,20],[183,19],[76,21],[77,22],[142,23],[143,24],[145,25],[155,26],[146,24],[147,23],[148,24],[144,23],[149,24],[152,27],[150,23],[151,24],[153,23],[154,28],[156,29],[118,30],[119,24],[123,31],[120,32],[121,33],[122,34],[115,33],[124,35],[125,36],[126,37],[130,38],[127,39],[128,40],[129,41],[131,42],[132,43],[135,44],[133,45],[134,46],[136,47],[137,48],[138,49],[139,50],[116,51],[141,52],[140,53],[117,54],[98,55],[97,56],[99,57],[100,57],[102,58],[104,59],[105,57],[114,60],[106,57],[101,61],[107,62],[108,57],[109,57],[96,63],[110,64],[111,56],[103,56],[113,56],[83,65],[80,66],[84,67],[82,68],[79,69],[94,70],[92,71],[85,72],[86,72],[87,73],[89,74],[88,75],[91,76],[90,72]],"latestChangedDtsFile":"./esm/index.d.ts"},"version":"5.5.3"}