@sketch-hq/sketch-web-renderer 3.2.1 → 3.2.2
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 +10 -0
- package/dist/index.js +1 -1
- package/dist/module-debug.wasm +0 -0
- package/dist/module-release.wasm +0 -0
- package/dist/static/js/web-renderer-8addc65e32c7f00a9bf5.chunk.js +1 -0
- package/dist/static/js/web-renderer-8cbabe889ae0a40da834.chunk.js +1 -0
- package/dist/static/js/web-renderer-dcd9a388dd98f28adced.chunk.js +1 -0
- package/dist/ts/Manager.d.ts +21 -11
- package/dist/ts/Manager.d.ts.map +1 -1
- package/dist/ts/SketchWeb.d.ts +25 -15
- package/dist/ts/SketchWeb.d.ts.map +1 -1
- package/dist/ts/react/SketchWebProvider.d.ts.map +1 -1
- package/dist/ts/react/contexts.d.ts +5 -1
- package/dist/ts/react/contexts.d.ts.map +1 -1
- package/dist/ts/react/hooks/actions.d.ts +4 -1
- package/dist/ts/react/hooks/actions.d.ts.map +1 -1
- package/dist/ts/react/hooks/state.d.ts +1 -1
- package/dist/ts/react/hooks/state.d.ts.map +1 -1
- package/dist/ts/react/hooks/useEvent.d.ts +1 -1
- package/dist/ts/react/hooks/useEvent.d.ts.map +1 -1
- package/dist/ts/react/reducer.d.ts.map +1 -1
- package/dist/ts/react/types.d.ts +4 -15
- package/dist/ts/react/types.d.ts.map +1 -1
- package/dist/ts/types/CSSCursor.d.ts +12 -0
- package/dist/ts/types/CSSCursor.d.ts.map +1 -0
- package/dist/ts/types/Events.d.ts +8 -4
- package/dist/ts/types/Events.d.ts.map +1 -1
- package/dist/ts/types/JSBridge.d.ts +8 -0
- package/dist/ts/types/JSBridge.d.ts.map +1 -1
- package/dist/ts/types/PointerInfo.d.ts +11 -0
- package/dist/ts/types/PointerInfo.d.ts.map +1 -0
- package/dist/ts/types/WASM.d.ts +74 -38
- package/dist/ts/types/WASM.d.ts.map +1 -1
- package/dist/ts/utils/GestureManager/GestureManager.d.ts +23 -43
- package/dist/ts/utils/GestureManager/GestureManager.d.ts.map +1 -1
- package/dist/ts/utils/misc.d.ts +0 -1
- package/dist/ts/utils/misc.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/static/js/web-renderer-17fd55cdb979ed59dbc9.chunk.js +0 -1
- package/dist/static/js/web-renderer-b584c7152f956c9cbea5.chunk.js +0 -1
- package/dist/static/js/web-renderer-bc8f1d99872a3ed28cf9.chunk.js +0 -1
- package/dist/ts/utils/CameraMoveTracker/CameraMoveTracker.d.ts +0 -48
- package/dist/ts/utils/CameraMoveTracker/CameraMoveTracker.d.ts.map +0 -1
- package/dist/ts/utils/CameraMoveTracker/CameraMoveTracker.test.d.ts +0 -2
- package/dist/ts/utils/CameraMoveTracker/CameraMoveTracker.test.d.ts.map +0 -1
- package/dist/ts/utils/CameraMoveTracker/index.d.ts +0 -2
- package/dist/ts/utils/CameraMoveTracker/index.d.ts.map +0 -1
- package/dist/ts/utils/GestureManager/GestureManager.test.d.ts +0 -2
- package/dist/ts/utils/GestureManager/GestureManager.test.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/ts/types/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/ts/types/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IACzC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAA;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,SAAS,EAAE,CACT,QAAQ,EAAE,iBAAiB,EAC3B,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAA;IACT,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAC5C,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;CAC1C;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;CAAG"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* That is used by C++ to communicate with Js
|
|
4
4
|
*/
|
|
5
5
|
import { MetricId } from './Metric';
|
|
6
|
+
import { PRCursorType } from './WASM';
|
|
6
7
|
export interface JSBridge {
|
|
7
8
|
logDebug: (msg: string) => void;
|
|
8
9
|
logWarning: (msg: string) => void;
|
|
@@ -11,5 +12,12 @@ export interface JSBridge {
|
|
|
11
12
|
emitMetric: (id: MetricId, start: number, end: number, duration: number) => void;
|
|
12
13
|
onDrawComplete: () => void;
|
|
13
14
|
onAllImagesReady: () => void;
|
|
15
|
+
onCameraMoveStart: () => void;
|
|
16
|
+
onCameraMoveEnd: () => void;
|
|
17
|
+
onCameraZoomStart: () => void;
|
|
18
|
+
onCameraZoomEnd: () => void;
|
|
19
|
+
onCameraZoomChange: (zoom: number) => void;
|
|
20
|
+
onCameraPanChange: (x: number, y: number) => void;
|
|
21
|
+
onCursorChange: (cursor: PRCursorType) => void;
|
|
14
22
|
}
|
|
15
23
|
//# sourceMappingURL=JSBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSBridge.d.ts","sourceRoot":"","sources":["../../../src/ts/types/JSBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"JSBridge.d.ts","sourceRoot":"","sources":["../../../src/ts/types/JSBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C,UAAU,EAAE,CACV,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,KACb,IAAI,CAAA;IACT,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC/C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare type PointerType = 'unset' | 'mouse' | 'touch';
|
|
2
|
+
export declare type PointerInfo = {
|
|
3
|
+
type: PointerType;
|
|
4
|
+
position: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
button: number;
|
|
9
|
+
touchesCount: number;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=PointerInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PointerInfo.d.ts","sourceRoot":"","sources":["../../../src/ts/types/PointerInfo.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAErD,oBAAY,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA"}
|
package/dist/ts/types/WASM.d.ts
CHANGED
|
@@ -1,10 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for the C++ classes exported by emscripten using embind.
|
|
3
3
|
* Emscripten is not able to generate types automatically, so we have to manually add them.
|
|
4
|
+
* More info about these types can be found in the corresponding C++ headers
|
|
4
5
|
*/
|
|
5
6
|
import FeatureFlags from '../../featureFlags';
|
|
6
7
|
import { JSBridge } from './JSBridge';
|
|
7
8
|
import { SketchWebWarningKey } from './Warning';
|
|
9
|
+
/**
|
|
10
|
+
* Embind types
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Replicating how Embind exposes enums
|
|
14
|
+
*/
|
|
15
|
+
declare type EmbindEnum<Keys extends string> = Record<Keys, {
|
|
16
|
+
value: number;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* When registering a vector using Embind, it doesn't get converted to a plain JS array,
|
|
20
|
+
* but it exposes some methods to access its elements
|
|
21
|
+
*
|
|
22
|
+
* @see https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#built-in-type-conversions
|
|
23
|
+
* Look for register_vector<T>
|
|
24
|
+
*/
|
|
25
|
+
export interface EmbindVector<T> {
|
|
26
|
+
size(): number;
|
|
27
|
+
get(index: number): T | undefined;
|
|
28
|
+
}
|
|
29
|
+
export declare type EmscriptenCtxContextHandle = number;
|
|
30
|
+
export declare type EmscriptenWebGLContextAttributes = {
|
|
31
|
+
majorVersion?: number;
|
|
32
|
+
minorVersion?: number;
|
|
33
|
+
} & WebGLContextAttributes;
|
|
34
|
+
export interface EmscriptenGL {
|
|
35
|
+
createContext: (canvas: HTMLCanvasElement | OffscreenCanvas, ctxSettings: EmscriptenWebGLContextAttributes | null | undefined) => EmscriptenCtxContextHandle;
|
|
36
|
+
getContext: (ctxHandle: EmscriptenCtxContextHandle) => {
|
|
37
|
+
GLctx: WebGLRenderingContext;
|
|
38
|
+
} | undefined | null;
|
|
39
|
+
}
|
|
8
40
|
/**
|
|
9
41
|
* When importing the js file generates by emscripten, the default exported module is a factory
|
|
10
42
|
* that initialised the WebAssembly module and accepts different kind of properties to customize
|
|
@@ -16,16 +48,23 @@ export declare type SketchWebWasmWrapperFactory = (props: {
|
|
|
16
48
|
locateFile: (file: string) => string;
|
|
17
49
|
bridge: JSBridge;
|
|
18
50
|
}) => Promise<SketchWebWasmWrapper>;
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
51
|
+
export declare type PRUserPointerTypeEnum = EmbindEnum<'Unset' | 'Mouse' | 'Touch'>;
|
|
52
|
+
export declare type PRUserPointerType = PRUserPointerTypeEnum[keyof PRUserPointerTypeEnum];
|
|
53
|
+
export declare type PRCursorTypeEnum = EmbindEnum<'Auto' | 'Default' | 'Pointer' | 'Grab' | 'Grabbing'>;
|
|
54
|
+
export declare type PRCursorType = PRCursorTypeEnum[keyof PRCursorTypeEnum];
|
|
55
|
+
export declare type PRFindCriteriaEnum = EmbindEnum<'None' | 'Transform' | 'ColorFill' | 'Blend' | 'Mask' | 'Surface'>;
|
|
56
|
+
export declare type PRFindCriteria = PRFindCriteriaEnum[keyof PRFindCriteriaEnum];
|
|
57
|
+
export declare type PRTimingFunctionEnum = EmbindEnum<'Linear' | 'EaseIn' | 'EaseOut' | 'EaseInEaseOut'>;
|
|
58
|
+
export declare type PRTimingFunction = PRTimingFunctionEnum[keyof PRTimingFunctionEnum];
|
|
25
59
|
export declare type SketchWebWasmWrapper = {
|
|
26
60
|
SketchWeb: SketchWebWasm;
|
|
27
61
|
GL: EmscriptenGL;
|
|
62
|
+
PRUserPointerType: PRUserPointerTypeEnum;
|
|
63
|
+
PRCursorType: PRCursorTypeEnum;
|
|
64
|
+
PRFindCriteria: PRFindCriteriaEnum;
|
|
65
|
+
PRTimingFunction: PRTimingFunctionEnum;
|
|
28
66
|
};
|
|
67
|
+
export declare type MarinaNode = unknown;
|
|
29
68
|
export interface RendererSettings {
|
|
30
69
|
showTilesBorders?: boolean;
|
|
31
70
|
}
|
|
@@ -44,21 +83,31 @@ export interface SketchWebArtboard {
|
|
|
44
83
|
name: string;
|
|
45
84
|
objectId: string;
|
|
46
85
|
}
|
|
47
|
-
/**
|
|
48
|
-
* When registering a vector using Embind, it doesn't get converted to a plain JS array,
|
|
49
|
-
* but it exposes some methods to access its elements
|
|
50
|
-
*
|
|
51
|
-
* @see https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#built-in-type-conversions
|
|
52
|
-
* Look for register_vector<T>
|
|
53
|
-
*/
|
|
54
|
-
export interface EmbindVector<T> {
|
|
55
|
-
size(): number;
|
|
56
|
-
get(index: number): T | undefined;
|
|
57
|
-
}
|
|
58
86
|
export interface SketchWebDocumentWASM extends Omit<SketchWebDocument, 'artboards'> {
|
|
59
87
|
artboards: EmbindVector<SketchWebArtboard>;
|
|
60
88
|
}
|
|
61
|
-
export interface
|
|
89
|
+
export interface EmbindSmartPtr {
|
|
90
|
+
delete: () => void;
|
|
91
|
+
}
|
|
92
|
+
export declare type PRUserPointerInfo = {
|
|
93
|
+
type: PRUserPointerType;
|
|
94
|
+
position: {
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
};
|
|
98
|
+
button: number;
|
|
99
|
+
touchesCount: number;
|
|
100
|
+
};
|
|
101
|
+
export interface PRUserEventsCollector {
|
|
102
|
+
dispatchPointerMoveEvent: (pointerInfo: PRUserPointerInfo) => void;
|
|
103
|
+
dispatchGlobalPointerMoveEvent: (pointerInfo: PRUserPointerInfo) => void;
|
|
104
|
+
dispatchWheelEvent: (deltaX: number, deltaY: number, pointerInfo: PRUserPointerInfo) => void;
|
|
105
|
+
dispatchPinchToZoomEvent: (delta: number, centerX: number, centerY: number) => void;
|
|
106
|
+
dispatchPointerDownEvent: (pointerInfo: PRUserPointerInfo) => void;
|
|
107
|
+
dispatchPointerUpEvent: (pointerInfo: PRUserPointerInfo) => void;
|
|
108
|
+
}
|
|
109
|
+
export interface SketchWebWasmInstance extends EmbindSmartPtr {
|
|
110
|
+
getUserEventsCollector: () => PRUserEventsCollector;
|
|
62
111
|
setNeedsUpdate: (fullUpdate: boolean, updateCache: boolean) => void;
|
|
63
112
|
startRenderLoop: () => void;
|
|
64
113
|
stopRenderLoop: () => void;
|
|
@@ -66,28 +115,16 @@ export interface SketchWebWasmInstance {
|
|
|
66
115
|
generateDocumentPNG: () => Uint8Array;
|
|
67
116
|
setFile: (url: string, onSuccess: (fileIdentifierAndVersion: string, prFileWeightInBytes: number, imagesCount: number, warningKeys: SketchWebWarningKey[]) => void, onFailure: () => void) => void;
|
|
68
117
|
setBackgroundColor: (r: number, g: number, b: number, a: number) => void;
|
|
69
|
-
setHighlightColor: (r: number, g: number, b: number, a: number) => void;
|
|
70
118
|
downloadImages: (onDownloadSucceeded: () => void) => void;
|
|
71
119
|
preloadImages: (onDownloadSucceeded: () => void) => void;
|
|
72
120
|
setPixelRatio: (ratio: number) => void;
|
|
73
121
|
getPRFile: () => SketchWebDocumentWASM;
|
|
74
|
-
setPan: (x: number, y: number
|
|
75
|
-
addPan: (x: number, y: number) => void;
|
|
122
|
+
setPan: (x: number, y: number) => void;
|
|
76
123
|
getPan: () => Vec2D;
|
|
77
|
-
|
|
78
|
-
getArtboardAtPosition: (x: number, y: number) => SketchWebArtboardUUID;
|
|
79
|
-
setMouse: (x: number, y: number) => void;
|
|
80
|
-
mouseDown: () => void;
|
|
81
|
-
mouseUp: () => void;
|
|
82
|
-
mouseDoubleClick: () => void;
|
|
83
|
-
keyUp: (code: string) => void;
|
|
84
|
-
setZoom: (zoom: number) => void;
|
|
85
|
-
addZoom: (zoom: number) => void;
|
|
124
|
+
setZoom: (zoom: number, centerX: number, centerY: number) => void;
|
|
86
125
|
getZoom: () => number;
|
|
87
|
-
setIsZooming: (isZooming: boolean) => void;
|
|
88
|
-
setZoomCenter: (x: number, y: number) => void;
|
|
89
126
|
setZoomLevels: (maximumZoomLeave: number, maximumZoomLevel: number) => void;
|
|
90
|
-
|
|
127
|
+
setIsCameraLocked: (isMoving: boolean) => void;
|
|
91
128
|
setPanBoundariesPadding: (padding: number) => void;
|
|
92
129
|
scaleDocumentToFit: () => void;
|
|
93
130
|
delete: () => void;
|
|
@@ -100,10 +137,9 @@ export declare type Vec2D = {
|
|
|
100
137
|
y: number;
|
|
101
138
|
};
|
|
102
139
|
export declare type SketchWebArtboardUUID = string;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
} & WebGLContextAttributes;
|
|
140
|
+
declare global {
|
|
141
|
+
var PRFindCriteria: PRFindCriteriaEnum;
|
|
142
|
+
var PRTimingFunction: PRTimingFunctionEnum;
|
|
143
|
+
}
|
|
108
144
|
export {};
|
|
109
145
|
//# sourceMappingURL=WASM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WASM.d.ts","sourceRoot":"","sources":["../../../src/ts/types/WASM.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"WASM.d.ts","sourceRoot":"","sources":["../../../src/ts/types/WASM.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import { EventEmitter } from '../EventEmitter';
|
|
2
|
+
import { Touch } from 'react';
|
|
3
|
+
import { PointerInfo } from '../../types/PointerInfo';
|
|
2
4
|
interface GestureManagerEvents {
|
|
3
|
-
|
|
5
|
+
pinchToZoom: (scaleDelta: number, center: {
|
|
4
6
|
x: number;
|
|
5
7
|
y: number;
|
|
6
8
|
}) => void;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
doubleClick: () => void;
|
|
9
|
+
wheel: (delta: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
}, pointerInfo: PointerInfo) => void;
|
|
13
|
+
pointermove: (pointerInfo: PointerInfo) => void;
|
|
14
|
+
globalpointermove: (pointerInfo: PointerInfo) => void;
|
|
15
|
+
pointerdown: (pointerInfo: PointerInfo) => void;
|
|
16
|
+
pointerup: (pointerInfo: PointerInfo) => void;
|
|
16
17
|
}
|
|
17
18
|
export interface GestureManagerSettings {
|
|
18
|
-
maximumZoomLevel: number;
|
|
19
|
-
minimumZoomLevel: number;
|
|
20
19
|
}
|
|
21
20
|
export declare class GestureManager extends EventEmitter<GestureManagerEvents> {
|
|
22
21
|
private target;
|
|
23
22
|
private settings;
|
|
24
23
|
private listenersCollector;
|
|
25
24
|
private targetBounds;
|
|
26
|
-
private cameraMoveTracker;
|
|
27
25
|
private state;
|
|
28
26
|
constructor(target: HTMLElement, settings: GestureManagerSettings);
|
|
29
27
|
updateTargetBounds(): void;
|
|
30
28
|
private addListeners;
|
|
29
|
+
addKeyboardEventListeners(): void;
|
|
31
30
|
addMouseEventListeners(): void;
|
|
32
31
|
addTouchEventListeners(): void;
|
|
33
32
|
addSafariGesturesEventListeners(): void;
|
|
@@ -46,44 +45,25 @@ export declare class GestureManager extends EventEmitter<GestureManagerEvents> {
|
|
|
46
45
|
/**
|
|
47
46
|
* Update the mouse position and emit the mousemove event
|
|
48
47
|
*/
|
|
49
|
-
updateMousePosition(e: MouseEvent
|
|
50
|
-
|
|
51
|
-
private
|
|
48
|
+
updateMousePosition(e: MouseEvent): void;
|
|
49
|
+
updateGlobalMousePosition(e: MouseEvent): void;
|
|
50
|
+
private handleTouchStart;
|
|
51
|
+
private handleMouseDown;
|
|
52
|
+
private handleTouchMove;
|
|
53
|
+
private handleMouseMove;
|
|
54
|
+
private handleGlobalTouchMove;
|
|
55
|
+
private handleGlobalMouseMove;
|
|
56
|
+
calculateDistanceBetweenTouches(firstTouch: Touch, secTouch: Touch): number;
|
|
52
57
|
private handleTouchPinchToZoomStart;
|
|
53
|
-
private handlePointerMove;
|
|
54
58
|
/**
|
|
55
59
|
* Handle the pinch to zoom scale calculation on touch devices, using the distance
|
|
56
60
|
* between the first 2 fingers on screen and the middle point between them as zoom center
|
|
57
61
|
*/
|
|
58
62
|
private handleTouchPinchToZoomChange;
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
* Handle the double click calculation manually.
|
|
62
|
-
* We could use the dblclick event, but it's not supported by touch devices, so better to have one function to handle both.
|
|
63
|
-
*/
|
|
64
|
-
private handleDoubleClick;
|
|
65
|
-
private resetDoubleClick;
|
|
66
|
-
private handlePanEnd;
|
|
67
|
-
private handlePointerUp;
|
|
68
|
-
private handleTouchPinchToZoomEnd;
|
|
63
|
+
private handleTouchEnd;
|
|
64
|
+
private handleMouseUp;
|
|
69
65
|
private handleMouseWheel;
|
|
70
66
|
private emitZoomEvent;
|
|
71
|
-
private emitZoomStartEvent;
|
|
72
|
-
/**
|
|
73
|
-
* The function is debounced and emitted only if it remains still for 60ms
|
|
74
|
-
* It can be called repeatedly during the zoom event, and the zoomEnd will be emitted only if the user remains still
|
|
75
|
-
*/
|
|
76
|
-
private emitZoomEndEvent;
|
|
77
|
-
private handleCameraMoveStart;
|
|
78
|
-
private handleCameraMoveEnd;
|
|
79
|
-
getMouse(): {
|
|
80
|
-
x: number;
|
|
81
|
-
y: number;
|
|
82
|
-
};
|
|
83
|
-
setMouse(x: number, y: number): void;
|
|
84
|
-
setIsCameraLocked(lockCamera: boolean): void;
|
|
85
|
-
getMinZoomLevel(): number;
|
|
86
|
-
getMaxZoomLevel(): number;
|
|
87
67
|
dispose(): void;
|
|
88
68
|
}
|
|
89
69
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureManager.d.ts","sourceRoot":"","sources":["../../../../src/ts/utils/GestureManager/GestureManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"GestureManager.d.ts","sourceRoot":"","sources":["../../../../src/ts/utils/GestureManager/GestureManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC3E,KAAK,EAAE,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAC1E,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IACrD,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAC/C,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,sBAAsB;CAAG;AAE1C,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IACpE,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,KAAK,CAKZ;gBAEW,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,sBAAsB;IASjE,kBAAkB;IAIlB,OAAO,CAAC,YAAY;IAOpB,yBAAyB;IAmBzB,sBAAsB;IAatB,sBAAsB;IA6BtB,+BAA+B;IA+B/B,OAAO,CAAC,kBAAkB,CAGzB;IAED,OAAO,CAAC,mBAAmB,CAQ1B;IAED,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,0BAA0B;IAQlC;;;OAGG;IACH,yBAAyB,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG;QACrD,CAAC,EAAE,MAAM,CAAA;QACT,CAAC,EAAE,MAAM,CAAA;KACV;IAuBD;;OAEG;IACH,mBAAmB,CAAC,CAAC,EAAE,UAAU;IASjC,yBAAyB,CAAC,CAAC,EAAE,UAAU;IASvC,OAAO,CAAC,gBAAgB,CAWvB;IAED,OAAO,CAAC,eAAe,CAiBtB;IAED,OAAO,CAAC,eAAe,CAStB;IAED,OAAO,CAAC,eAAe,CAEtB;IAED,OAAO,CAAC,qBAAqB,CAO5B;IAED,OAAO,CAAC,qBAAqB,CAE5B;IAED,+BAA+B,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;IAOlE,OAAO,CAAC,2BAA2B,CAOlC;IAED;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CAenC;IAED,OAAO,CAAC,cAAc,CAUrB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,gBAAgB,CAwCvB;IAED,OAAO,CAAC,aAAa;IAOd,OAAO;CAGf"}
|
package/dist/ts/utils/misc.d.ts
CHANGED
|
@@ -24,5 +24,4 @@ export declare function convertEmbindVectorToArray<T>(vector: EmbindVector<T>):
|
|
|
24
24
|
* @see: https://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript
|
|
25
25
|
*/
|
|
26
26
|
export declare function isTouchDevice(): boolean;
|
|
27
|
-
export declare function isTouchEvent(e: any): boolean;
|
|
28
27
|
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/ts/utils/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,MAAM;cAKqB,UAAU,CAAC,CAAC,CAAC;IAQjD;;;OAGG;;EAQJ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG;;;EAOpC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE5D;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CASjD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAW1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,YAM5B
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/ts/utils/misc.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,MAAM;cAKqB,UAAU,CAAC,CAAC,CAAC;IAQjD;;;OAGG;;EAQJ;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG;;;EAOpC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE5D;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CASjD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAW1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,YAM5B"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_sketch_hq_sketch_web_renderer=self.webpackChunk_sketch_hq_sketch_web_renderer||[]).push([[610],{610:e=>{var r,t=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e){var t,n,a=void 0!==(e=e||{})?e:{};a.ready=new Promise((function(e,r){t=e,n=r}));var i=Object.assign({},a),o=[],u="./this.program",s=(e,r)=>{throw r},c="";"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),r&&(c=r),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var f=a.print||console.log.bind(console),l=a.printErr||console.warn.bind(console);Object.assign(a,i),i=null,a.arguments&&(o=a.arguments),a.thisProgram&&(u=a.thisProgram),a.quit&&(s=a.quit);var d,v,m=0;a.wasmBinary&&(d=a.wasmBinary),a.noExitRuntime,"object"!=typeof WebAssembly&&X("no native wasm support detected");var p,y=!1,h="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function g(e,r,t){for(var n=r+t,a=r;e[a]&&!(a>=n);)++a;if(a-r>16&&e.buffer&&h)return h.decode(e.subarray(r,a));for(var i="";r<a;){var o=e[r++];if(128&o){var u=63&e[r++];if(192!=(224&o)){var s=63&e[r++];if((o=224==(240&o)?(15&o)<<12|u<<6|s:(7&o)<<18|u<<12|s<<6|63&e[r++])<65536)i+=String.fromCharCode(o);else{var c=o-65536;i+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else i+=String.fromCharCode((31&o)<<6|u)}else i+=String.fromCharCode(o)}return i}function b(e,r){return e?g(P,e,r):""}function w(e,r,t,n){if(!(n>0))return 0;for(var a=t,i=t+n-1,o=0;o<e.length;++o){var u=e.charCodeAt(o);if(u>=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&e.charCodeAt(++o)),u<=127){if(t>=i)break;r[t++]=u}else if(u<=2047){if(t+1>=i)break;r[t++]=192|u>>6,r[t++]=128|63&u}else if(u<=65535){if(t+2>=i)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|63&u}else{if(t+3>=i)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|63&u}}return r[t]=0,t-a}function x(e,r,t){return w(e,P,r,t)}function C(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++t)),n<=127?++r:r+=n<=2047?2:n<=65535?3:4}return r}var _,E,P,T,A,S,$,I,k,F="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function j(e,r){for(var t=e,n=t>>1,a=n+r/2;!(n>=a)&&A[n];)++n;if((t=n<<1)-e>32&&F)return F.decode(P.subarray(e,t));for(var i="",o=0;!(o>=r/2);++o){var u=T[e+2*o>>1];if(0==u)break;i+=String.fromCharCode(u)}return i}function D(e,r,t){if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,a=(t-=2)<2*e.length?t/2:e.length,i=0;i<a;++i){var o=e.charCodeAt(i);T[r>>1]=o,r+=2}return T[r>>1]=0,r-n}function L(e){return 2*e.length}function B(e,r){for(var t=0,n="";!(t>=r/4);){var a=S[e+4*t>>2];if(0==a)break;if(++t,a>=65536){var i=a-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(a)}return n}function O(e,r,t){if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,a=n+t-4,i=0;i<e.length;++i){var o=e.charCodeAt(i);if(o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++i)),S[r>>2]=o,(r+=4)+4>a)break}return S[r>>2]=0,r-n}function W(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&++t,r+=4}return r}function M(e){_=e,a.HEAP8=E=new Int8Array(e),a.HEAP16=T=new Int16Array(e),a.HEAP32=S=new Int32Array(e),a.HEAPU8=P=new Uint8Array(e),a.HEAPU16=A=new Uint16Array(e),a.HEAPU32=$=new Uint32Array(e),a.HEAPF32=I=new Float32Array(e),a.HEAPF64=k=new Float64Array(e)}a.INITIAL_MEMORY;var R,U,V,N=[],G=[],H=[],Y=0,z=null,q=null;function J(e){Y++,a.monitorRunDependencies&&a.monitorRunDependencies(Y)}function K(e){if(Y--,a.monitorRunDependencies&&a.monitorRunDependencies(Y),0==Y&&(null!==z&&(clearInterval(z),z=null),q)){var r=q;q=null,r()}}function X(e){a.onAbort&&a.onAbort(e),l(e="Aborted("+e+")"),y=!0,p=1,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw n(r),r}function Q(e){return e.startsWith("data:application/octet-stream;base64,")}function Z(e){try{if(e==U&&d)return new Uint8Array(d);throw"both async and sync fetching of the wasm failed"}catch(e){X(e)}}function ee(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var t=r.func;"number"==typeof t?void 0===r.arg?re(t)():re(t)(r.arg):t(void 0===r.arg?null:r.arg)}else r(a)}}function re(e){return R.get(e)}Q(U="module-release.wasm")||(V=U,U=a.locateFile?a.locateFile(V,c):c+V);var te={};function ne(e){for(;e.length;){var r=e.pop();e.pop()(r)}}function ae(e){return this.fromWireType($[e>>2])}var ie={},oe={},ue={};function se(e){if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?"_"+e:e}function ce(e,r){return e=se(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(r)}function fe(e,r){var t=ce(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},t}var le=void 0;function de(e){throw new le(e)}function ve(e,r,t){function n(r){var n=t(r);n.length!==e.length&&de("Mismatched type converter count");for(var a=0;a<e.length;++a)be(e[a],n[a])}e.forEach((function(e){ue[e]=r}));var a=new Array(r.length),i=[],o=0;r.forEach(((e,r)=>{oe.hasOwnProperty(e)?a[r]=oe[e]:(i.push(e),ie.hasOwnProperty(e)||(ie[e]=[]),ie[e].push((()=>{a[r]=oe[e],++o===i.length&&n(a)})))})),0===i.length&&n(a)}function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var pe=void 0;function ye(e){for(var r="",t=e;P[t];)r+=pe[P[t++]];return r}var he=void 0;function ge(e){throw new he(e)}function be(e,r,t={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=r.name;if(e||ge('type "'+n+'" must have a positive integer typeid pointer'),oe.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;ge("Cannot register type '"+n+"' twice")}if(oe[e]=r,delete ue[e],ie.hasOwnProperty(e)){var a=ie[e];delete ie[e],a.forEach((e=>e()))}}function we(e){ge(e.$$.ptrType.registeredClass.name+" instance already deleted")}var xe=!1;function Ce(e){}function _e(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function Ee(e,r,t){if(r===t)return e;if(void 0===t.baseClass)return null;var n=Ee(e,r,t.baseClass);return null===n?null:t.downcast(n)}var Pe={};var Te=[];function Ae(){for(;Te.length;){var e=Te.pop();e.$$.deleteScheduled=!1,e.delete()}}var Se=void 0;var $e={};function Ie(e,r){return r.ptrType&&r.ptr||de("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!=!!r.smartPtr&&de("Both smartPtrType and smartPtr must be specified"),r.count={value:1},ke(Object.create(e,{$$:{value:r}}))}function ke(e){return"undefined"==typeof FinalizationRegistry?(ke=e=>e,e):(xe=new FinalizationRegistry((e=>{_e(e.$$)})),Ce=e=>xe.unregister(e),(ke=e=>{var r=e.$$;if(r.smartPtr){var t={$$:r};xe.register(e,t,e)}return e})(e))}function Fe(){}function je(e,r,t){if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||ge("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[r].overloadTable+")!"),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}}function De(e,r,t,n,a,i,o,u){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=a,this.getActualType=i,this.upcast=o,this.downcast=u,this.pureVirtualFunctions=[]}function Le(e,r,t){for(;r!==t;)r.upcast||ge("Expected null or instance of "+t.name+", got an instance of "+r.name),e=r.upcast(e),r=r.baseClass;return e}function Be(e,r){if(null===r)return this.isReference&&ge("null is not a valid "+this.name),0;r.$$||ge('Cannot pass "'+Qe(r)+'" as a '+this.name),r.$$.ptr||ge("Cannot pass deleted object as a pointer of type "+this.name);var t=r.$$.ptrType.registeredClass;return Le(r.$$.ptr,t,this.registeredClass)}function Oe(e,r){var t;if(null===r)return this.isReference&&ge("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;r.$$||ge('Cannot pass "'+Qe(r)+'" as a '+this.name),r.$$.ptr||ge("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&r.$$.ptrType.isConst&&ge("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);var n=r.$$.ptrType.registeredClass;if(t=Le(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===r.$$.smartPtr&&ge("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:ge("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var a=r.clone();t=this.rawShare(t,Xe.toHandle((function(){a.delete()}))),null!==e&&e.push(this.rawDestructor,t)}break;default:ge("Unsupporting sharing policy")}return t}function We(e,r){if(null===r)return this.isReference&&ge("null is not a valid "+this.name),0;r.$$||ge('Cannot pass "'+Qe(r)+'" as a '+this.name),r.$$.ptr||ge("Cannot pass deleted object as a pointer of type "+this.name),r.$$.ptrType.isConst&&ge("Cannot convert argument of type "+r.$$.ptrType.name+" to parameter type "+this.name);var t=r.$$.ptrType.registeredClass;return Le(r.$$.ptr,t,this.registeredClass)}function Me(e,r,t,n,a,i,o,u,s,c,f){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=a,this.pointeeType=i,this.sharingPolicy=o,this.rawGetPointee=u,this.rawConstructor=s,this.rawShare=c,this.rawDestructor=f,a||void 0!==r.baseClass?this.toWireType=Oe:n?(this.toWireType=Be,this.destructorFunction=null):(this.toWireType=We,this.destructorFunction=null)}function Re(e,r,t){return e.includes("j")?function(e,r,t){var n=a["dynCall_"+e];return t&&t.length?n.apply(null,[r].concat(t)):n.call(null,r)}(e,r,t):re(r).apply(null,t)}function Ue(e,r){var t,n,a,i=(e=ye(e)).includes("j")?(t=e,n=r,a=[],function(){return a.length=0,Object.assign(a,arguments),Re(t,n,a)}):re(r);return"function"!=typeof i&&ge("unknown function pointer with signature "+e+": "+r),i}var Ve=void 0;function Ne(e){var r=Vr(e),t=ye(r);return Ur(r),t}function Ge(e,r){var t=[],n={};throw r.forEach((function e(r){n[r]||oe[r]||(ue[r]?ue[r].forEach(e):(t.push(r),n[r]=!0))})),new Ve(e+": "+t.map(Ne).join([", "]))}function He(e,r){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var t=ce(e.name||"unknownFunctionName",(function(){}));t.prototype=e.prototype;var n=new t,a=e.apply(n,r);return a instanceof Object?a:n}function Ye(e,r,t,n,a){var i=r.length;i<2&&ge("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var o=null!==r[1]&&null!==t,u=!1,s=1;s<r.length;++s)if(null!==r[s]&&void 0===r[s].destructorFunction){u=!0;break}var c="void"!==r[0].name,f="",l="";for(s=0;s<i-2;++s)f+=(0!==s?", ":"")+"arg"+s,l+=(0!==s?", ":"")+"arg"+s+"Wired";var d="return function "+se(e)+"("+f+") {\nif (arguments.length !== "+(i-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+" args!');\n}\n";u&&(d+="var destructors = [];\n");var v=u?"destructors":"null",m=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],p=[ge,n,a,ne,r[0],r[1]];for(o&&(d+="var thisWired = classParam.toWireType("+v+", this);\n"),s=0;s<i-2;++s)d+="var arg"+s+"Wired = argType"+s+".toWireType("+v+", arg"+s+"); // "+r[s+2].name+"\n",m.push("argType"+s),p.push(r[s+2]);if(o&&(l="thisWired"+(l.length>0?", ":"")+l),d+=(c?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",u)d+="runDestructors(destructors);\n";else for(s=o?1:2;s<r.length;++s){var y=1===s?"thisWired":"arg"+(s-2)+"Wired";null!==r[s].destructorFunction&&(d+=y+"_dtor("+y+"); // "+r[s].name+"\n",m.push(y+"_dtor"),p.push(r[s].destructorFunction))}return c&&(d+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),d+="}\n",m.push(d),He(Function,m).apply(null,p)}function ze(e,r){for(var t=[],n=0;n<e;n++)t.push(S[(r>>2)+n]);return t}var qe=[],Je=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ke(e){e>4&&0==--Je[e].refcount&&(Je[e]=void 0,qe.push(e))}var Xe={toValue:e=>(e||ge("Cannot use deleted val. handle = "+e),Je[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var r=qe.length?qe.pop():Je.length;return Je[r]={refcount:1,value:e},r}}};function Qe(e){if(null===e)return"null";var r=typeof e;return"object"===r||"array"===r||"function"===r?e.toString():""+e}function Ze(e,r){switch(r){case 2:return function(e){return this.fromWireType(I[e>>2])};case 3:return function(e){return this.fromWireType(k[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function er(e,r,t){switch(r){case 0:return t?function(e){return E[e]}:function(e){return P[e]};case 1:return t?function(e){return T[e>>1]}:function(e){return A[e>>1]};case 2:return t?function(e){return S[e>>2]}:function(e){return $[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function rr(e,r){var t=oe[e];return void 0===t&&ge(r+" has unknown type "+Ne(e)),t}function tr(e,r){for(var t=new Array(e),n=0;n<e;++n)t[n]=rr(S[(r>>2)+n],"parameter "+n);return t}var nr={};function ar(e){var r=nr[e];return void 0===r?ye(e):r}var ir=[];function or(){return"object"==typeof globalThis?globalThis:Function("return this")()}var ur,sr=[];ur=()=>performance.now();var cr={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){cr.lastError||(cr.lastError=e)},getNewId:function(e){for(var r=cr.counter++,t=e.length;t<r;t++)e[t]=null;return r},getSource:function(e,r,t,n){for(var a="",i=0;i<r;++i){var o=n?S[n+4*i>>2]:-1;a+=b(S[t+4*i>>2],o<0?void 0:o)}return a},createContext:function(e,r){e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(r,t){var n=e.getContextSafariWebGL2Fixed(r,t);return"webgl"==r==n instanceof WebGLRenderingContext?n:null});var t=r.majorVersion>1?e.getContext("webgl2",r):e.getContext("webgl",r);return t?cr.registerContext(t,r):0},registerContext:function(e,r){var t=cr.getNewId(cr.contexts),n={handle:t,attributes:r,version:r.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=n),cr.contexts[t]=n,(void 0===r.enableExtensionsByDefault||r.enableExtensionsByDefault)&&cr.initExtensions(n),t},makeContextCurrent:function(e){return cr.currentContext=cr.contexts[e],a.ctx=Fr=cr.currentContext&&cr.currentContext.GLctx,!(e&&!Fr)},getContext:function(e){return cr.contexts[e]},deleteContext:function(e){cr.currentContext===cr.contexts[e]&&(cr.currentContext=null),"object"==typeof JSEvents&&JSEvents.removeAllHandlersOnTarget(cr.contexts[e].GLctx.canvas),cr.contexts[e]&&cr.contexts[e].GLctx.canvas&&(cr.contexts[e].GLctx.canvas.GLctxObject=void 0),cr.contexts[e]=null},initExtensions:function(e){if(e||(e=cr.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var r,t=e.GLctx;!function(e){var r=e.getExtension("ANGLE_instanced_arrays");r&&(e.vertexAttribDivisor=function(e,t){r.vertexAttribDivisorANGLE(e,t)},e.drawArraysInstanced=function(e,t,n,a){r.drawArraysInstancedANGLE(e,t,n,a)},e.drawElementsInstanced=function(e,t,n,a,i){r.drawElementsInstancedANGLE(e,t,n,a,i)})}(t),function(e){var r=e.getExtension("OES_vertex_array_object");r&&(e.createVertexArray=function(){return r.createVertexArrayOES()},e.deleteVertexArray=function(e){r.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){r.bindVertexArrayOES(e)},e.isVertexArray=function(e){return r.isVertexArrayOES(e)})}(t),function(e){var r=e.getExtension("WEBGL_draw_buffers");r&&(e.drawBuffers=function(e,t){r.drawBuffersWEBGL(e,t)})}(t),(r=t).dibvbi=r.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"),function(e){e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")}(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),function(e){e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw")}(t),(t.getSupportedExtensions()||[]).forEach((function(e){e.includes("lose_context")||e.includes("debug")||t.getExtension(e)}))}}};function fr(e,r){return(e>>>0)+4294967296*r}var lr=[];function dr(e,r,t,n){for(var a=0;a<e;a++){var i=Fr[t](),o=i&&cr.getNewId(n);i?(i.name=o,n[o]=i):cr.recordError(1282),S[r+4*a>>2]=o}}function vr(e,r,t){if(r){var n,a,i=void 0;switch(e){case 36346:i=1;break;case 36344:return void(0!=t&&1!=t&&cr.recordError(1280));case 34814:case 36345:i=0;break;case 34466:var o=Fr.getParameter(34467);i=o?o.length:0;break;case 33309:if(cr.currentContext.version<2)return void cr.recordError(1282);i=2*(Fr.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(cr.currentContext.version<2)return void cr.recordError(1280);i=33307==e?3:0}if(void 0===i){var u=Fr.getParameter(e);switch(typeof u){case"number":i=u;break;case"boolean":i=u?1:0;break;case"string":return void cr.recordError(1280);case"object":if(null===u)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:i=0;break;default:return void cr.recordError(1280)}else{if(u instanceof Float32Array||u instanceof Uint32Array||u instanceof Int32Array||u instanceof Array){for(var s=0;s<u.length;++s)switch(t){case 0:S[r+4*s>>2]=u[s];break;case 2:I[r+4*s>>2]=u[s];break;case 4:E[r+s>>0]=u[s]?1:0}return}try{i=0|u.name}catch(r){return cr.recordError(1280),void l("GL_INVALID_ENUM in glGet"+t+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+r+")")}}break;default:return cr.recordError(1280),void l("GL_INVALID_ENUM in glGet"+t+"v: Native code calling glGet"+t+"v("+e+") and it returns "+u+" of type "+typeof u+"!")}}switch(t){case 1:a=i,$[(n=r)>>2]=a,$[n+4>>2]=(a-$[n>>2])/4294967296;break;case 0:S[r>>2]=i;break;case 2:I[r>>2]=i;break;case 4:E[r>>0]=i?1:0}}else cr.recordError(1281)}function mr(e){var r=C(e)+1,t=Rr(r);return x(e,t,r),t}function pr(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function yr(e){return 0==(e-=5120)?E:1==e?P:2==e?T:4==e?S:6==e?I:5==e||28922==e||28520==e||30779==e||30782==e?$:A}function hr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function gr(e,r,t,n,a,i){var o=yr(e),u=hr(o),s=1<<u,c=function(e,r,t,n){var a;return r*(e*t+(a=n)-1&-a)}(t,n,function(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}(r)*s,cr.unpackAlignment);return o.subarray(a>>u,a+c>>u)}function br(e){var r=Fr.currentProgram;if(r){var t=r.uniformLocsById[e];return"number"==typeof t&&(r.uniformLocsById[e]=t=Fr.getUniformLocation(r,r.uniformArrayNamesById[e]+(t>0?"["+t+"]":""))),t}cr.recordError(1282)}var wr=[],xr=[];function Cr(e){try{return v.grow(e-_.byteLength+65535>>>16),M(v.buffer),1}catch(e){}}var _r={xhrs:[],setu64:function(e,r){$[e>>2]=r,$[e+4>>2]=r/4294967296|0},openDatabase:function(e,r,t,n){try{var a=indexedDB.open(e,r)}catch(e){return n(e)}a.onupgradeneeded=e=>{var r=e.target.result;r.objectStoreNames.contains("FILES")&&r.deleteObjectStore("FILES"),r.createObjectStore("FILES")},a.onsuccess=e=>t(e.target.result),a.onerror=e=>n(e)},staticInit:function(){_r.openDatabase("emscripten_filesystem",1,(e=>{_r.dbInstance=e,K()}),(()=>{_r.dbInstance=!1,K()})),"undefined"!=typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||J()}};function Er(e,r,t,n,a){var i=$[e+8>>2];if(i){var o=b(i),u=e+112,s=b(u);s||(s="GET"),$[e+4>>2];var c=$[u+52>>2],f=$[u+56>>2],l=!!$[u+60>>2],d=($[u+64>>2],$[u+68>>2]),v=$[u+72>>2],m=$[u+76>>2],p=$[u+80>>2],y=$[u+84>>2],h=$[u+88>>2],g=!!(1&c),w=!!(2&c),C=!!(64&c),_=d?b(d):void 0,E=v?b(v):void 0,T=new XMLHttpRequest;if(T.withCredentials=l,T.open(s,o,!C,_,E),C||(T.timeout=f),T.url_=o,T.responseType="arraybuffer",p){var S=b(p);T.overrideMimeType(S)}if(m)for(;;){var I=$[m>>2];if(!I)break;var k=$[m+4>>2];if(!k)break;m+=8;var F=b(I),j=b(k);T.setRequestHeader(F,j)}_r.xhrs.push(T);var D=_r.xhrs.length;$[e+0>>2]=D;var L=y&&h?P.slice(y,y+h):null;T.onload=n=>{B(g&&!w);var a=T.response?T.response.byteLength:0;_r.setu64(e+24,0),a&&_r.setu64(e+32,a),A[e+40>>1]=T.readyState,A[e+42>>1]=T.status,T.statusText&&x(T.statusText,e+44,64),T.status>=200&&T.status<300?r&&r(e,T,n):t&&t(e,T,n)},T.onerror=r=>{B(g);var n=T.status;_r.setu64(e+24,0),_r.setu64(e+32,T.response?T.response.byteLength:0),A[e+40>>1]=T.readyState,A[e+42>>1]=n,t&&t(e,T,r)},T.ontimeout=r=>{t&&t(e,T,r)},T.onprogress=r=>{var t=g&&w&&T.response?T.response.byteLength:0,a=0;g&&w&&(a=Rr(t),P.set(new Uint8Array(T.response),a)),$[e+12>>2]=a,_r.setu64(e+16,t),_r.setu64(e+24,r.loaded-t),_r.setu64(e+32,r.total),A[e+40>>1]=T.readyState,T.readyState>=3&&0===T.status&&r.loaded>0&&(T.status=200),A[e+42>>1]=T.status,T.statusText&&x(T.statusText,e+44,64),n&&n(e,T,r),a&&Ur(a)},T.onreadystatechange=r=>{A[e+40>>1]=T.readyState,T.readyState>=2&&(A[e+42>>1]=T.status),a&&a(e,T,r)};try{T.send(L)}catch(r){t&&t(e,T,r)}}else t(e,0,"no url specified!");function B(r){var t=0,n=0;r&&(n=T.response?T.response.byteLength:0,t=Rr(n),P.set(new Uint8Array(T.response),t)),$[e+12>>2]=t,_r.setu64(e+16,n)}}function Pr(e,r){if(!y)if(r)e();else try{e()}catch(e){!function(e){if(e instanceof Yr||"unwind"==e)return p;s(1,e)}(e)}}function Tr(e,r,t,n,a){if(e){var i=$[r+112+64>>2];i||(i=$[r+8>>2]);var o=b(i);try{var u=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(t,o);u.onsuccess=e=>{A[r+40>>1]=4,A[r+42>>1]=200,x("OK",r+44,64),n(r,0,o)},u.onerror=e=>{A[r+40>>1]=4,A[r+42>>1]=413,x("Payload Too Large",r+44,64),a(r,0,e)}}catch(e){a(r,0,e)}}else a(r,0,"IndexedDB not available!")}var Ar={};function Sr(){if(!Sr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:u||"./this.program"};for(var r in Ar)void 0===Ar[r]?delete e[r]:e[r]=Ar[r];var t=[];for(var r in e)t.push(r+"="+e[r]);Sr.strings=t}return Sr.strings}var $r=[null,[],[]];function Ir(e,r){var t=$r[e];0===r||10===r?((1===e?f:l)(g(t,0)),t.length=0):t.push(r)}function kr(e){return e%4==0&&(e%100!=0||e%400==0)}var Fr,jr=[31,29,31,30,31,30,31,31,30,31,30,31],Dr=[31,28,31,30,31,30,31,31,30,31,30,31];le=a.InternalError=fe(Error,"InternalError"),function(){for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);pe=e}(),he=a.BindingError=fe(Error,"BindingError"),Fe.prototype.isAliasOf=function(e){if(!(this instanceof Fe))return!1;if(!(e instanceof Fe))return!1;for(var r=this.$$.ptrType.registeredClass,t=this.$$.ptr,n=e.$$.ptrType.registeredClass,a=e.$$.ptr;r.baseClass;)t=r.upcast(t),r=r.baseClass;for(;n.baseClass;)a=n.upcast(a),n=n.baseClass;return r===n&&t===a},Fe.prototype.clone=function(){if(this.$$.ptr||we(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,r=ke(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return r.$$.count.value+=1,r.$$.deleteScheduled=!1,r},Fe.prototype.delete=function(){this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ge("Object already scheduled for deletion"),Ce(this),_e(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},Fe.prototype.isDeleted=function(){return!this.$$.ptr},Fe.prototype.deleteLater=function(){return this.$$.ptr||we(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ge("Object already scheduled for deletion"),Te.push(this),1===Te.length&&Se&&Se(Ae),this.$$.deleteScheduled=!0,this},a.getInheritedInstanceCount=function(){return Object.keys($e).length},a.getLiveInheritedInstances=function(){var e=[];for(var r in $e)$e.hasOwnProperty(r)&&e.push($e[r]);return e},a.flushPendingDeletes=Ae,a.setDelayFunction=function(e){Se=e,Te.length&&Se&&Se(Ae)},Me.prototype.getPointee=function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},Me.prototype.destructor=function(e){this.rawDestructor&&this.rawDestructor(e)},Me.prototype.argPackAdvance=8,Me.prototype.readValueFromPointer=ae,Me.prototype.deleteObject=function(e){null!==e&&e.delete()},Me.prototype.fromWireType=function(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=function(e,r){return r=function(e,r){for(void 0===r&&ge("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r}(e,r),$e[r]}(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function a(){return this.isSmartPointer?Ie(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ie(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,o=this.registeredClass.getActualType(r),u=Pe[o];if(!u)return a.call(this);i=this.isConst?u.constPointerType:u.pointerType;var s=Ee(r,this.registeredClass,i.registeredClass);return null===s?a.call(this):this.isSmartPointer?Ie(i.registeredClass.instancePrototype,{ptrType:i,ptr:s,smartPtrType:this,smartPtr:e}):Ie(i.registeredClass.instancePrototype,{ptrType:i,ptr:s})},Ve=a.UnboundTypeError=fe(Error,"UnboundTypeError"),a.count_emval_handles=function(){for(var e=0,r=5;r<Je.length;++r)void 0!==Je[r]&&++e;return e},a.get_first_emval=function(){for(var e=5;e<Je.length;++e)if(void 0!==Je[e])return Je[e];return null};for(var Lr=0;Lr<32;++Lr)lr.push(new Array(Lr));var Br=new Float32Array(288);for(Lr=0;Lr<288;++Lr)wr[Lr]=Br.subarray(0,Lr+1);var Or=new Int32Array(288);for(Lr=0;Lr<288;++Lr)xr[Lr]=Or.subarray(0,Lr+1);_r.staticInit();var Wr,Mr={d:function(e,r,t,n){X("Assertion failed: "+b(e)+", at: "+[r?b(r):"unknown filename",t,n?b(n):"unknown function"])},p:function(e){var r=te[e];delete te[e];var t=r.rawConstructor,n=r.rawDestructor,a=r.fields;ve([e],a.map((e=>e.getterReturnType)).concat(a.map((e=>e.setterArgumentType))),(e=>{var i={};return a.forEach(((r,t)=>{var n=r.fieldName,o=e[t],u=r.getter,s=r.getterContext,c=e[t+a.length],f=r.setter,l=r.setterContext;i[n]={read:e=>o.fromWireType(u(s,e)),write:(e,r)=>{var t=[];f(l,e,c.toWireType(t,r)),ne(t)}}})),[{name:r.name,fromWireType:function(e){var r={};for(var t in i)r[t]=i[t].read(e);return n(e),r},toWireType:function(e,r){for(var a in i)if(!(a in r))throw new TypeError('Missing field: "'+a+'"');var o=t();for(a in i)i[a].write(o,r[a]);return null!==e&&e.push(n,o),o},argPackAdvance:8,readValueFromPointer:ae,destructorFunction:n}]}))},bb:function(e,r,t,n,a){},ob:function(e,r,t,n,a){var i=me(t);be(e,{name:r=ye(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?n:a},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===t)n=E;else if(2===t)n=T;else{if(4!==t)throw new TypeError("Unknown boolean type size: "+r);n=S}return this.fromWireType(n[e>>i])},destructorFunction:null})},H:function(e,r,t,n,i,o,u,s,c,f,l,d,v){l=ye(l),o=Ue(i,o),s&&(s=Ue(u,s)),f&&(f=Ue(c,f)),v=Ue(d,v);var m=se(l);!function(e,r,t){a.hasOwnProperty(e)?(ge("Cannot register public name '"+e+"' twice"),je(a,e,e),a.hasOwnProperty(t)&&ge("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),a[e].overloadTable[void 0]=r):a[e]=r}(m,(function(){Ge("Cannot construct "+l+" due to unbound types",[n])})),ve([e,r,t],n?[n]:[],(function(r){var t,i;r=r[0],i=n?(t=r.registeredClass).instancePrototype:Fe.prototype;var u=ce(m,(function(){if(Object.getPrototypeOf(this)!==c)throw new he("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new he(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new he("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(d.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(i,{constructor:{value:u}});u.prototype=c;var d=new De(l,u,c,v,t,o,s,f),p=new Me(l,d,!0,!1,!1),y=new Me(l+"*",d,!1,!1,!1),h=new Me(l+" const*",d,!1,!0,!1);return Pe[e]={pointerType:y,constPointerType:h},function(e,r,t){a.hasOwnProperty(e)||de("Replacing nonexistant public symbol"),a[e].overloadTable,a[e]=r,a[e].argCount=t}(m,u),[p,y,h]}))},mb:function(e,r,t,n,a,i,o){var u=ze(t,n);r=ye(r),i=Ue(a,i),ve([],[e],(function(e){var n=(e=e[0]).name+"."+r;function a(){Ge("Cannot call "+n+" due to unbound types",u)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]);var s=e.registeredClass.constructor;return void 0===s[r]?(a.argCount=t-1,s[r]=a):(je(s,r,n),s[r].overloadTable[t-1]=a),ve([],u,(function(e){var a=[e[0],null].concat(e.slice(1)),u=Ye(n,a,null,i,o);return void 0===s[r].overloadTable?(u.argCount=t-1,s[r]=u):s[r].overloadTable[t-1]=u,[]})),[]}))},ka:function(e,r,t,n,a,i){r>0||X(undefined);var o=ze(r,t);a=Ue(n,a),ve([],[e],(function(e){var t="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[r-1])throw new he("Cannot register multiple constructors with identical number of parameters ("+(r-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[r-1]=()=>{Ge("Cannot construct "+e.name+" due to unbound types",o)},ve([],o,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[r-1]=Ye(t,n,null,a,i),[]})),[]}))},e:function(e,r,t,n,a,i,o,u){var s=ze(t,n);r=ye(r),i=Ue(a,i),ve([],[e],(function(e){var n=(e=e[0]).name+"."+r;function a(){Ge("Cannot call "+n+" due to unbound types",s)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]),u&&e.registeredClass.pureVirtualFunctions.push(r);var c=e.registeredClass.instancePrototype,f=c[r];return void 0===f||void 0===f.overloadTable&&f.className!==e.name&&f.argCount===t-2?(a.argCount=t-2,a.className=e.name,c[r]=a):(je(c,r,n),c[r].overloadTable[t-2]=a),ve([],s,(function(a){var u=Ye(n,a,e,i,o);return void 0===c[r].overloadTable?(u.argCount=t-2,c[r]=u):c[r].overloadTable[t-2]=u,[]})),[]}))},nb:function(e,r){be(e,{name:r=ye(r),fromWireType:function(e){var r=Xe.toValue(e);return Ke(e),r},toWireType:function(e,r){return Xe.toHandle(r)},argPackAdvance:8,readValueFromPointer:ae,destructorFunction:null})},D:function(e,r,t){var n=me(t);be(e,{name:r=ye(r),fromWireType:function(e){return e},toWireType:function(e,r){return r},argPackAdvance:8,readValueFromPointer:Ze(r,n),destructorFunction:null})},j:function(e,r,t,n,a){r=ye(r),-1===a&&(a=4294967295);var i=me(t),o=e=>e;if(0===n){var u=32-8*t;o=e=>e<<u>>>u}var s=r.includes("unsigned");be(e,{name:r,fromWireType:o,toWireType:s?function(e,r){return this.name,r>>>0}:function(e,r){return this.name,r},argPackAdvance:8,readValueFromPointer:er(r,i,0!==n),destructorFunction:null})},h:function(e,r,t){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function a(e){var r=$,t=r[e>>=2],a=r[e+1];return new n(_,a,t)}be(e,{name:t=ye(t),fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},Xc:function(e,r,t,n,a,i,o,u,s,c,f,l){t=ye(t),i=Ue(a,i),u=Ue(o,u),c=Ue(s,c),l=Ue(f,l),ve([e],[r],(function(e){return e=e[0],[new Me(t,e.registeredClass,!1,!1,!0,e,n,i,u,c,l)]}))},C:function(e,r){var t="std::string"===(r=ye(r));be(e,{name:r,fromWireType:function(e){var r,n=$[e>>2];if(t)for(var a=e+4,i=0;i<=n;++i){var o=e+4+i;if(i==n||0==P[o]){var u=b(a,o-a);void 0===r?r=u:(r+=String.fromCharCode(0),r+=u),a=o+1}}else{var s=new Array(n);for(i=0;i<n;++i)s[i]=String.fromCharCode(P[e+4+i]);r=s.join("")}return Ur(e),r},toWireType:function(e,r){r instanceof ArrayBuffer&&(r=new Uint8Array(r));var n="string"==typeof r;n||r instanceof Uint8Array||r instanceof Uint8ClampedArray||r instanceof Int8Array||ge("Cannot pass non-string to std::string");var a=(t&&n?()=>C(r):()=>r.length)(),i=Rr(4+a+1);if($[i>>2]=a,t&&n)x(r,i+4,a+1);else if(n)for(var o=0;o<a;++o){var u=r.charCodeAt(o);u>255&&(Ur(i),ge("String has UTF-16 code units that do not fit in 8 bits")),P[i+4+o]=u}else for(o=0;o<a;++o)P[i+4+o]=r[o];return null!==e&&e.push(Ur,i),i},argPackAdvance:8,readValueFromPointer:ae,destructorFunction:function(e){Ur(e)}})},u:function(e,r,t){var n,a,i,o,u;t=ye(t),2===r?(n=j,a=D,o=L,i=()=>A,u=1):4===r&&(n=B,a=O,o=W,i=()=>$,u=2),be(e,{name:t,fromWireType:function(e){for(var t,a=$[e>>2],o=i(),s=e+4,c=0;c<=a;++c){var f=e+4+c*r;if(c==a||0==o[f>>u]){var l=n(s,f-s);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),s=f+r}}return Ur(e),t},toWireType:function(e,n){"string"!=typeof n&&ge("Cannot pass non-string to C++ string type "+t);var i=o(n),s=Rr(4+i+r);return $[s>>2]=i>>u,a(n,s+4,i+r),null!==e&&e.push(Ur,s),s},argPackAdvance:8,readValueFromPointer:ae,destructorFunction:function(e){Ur(e)}})},q:function(e,r,t,n,a,i){te[e]={name:ye(r),rawConstructor:Ue(t,n),rawDestructor:Ue(a,i),fields:[]}},m:function(e,r,t,n,a,i,o,u,s,c){te[e].fields.push({fieldName:ye(r),getterReturnType:t,getter:Ue(n,a),getterContext:i,setterArgumentType:o,setter:Ue(u,s),setterContext:c})},pb:function(e,r){be(e,{isVoid:!0,name:r=ye(r),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,r){}})},kb:function(){return Date.now()},qb:function(e){delete _r.xhrs[e-1]},jb:function(){return!0},eb:function(){throw 1/0},t:function(e,r,t){e=Xe.toValue(e),r=rr(r,"emval::as");var n=[],a=Xe.toHandle(n);return S[t>>2]=a,r.toWireType(n,e)},Cc:function(e,r,t,n){e=Xe.toValue(e);for(var a=tr(r,t),i=new Array(r),o=0;o<r;++o){var u=a[o];i[o]=u.readValueFromPointer(n),n+=u.argPackAdvance}var s=e.apply(void 0,i);return Xe.toHandle(s)},v:function(e,r,t,n,a){return(e=ir[e])(r=Xe.toValue(r),t=ar(t),function(e){var r=[];return S[e>>2]=Xe.toHandle(r),r}(n),a)},A:function(e,r,t,n){(e=ir[e])(r=Xe.toValue(r),t=ar(t),null,n)},G:Ke,Ya:function(e){return 0===e?Xe.toHandle(or()):(e=ar(e),Xe.toHandle(or()[e]))},n:function(e,r){var t=tr(e,r),n=t[0],a=n.name+"_$"+t.slice(1).map((function(e){return e.name})).join("_")+"$",i=sr[a];if(void 0!==i)return i;for(var o=["retType"],u=[n],s="",c=0;c<e-1;++c)s+=(0!==c?", ":"")+"arg"+c,o.push("argType"+c),u.push(t[1+c]);var f,l,d="return function "+se("methodCaller_"+a)+"(handle, name, destructors, args) {\n",v=0;for(c=0;c<e-1;++c)d+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(v?"+"+v:"")+");\n",v+=t[c+1].argPackAdvance;for(d+=" var rv = handle[name]("+s+");\n",c=0;c<e-1;++c)t[c+1].deleteObject&&(d+=" argType"+c+".deleteObject(arg"+c+");\n");return n.isVoid||(d+=" return retType.toWireType(destructors, rv);\n"),d+="};\n",o.push(d),f=He(Function,o).apply(null,u),l=ir.length,ir.push(f),i=l,sr[a]=i,i},wb:function(e){return e=ar(e),Xe.toHandle(a[e])},z:function(e,r){return e=Xe.toValue(e),r=Xe.toValue(r),Xe.toHandle(e[r])},w:function(e){e>4&&(Je[e].refcount+=1)},$a:function(){return Xe.toHandle([])},_a:function(e){return Xe.toHandle(ar(e))},hc:function(){return Xe.toHandle({})},cb:function(e){ne(Xe.toValue(e)),Ke(e)},Yb:function(e,r,t){e=Xe.toValue(e),r=Xe.toValue(r),t=Xe.toValue(t),e[r]=t},s:function(e,r){var t=(e=rr(e,"_emval_take_value")).readValueFromPointer(r);return Xe.toHandle(t)},Za:function(e){return e=Xe.toValue(e),Xe.toHandle(typeof e)},a:function(){X("")},Db:function(e){cancelAnimationFrame(e)},ib:ur,Rc:function(e){Fr.activeTexture(e)},Sc:function(e,r){Fr.attachShader(cr.programs[e],cr.shaders[r])},Tc:function(e,r,t){Fr.bindAttribLocation(cr.programs[e],r,b(t))},Uc:function(e,r){35051==e?Fr.currentPixelPackBufferBinding=r:35052==e&&(Fr.currentPixelUnpackBufferBinding=r),Fr.bindBuffer(e,cr.buffers[r])},Rb:function(e,r){Fr.bindFramebuffer(e,cr.framebuffers[r])},Sb:function(e,r){Fr.bindRenderbuffer(e,cr.renderbuffers[r])},Bb:function(e,r){Fr.bindSampler(e,cr.samplers[r])},Vc:function(e,r){Fr.bindTexture(e,cr.textures[r])},mc:function(e){Fr.bindVertexArray(cr.vaos[e])},qc:function(e){Fr.bindVertexArray(cr.vaos[e])},Wc:function(e,r,t,n){Fr.blendColor(e,r,t,n)},I:function(e){Fr.blendEquation(e)},J:function(e,r){Fr.blendFunc(e,r)},Kb:function(e,r,t,n,a,i,o,u,s,c){Fr.blitFramebuffer(e,r,t,n,a,i,o,u,s,c)},K:function(e,r,t,n){cr.currentContext.version>=2?t&&r?Fr.bufferData(e,P,n,t,r):Fr.bufferData(e,r,n):Fr.bufferData(e,t?P.subarray(t,t+r):r,n)},L:function(e,r,t,n){cr.currentContext.version>=2?t&&Fr.bufferSubData(e,r,P,n,t):Fr.bufferSubData(e,r,P.subarray(n,n+t))},Tb:function(e){return Fr.checkFramebufferStatus(e)},M:function(e){Fr.clear(e)},N:function(e,r,t,n){Fr.clearColor(e,r,t,n)},O:function(e){Fr.clearStencil(e)},Ra:function(e,r,t,n){return Fr.clientWaitSync(cr.syncs[e],r,fr(t,n))},P:function(e,r,t,n){Fr.colorMask(!!e,!!r,!!t,!!n)},Q:function(e){Fr.compileShader(cr.shaders[e])},R:function(e,r,t,n,a,i,o,u){cr.currentContext.version>=2?Fr.currentPixelUnpackBufferBinding||!o?Fr.compressedTexImage2D(e,r,t,n,a,i,o,u):Fr.compressedTexImage2D(e,r,t,n,a,i,P,u,o):Fr.compressedTexImage2D(e,r,t,n,a,i,u?P.subarray(u,u+o):null)},S:function(e,r,t,n,a,i,o,u,s){cr.currentContext.version>=2?Fr.currentPixelUnpackBufferBinding||!u?Fr.compressedTexSubImage2D(e,r,t,n,a,i,o,u,s):Fr.compressedTexSubImage2D(e,r,t,n,a,i,o,P,s,u):Fr.compressedTexSubImage2D(e,r,t,n,a,i,o,s?P.subarray(s,s+u):null)},T:function(e,r,t,n,a,i,o,u){Fr.copyTexSubImage2D(e,r,t,n,a,i,o,u)},U:function(){var e=cr.getNewId(cr.programs),r=Fr.createProgram();return r.name=e,r.maxUniformLength=r.maxAttributeLength=r.maxUniformBlockNameLength=0,r.uniformIdCounter=1,cr.programs[e]=r,e},V:function(e){var r=cr.getNewId(cr.shaders);return cr.shaders[r]=Fr.createShader(e),r},W:function(e){Fr.cullFace(e)},X:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2],a=cr.buffers[n];a&&(Fr.deleteBuffer(a),a.name=0,cr.buffers[n]=null,n==Fr.currentPixelPackBufferBinding&&(Fr.currentPixelPackBufferBinding=0),n==Fr.currentPixelUnpackBufferBinding&&(Fr.currentPixelUnpackBufferBinding=0))}},Ub:function(e,r){for(var t=0;t<e;++t){var n=S[r+4*t>>2],a=cr.framebuffers[n];a&&(Fr.deleteFramebuffer(a),a.name=0,cr.framebuffers[n]=null)}},Y:function(e){if(e){var r=cr.programs[e];r?(Fr.deleteProgram(r),r.name=0,cr.programs[e]=null):cr.recordError(1281)}},Vb:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2],a=cr.renderbuffers[n];a&&(Fr.deleteRenderbuffer(a),a.name=0,cr.renderbuffers[n]=null)}},Cb:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2],a=cr.samplers[n];a&&(Fr.deleteSampler(a),a.name=0,cr.samplers[n]=null)}},Z:function(e){if(e){var r=cr.shaders[e];r?(Fr.deleteShader(r),cr.shaders[e]=null):cr.recordError(1281)}},Mb:function(e){if(e){var r=cr.syncs[e];r?(Fr.deleteSync(r),r.name=0,cr.syncs[e]=null):cr.recordError(1281)}},_:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2],a=cr.textures[n];a&&(Fr.deleteTexture(a),a.name=0,cr.textures[n]=null)}},nc:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2];Fr.deleteVertexArray(cr.vaos[n]),cr.vaos[n]=null}},rc:function(e,r){for(var t=0;t<e;t++){var n=S[r+4*t>>2];Fr.deleteVertexArray(cr.vaos[n]),cr.vaos[n]=null}},$:function(e){Fr.depthMask(!!e)},aa:function(e){Fr.disable(e)},ba:function(e){Fr.disableVertexAttribArray(e)},ca:function(e,r,t){Fr.drawArrays(e,r,t)},lc:function(e,r,t,n){Fr.drawArraysInstanced(e,r,t,n)},ic:function(e,r,t,n,a){Fr.dibvbi.drawArraysInstancedBaseInstanceWEBGL(e,r,t,n,a)},fc:function(e,r){for(var t=lr[e],n=0;n<e;n++)t[n]=S[r+4*n>>2];Fr.drawBuffers(t)},da:function(e,r,t,n){Fr.drawElements(e,r,t,n)},kc:function(e,r,t,n,a){Fr.drawElementsInstanced(e,r,t,n,a)},jc:function(e,r,t,n,a,i,o){Fr.dibvbi.drawElementsInstancedBaseVertexBaseInstanceWEBGL(e,r,t,n,a,i,o)},$b:function(e,r,t,n,a,i){!function(e,r,t,n){Fr.drawElements(e,r,t,n)}(e,n,a,i)},ea:function(e){Fr.enable(e)},fa:function(e){Fr.enableVertexAttribArray(e)},Ib:function(e,r){var t=Fr.fenceSync(e,r);if(t){var n=cr.getNewId(cr.syncs);return t.name=n,cr.syncs[n]=t,n}return 0},ga:function(){Fr.finish()},ha:function(){Fr.flush()},Wb:function(e,r,t,n){Fr.framebufferRenderbuffer(e,r,t,cr.renderbuffers[n])},Xb:function(e,r,t,n,a){Fr.framebufferTexture2D(e,r,t,cr.textures[n],a)},ia:function(e){Fr.frontFace(e)},ja:function(e,r){dr(e,r,"createBuffer",cr.buffers)},Zb:function(e,r){dr(e,r,"createFramebuffer",cr.framebuffers)},_b:function(e,r){dr(e,r,"createRenderbuffer",cr.renderbuffers)},Eb:function(e,r){dr(e,r,"createSampler",cr.samplers)},la:function(e,r){dr(e,r,"createTexture",cr.textures)},oc:function(e,r){dr(e,r,"createVertexArray",cr.vaos)},pc:function(e,r){dr(e,r,"createVertexArray",cr.vaos)},Nb:function(e){Fr.generateMipmap(e)},ma:function(e,r,t){t?S[t>>2]=Fr.getBufferParameter(e,r):cr.recordError(1281)},na:function(){var e=Fr.getError()||cr.lastError;return cr.lastError=0,e},oa:function(e,r){vr(e,r,2)},Ob:function(e,r,t,n){var a=Fr.getFramebufferAttachmentParameter(e,r,t);(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)&&(a=0|a.name),S[n>>2]=a},Pa:function(e,r){vr(e,r,0)},pa:function(e,r,t,n){var a=Fr.getProgramInfoLog(cr.programs[e]);null===a&&(a="(unknown error)");var i=r>0&&n?x(a,n,r):0;t&&(S[t>>2]=i)},qa:function(e,r,t){if(t)if(e>=cr.counter)cr.recordError(1281);else if(e=cr.programs[e],35716==r){var n=Fr.getProgramInfoLog(e);null===n&&(n="(unknown error)"),S[t>>2]=n.length+1}else if(35719==r){if(!e.maxUniformLength)for(var a=0;a<Fr.getProgramParameter(e,35718);++a)e.maxUniformLength=Math.max(e.maxUniformLength,Fr.getActiveUniform(e,a).name.length+1);S[t>>2]=e.maxUniformLength}else if(35722==r){if(!e.maxAttributeLength)for(a=0;a<Fr.getProgramParameter(e,35721);++a)e.maxAttributeLength=Math.max(e.maxAttributeLength,Fr.getActiveAttrib(e,a).name.length+1);S[t>>2]=e.maxAttributeLength}else if(35381==r){if(!e.maxUniformBlockNameLength)for(a=0;a<Fr.getProgramParameter(e,35382);++a)e.maxUniformBlockNameLength=Math.max(e.maxUniformBlockNameLength,Fr.getActiveUniformBlockName(e,a).length+1);S[t>>2]=e.maxUniformBlockNameLength}else S[t>>2]=Fr.getProgramParameter(e,r);else cr.recordError(1281)},Pb:function(e,r,t){t?S[t>>2]=Fr.getRenderbufferParameter(e,r):cr.recordError(1281)},ra:function(e,r,t,n){var a=Fr.getShaderInfoLog(cr.shaders[e]);null===a&&(a="(unknown error)");var i=r>0&&n?x(a,n,r):0;t&&(S[t>>2]=i)},yb:function(e,r,t,n){var a=Fr.getShaderPrecisionFormat(e,r);S[t>>2]=a.rangeMin,S[t+4>>2]=a.rangeMax,S[n>>2]=a.precision},sa:function(e,r,t){if(t)if(35716==r){var n=Fr.getShaderInfoLog(cr.shaders[e]);null===n&&(n="(unknown error)");var a=n?n.length+1:0;S[t>>2]=a}else if(35720==r){var i=Fr.getShaderSource(cr.shaders[e]),o=i?i.length+1:0;S[t>>2]=o}else S[t>>2]=Fr.getShaderParameter(cr.shaders[e],r);else cr.recordError(1281)},x:function(e){var r=cr.stringCache[e];if(!r){switch(e){case 7939:var t=Fr.getSupportedExtensions()||[];r=mr((t=t.concat(t.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=Fr.getParameter(e);n||cr.recordError(1280),r=n&&mr(n);break;case 7938:var a=Fr.getParameter(7938);r=mr(a=cr.currentContext.version>=2?"OpenGL ES 3.0 ("+a+")":"OpenGL ES 2.0 ("+a+")");break;case 35724:var i=Fr.getParameter(35724),o=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==o&&(3==o[1].length&&(o[1]=o[1]+"0"),i="OpenGL ES GLSL ES "+o[1]+" ("+i+")"),r=mr(i);break;default:cr.recordError(1280)}cr.stringCache[e]=r}return r},Qa:function(e,r){if(cr.currentContext.version<2)return cr.recordError(1282),0;var t=cr.stringiCache[e];if(t)return r<0||r>=t.length?(cr.recordError(1281),0):t[r];switch(e){case 7939:var n=Fr.getSupportedExtensions()||[];return n=(n=n.concat(n.map((function(e){return"GL_"+e})))).map((function(e){return mr(e)})),t=cr.stringiCache[e]=n,r<0||r>=t.length?(cr.recordError(1281),0):t[r];default:return cr.recordError(1280),0}},ta:function(e,r){if(r=b(r),e=cr.programs[e]){!function(e){var r,t,n=e.uniformLocsById,a=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},r=0;r<Fr.getProgramParameter(e,35718);++r){var i=Fr.getActiveUniform(e,r),o=i.name,u=i.size,s=pr(o),c=s>0?o.slice(0,s):o,f=e.uniformIdCounter;for(e.uniformIdCounter+=u,a[c]=[u,f],t=0;t<u;++t)n[f]=t,e.uniformArrayNamesById[f++]=c}}(e);var t=e.uniformLocsById,n=0,a=r,i=pr(r);i>0&&(u=r.slice(i+1),n=parseInt(u)>>>0,a=r.slice(0,i));var o=e.uniformSizeAndIdsByName[a];if(o&&n<o[0]&&(t[n+=o[1]]=t[n]||Fr.getUniformLocation(e,r)))return n}else cr.recordError(1281);var u;return-1},zb:function(e,r,t){for(var n=lr[r],a=0;a<r;a++)n[a]=S[t+4*a>>2];Fr.invalidateFramebuffer(e,n)},Ab:function(e,r,t,n,a,i,o){for(var u=lr[r],s=0;s<r;s++)u[s]=S[t+4*s>>2];Fr.invalidateSubFramebuffer(e,u,n,a,i,o)},Jb:function(e){return Fr.isSync(cr.syncs[e])},ua:function(e){var r=cr.textures[e];return r?Fr.isTexture(r):0},va:function(e){Fr.lineWidth(e)},wa:function(e){e=cr.programs[e],Fr.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},dc:function(e,r,t,n,a,i){Fr.mdibvbi.multiDrawArraysInstancedBaseInstanceWEBGL(e,S,r>>2,S,t>>2,S,n>>2,$,a>>2,i)},ec:function(e,r,t,n,a,i,o,u){Fr.mdibvbi.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(e,S,r>>2,t,S,n>>2,S,a>>2,S,i>>2,$,o>>2,u)},xa:function(e,r){3317==e&&(cr.unpackAlignment=r),Fr.pixelStorei(e,r)},gc:function(e){Fr.readBuffer(e)},ya:function(e,r,t,n,a,i,o){if(cr.currentContext.version>=2)if(Fr.currentPixelPackBufferBinding)Fr.readPixels(e,r,t,n,a,i,o);else{var u=yr(i);Fr.readPixels(e,r,t,n,a,i,u,o>>hr(u))}else{var s=gr(i,a,t,n,o);s?Fr.readPixels(e,r,t,n,a,i,s):cr.recordError(1280)}},Qb:function(e,r,t,n){Fr.renderbufferStorage(e,r,t,n)},Lb:function(e,r,t,n,a){Fr.renderbufferStorageMultisample(e,r,t,n,a)},Fb:function(e,r,t){Fr.samplerParameterf(cr.samplers[e],r,t)},Gb:function(e,r,t){Fr.samplerParameteri(cr.samplers[e],r,t)},Hb:function(e,r,t){var n=S[t>>2];Fr.samplerParameteri(cr.samplers[e],r,n)},za:function(e,r,t,n){Fr.scissor(e,r,t,n)},Aa:function(e,r,t,n){var a=cr.getSource(e,r,t,n);Fr.shaderSource(cr.shaders[e],a)},Ba:function(e,r,t){Fr.stencilFunc(e,r,t)},Ca:function(e,r,t,n){Fr.stencilFuncSeparate(e,r,t,n)},Da:function(e){Fr.stencilMask(e)},Ea:function(e,r){Fr.stencilMaskSeparate(e,r)},Fa:function(e,r,t){Fr.stencilOp(e,r,t)},Ga:function(e,r,t,n){Fr.stencilOpSeparate(e,r,t,n)},Ha:function(e,r,t,n,a,i,o,u,s){if(cr.currentContext.version>=2)if(Fr.currentPixelUnpackBufferBinding)Fr.texImage2D(e,r,t,n,a,i,o,u,s);else if(s){var c=yr(u);Fr.texImage2D(e,r,t,n,a,i,o,u,c,s>>hr(c))}else Fr.texImage2D(e,r,t,n,a,i,o,u,null);else Fr.texImage2D(e,r,t,n,a,i,o,u,s?gr(u,o,n,a,s):null)},Ia:function(e,r,t){Fr.texParameterf(e,r,t)},Ja:function(e,r,t){var n=I[t>>2];Fr.texParameterf(e,r,n)},Ka:function(e,r,t){Fr.texParameteri(e,r,t)},La:function(e,r,t){var n=S[t>>2];Fr.texParameteri(e,r,n)},ac:function(e,r,t,n,a){Fr.texStorage2D(e,r,t,n,a)},Ma:function(e,r,t,n,a,i,o,u,s){if(cr.currentContext.version>=2)if(Fr.currentPixelUnpackBufferBinding)Fr.texSubImage2D(e,r,t,n,a,i,o,u,s);else if(s){var c=yr(u);Fr.texSubImage2D(e,r,t,n,a,i,o,u,c,s>>hr(c))}else Fr.texSubImage2D(e,r,t,n,a,i,o,u,null);else{var f=null;s&&(f=gr(u,o,a,i,s)),Fr.texSubImage2D(e,r,t,n,a,i,o,u,f)}},Na:function(e,r){Fr.uniform1f(br(e),r)},Oa:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform1fv(br(e),I,t>>2,r);else{if(r<=288)for(var n=wr[r-1],a=0;a<r;++a)n[a]=I[t+4*a>>2];else n=I.subarray(t>>2,t+4*r>>2);Fr.uniform1fv(br(e),n)}},Nc:function(e,r){Fr.uniform1i(br(e),r)},Oc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform1iv(br(e),S,t>>2,r);else{if(r<=288)for(var n=xr[r-1],a=0;a<r;++a)n[a]=S[t+4*a>>2];else n=S.subarray(t>>2,t+4*r>>2);Fr.uniform1iv(br(e),n)}},Pc:function(e,r,t){Fr.uniform2f(br(e),r,t)},Qc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform2fv(br(e),I,t>>2,2*r);else{if(r<=144)for(var n=wr[2*r-1],a=0;a<2*r;a+=2)n[a]=I[t+4*a>>2],n[a+1]=I[t+(4*a+4)>>2];else n=I.subarray(t>>2,t+8*r>>2);Fr.uniform2fv(br(e),n)}},Mc:function(e,r,t){Fr.uniform2i(br(e),r,t)},Lc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform2iv(br(e),S,t>>2,2*r);else{if(r<=144)for(var n=xr[2*r-1],a=0;a<2*r;a+=2)n[a]=S[t+4*a>>2],n[a+1]=S[t+(4*a+4)>>2];else n=S.subarray(t>>2,t+8*r>>2);Fr.uniform2iv(br(e),n)}},Kc:function(e,r,t,n){Fr.uniform3f(br(e),r,t,n)},Jc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform3fv(br(e),I,t>>2,3*r);else{if(r<=96)for(var n=wr[3*r-1],a=0;a<3*r;a+=3)n[a]=I[t+4*a>>2],n[a+1]=I[t+(4*a+4)>>2],n[a+2]=I[t+(4*a+8)>>2];else n=I.subarray(t>>2,t+12*r>>2);Fr.uniform3fv(br(e),n)}},Ic:function(e,r,t,n){Fr.uniform3i(br(e),r,t,n)},Hc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform3iv(br(e),S,t>>2,3*r);else{if(r<=96)for(var n=xr[3*r-1],a=0;a<3*r;a+=3)n[a]=S[t+4*a>>2],n[a+1]=S[t+(4*a+4)>>2],n[a+2]=S[t+(4*a+8)>>2];else n=S.subarray(t>>2,t+12*r>>2);Fr.uniform3iv(br(e),n)}},Gc:function(e,r,t,n,a){Fr.uniform4f(br(e),r,t,n,a)},Fc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform4fv(br(e),I,t>>2,4*r);else{if(r<=72){var n=wr[4*r-1],a=I;t>>=2;for(var i=0;i<4*r;i+=4){var o=t+i;n[i]=a[o],n[i+1]=a[o+1],n[i+2]=a[o+2],n[i+3]=a[o+3]}}else n=I.subarray(t>>2,t+16*r>>2);Fr.uniform4fv(br(e),n)}},sc:function(e,r,t,n,a){Fr.uniform4i(br(e),r,t,n,a)},tc:function(e,r,t){if(cr.currentContext.version>=2)r&&Fr.uniform4iv(br(e),S,t>>2,4*r);else{if(r<=72)for(var n=xr[4*r-1],a=0;a<4*r;a+=4)n[a]=S[t+4*a>>2],n[a+1]=S[t+(4*a+4)>>2],n[a+2]=S[t+(4*a+8)>>2],n[a+3]=S[t+(4*a+12)>>2];else n=S.subarray(t>>2,t+16*r>>2);Fr.uniform4iv(br(e),n)}},uc:function(e,r,t,n){if(cr.currentContext.version>=2)r&&Fr.uniformMatrix2fv(br(e),!!t,I,n>>2,4*r);else{if(r<=72)for(var a=wr[4*r-1],i=0;i<4*r;i+=4)a[i]=I[n+4*i>>2],a[i+1]=I[n+(4*i+4)>>2],a[i+2]=I[n+(4*i+8)>>2],a[i+3]=I[n+(4*i+12)>>2];else a=I.subarray(n>>2,n+16*r>>2);Fr.uniformMatrix2fv(br(e),!!t,a)}},vc:function(e,r,t,n){if(cr.currentContext.version>=2)r&&Fr.uniformMatrix3fv(br(e),!!t,I,n>>2,9*r);else{if(r<=32)for(var a=wr[9*r-1],i=0;i<9*r;i+=9)a[i]=I[n+4*i>>2],a[i+1]=I[n+(4*i+4)>>2],a[i+2]=I[n+(4*i+8)>>2],a[i+3]=I[n+(4*i+12)>>2],a[i+4]=I[n+(4*i+16)>>2],a[i+5]=I[n+(4*i+20)>>2],a[i+6]=I[n+(4*i+24)>>2],a[i+7]=I[n+(4*i+28)>>2],a[i+8]=I[n+(4*i+32)>>2];else a=I.subarray(n>>2,n+36*r>>2);Fr.uniformMatrix3fv(br(e),!!t,a)}},wc:function(e,r,t,n){if(cr.currentContext.version>=2)r&&Fr.uniformMatrix4fv(br(e),!!t,I,n>>2,16*r);else{if(r<=18){var a=wr[16*r-1],i=I;n>>=2;for(var o=0;o<16*r;o+=16){var u=n+o;a[o]=i[u],a[o+1]=i[u+1],a[o+2]=i[u+2],a[o+3]=i[u+3],a[o+4]=i[u+4],a[o+5]=i[u+5],a[o+6]=i[u+6],a[o+7]=i[u+7],a[o+8]=i[u+8],a[o+9]=i[u+9],a[o+10]=i[u+10],a[o+11]=i[u+11],a[o+12]=i[u+12],a[o+13]=i[u+13],a[o+14]=i[u+14],a[o+15]=i[u+15]}}else a=I.subarray(n>>2,n+64*r>>2);Fr.uniformMatrix4fv(br(e),!!t,a)}},xc:function(e){e=cr.programs[e],Fr.useProgram(e),Fr.currentProgram=e},yc:function(e,r){Fr.vertexAttrib1f(e,r)},zc:function(e,r){Fr.vertexAttrib2f(e,I[r>>2],I[r+4>>2])},Ac:function(e,r){Fr.vertexAttrib3f(e,I[r>>2],I[r+4>>2],I[r+8>>2])},Bc:function(e,r){Fr.vertexAttrib4f(e,I[r>>2],I[r+4>>2],I[r+8>>2],I[r+12>>2])},bc:function(e,r){Fr.vertexAttribDivisor(e,r)},cc:function(e,r,t,n,a){Fr.vertexAttribIPointer(e,r,t,n,a)},Dc:function(e,r,t,n,a,i){Fr.vertexAttribPointer(e,r,t,!!n,a,i)},Ec:function(e,r,t,n){Fr.viewport(e,r,t,n)},Sa:function(e,r,t,n){Fr.waitSync(cr.syncs[e],r,fr(t,n))},sb:function(){return!0},F:function(e,r){return requestAnimationFrame((function(t){re(e)(t,r)}))},fb:function(e){var r,t=P.length,n=2147483648;if((e>>>=0)>n)return!1;for(var a=1;a<=4;a*=2){var i=t*(1+.2/a);if(i=Math.min(i,e+100663296),Cr(Math.min(n,(r=Math.max(e,i))+(65536-r%65536)%65536)))return!0}return!1},rb:function(e,r,t,n,a){var i=e+112,o=b(i),u=$[i+36>>2],s=$[i+40>>2],c=$[i+44>>2],f=$[i+48>>2],l=$[i+52>>2],d=!!(4&l),v=!!(32&l),m=!!(16&l),p=!!(64&l),y=(e,t,n)=>{Pr((()=>{u?re(u)(e):r&&r(e)}),p)},h=(e,r,t)=>{Pr((()=>{c?re(c)(e):n&&n(e)}),p)},g=(e,r,n)=>{Pr((()=>{s?re(s)(e):t&&t(e)}),p)},w=(e,r,t)=>{Pr((()=>{f?re(f)(e):a&&a(e)}),p)},C=(e,t,n)=>{Tr(_r.dbInstance,e,t.response,((e,t,n)=>{Pr((()=>{u?re(u)(e):r&&r(e)}),p)}),((e,t,n)=>{Pr((()=>{u?re(u)(e):r&&r(e)}),p)}))};if("EM_IDB_STORE"===o){var _=$[i+84>>2];Tr(_r.dbInstance,e,P.slice(_,_+$[i+88>>2]),y,g)}else if("EM_IDB_DELETE"===o)!function(e,r,t,n){if(e){var a=$[r+112+64>>2];a||(a=$[r+8>>2]);var i=b(a);try{var o=e.transaction(["FILES"],"readwrite").objectStore("FILES").delete(i);o.onsuccess=e=>{var n=e.target.result;$[r+12>>2]=0,_r.setu64(r+16,0),_r.setu64(r+24,0),_r.setu64(r+32,0),A[r+40>>1]=4,A[r+42>>1]=200,x("OK",r+44,64),t(r,0,n)},o.onerror=e=>{A[r+40>>1]=4,A[r+42>>1]=404,x("Not Found",r+44,64),n(r,0,e)}}catch(e){n(r,0,e)}}else n(r,0,"IndexedDB not available!")}(_r.dbInstance,e,y,g);else if(m){if(v)return 0;Er(e,d?C:y,g,h,w)}else!function(e,r,t,n){if(e){var a=$[r+112+64>>2];a||(a=$[r+8>>2]);var i=b(a);try{var o=e.transaction(["FILES"],"readonly").objectStore("FILES").get(i);o.onsuccess=e=>{if(e.target.result){var a=e.target.result,i=a.byteLength||a.length,o=Rr(i);P.set(new Uint8Array(a),o),$[r+12>>2]=o,_r.setu64(r+16,i),_r.setu64(r+24,0),_r.setu64(r+32,i),A[r+40>>1]=4,A[r+42>>1]=200,x("OK",r+44,64),t(r,0,a)}else A[r+40>>1]=4,A[r+42>>1]=404,x("Not Found",r+44,64),n(r,0,"no data")},o.onerror=e=>{A[r+40>>1]=4,A[r+42>>1]=404,x("Not Found",r+44,64),n(r,0,e)}}catch(e){n(r,0,e)}}else n(r,0,"IndexedDB not available!")}(_r.dbInstance,e,y,v?g:d?(e,r,t)=>{Er(e,C,g,h,w)}:(e,r,t)=>{Er(e,y,g,h,w)});return e},Xa:function(e){return cr.makeContextCurrent(e)?0:-5},gb:function(e,r){var t=0;return Sr().forEach((function(n,a){var i=r+t;S[e+4*a>>2]=i,function(e,r,t){for(var n=0;n<e.length;++n)E[r++>>0]=e.charCodeAt(n);E[r>>0]=0}(n,i),t+=n.length+1})),0},hb:function(e,r){var t=Sr();S[e>>2]=t.length;var n=0;return t.forEach((function(e){n+=e.length+1})),S[r>>2]=n,0},lb:function(e){return 52},ab:function(e,r,t,n,a){return 70},B:function(e,r,t,n){for(var a=0,i=0;i<t;i++){var o=$[r>>2],u=$[r+4>>2];r+=8;for(var s=0;s<u;s++)Ir(e,P[o+s]);a+=u}return S[n>>2]=a,0},b:function(){return m},Wa:function(e,r){Fr.bindFramebuffer(e,cr.framebuffers[r])},Ta:function(e){Fr.clear(e)},Va:function(e,r,t,n){Fr.clearColor(e,r,t,n)},Ua:function(e){Fr.clearStencil(e)},y:function(e,r){vr(e,r,0)},f:function(e,r){var t=Gr();try{return re(e)(r)}catch(e){if(Hr(t),e!==e+0)throw e;Nr(1,0)}},o:function(e,r,t){var n=Gr();try{return re(e)(r,t)}catch(e){if(Hr(n),e!==e+0)throw e;Nr(1,0)}},g:function(e,r,t,n){var a=Gr();try{return re(e)(r,t,n)}catch(e){if(Hr(a),e!==e+0)throw e;Nr(1,0)}},E:function(e,r,t,n,a){var i=Gr();try{return re(e)(r,t,n,a)}catch(e){if(Hr(i),e!==e+0)throw e;Nr(1,0)}},ub:function(e){var r=Gr();try{re(e)()}catch(e){if(Hr(r),e!==e+0)throw e;Nr(1,0)}},r:function(e,r){var t=Gr();try{re(e)(r)}catch(e){if(Hr(t),e!==e+0)throw e;Nr(1,0)}},l:function(e,r,t){var n=Gr();try{re(e)(r,t)}catch(e){if(Hr(n),e!==e+0)throw e;Nr(1,0)}},k:function(e,r,t,n){var a=Gr();try{re(e)(r,t,n)}catch(e){if(Hr(a),e!==e+0)throw e;Nr(1,0)}},i:function(e,r,t,n,a){var i=Gr();try{re(e)(r,t,n,a)}catch(e){if(Hr(i),e!==e+0)throw e;Nr(1,0)}},xb:function(e,r,t,n,a,i){var o=Gr();try{re(e)(r,t,n,a,i)}catch(e){if(Hr(o),e!==e+0)throw e;Nr(1,0)}},tb:function(e,r,t,n,a,i,o){var u=Gr();try{re(e)(r,t,n,a,i,o)}catch(e){if(Hr(u),e!==e+0)throw e;Nr(1,0)}},vb:function(e,r,t,n,a,i,o,u,s,c){var f=Gr();try{re(e)(r,t,n,a,i,o,u,s,c)}catch(e){if(Hr(f),e!==e+0)throw e;Nr(1,0)}},c:function(e){m=e},db:function(e,r,t,n){return function(e,r,t,n){var a=S[n+40>>2],i={tm_sec:S[n>>2],tm_min:S[n+4>>2],tm_hour:S[n+8>>2],tm_mday:S[n+12>>2],tm_mon:S[n+16>>2],tm_year:S[n+20>>2],tm_wday:S[n+24>>2],tm_yday:S[n+28>>2],tm_isdst:S[n+32>>2],tm_gmtoff:S[n+36>>2],tm_zone:a?b(a):""},o=b(t),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in u)o=o.replace(new RegExp(s,"g"),u[s]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length<r;)n=t[0]+n;return n}function d(e,r){return l(e,r,"0")}function v(e,r){function t(e){return e<0?-1:e>0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function m(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function p(e){var r=function(e,r){for(var t=new Date(e.getTime());r>0;){var n=kr(t.getFullYear()),a=t.getMonth(),i=(n?jr:Dr)[a];if(!(r>i-t.getDate()))return t.setDate(t.getDate()+r),t;r-=i-t.getDate()+1,t.setDate(1),a<11?t.setMonth(a+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t}(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),a=m(t),i=m(n);return v(a,r)<=0?v(i,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var y={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return f[e.tm_mon].substring(0,3)},"%B":function(e){return f[e.tm_mon]},"%C":function(e){return d((e.tm_year+1900)/100|0,2)},"%d":function(e){return d(e.tm_mday,2)},"%e":function(e){return l(e.tm_mday,2," ")},"%g":function(e){return p(e).toString().substring(2)},"%G":function(e){return p(e)},"%H":function(e){return d(e.tm_hour,2)},"%I":function(e){var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),d(r,2)},"%j":function(e){return d(e.tm_mday+function(e,r){for(var t=0,n=0;n<=r;t+=e[n++]);return t}(kr(e.tm_year+1900)?jr:Dr,e.tm_mon-1),3)},"%m":function(e){return d(e.tm_mon+1,2)},"%M":function(e){return d(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return d(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var r=e.tm_yday+7-e.tm_wday;return d(Math.floor(r/7),2)},"%V":function(e){var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&kr(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&kr(e.tm_year%400-1))&&r++}return d(r,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var r=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(r/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var s in o=o.replace(/%%/g,"\0\0"),y)o.includes(s)&&(o=o.replace(new RegExp(s,"g"),y[s](i)));var h,g,x,_=(g=C(h=o=o.replace(/\0\0/g,"%"))+1,w(h,x=new Array(g),0,x.length),x);return _.length>r?0:(function(e,r){E.set(e,r)}(_,e),_.length-1)}(e,r,t,n)}},Rr=(function(){var e={a:Mr};function r(e,r){var t,n=e.exports;a.asm=n,M((v=a.asm.Yc).buffer),R=a.asm.$c,t=a.asm.Zc,G.unshift(t),K()}function t(e){r(e.instance)}function i(r){return(d||"function"!=typeof fetch?Promise.resolve().then((function(){return Z(U)})):fetch(U,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+U+"'";return e.arrayBuffer()})).catch((function(){return Z(U)}))).then((function(r){return WebAssembly.instantiate(r,e)})).then((function(e){return e})).then(r,(function(e){l("failed to asynchronously prepare wasm: "+e),X(e)}))}if(J(),a.instantiateWasm)try{return a.instantiateWasm(e,r)}catch(e){return l("Module.instantiateWasm callback failed with error: "+e),!1}(d||"function"!=typeof WebAssembly.instantiateStreaming||Q(U)||"function"!=typeof fetch?i(t):fetch(U,{credentials:"same-origin"}).then((function(r){return WebAssembly.instantiateStreaming(r,e).then(t,(function(e){return l("wasm streaming compile failed: "+e),l("falling back to ArrayBuffer instantiation"),i(t)}))}))).catch(n)}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.Zc).apply(null,arguments)},a._malloc=function(){return(Rr=a._malloc=a.asm._c).apply(null,arguments)}),Ur=a._free=function(){return(Ur=a._free=a.asm.ad).apply(null,arguments)},Vr=a.___getTypeName=function(){return(Vr=a.___getTypeName=a.asm.bd).apply(null,arguments)},Nr=(a.___embind_register_native_and_builtin_types=function(){return(a.___embind_register_native_and_builtin_types=a.asm.cd).apply(null,arguments)},a._setThrew=function(){return(Nr=a._setThrew=a.asm.dd).apply(null,arguments)}),Gr=a.stackSave=function(){return(Gr=a.stackSave=a.asm.ed).apply(null,arguments)},Hr=a.stackRestore=function(){return(Hr=a.stackRestore=a.asm.fd).apply(null,arguments)};function Yr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function zr(e){function r(){Wr||(Wr=!0,a.calledRun=!0,y||(ee(G),t(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)e=a.postRun.shift(),H.unshift(e);var e;ee(H)}()))}e=e||o,Y>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),N.unshift(e);var e;ee(N)}(),Y>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),r()}),1)):r()))}if(a.dynCall_viji=function(){return(a.dynCall_viji=a.asm.gd).apply(null,arguments)},a.dynCall_vijiii=function(){return(a.dynCall_vijiii=a.asm.hd).apply(null,arguments)},a.dynCall_viiiiij=function(){return(a.dynCall_viiiiij=a.asm.id).apply(null,arguments)},a.dynCall_jii=function(){return(a.dynCall_jii=a.asm.jd).apply(null,arguments)},a.dynCall_vij=function(){return(a.dynCall_vij=a.asm.kd).apply(null,arguments)},a.dynCall_iiij=function(){return(a.dynCall_iiij=a.asm.ld).apply(null,arguments)},a.dynCall_iiiij=function(){return(a.dynCall_iiiij=a.asm.md).apply(null,arguments)},a.dynCall_viij=function(){return(a.dynCall_viij=a.asm.nd).apply(null,arguments)},a.dynCall_viiij=function(){return(a.dynCall_viiij=a.asm.od).apply(null,arguments)},a.dynCall_ji=function(){return(a.dynCall_ji=a.asm.pd).apply(null,arguments)},a.dynCall_iij=function(){return(a.dynCall_iij=a.asm.qd).apply(null,arguments)},a.dynCall_jiiiiii=function(){return(a.dynCall_jiiiiii=a.asm.rd).apply(null,arguments)},a.dynCall_jiiiiji=function(){return(a.dynCall_jiiiiji=a.asm.sd).apply(null,arguments)},a.dynCall_iijj=function(){return(a.dynCall_iijj=a.asm.td).apply(null,arguments)},a.dynCall_jiji=function(){return(a.dynCall_jiji=a.asm.ud).apply(null,arguments)},a.dynCall_viijii=function(){return(a.dynCall_viijii=a.asm.vd).apply(null,arguments)},a.dynCall_iiiiij=function(){return(a.dynCall_iiiiij=a.asm.wd).apply(null,arguments)},a.dynCall_iiiiijj=function(){return(a.dynCall_iiiiijj=a.asm.xd).apply(null,arguments)},a.dynCall_iiiiiijj=function(){return(a.dynCall_iiiiiijj=a.asm.yd).apply(null,arguments)},a.GL=cr,q=function e(){Wr||zr(),Wr||(q=e)},a.run=zr,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return zr(),e.ready});e.exports=t}}]);
|