@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.
- package/CHANGELOG.md +75 -0
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -0
- package/esm/video/codec/av1.d.ts +8 -0
- package/esm/video/codec/av1.d.ts.map +1 -0
- package/esm/video/codec/av1.js +71 -0
- package/esm/video/codec/av1.js.map +1 -0
- package/esm/video/codec/h264.d.ts +7 -0
- package/esm/video/codec/h264.d.ts.map +1 -0
- package/esm/video/codec/h264.js +27 -0
- package/esm/video/codec/h264.js.map +1 -0
- package/esm/video/codec/h265.d.ts +7 -0
- package/esm/video/codec/h265.d.ts.map +1 -0
- package/esm/video/codec/h265.js +30 -0
- package/esm/video/codec/h265.js.map +1 -0
- package/esm/video/codec/h26x.d.ts +9 -0
- package/esm/video/codec/h26x.d.ts.map +1 -0
- package/esm/video/codec/h26x.js +35 -0
- package/esm/video/codec/h26x.js.map +1 -0
- package/esm/video/codec/index.d.ts +7 -0
- package/esm/video/codec/index.d.ts.map +1 -0
- package/esm/video/codec/index.js +7 -0
- package/esm/video/codec/index.js.map +1 -0
- package/esm/video/codec/type.d.ts +8 -0
- package/esm/video/codec/type.d.ts.map +1 -0
- package/esm/video/codec/type.js +2 -0
- package/esm/video/codec/type.js.map +1 -0
- package/esm/video/codec/utils.d.ts +4 -0
- package/esm/video/codec/utils.d.ts.map +1 -0
- package/esm/video/codec/utils.js +10 -0
- package/esm/video/codec/utils.js.map +1 -0
- package/esm/video/decoder.d.ts +35 -0
- package/esm/video/decoder.d.ts.map +1 -0
- package/esm/video/decoder.js +144 -0
- package/esm/video/decoder.js.map +1 -0
- package/esm/video/index.d.ts +4 -0
- package/esm/video/index.d.ts.map +1 -0
- package/esm/video/index.js +4 -0
- package/esm/video/index.js.map +1 -0
- package/esm/video/render/bitmap.d.ts +7 -0
- package/esm/video/render/bitmap.d.ts.map +1 -0
- package/esm/video/render/bitmap.js +17 -0
- package/esm/video/render/bitmap.js.map +1 -0
- package/esm/video/render/index.d.ts +4 -0
- package/esm/video/render/index.d.ts.map +1 -0
- package/esm/video/render/index.js +4 -0
- package/esm/video/render/index.js.map +1 -0
- package/esm/video/render/type.d.ts +4 -0
- package/esm/video/render/type.d.ts.map +1 -0
- package/esm/video/render/type.js +2 -0
- package/esm/video/render/type.js.map +1 -0
- package/esm/video/render/webgl.d.ts +16 -0
- package/esm/video/render/webgl.d.ts.map +1 -0
- package/esm/video/render/webgl.js +90 -0
- package/esm/video/render/webgl.js.map +1 -0
- package/package.json +52 -0
- package/src/index.ts +1 -0
- package/src/video/codec/av1.ts +101 -0
- package/src/video/codec/h264.ts +42 -0
- package/src/video/codec/h265.ts +47 -0
- package/src/video/codec/h26x.ts +45 -0
- package/src/video/codec/index.ts +6 -0
- package/src/video/codec/type.ts +12 -0
- package/src/video/codec/utils.ts +11 -0
- package/src/video/decoder.ts +197 -0
- package/src/video/index.ts +3 -0
- package/src/video/render/bitmap.ts +24 -0
- package/src/video/render/index.ts +3 -0
- package/src/video/render/type.ts +3 -0
- package/src/video/render/webgl.ts +118 -0
- package/tsconfig.build.json +21 -0
- package/tsconfig.build.tsbuildinfo +1 -0
|
@@ -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,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,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"}
|