-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathengine-wasm.js
480 lines (456 loc) · 162 KB
/
engine-wasm.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
/*!
* Bowser - a browser detector
* https://github.com/ded/bowser
* MIT License | (c) Dustin Diaz 2015
*/
!function(e,t,n){e[t]=n()}(this,"bowser",function(){function t(t){function n(e){var n=t.match(e);return n&&n.length>1&&n[1]||""}function r(e){var n=t.match(e);return n&&n.length>1&&n[2]||""}var i=n(/(ipod|iphone|ipad)/i).toLowerCase(),s=/like android/i.test(t),o=!s&&/android/i.test(t),u=/nexus\s*[0-6]\s*/i.test(t),a=!u&&/nexus\s*[0-9]+/i.test(t),f=/CrOS/.test(t),l=/silk/i.test(t),c=/sailfish/i.test(t),h=/tizen/i.test(t),p=/(web|hpw)os/i.test(t),d=/windows phone/i.test(t),v=/SamsungBrowser/i.test(t),m=!d&&/windows/i.test(t),g=!i&&!l&&/macintosh/i.test(t),y=!o&&!c&&!h&&!p&&/linux/i.test(t),b=n(/edge\/(\d+(\.\d+)?)/i),w=n(/version\/(\d+(\.\d+)?)/i),E=/tablet/i.test(t),S=!E&&/[^-]mobi/i.test(t),x=/xbox/i.test(t),T;/opera/i.test(t)?T={name:"Opera",opera:e,version:w||n(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr|opios/i.test(t)?T={name:"Opera",opera:e,version:n(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||w}:/SamsungBrowser/i.test(t)?T={name:"Samsung Internet for Android",samsungBrowser:e,version:w||n(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/coast/i.test(t)?T={name:"Opera Coast",coast:e,version:w||n(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(t)?T={name:"Yandex Browser",yandexbrowser:e,version:w||n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(t)?T={name:"UC Browser",ucbrowser:e,version:n(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(t)?T={name:"Maxthon",maxthon:e,version:n(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(t)?T={name:"Epiphany",epiphany:e,version:n(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(t)?T={name:"Puffin",puffin:e,version:n(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(t)?T={name:"Sleipnir",sleipnir:e,version:n(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(t)?T={name:"K-Meleon",kMeleon:e,version:n(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:d?(T={name:"Windows Phone",windowsphone:e},b?(T.msedge=e,T.version=b):(T.msie=e,T.version=n(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(t)?T={name:"Internet Explorer",msie:e,version:n(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:f?T={name:"Chrome",chromeos:e,chromeBook:e,chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/chrome.+? edge/i.test(t)?T={name:"Microsoft Edge",msedge:e,version:b}:/vivaldi/i.test(t)?T={name:"Vivaldi",vivaldi:e,version:n(/vivaldi\/(\d+(\.\d+)?)/i)||w}:c?T={name:"Sailfish",sailfish:e,version:n(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(t)?T={name:"SeaMonkey",seamonkey:e,version:n(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(t)?(T={name:"Firefox",firefox:e,version:n(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t)&&(T.firefoxos=e)):l?T={name:"Amazon Silk",silk:e,version:n(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(t)?T={name:"PhantomJS",phantom:e,version:n(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(t)?T={name:"SlimerJS",slimer:e,version:n(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(t)||/rim\stablet/i.test(t)?T={name:"BlackBerry",blackberry:e,version:w||n(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:p?(T={name:"WebOS",webos:e,version:w||n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(t)&&(T.touchpad=e)):/bada/i.test(t)?T={name:"Bada",bada:e,version:n(/dolfin\/(\d+(\.\d+)?)/i)}:h?T={name:"Tizen",tizen:e,version:n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||w}:/qupzilla/i.test(t)?T={name:"QupZilla",qupzilla:e,version:n(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||w}:/chromium/i.test(t)?T={name:"Chromium",chromium:e,version:n(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||w}:/chrome|crios|crmo/i.test(t)?T={name:"Chrome",chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:o?T={name:"Android",version:w}:/safari|applewebkit/i.test(t)?(T={name:"Safari",safari:e},w&&(T.version=w)):i?(T={name:i=="iphone"?"iPhone":i=="ipad"?"iPad":"iPod"},w&&(T.version=w)):/googlebot/i.test(t)?T={name:"Googlebot",googlebot:e,version:n(/googlebot\/(\d+(\.\d+))/i)||w}:T={name:n(/^(.*)\/(.*) /),version:r(/^(.*)\/(.*) /)},!T.msedge&&/(apple)?webkit/i.test(t)?(/(apple)?webkit\/537\.36/i.test(t)?(T.name=T.name||"Blink",T.blink=e):(T.name=T.name||"Webkit",T.webkit=e),!T.version&&w&&(T.version=w)):!T.opera&&/gecko\//i.test(t)&&(T.name=T.name||"Gecko",T.gecko=e,T.version=T.version||n(/gecko\/(\d+(\.\d+)?)/i)),!T.windowsphone&&!T.msedge&&(o||T.silk)?T.android=e:!T.windowsphone&&!T.msedge&&i?(T[i]=e,T.ios=e):g?T.mac=e:x?T.xbox=e:m?T.windows=e:y&&(T.linux=e);var N="";T.windowsphone?N=n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i?(N=n(/os (\d+([_\s]\d+)*) like mac os x/i),N=N.replace(/[_\s]/g,".")):o?N=n(/android[ \/-](\d+(\.\d+)*)/i):T.webos?N=n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):T.blackberry?N=n(/rim\stablet\sos\s(\d+(\.\d+)*)/i):T.bada?N=n(/bada\/(\d+(\.\d+)*)/i):T.tizen&&(N=n(/tizen[\/\s](\d+(\.\d+)*)/i)),N&&(T.osversion=N);var C=N.split(".")[0];if(E||a||i=="ipad"||o&&(C==3||C>=4&&!S)||T.silk)T.tablet=e;else if(S||i=="iphone"||i=="ipod"||o||u||T.blackberry||T.webos||T.bada)T.mobile=e;return T.msedge||T.msie&&T.version>=10||T.yandexbrowser&&T.version>=15||T.vivaldi&&T.version>=1||T.chrome&&T.version>=20||T.samsungBrowser&&T.version>=4||T.firefox&&T.version>=20||T.safari&&T.version>=6||T.opera&&T.version>=10||T.ios&&T.osversion&&T.osversion.split(".")[0]>=6||T.blackberry&&T.version>=10.1||T.chromium&&T.version>=20?T.a=e:T.msie&&T.version<10||T.chrome&&T.version<20||T.firefox&&T.version<20||T.safari&&T.version<6||T.opera&&T.version<10||T.ios&&T.osversion&&T.osversion.split(".")[0]<6||T.chromium&&T.version<20?T.c=e:T.x=e,T}function r(e){return e.split(".").length}function i(e,t){var n=[],r;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r++)n.push(t(e[r]));return n}function s(e){var t=Math.max(r(e[0]),r(e[1])),n=i(e,function(e){var n=t-r(e);return e+=(new Array(n+1)).join(".0"),i(e.split("."),function(e){return(new Array(20-e.length)).join("0")+e}).reverse()});while(--t>=0){if(n[0][t]>n[1][t])return 1;if(n[0][t]!==n[1][t])return-1;if(t===0)return 0}}function o(e,r,i){var o=n;typeof r=="string"&&(i=r,r=void 0),r===void 0&&(r=!1),i&&(o=t(i));var u=""+o.version;for(var a in e)if(e.hasOwnProperty(a)&&o[a]){if(typeof e[a]!="string")throw new Error("Browser version in the minVersion map should be a string: "+a+": "+String(e));return s([u,e[a]])<0}return r}function u(e,t,n){return!o(e,t,n)}var e=!0,n=t(typeof navigator!="undefined"?navigator.userAgent||"":"");return n.test=function(e){for(var t=0;t<e.length;++t){var r=e[t];if(typeof r=="string"&&r in n)return!0}return!1},n.isUnsupportedBrowser=o,n.compareVersions=s,n.check=u,n._detect=t,n})
var _SC = (function () {
var createInstanceImpl = function () {
var Module = this;
if (typeof _SC !== "undefined" && _SC.wasmBinary) {
this.wasmBinary = _SC.wasmBinary;
}
var g;g||(g=typeof Module !== 'undefined' ? Module : {});g.$$setReady=function(){g.kk();g.$$onReady.apply(window,arguments);g.$$onReady=void 0;g.onAbort=void 0};
g.kk=function(){function a(D){if(!D)return 0;var C=g.$$es.allocateUint8Buffer(8*D.length);if(C)aa.set(D,C>>3);else throw Error("Out of memory.");return C}function b(D){if(!D)return 0;var C=g.$$es.allocateUint8Buffer(4*D.length);if(C)h.set(D,C>>2);else throw Error("Out of memory.");return C}function c(D){if(!D)return 0;var C=g.$$es.allocateUint8Buffer(D.length);if(C)t.set(D,C);else throw Error("Out of memory.");return C}function d(D){g.$$es.deallocateUint8Buffer(D)}function e(D){return function(){return m(D,
arguments)}}function f(D,C,ba){function L(za){return function(){G();S&&y.callRecord.push(za+" "+v(arguments));return l(this,g[D][za],arguments)}}function ia(){G();this.$$memory=new Uint8Array(g[D]["sizeof_"+C]());l(this,g[D][U+"create"],arguments)}var U=C+"_";ia.prototype={$$stackify:!0};ia.copy=function(za){G();var Ba=Object.create(ia.prototype);Ba.$$memory=new Uint8Array(t.subarray(za,za+g[D]["sizeof_"+C]()));return Ba};ia.clone=function(za){var Ba=Object.create(ia.prototype);Ba.$$memory=new Uint8Array(za.$$memory);
return Ba};ia.assign=function(za,Ba){za.$$memory.set(Ba.$$memory)};for(var ua=0;ua<ba.length;ua++)ia.prototype[ba[ua]]=L(U+ba[ua]);return y[C]=ia}function l(D,C,ba){ba=Array.prototype.slice.call(ba);ba.unshift(D);return m(C,ba)}function m(D,C){for(var ba=!1,L=0;L<C.length;++L)if(C[L].$$stackify){ba=!0;break}if(!ba)return D.apply(g,C);ba=fa();try{var ia=Array.prototype.slice.call(C);for(L=0;L<C.length;L++)if(C[L].$$stackify){var U=ma(C[L].$$memory.length);t.set(C[L].$$memory,U);ia[L]=U}var ua=D.apply(g,
ia);for(L=0;L<C.length;L++)C[L].$$stackify&&C[L].$$memory.set(t.subarray(ia[L],ia[L]+C[L].$$memory.length))}finally{na(ba)}return ua}function p(D){this.value=D}function u(D){y.suspendDrawing(D);g.ki("webgl_context_lost")}function v(){return JSON.stringify(arguments,A)}function A(D,C){return null!==C&&"object"===typeof C&&C.$$memory?"stackified":C}function G(){if(y!==g.$$facade)throw new ReferenceError("member called after shutdown");}var r="$$cs";g.$$es.initializeLibrary();var y=g.$$facade,F=g.Oj?
new g.Oj:void 0;g.tj=F;y.isValid=function(){return y===g.$$facade};var S=!1;y.callRecord=[];y.startRecording=function(){S=!0};y.stopRecording=function(){S=!1};y.logCallRecord=function(){for(var D=y.callRecord,C=0;C<D.length;++C)console.log(D[C])};y.shutDown=function(){G();S&&y.callRecord.push("shutDown");"$$cs"===r&&g.canvas.removeEventListener("webglcontextlost",u);g.$$es.shutDownLibrary();F&&F.Xk();g.$$legacyClient?(y.container.innerHTML="",g.$$wrapper.innerHTML=""):(y.containers.forEach(D=>{D.innerHTML=
""}),y.wrappers.forEach(D=>{D.innerHTML=""}));g.$$facade=void 0;g.tj=void 0;g.$$available=!0};y.ByMeshInstance=new p(0);y.ByGroup=new p(1);y.ByExpandedGroup=new p(2);(function(){function D(n,q){L([H.Scs]);if(!n)throw new U("InvalidConfig","Invalid load configuration");var w,x,z=new Promise(function(V,Z){w=V;x=Z});va=H.Scs;var J=new XMLHttpRequest;J.open("GET",q);J.responseType="arraybuffer";J.onload=function(){try{C(n,new Uint8Array(this.response)).then(function(V){w(V)},function(V){x(V)})}catch(V){}};
"function"===typeof n.XHRonprogress&&(J.onprogress=n.XHRonprogress);"function"===typeof n.XHRonerror&&(J.onerror=n.XHRonerror);if("function"===typeof n.XHRonloadend){var ea=n.XHRonloadend;J.onloadend=function(V){ea(V,J.status,q)}}J.send();return z}function C(n,q){L([H.Scs]);if(!n)throw new U("InvalidConfig","Invalid load configuration");if(q.constructor!==Uint8Array)throw new U("InvalidConfig","'buffer' must be a Uint8Array");if(0>=q.byteLength)throw new U("EmptyBuffer","'buffer' has a length of 0");
var w=g.$$es.allocateUint8Buffer(q.byteLength);t.set(q,w);try{return ba(n,w,q.byteLength)}catch(x){throw g.$$es.deallocateUint8Buffer(w),x;}}function ba(n,q,w){L([H.Scs]);var x=n.attachScope,z=n.attachMeasurementUnit,J=n.attachInvisibly,ea=n.resolveOnFullyLoaded,V=n.inclusionMatrix;n=n.cancelUnitMatrix;var Z=0;if(V){if(V.constructor!==Array&&V.constructor!==Float64Array)throw new TypeError("'inclusionMatrix' is not an Array or Float64Array.");if(12!==V.length)throw new TypeError("'inclusionMatrix' needs to have exactly 12 elements.");
Z=a(V);if(!Z)throw Error("Internal logic error.");}va=H.Scs;var Ca,sa;V=new Promise(function(wa,Da){Ca=wa;sa=function(Ja){try{ia(Ja),Da(null)}catch(Oa){Da(Oa)}}});try{g.$$es.attachScsBuffer(x,q,w,Z,z,J,ea,n,Ca,sa)}catch(wa){sa(wa)}finally{d(Z)}return V}function L(n){if(va!==H.Uninitialized){if(void 0!==n)for(var q=0;q<n.length;++q)if(va===n[q])return;throw new U("AlreadyCalled","load() already called with an incompatible session type");}}function ia(n){switch(n){case g.LoadResult.WebGLMissing:throw new U("WebGLError",
"WebGL initialization failed");case g.LoadResult.SessionAlreadyStarted:throw new U("AlreadyCalled","load() already called");}}function U(n,q){this.code=n;this.message=q;this.stack=Error().stack}function ua(n){var q=JSON.parse(qa(n,0));if("rpc"in q){if(n=q.rpc,q=n.length/2,q===Math.floor(q)){for(var w=new Uint8Array(q),x=0;x<q;++x)w[x]=parseInt(n.substr(x+x,2),16);n=w;q=(new DataView(n.buffer)).getUint32(0,!0);w=n[4];n=n.subarray(5);x=c(n);g[r].notifyRpcClientResult(q,w,x,n.length)}}else if("event"in
q)switch(n=q.event,q=q.data,n){case "camera_set":Ob=Bb(q);g.ki(n);break;default:Array.isArray(q)?(q.unshift(n),g.ki.apply(g,q)):g.ki(n,q)}}function za(n){var q=c(n);g.$$es.parseMetaData(Pb,q,n.length)}function Ba(n){n=qa(n,0);g.ki("post_draw_json",n)}function Bb(n){var q=new Ea;q.reset.apply(q,n);return q}function Qb(n){function q(ja,Ya,O,da){if(0>da||da>=Ya.elementCount)throw new RangeError("invalid element index");var pa={vertexCount:ea[ja][3*da+1],bits:ea[ja][3*da+2],iterate:function(Ka){return x(ja,
Ya,O,da,this,Ka)}};"undefined"!==typeof Symbol&&"undefined"!==typeof Symbol.iterator&&(pa[Symbol.iterator]=w);return pa}function w(){return this.iterate(!0)}function x(ja,Ya,O,da,pa,Ka){function rb(){var ta={position:void 0,normal:void 0,UV:void 0,RGBA:void 0};++Za;for(var ka=0;ka<kb.length;++ka)kb[ka](ta);return ta}if("number"===typeof da)var Lc=O+ea[ja][3*da],Mc=pa.vertexCount;else Lc=O,Mc=Ya.vertexCount;var xd=Lc+Mc,Za=Lc,kb=[];Z?kb.push(function(ta){var ka=[z[La],z[La+1],z[La+2]];ta.position=
[Z[0]*ka[0]+Z[4]*ka[1]+Z[8]*ka[2]+Z[12],Z[1]*ka[0]+Z[5]*ka[1]+Z[9]*ka[2]+Z[13],Z[2]*ka[0]+Z[6]*ka[1]+Z[10]*ka[2]+Z[14]]}):kb.push(function(ta){ta.position=[z[La],z[La+1],z[La+2]]});Ya.hasNormals&&kb.push(function(ta){var ka=La+Ca;ta.normal=[z[ka],z[ka+1],z[ka+2]]});Ya.hasUVs&&kb.push(function(ta){var ka=La+sa;ta.UV=[z[ka],z[ka+1]]});if(Ya.hasRGBAs){var Nc=new Uint8Array(z.buffer);kb.push(function(ta){var ka=La+wa<<2;ta.RGBA=[Nc[ka],Nc[ka+1],Nc[ka+2],Nc[ka+3]]})}if(J){var La=J[Za]*V;kb.push(function(){La=
J[Za]*V})}else La=Za*V,kb.push(function(){La+=V});return{done:function(){return Za>=xd},next:Ka?function(){return Za<xd?{value:rb(),done:!1}:{done:!0}}:function(){if(Za<xd)return rb()},goTo:function(ta){0>ta?ta=0:ta>=Mc&&(ta=Mc);Za=Lc+ta;La=J?J[Za]*V:Za*V}}}var z=n.vertices,J=n.indices,ea=n.elements,V=n.stride,Z=n.duplicateMatrix,Ca=n.normalOffset,sa=n.UVOffset,wa=n.RGBA32Offset,Da=n.faceVertexCount,Ja=Da+n.lineVertexCount,Oa={faces:{vertexCount:n.faceVertexCount,hasNormals:n.faceNormals?!0:!1,hasUVs:n.faceUVs?
!0:!1,hasRGBAs:n.faceRGBA32s?!0:!1,elementCount:ea[0]?ea[0].length/3:0,iterate:function(ja){return x(0,this,0,void 0,void 0,ja)},element:function(ja){return q(0,this,0,ja)}},lines:{vertexCount:n.lineVertexCount,hasNormals:n.lineNormals?!0:!1,hasUVs:n.lineUVs?!0:!1,hasRGBAs:n.lineRGBA32s?!0:!1,elementCount:ea[1]?ea[1].length/3:0,iterate:function(ja){return x(1,this,Da,void 0,void 0,ja)},element:function(ja){return q(1,this,Da,ja)}},points:{vertexCount:n.pointVertexCount,hasNormals:n.pointNormals?!0:
!1,hasUVs:n.pointUVs?!0:!1,hasRGBAs:n.pointRGBA32s?!0:!1,elementCount:ea[2]?ea[2].length/3:0,iterate:function(ja){return x(2,this,Ja,void 0,void 0,ja)},element:function(ja){return q(2,this,Ja,ja)}}};"undefined"!==typeof Symbol&&"undefined"!==typeof Symbol.iterator&&(Oa.faces[Symbol.iterator]=w,Oa.lines[Symbol.iterator]=w,Oa.points[Symbol.iterator]=w);n=n.forward;for(let ja in n)n.hasOwnProperty(ja)&&(Oa[ja]=n[ja]);return Oa}function Pb(n,q,w){var x=$a[n];x||(x=$a[n]={});x[q]=w;g.ki("meta_data",n,
q,w)}function oa(n,q){if("$$cs"===r)return X.getMetaData(n);ab(n);for(var w=[],x=0;x<n.length;x+=2){var z=n[x],J=n[x+1],ea=$a[z];void 0===(ea?ea[J]:void 0)&&w.push(z,J)}if(0===w.length){q=[];for(x=0;x<n.length;x+=2)z=n[x],J=n[x+1],q.push($a[z][J]);return Promise.resolve(q)}return q?(x=new Q("getMetaData",w),Promise.reject(x)):X.requestMetaData(w).then(function(){G();return oa(n,!0)})}function Sa(){"$$cs"===r&&g.$$es.disconnectNetwork()}function k(n,q,w){if("function"===typeof w)lb(n,q,w);else{w=w||
0;var x="string"===typeof n?n+"_"+q:q,z;g.$$es[x]?z=g.$$es[x]:z=function(){return g[r][x].apply(g,arguments)};var J=z;w&1&&(J=function(O){return 0==O?g.$$cs[x].apply(g,arguments):z.apply(g,arguments)});var ea=J;w&2&&(ea=function(O){"number"===typeof O&&(O=[O]);var da=b(O);if(!da)throw new TypeError("`keys' is not an Array or Uint32Array");var pa=Array.prototype.slice.call(arguments,1);pa.unshift(da,O.length);return J.apply(g,pa)});var V=ea;w&4&&(V=function(O){ab(O);var da=b(O);if(!da)throw new TypeError("`ids' is not an Array or Uint32Array.");
var pa=Array.prototype.slice.call(arguments,1);pa.unshift(da,O.length>>1);return ea.apply(g,pa)});var Z=V;w&8&&(Z=function(O){4===O.length&&"number"===typeof O[0]&&(O=[O]);var da=O,pa=g.$$es.allocateUint8Buffer(32*da.length);if(pa)for(var Ka=0;Ka<da.length;++Ka){var rb=da[Ka];if(4!==rb.length)throw Error("Planes are expected be exactly 4 numbers.");aa.set(rb,(pa>>3)+4*Ka)}da=Array.prototype.slice.call(arguments,1);da.unshift(pa,O.length);return V.apply(g,da)});var Ca=Z;w&16&&(Ca=function(O){3===O.length&&
"number"===typeof O[0]&&(O=[O]);var da=O,pa=g.$$es.allocateUint8Buffer(24*da.length);if(pa)for(var Ka=0;Ka<da.length;++Ka){var rb=da[Ka];if(3!==rb.length)throw Error("Points are expected be exactly 3 components.");aa.set(rb,(pa>>3)+3*Ka)}da=Array.prototype.slice.call(arguments,1);da.unshift(pa,O.length);return Z.apply(g,da)});var sa=Ca;w&32&&(sa=e(Z));var wa=sa;w&64&&(wa=function(){console.log("WARNING: Using deprecated function `"+("string"===typeof n?n+"."+q:q)+"'");return sa.apply(g,arguments)});
var Da=wa;w&128&&(Da=function(){var O=arguments,da=O[O.length-1];da.constructor===p?O[O.length-1]=da.value:(O=Array.prototype.slice.call(O),O.push(0));return wa.apply(g,O)});var Ja=Da;w&256&&(Ja=function(){var O=Array.prototype.slice.call(arguments);return new Promise(function(da,pa){O.push(da);O.push(W(x,pa));Da.apply(g,O)})});var Oa=Ja;w&512&&(Oa=w&256?function(){return Ja.apply(g,arguments).then(function(O){G();return Ea.copy(O)})}:function(){return Ea.copy(Ja.apply(g,arguments))});var ja=Oa;w&
1024&&(ja=w&256?function(){return Oa.apply(g,arguments).then(Cb)}:function(){return Cb(Oa.apply(g,arguments))});var Ya=ja;w&2048&&(Ya=w&256?function(){return ja.apply(g,arguments).then(Db)}:function(){return Db(ja.apply(g,arguments))});lb(n,q,function(){G();S&&y.callRecord.push(q+" "+v(arguments));return Ya.apply(g,arguments)})}}function lb(n,q,w){var x="function"===typeof w?function(){G();S&&y.callRecord.push(q+" "+v(arguments));return w.apply(g,arguments)}:w;null===n?y[q]=x:"string"===typeof n?
y[n][q]=x:n[q]=x}function Db(n){for(var q=0;q<n.length;++q)0>n[q][0]&&(n[q]=null);return n}function Cb(n){for(var q=0;q<n.length;++q)0>n[q]&&(n[q]=null);return n}function W(n,q){return function(w){w=new Q(n,w);q(w)}}function Q(n,q){this.scFunction=n;this.data=q}function ab(n){if(0!==(n.length&1))throw new TypeError("`ids.length' must be divisible by two. (An Id is a pair of keys.)");}y.CreateImageError=g.CreateImageError;y.CreateMeshInstanceErrorType=g.CreateMeshInstanceErrorType;y.CuttingSectionError=
g.CuttingSectionError;y.MeshDataGetDataError=g.MeshDataGetDataError;y.MeshDataReplaceError=g.MeshDataReplaceError;y.SetMatrixErrorType=g.SetMatrixErrorType;y.SetTextureErrorType=g.SetTextureErrorType;var Ea=f("$$es","Camera","reset viewMatrix projectionMatrix fullMatrix projection setProjection upVector setUpVector position setPosition target setTarget nearLimit setNearLimit fieldWidth fieldHeight setField setField setFieldByAngles setFieldByAngles dolly pan roll zoom orbit axisOrbit relativeOrbit unproject".split(" "));
Q.prototype.toString=function(){return this.scFunction+": "+this.data};var X={},$a={},Oc=new Uint8Array(0),Ob=new Ea;k(null,"addCuttingSection",264);k(null,"addDrawContext",function(){return(new Promise(function(n,q){g[r].addDrawContext(n,q)})).then(function(n){g.$$es.initializeDrawContext(n);return n})});k(null,"addLight",256);k(null,"setLightPower");k(null,"setLightDecay");k(null,"advanceVolumeSelection",256);k(null,"attachModels",function(n,q,w,x){for(var z=[],J=[],ea=0;ea<q.length;++ea){var V=
q[ea];if(2!==V.length)throw new TypeError("Expecting [name, matrix] pair.");var Z=V[0];if("string"!==typeof Z)throw new TypeError("Name is not a string.");V=V[1];if(V.constructor!==Array&&V.constructor!==Float64Array)throw new TypeError("Matrix is not an Array or Float64Array.");if(12!==V.length)throw new TypeError("Inclusion matrix needs to have exactly 12 elements.");Z=unescape(encodeURIComponent(Z));for(var Ca=0;Ca<Z.length;++Ca)z.push(Z.charCodeAt(Ca));z.push(0);Array.prototype.push.apply(J,V)}var sa=
0,wa=0;sa=c(z);if(!sa)throw d(sa),d(wa),Error("Internal logic error.");wa=a(J);if(!wa)throw d(sa),d(wa),Error("Internal logic error.");return new Promise(function(Da,Ja){g[r].attachModels(sa,z.length,wa,J.length,n,w,x,Da,W("attachModels",Ja))})});k(null,"attachScsModelByKey",function(n,q,w,x,z){var J=[];if(q.constructor!==Array&&q.constructor!==Float64Array)throw new TypeError("Matrix is not an Array or Float64Array.");if(12!==q.length)throw new TypeError("Inclusion matrix needs to have exactly 12 elements.");
Array.prototype.push.apply(J,q);q=a(J);if(!q)throw d(q),Error("Internal logic error.");return g.$$es.attachScsModelByKey(q,J.length,n,w,x,z)});k(null,"beginConvexPolyhedronSelection",264);k(null,"beginRayDrillSelection",256);k(null,"beginScreenAreaSelection",256);k(null,"beginSphereSelection",256);k(null,"clearLights");k(null,"createFloorplanMesh",388);k(null,"cuttingSectionLimits");k(null,"demandMeshInstances",132);k(null,"detachInclusions",258);k(null,"disableCapping");k(null,"disconnectNetwork",
Sa);k(null,"enableCapping");k(null,"endComparison");k(null,"endVolumeSelection");k(null,"explode");k(null,"exportToSvg",256);k(null,"beginExportToSvg",256);k(null,"advanceExportToSvg",256);k(null,"flushMetaDataCache",function(){"$$ss"===r&&($a={})});k(null,"getAmbientOcclusionEnabled",256);k(null,"getAmbientOcclusionRadius",256);k(null,"getBackFacesVisible",256);k(null,"getBackgroundGradient",256);k(null,"getCamera",function(n){return"$$ss"===r?Ea.clone(Ob):X.getCamera(n)});k(null,"getCameraPromise",
768);k(null,"getCappedInstances",256);k(null,"getCuttingSections",258);k(null,"getDefaultDepthRange",256);k(null,"getElementCount",256);k(null,"getEyeDomeLightingBlurEdgeDistance",256);k(null,"getEyeDomeLightingBlurInterval",256);k(null,"getEyeDomeLightingBlurSamples",256);k(null,"getEyeDomeLightingEnabled",256);k(null,"getEyeDomeLightingOpacity",256);k(null,"getEyeDomeLightingShadingEdgeDistance",256);k(null,"getFacesVisible",256);k(null,"getFaceWindingFlipped",256);k(null,"getFrontFacesVisible",
256);k(null,"getInteractiveDrawLimitIncreaseEnabled",256);k(null,"getLightKeys",256);k(null,"getLight",256);k(null,"getLinesVisible",256);k(null,"getLooseBounding",256);k(null,"getMetaData",oa);k(null,"getMinFrameRate",256);k(null,"getNetworkVersion");k(null,"getPointShape",256);k(null,"getPointSize",256);k(null,"getPointSizeUnit",256);k(null,"getPointsVisible",256);k(null,"getStatistics",256);k(null,"getStreamedBounding",256);k(null,"getStreamVersion");k(null,"getTriangleCount",256);k(null,"markAllMeshInstancesInteresting");
k(null,"markCameraAsEmpty");k(null,"meshInstanceKeyInfo",257);k(null,"metaDataKeyInfo",257);k(null,"modelKeysFromInclusionKeys",258);k(null,"onResize",function(n){var q=y.allowHighDpi?window.devicePixelRatio||1:1;var w=g.$$legacyClient?y.container:y.containers.get(n);var x=w.clientWidth,z=w.clientHeight;w=x*q;q*=z;if("$$ss"===r)F.Pk(w,q,x,z);else{var J=g.$$es.maxFrameBufferSize();if(0>=J)w=x,q=z;else{if(w>J||q>J)w=x,q=z;if(w>J||q>J)w>q?(q=q/w*J,w=J):(w=w/q*J,q=J)}}g.$$cs.setScreenDimensions(n,w,q,
x,z);"$$cs"===r&&(g.$$legacyClient&&(x=g.canvas,x.width=w,x.height=q),y.queueRedraw(n))});k(null,"pauseCapping");k(null,"primaryModelKey",256);k(null,"queueRedraw");k(null,"registerBimInstances",4);k(null,"removeAllCuttingSections");k(null,"removeCuttingSections",258);k(null,"removeDrawContext");k(null,"removeLight");k(null,"replaceCuttingSection",264);k(null,"requestGroups",260);k(null,"requestImages",260);k(null,"requestMeshInstances",260);k(null,"requestMeshInstancesByGroup",260);k(null,"resetExplode");
k(null,"resetToEmpty",function(n,q){var w=b(q);if(!w)throw new TypeError("`meshKeys' is not an Array or Uint32Array");return X.resetToEmpty(n,w,q.length)});k(null,"resumeCapping");k(null,"resumeDrawing");k(null,"screenSelectByRay",256);k(null,"serverSideRendering",function(){return"$$ss"===r});k(null,"setAmbientLightColor");k(null,"setAmbientOcclusionBias");k(null,"setAmbientOcclusionBlurInterval");k(null,"setAmbientOcclusionBlurSamples");k(null,"setAmbientOcclusionContrast");k(null,"setAmbientOcclusionEdgeDistance");
k(null,"setAmbientOcclusionEnabled");k(null,"setAmbientOcclusionIntensity");k(null,"setAmbientOcclusionNoiseSize");k(null,"setAmbientOcclusionOpacity");k(null,"setAmbientOcclusionRadius");k(null,"setAmbientOcclusionSamples");k(null,"setAntiAliasingMode");k(null,"setBackFacesVisible");k(null,"setBackgroundColor");k(null,"setBackgroundGradient");k(null,"setBloomBlurInterval");k(null,"setBloomBlurSamples");k(null,"setBloomEnabled");k(null,"setBloomIntensity");k(null,"setBloomIntensityScale");k(null,
"setBloomLayerCount");k(null,"setBloomThreshold");k(null,"setBloomThresholdRampWidth");k(null,"setBoundingPreviewUnderdrawColor");k(null,"setBoundingPreviewTestedColor");k(null,"setBoundingPreviewEjectedColor");k(null,"setBoundingPreviewColor");k(null,"setBoundingPreviewUnderdraw",16);k(null,"setBoundingPreviewTested",16);k(null,"setBoundingPreviewEjected",16);k(null,"setBoundingDebugLevel");k(null,"setCamera",function(n,q){Ea.assign(Ob,q);X.setCamera(n,q)});k(null,"setCappingIdleHookEnabled",256);
k(null,"setClumpingEnabled");k(null,"setComparisonColors");k(null,"setCurrentView");k(null,"setDefaultDepthRange");k(null,"setDefaultGloss");k(null,"setDefaultMirror");k(null,"setDefaultSpecularMix");k(null,"setDefaultSphereMap");k(null,"setDisplayIncompleteFrames");k(null,"setDrawIdleDelay");k(null,"setDrawMode");k(null,"setDrawStrategy");k(null,"setEyeDomeLightingBlurEdgeDistance");k(null,"setEyeDomeLightingBlurInterval");k(null,"setEyeDomeLightingBlurSamples");k(null,"setEyeDomeLightingEnabled");
k(null,"setEyeDomeLightingOpacity");k(null,"setEyeDomeLightingShadingEdgeDistance");k(null,"setFacesVisible");k(null,"setFaceWindingFlipped");k(null,"setFixedDrawLimit");k(null,"setFrontFacesVisible");k(null,"setGoochBaseColorProminence");k(null,"setGoochBlue");k(null,"setGoochLuminanceShiftStrength");k(null,"setGoochYellow");k(null,"setGroundPlane");k(null,"setGroundPlaneWithPosition");k(null,"setHardEdgeColor");k(null,"setHardEdgeOpacity");k(null,"setHardEdgesEnabled");k(null,"setHardEdgeThreshold");
k(null,"setHardEdgeThresholdRampWidth");k(null,"setHiddenLineHiddenLineColor");k(null,"setHiddenLineHighlightedElementFillColor");k(null,"setHiddenLineHighlightedElementOutlineColor");k(null,"setHiddenLineHighlightedInstanceFillColor");k(null,"setHiddenLineHighlightedInstanceOutlineColor");k(null,"setHiddenLineVisibleLineColor");k(null,"setHighlightColorizeCompression");k(null,"setHighlightedElementColor");k(null,"setHighlightedElementFilter");k(null,"setHighlightedElementOutlineColor");k(null,"setHighlightedInstanceColor");
k(null,"setHighlightedInstanceFilter");k(null,"setHighlightedInstanceOutlineColor");k(null,"setHighlightMode");k(null,"setImageBasedLightingEnabled");k(null,"setImageBasedLightingEnvironment",function(n,q){var w=c(q);if(!w)throw new TypeError("`data' is not an Array or Uint8Array");return g[r].setImageBasedLightingEnvironment(n,w,q.length)});k(null,"setImageBasedLightingEnvironmentToDefault");k(null,"setImageBasedLightingIntensity");k(null,"setImageBasedLightingMatrix");k(null,"setInstancingEnabled");
k(null,"setInteractiveDrawLimitIncreaseEnabled");k(null,"setInteractiveDrawLimitIncreaseInterval");k(null,"setLightingEnabled");k(null,"setLineJitterEnabled");k(null,"setLineJitterFrequency");k(null,"setLineJitterInstanceCount");k(null,"setLineJitterRadius");k(null,"setLinesVisible");k(null,"setMeshLevel");k(null,"setMetallicRoughnessMaterialOverride");k(null,"setMinDrawLimit");k(null,"setMinFrameRate");k(null,"setMinIncrementalFrameRate");k(null,"setMinInteractiveFrameRate");k(null,"setPointShape");
k(null,"setPointSize");k(null,"setPointsVisible");k(null,"setPointVisibilityTest",16);k(null,"setPostInputDelay");k(null,"setSilhouetteColor");k(null,"setSilhouetteEnabled");k(null,"setSilhouetteOpacity");k(null,"setSilhouetteThreshold");k(null,"setSilhouetteThresholdRampWidth");k(null,"setSimpleReflectionAttenuation");k(null,"setSimpleReflectionBlurInterval");k(null,"setSimpleReflectionBlurSamples");k(null,"setSimpleReflectionEnabled");k(null,"setSimpleReflectionFadeAngle");k(null,"setSimpleReflectionOpacity");
k(null,"setSimpleShadowBlurInterval");k(null,"setSimpleShadowBlurSamples");k(null,"setSimpleShadowColor");k(null,"setSimpleShadowEnabled");k(null,"setSimpleShadowInteractiveUpdateEnabled");k(null,"setSimpleShadowOpacity");k(null,"setSimpleShadowResolution");k(null,"setSmaaQuality");k(null,"setSsrQuality",function(n){F.Vk(n)});k(null,"setStreamCutoffScale");k(null,"setStreamIdleMarker",256);k(null,"setToonBandCount");k(null,"setToonSpecularFactor");k(null,"setTransparencyMode");k(null,"setUnhighlightedColor");
k(null,"setUnhighlightedFilter");k(null,"setVisibilityByAttachment");k(null,"setXRayMaterial");k(null,"setXRayOpacity");k(null,"setXRayTransparencyMode");k(null,"startComparison",function(n,q,w){ab(q);ab(w);var x=b(q);if(!x)throw new TypeError("`instanceSet1' is not an Array or Uint32Array.");var z=b(w);if(!z)throw new TypeError("`instanceSet2' is not an Array or Uint32Array.");return g[r].startComparison(n,x,q.length>>1,z,w.length>>1)});k(null,"startExplode",4);k(null,"suspendDrawing");k(null,"testPointVisibility",
272);k(null,"throttleLoad");k(null,"triangulatePolygon",function(n,q){if(3>n.length)throw new TypeError("'polygonPoints' does not describe a polygon.");var w;if(n)if(w=g.$$es.allocateUint8Buffer(4*n.length))B.set(n,w>>2);else throw Error("Out of memory.");else w=0;if(!w)throw Error("Internal logic error.");return g.$$es.triangulatePolygon(w,n.length,q)});k(null,"truncateMetaData",function(n){if("$$cs"===r)return X.truncateMetaData(n);for(var q=0;q<n.length;q+=2){var w=n[q+1],x=$a[n[q]];x&&(x[w]=Oc)}});
k(null,"unsetAllColors");k(null,"unsetAllHighlighted");k(null,"unsetAllOpacity");k(null,"unsetAllXRay");k(null,"unsetCurrentView");k(null,"unsetXRayMaterial");k(null,"updateLight");k(null,"waitForImageDecoding",256);k(null,"worldSelectByRay",256);k(null,"_loseWebGlContext",function(){var n=g.Wi.getExtension("WEBGL_lose_context");return null!==n?(n.loseContext(),!0):!1});k(X,"getCamera",512);k(X,"getMetaData",260);k(X,"MeshData_getData",256);k(X,"MeshInstance_setLinePattern",132);k(X,"requestMetaData",
260);k(X,"resetToEmpty",258);k(X,"setCamera",32);k(X,"truncateMetaData",260);k(null,"Debug_log",function(n){n=unescape(encodeURIComponent(n));for(var q=[],w=0;w<n.length;++w)q.push(n.charCodeAt(w));q.push(0);var x=c(q);if(!x)throw Error("Internal logic error.");return new Promise(function(z,J){g[r].debug_log(x,q.length,z,J)})});k(null,"Debug_stateFailure",256);k(null,"Debug_sync",256);y.Image={};k("Image","create",function(n,q,w,x,z,J,ea,V,Z,Ca){var sa=c(q);if(!sa)throw Error("Internal logic error.");
var wa=c(ea);return new Promise(function(Da,Ja){g[r].Image_create(sa,q.length,wa,ea?ea.length:0,n,w,x?x:0,z?z:0,J?J:0,V||!1,Z?Z:0,Ca?Ca:0,Da,W("Image_create",Ja))})});k("Image","destroy",260);y.Matrix={};k("Matrix","create",256);k("Matrix","destroy",260);k("Matrix","getElements",260);k("Matrix","setElements",260);y.MeshData={};k("MeshData","create",function(n){return new Promise(function(q,w){var x=n._marshal();g[r].MeshData_create(x.bits,x.totalFaceVertices,x.totalLineVertices,x.totalPointVertices,
x.floatDataPtr,x.floatDataPtrLen,x.faceElementInfosPtr,ca*n._faceElements.length,x.lineElementInfosPtr,ca*n._lineElements.length,x.pointElementInfosPtr,ca*n._pointElements.length,q,W("MeshData_create",w))})});k("MeshData","destroy",260);k("MeshData","getData",function(n){return X.MeshData_getData(n).then(Qb)});k("MeshData","lineElementSegments",256);k("MeshData","linesToIncidentFaces",258);k("MeshData","replace",function(n,q){return new Promise(function(w,x){var z=q._marshal();g[r].MeshData_replace(n[0],
n[1],z.bits,z.totalFaceVertices,z.totalLineVertices,z.totalPointVertices,z.floatDataPtr,z.floatDataPtrLen,z.faceElementInfosPtr,ca*q._faceElements.length,z.lineElementInfosPtr,ca*q._lineElements.length,z.pointElementInfosPtr,ca*q._pointElements.length,w,W("MeshData_replace",x))})});y.MeshInstance={};k("MeshInstance","clearAllElementHighlight",132);k("MeshInstance","clearAllElementVisible",132);k("MeshInstance","clearAllElementXRay",132);k("MeshInstance","clearElementColors",132);k("MeshInstance",
"clearElementHighlight",132);k("MeshInstance","clearElementVisible",132);k("MeshInstance","clearElementXRay",132);k("MeshInstance","computeMinimalBodyBodyDistance",256);k("MeshInstance","computeMinimalFaceFaceDistance",256);k("MeshInstance","computeMinimalFaceLineDistance",256);k("MeshInstance","computeMinimalFaceRayDistance",256);k("MeshInstance","create",256);k("MeshInstance","destroy",388);k("MeshInstance","discardAnonymousMatrix",388);k("MeshInstance","getAlwaysDraw",388);k("MeshInstance","getCappingMeshData",
388);k("MeshInstance","getColor",2436);k("MeshInstance","getCullingVector",388);k("MeshInstance","getDoNotCut",388);k("MeshInstance","getDoNotExplode",388);k("MeshInstance","getDoNotLight",388);k("MeshInstance","getDoNotOutlineHighlight",388);k("MeshInstance","getDoNotSelect",388);k("MeshInstance","getDoNotUseVertexColors",388);k("MeshInstance","getDrawnWorldSpaceBounding",260);k("MeshInstance","getEffectiveColor",388);k("MeshInstance","getEffectiveElementColor",388);k("MeshInstance","getEffectiveOpacity",
388);k("MeshInstance","getElementColor",2436);k("MeshInstance","getElementHighlighted",388);k("MeshInstance","getElementVisible",388);k("MeshInstance","getElementXRay",388);k("MeshInstance","getExcludeBounding",388);k("MeshInstance","getFaceElementBounding",258);k("MeshInstance","getFacesVisible",388);k("MeshInstance","getHighlighted",388);k("MeshInstance","getLayerCount");k("MeshInstance","getLineElementBounding",258);k("MeshInstance","getLinesVisible",388);k("MeshInstance","getMatrix",388);k("MeshInstance",
"getMeshData",388);k("MeshInstance","getMetallicRoughness",388);k("MeshInstance","getObjectSpaceBounding",388);k("MeshInstance","getOpacity",1412);k("MeshInstance","getOverrideSceneVisibility",388);k("MeshInstance","getPointElementBounding",258);k("MeshInstance","getPointsVisible",388);k("MeshInstance","getScreenOriented",388);k("MeshInstance","getSuppressCameraScale",388);k("MeshInstance","getWorldSpaceBounding",260);k("MeshInstance","hasDepthRange",388);k("MeshInstance","hasTransparency",388);k("MeshInstance",
"linesToIncidentFaces",258);k("MeshInstance","matrixPreMultiply",388);k("MeshInstance","reifyAnonymousMatrix",388);k("MeshInstance","setAlwaysDraw",132);k("MeshInstance","setAmbientMix",132);k("MeshInstance","setAnonymousMatrix",388);k("MeshInstance","setAnonymousMatrices",function(n,q){var w=0,x=0;if(n.constructor!==Array&&n.constructor!==Uint32Array)throw new TypeError("Incs Buffer is not an Array or Uint32Array.");if(q.constructor!==Array&&q.constructor!==Float64Array)throw new TypeError("Matrices Buffer is not an Array or Float64Array.");
w=b(n);if(!w)throw d(w),d(x),Error("Internal logic error.");x=a(q);if(!x)throw d(w),d(x),Error("Internal logic error.");return new Promise(function(z,J){g[r].MeshInstance_setAnonymousMatrices(w,n.length>>1,x,q.length,z,W("MeshInstance_setAnonymousMatrices",J),0)})});k("MeshInstance","setColor",132);k("MeshInstance","setCullingVector",132);k("MeshInstance","setDepthRange",132);k("MeshInstance","setDoNotCut",132);k("MeshInstance","setDoNotExplode",132);k("MeshInstance","setDoNotLight",132);k("MeshInstance",
"setDoNotOutlineHighlight",132);k("MeshInstance","setDoNotSelect",132);k("MeshInstance","setDoNotReset",132);k("MeshInstance","setDoNotUseVertexColors",132);k("MeshInstance","setDoNotXRay",132);k("MeshInstance","setElementColor",132);k("MeshInstance","setElementHighlighted",132);k("MeshInstance","setElementVisible",132);k("MeshInstance","setElementXRay",132);k("MeshInstance","setExcludeBounding",132);k("MeshInstance","setFacesVisible",132);k("MeshInstance","setHighlighted",132);k("MeshInstance","setLinePattern",
function(n,q,w,x){var z=c(q);if(!z)throw new TypeError("`pattern' is not an Array or Uint8Array");return X.MeshInstance_setLinePattern(n,z,q.length,w,x)});k("MeshInstance","setLinesVisible",132);k("MeshInstance","setMatrix",388);k("MeshInstance","setMeshLevel",132);k("MeshInstance","setMetallicRoughness",132);k("MeshInstance","unsetMetallicRoughness",132);k("MeshInstance","setOpacity",132);k("MeshInstance","setOverlayId",132);k("MeshInstance","setOverrideSceneVisibility",132);k("MeshInstance","setPointsVisible",
132);k("MeshInstance","setScreenOriented",132);k("MeshInstance","setScreenSpace",132);k("MeshInstance","setScreenSpaceStretched",132);k("MeshInstance","setStreamCutoffScale",132);k("MeshInstance","setSuppressCameraScale",132);k("MeshInstance","setTexture",388);k("MeshInstance","setVisible",132);k("MeshInstance","setXRay",132);k("MeshInstance","synchronizeVisibilities",4);k("MeshInstance","unsetColor",132);k("MeshInstance","unsetCullingVector",132);k("MeshInstance","unsetDepthRange",132);k("MeshInstance",
"unsetElementColor",132);k("MeshInstance","unsetLinePattern",132);k("MeshInstance","unsetMatrix",388);k("MeshInstance","unsetOpacity",132);k("MeshInstance","unsetTexture",132);k("MeshInstance","setSpecularIntensity",132);k("MeshInstance","unsetSpecularIntensity",132);y.Overlay={};k("Overlay","destroy");k("Overlay","maxIndex");k("Overlay","setCamera",32);k("Overlay","setViewport");k("Overlay","setVisible");var gc={open_model_failed:Sa,session_started:function(){"$$cs"===r&&(g.canvas.addEventListener("webglcontextlost",
u,!1),y.onResize(0))},post_draw_json:function(n,q){try{var w=JSON.parse(q)}catch(x){console.assert(!1,"malformed JSON from post_draw",x);return}g.ki("post_draw",w.draw_index,w.stats,Bb(w.camera),w.visiblePoints);"high"===w.quality&&(g.ki("draw_complete"),g.ki("draw_idle"))}},ha={session_started:function(){"$$ss"===r&&(y.resumeDrawing(0),g[r].Debug_notifyLoggedRpcExecutionIsAllowed())}},P={};g.ki=function(n){if(n in gc){var q=gc[n];q.apply(this,arguments)}var w=P[n];try{if(void 0!==w)for(var x=0;x<
w.length;x++)q=w[x],"function"===typeof q&&q.apply(this,arguments)}catch(z){console.log("Unhandled exception in "+n+" event handler:"),console.log(z)}n in ha&&(q=ha[n],q.apply(this,arguments))};y.setEventHandler=function(n,q){P.hasOwnProperty(n)||(P[n]=[]);P[n].push(q)};y.unsetEventHandler=function(n,q){n=P[n];if(void 0!==n)for(var w=0;w<n.length;)n[w]===q?n.splice(w,1):++w};U.prototype=Object.create(Error.prototype);U.prototype.constructor=U;var H={Uninitialized:0,Network:1,Scs:2};y.SessionType=
H;var va=H.Uninitialized;y.load=function(n){G();S&&y.callRecord.push("load "+v(n));if(!n)throw new U("InvalidConfig","Invalid load configuration");var q=n.uri;if(1!==!!q+!!n.buffer+!!n.empty)throw new U("InvalidConfig","Must specify exactly one of 'uri', 'buffer', or 'empty'.");if(q){{if("string"!==typeof q)throw new U("InvalidConfig","'uri' must be a string");const [ea,V,Z]=q.split("://");if(V){if(Z)throw new U("InvalidConfig","Invalid URI");var w=ea}else w="http"}if("ws"===w||"wss"===w){L();if(!n)throw new U("InvalidConfig",
"Invalid load configuration");n.model&&"string"===typeof n.model||(n.model="");w=n.sessionToken;void 0===w&&(w="");if("string"!==typeof w)throw new U("InvalidConfig","'sessionToken' must be a string");var x=n.limitMiB;void 0===x&&(x=0);if("number"!==typeof x)throw new U("InvalidConfig","'limitMiB' must be a number");var z=n.meshLevel;void 0===z&&(z=0);if("number"!==typeof z)throw new U("InvalidConfig","'meshLevel' must be a number");var J=n.streamCutoffScale;void 0===J&&(J=-1);if("number"!==typeof J)throw new U("InvalidConfig",
"'streamCutoffScale' must be a number");if(va!==H.Uninitialized)throw new U("AlreadyCalled","load() already called for a non-streaming session");va=H.Network;n.serverSideRendering?(r="$$ss",g.$$legacyClient?F.gj(g.$$wrapper):F.gj(y.wrappers.get(0)),y.onResize(0),F.Tk(ua),F.Uk(za),F.Sk(Ba),F.Rk(g.ki),F.connect(n)):(r="$$cs",ia(g.$$es.loadNetwork(q,unescape(encodeURIComponent(n.model)),unescape(encodeURIComponent(w)),!!n.streamCulled,!!n.streamMetaDataOnIdle,!!n.streamNoLimit,!!n.streamInstancesOnDemand,
!!n.streamAggressiveCompression,!!n.streamModelBoundingPreviews,!!n.streamInstanceBoundingPreviews,!!n.streamOnlyInterestingBoundingPreviews,!!n.streamEjectedBoundingPreviews,x,z,J)))}else"http"!==w&&"https"!==w||D(n,q)}else n.buffer?C(n,n.buffer):(n=!!n.streamInstancesOnDemand,L([H.Scs]),va=H.Scs,n=g.$$es.loadEmptyScs(n),ia(n));return va};y.attachScsBuffer=function(n,q,w,x,z,J,ea){n={attachScope:n,inclusionMatrix:w,attachMeasurementUnit:x,attachInvisibly:z,resolveOnFullyLoaded:J,cancelUnitMatrix:ea};
return null===q||0===q.length?ba(n,0,0):C(n,q)};y.feedScsBuffer=function(n,q){L([H.Scs]);if(0===n)throw new U("InvalidConfig","'attachScope' should not be 0");var w=0,x=0;if(null!==q){if(q.constructor!==Uint8Array)throw new U("InvalidConfig","'buffer' must be a Uint8Array");if(0>=q.byteLength)throw new U("EmptyBuffer","'buffer' has a length of 0");w=q.byteLength;x=g.$$es.allocateUint8Buffer(q.byteLength);t.set(q,x)}g.$$es.feedScsBuffer(n,x,w)}})();var ca=3,la=4*ca;y.MeshDataBuilder=function(){this._faceElements=
[];this._lineElements=[];this._pointElements=[];this.formatBits=0};y.MeshDataBuilder.FormatBits={ClockwiseWinding:1,CounterClockwiseWinding:2,TwoSided:4,Manifold:65536};y.MeshDataBuilder.prototype={constructor:y.MeshDataBuilder,_getOptional:function(D,C){return void 0===D?null:D[C]?D[C]:null},_optionalGuard:function(D,C,ba){if(ba){if((ba=this[ba][0])&&!ba[D])throw Error("Cannot define "+C+" for some but not all vertices.");}else this._optionalGuard(D,C,"_faceElements"),this._optionalGuard(D,C,"_lineElements"),
this._optionalGuard(D,C,"_pointElements")},addFace:function(D,C){var ba=this._faceElements,L=this._getOptional(C,"normals"),ia=this._getOptional(C,"uvs"),U=this._getOptional(C,"rgba32s");C=this._getOptional(C,"bits")||0;if(0!==D.length%9)throw Error("Illegal triangles: 'vertexData.length' must be divisible by 9 (i.e. 3 numbers per vertex and 3 vertices per triangle).");if(L){if(L.length!==D.length)throw Error("Cannot define normals for some but not all vertices.");this._optionalGuard("normals","normals",
"_faceElements")}if(ia){if(3*ia.length!==2*D.length)throw Error("Cannot define UV parameters for some but not all vertices.");this._optionalGuard("uvs","UV parameters","_faceElements")}if(U){if(3*U.length!==4*D.length)throw Error("Cannot define RGBA32s for some but not all vertices.");this._optionalGuard("rgba32s","RGBA32s");if(0==(this.formatBits&32768))for(var ua=3;ua<U.length;ua+=4)if(255!=U[ua]){this.formatBits|=32768;break}}ba.push({vertexData:D,normals:L,uvs:ia,rgba32s:U,bits:C})},addPolyline:function(D,
C){var ba=this._lineElements,L=this._getOptional(C,"rgba32s");C=this._getOptional(C,"bits")||0;if(0!==D.length%3)throw Error("vertexData array must be divisible by 3 (i.e. 3 numbers per vertex).");if(6>D.length&&0<D.length)throw Error("Illegal polyline: '0 < vertexData.length < 6'.");if(L){if(3*L.length!==4*D.length)throw Error("Cannot define RGBA32s for some but not all vertices.");this._optionalGuard("rgba32s","RGBA32s")}ba.push({vertexData:D,rgba32s:L,bits:C})},addPoints:function(D,C){var ba=this._pointElements,
L=this._getOptional(C,"rgba32s");C=this._getOptional(C,"bits")||0;if(0!==D.length%3)throw Error("vertexData array must be divisible by 3 (i.e. 3 numbers per vertex).");if(L){if(3*L.length!==4*D.length)throw Error("Cannot define RGBA32s for some but not all vertices.");this._optionalGuard("rgba32s","RGBA32s")}ba.push({vertexData:D,rgba32s:L,bits:C})},_marshal:function(){var D=this._faceElements,C=this._lineElements,ba=this._pointElements,L=!1,ia=!1,U=!1,ua=!1,za=!1,Ba=!1,Bb=!1,Qb=!1,Pb=!1,oa=D[0],
Sa=C[0],k=ba[0];oa&&(L=!!oa.normals,ia=!!oa.uvs,U=!!oa.rgba32s);Sa&&(ua=!!Sa.normals,za=!!Sa.uvs,Ba=!!Sa.rgba32s);k&&(Bb=!!k.normals,Qb=!!k.uvs,Pb=!!k.rgba32s);var lb=3;oa=this.formatBits;if(Sa=L||ua||Bb)lb+=3,oa|=4096,L&&(oa|=8),ua&&(oa|=64),Bb&&(oa|=512);if(k=ia||za||Qb)lb+=2,oa|=8192,ia&&(oa|=16),za&&(oa|=128),Qb&&(oa|=1024);var Db=U||Ba||Pb;Db&&(lb+=1,oa|=16384,U&&(oa|=32),Ba&&(oa|=256),Pb&&(oa|=2048));for(var Cb=0,W=0;W<D.length;++W){var Q=D[W];Cb+=Q.vertexData.length}Cb/=3;var ab=0,Ea=0;for(W=
0;W<C.length;++W){Q=C[W];var X=Q.vertexData;X.length&&(ab+=X.length,++Ea)}ab=2*(ab/3-Ea);for(W=Ea=0;W<ba.length;++W)Q=ba[W],Ea+=Q.vertexData.length;Ea/=3;lb*=Cb+ab+Ea;W=g.$$es.allocateUint8Buffer;var $a=W(4*lb),Oc=D.length?W(la*D.length):0,Ob=C.length?W(la*C.length):0,gc=ba.length?W(la*ba.length):0,ha=t.subarray($a),P=B.subarray($a>>2),H=0,va=0;for(W=0;W<D.length;++W){Q=D[W];X=Q.vertexData;var n=Q.normals,q=Q.uvs,w=Q.rgba32s,x=X.length/3,z=h.subarray((Oc>>2)+ca*W);z[0]=va;z[1]=x;z[2]=Q.bits;va+=x;
var J=0;for(x=Q=0;x<X.length;x+=3)P[H]=X[x],P[H+1]=X[x+1],P[H+2]=X[x+2],H+=3,Sa&&(L?(P[H]=n[x],P[H+1]=n[x+1],P[H+2]=n[x+2]):(P[H]=0,P[H+1]=0,P[H+2]=0),H+=3),k&&(ia?(P[H]=q[J],P[H+1]=q[J+1],J+=2):(P[H]=0,P[H+1]=0),H+=2),Db&&(z=H<<2,U?(ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++]):(ha[z++]=0,ha[z++]=0,ha[z++]=0,ha[z++]=0),++H)}for(W=va=0;W<C.length;++W)for(Q=C[W],X=Q.vertexData,n=Q.normals,q=Q.uvs,w=Q.rgba32s,x=X.length/3,0<x&&(x=2*x-2),z=h.subarray((Ob>>2)+ca*W),z[0]=va,z[1]=x,z[2]=
Q.bits,va+=x,Q=4,x=3;x<X.length;x+=3)for(Q-=4,D=-3;0>=D;D+=3)L=x+D,P[H]=X[L],P[H+1]=X[L+1],P[H+2]=X[L+2],H+=3,Sa&&(ua?(P[H]=n[L],P[H+1]=n[L+1],P[H+2]=n[L+2]):(P[H]=0,P[H+1]=0,P[H+2]=0),H+=3),k&&(za?(L=L/3*2,P[H]=q[L],P[H+1]=q[L+1]):(P[H]=0,P[H+1]=0),H+=2),Db&&(z=H<<2,Ba?(ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++]):(ha[z++]=0,ha[z++]=0,ha[z++]=0,ha[z++]=0),++H);for(W=va=0;W<ba.length;++W)for(Q=ba[W],X=Q.vertexData,n=Q.normals,q=Q.uvs,w=Q.rgba32s,x=X.length/3,z=h.subarray((gc>>2)+ca*
W),z[0]=va,z[1]=x,z[2]=Q.bits,va+=x,x=Q=J=0;x<X.length;x+=3)P[H]=X[x],P[H+1]=X[x+1],P[H+2]=X[x+2],H+=3,Sa&&(Bb?(P[H]=n[x],P[H+1]=n[x+1],P[H+2]=n[x+2]):(P[H]=0,P[H+1]=0,P[H+2]=0),H+=3),k&&(Qb?(P[H]=q[J],P[H+1]=q[J+1],J+=2):(P[H]=0,P[H+1]=0),H+=2),Db&&(z=H<<2,Pb?(ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++],ha[z++]=w[Q++]):(ha[z++]=0,ha[z++]=0,ha[z++]=0,ha[z++]=0),++H);return{totalFaceVertices:Cb,totalLineVertices:ab,totalPointVertices:Ea,faceElementInfosPtr:Oc,lineElementInfosPtr:Ob,pointElementInfosPtr:gc,
floatDataPtr:$a,floatDataPtrLen:lb,bits:oa}}}};
g.Oj=function(){var a={Tj:null,aj:null,connection:null,jj:null,mj:null,fj:null,ej:null,dj:1280,cj:800,lj:1280,kj:800,Vi:1,hk:{command:"SERVER_SETTINGS"},gj:function(c){this.Tj=c;b.gj()},Xk:function(){this.ak=!0;delete this.jj;delete this.mj;delete this.fj;delete this.ej;this.connection&&this.connection.close()},pk:function(c){a.aj!==c&&(a.aj&&(a.aj.style.display="none"),a.aj=c,a.aj.style.display="")},connected:function(){return a.connection&&a.connection.readyState===WebSocket.OPEN},Ij:function(){a.connected()&&
a.connection.send(JSON.stringify({command:"SERVER_SIDE_CLIENT_INFO",width:a.dj*a.Vi,height:a.cj*a.Vi,layoutWidth:a.lj,layoutHeight:a.kj,encoding:"jpeg"}))},Pk:function(c,d,e,f){0>=c||0>=d||0>=e||0>=f||a.dj===c&&a.cj===d&&a.lj===e&&a.kj===f||(a.dj=c,a.cj=d,a.lj=e,a.kj=f,a.connected()&&(void 0!==a.Hj&&window.clearTimeout(a.Hj),a.Hj=setTimeout(function(){a.ak||(a.Hj=void 0,a.Ij())},500)))},Ok:function(c){a.connected()&&a.connection.send(c)},Tk:function(c){a.jj=c},Uk:function(c){a.mj=c},Sk:function(c){a.fj=
c},Rk:function(c){a.ej=c},Jk:function(c){a.fj&&a.fj(c)},Vk:function(c){var d={command:"SERVER_SETTINGS"},e;for(e in c)if(c.hasOwnProperty(e)){if("scaleHigh"===e){var f=c[e];if("number"!==typeof f)continue;f=Math.min(1,f);0>=f&&(f=1);a.Vi!==f&&(a.Vi=f,a.Ij())}"jpegQualityHigh"!==e&&"jpegQualityLow"!==e&&"jpegChromaSamplesHigh"!==e&&"jpegChromaSamplesLow"!==e&&"scaleLow"!==e||"number"!==typeof c[e]||(d[e]=a.hk[e]=c[e])}a.connected()&&a.connection.send(JSON.stringify(d))},connect:function(c){var d=g.$$es.getNetworkVersion();
a.connection=new WebSocket(c.uri,["binary"]);a.connection.binaryType="arraybuffer";var e=!1;a.connection.onclose=function(){g.ki("websocket_connection_closed")};a.connection.onopen=function(){e=!0;a.connection.send(JSON.stringify({command:"SERVER_SIDE_RENDER",width:a.dj*a.Vi,height:a.cj*a.Vi,layoutWidth:a.lj,layoutHeight:a.kj,model:c.model,networkVersion:d,streamCulled:!!c.streamCulled,streamKeyedDataOnIdle:!!c.streamMetaDataOnIdle,streamNoLimit:!!c.streamNoLimit,streamInstancesOnDemand:!!c.streamInstancesOnDemand,
streamBoundingPreviews:!!c.streamBoundingPreviews,streamModelBoundingPreviews:!!c.streamModelBoundingPreviews,streamInstanceBoundingPreviews:!!c.streamInstanceBoundingPreviews,streamOnlyInterestingBoundingPreviews:!!c.streamOnlyInterestingBoundingPreviews,streamEjectedBoundingPreviews:!!c.streamEjectedBoundingPreviews,limitMiB:c.limitMiB,meshLevel:c.meshLevel,streamCutoffScale:c.streamCutoffScale,sessionToken:c.sessionToken}));a.Ij();a.connection.send(JSON.stringify(a.hk))};a.connection.onerror=function(){a.ej&&
a.ej(e?"socket_error":"socket_open_failed")};a.connection.onmessage=function(f){if(!a.ak&&f.data instanceof ArrayBuffer){var l=new Uint8Array(f.data);f=l[0];if(123===f)a.jj&&a.jj(l);else if(68===f)a.mj&&a.mj(l.subarray(1));else{a.connection.send('{"command":"ACK"}');var m=[l[1],l[2]],p=l[4]<<24|l[5]<<16|l[6]<<8|l[7],u=new Uint8Array(l.subarray(8,8+p));l=l.subarray(8+p);0===f&&b.zk(l,m,u)}}}}},b={canvas:null,Rj:null,gj:function(){},createElement:function(){this.canvas||(this.canvas=document.createElement("canvas"),
this.canvas.setAttribute("style","display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%;"),this.Rj=this.canvas.getContext("2d"),a.Tj.appendChild(this.canvas))},drawImage:function(c,d){var e=c.width-d[0];d=c.height-d[1];this.canvas.width!==e&&(this.canvas.width=e);this.canvas.height!==d&&(this.canvas.height=d);this.Rj.drawImage(c,0,0)},sk:function(c,d,e){var f=document.createElement("img");this.Hk=f;f.onload=function(){f===b.Hk&&(b.drawImage(f,d),a.pk(b.canvas),a.Jk(e));URL.revokeObjectURL(c)};
f.onerror=function(){URL.revokeObjectURL(c)};f.src=c;return f},zk:function(c,d,e){12>=c.byteLength||(this.createElement(),this.sk(URL.createObjectURL(new Blob([c],{type:"image/jpeg"})),d,e))}};return a};var ra=Object.assign({},g),xa="./this.program",ya=(a,b)=>{throw b;},Aa="object"==typeof window,Fa="function"==typeof importScripts,Ga="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,Ha="",Ia,Ma,Na;
if(Ga){Ha=Fa?require("path").dirname(Ha)+"/":__dirname+"/";var fs,Pa;"function"===typeof require&&(fs=require("fs"),Pa=require("path"));Ia=(a,b)=>{a=Pa.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")};Na=a=>{a=Ia(a,!0);a.buffer||(a=new Uint8Array(a));return a};Ma=(a,b,c)=>{a=Pa.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&(xa=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);"undefined"!=typeof module&&(module.exports=g);process.on("uncaughtException",
function(a){if(!(a instanceof Qa))throw a;});process.on("unhandledRejection",function(a){throw a;});ya=(a,b)=>{if(noExitRuntime)throw process.exitCode=a,b;b instanceof Qa||Ra("exiting due to exception: "+b);process.exit(a)};g.inspect=function(){return"[Emscripten Module object]"}}else if(Aa||Fa)Fa?Ha=self.location.href:"undefined"!=typeof document&&document.currentScript&&(Ha=document.currentScript.src),Ha=0!==Ha.indexOf("blob:")?Ha.substr(0,Ha.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Ia=a=>{var b=
new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},Fa&&(Na=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ma=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Ta=g.print||console.log.bind(console),Ra=g.printErr||console.warn.bind(console);Object.assign(g,ra);ra=null;
g.thisProgram&&(xa=g.thisProgram);g.quit&&(ya=g.quit);var Ua;g.wasmBinary&&(Ua=g.wasmBinary);var noExitRuntime=g.noExitRuntime||!0;"object"!=typeof WebAssembly&&Va("no native wasm support detected");var Wa,Xa=!1,bb="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;
function qa(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&bb)return bb.decode(a.subarray(b,c));for(d="";b<c;){var e=a[b++];if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var l=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|l:(e&7)<<18|f<<12|l<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function cb(a,b){return a?qa(t,a,b):""}
function db(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var l=a.charCodeAt(f);if(55296<=l&&57343>=l){var m=a.charCodeAt(++f);l=65536+((l&1023)<<10)|m&1023}if(127>=l){if(c>=d)break;b[c++]=l}else{if(2047>=l){if(c+1>=d)break;b[c++]=192|l>>6}else{if(65535>=l){if(c+2>=d)break;b[c++]=224|l>>12}else{if(c+3>=d)break;b[c++]=240|l>>18;b[c++]=128|l>>12&63}b[c++]=128|l>>6&63}b[c++]=128|l&63}}b[c]=0;return c-e}
function eb(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b}var fb,gb,t,hb,ib,E,h,B,aa;function jb(){var a=Wa.buffer;fb=a;g.HEAP8=gb=new Int8Array(a);g.HEAP16=hb=new Int16Array(a);g.HEAP32=E=new Int32Array(a);g.HEAPU8=t=new Uint8Array(a);g.HEAPU16=ib=new Uint16Array(a);g.HEAPU32=h=new Uint32Array(a);g.HEAPF32=B=new Float32Array(a);g.HEAPF64=aa=new Float64Array(a)}var mb,nb=[],ob=[],pb=[],qb=[];
function sb(){var a=g.preRun.shift();nb.unshift(a)}var tb=0,ub=null,vb=null;function wb(){tb++;g.monitorRunDependencies&&g.monitorRunDependencies(tb)}function xb(){tb--;g.monitorRunDependencies&&g.monitorRunDependencies(tb);if(0==tb&&(null!==ub&&(clearInterval(ub),ub=null),vb)){var a=vb;vb=null;a()}}function Va(a){if(g.onAbort)g.onAbort(a);a="Aborted("+a+")";Ra(a);Xa=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}
function yb(){return zb.startsWith("data:application/octet-stream;base64,")}var zb;zb="engine.wasm";if(!yb()){var Ab=zb;zb=g.locateFile?g.locateFile(Ab,Ha):Ha+Ab}function Eb(){var a=zb;try{if(a==zb&&Ua)return new Uint8Array(Ua);if(Na)return Na(a);throw"both async and sync fetching of the wasm failed";}catch(b){Va(b)}}
function Fb(){if(!Ua&&(Aa||Fa)){if("function"==typeof fetch&&!zb.startsWith("file://"))return fetch(zb,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+zb+"'";return a.arrayBuffer()}).catch(function(){return Eb()});if(Ma)return new Promise(function(a,b){Ma(zb,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Eb()})}
var Gb,Hb,Ib={731184:()=>{console.log("RPC parsing failed")},731223:(a,b,c)=>{g.$$facade&&(g.$$legacyClient?(aa[a>>3]=g.$$facade.container.clientWidth,aa[b>>3]=g.$$facade.container.clientHeight):(aa[a>>3]=g.$$facade.containers.get(c).clientWidth,aa[b>>3]=g.$$facade.containers.get(c).clientHeight))},731574:()=>{try{var a=window.bowser;return a&&a.windows&&(a.webkit||a.blink||a.gecko)?1:0}catch(b){return 1}},731747:()=>{try{var a=window.bowser;if(!(a&&a.windows&&(a.chrome&&0<=a.compareVersions([a.version,
"55"])&&0>a.compareVersions([a.version,"57"])||a.firefox&&0<=a.compareVersions([a.version,"51"])&&0>a.compareVersions([a.version,"58"]))))return 0}catch(e){return 0}try{var b=g.Wi,c=b.getExtension("WEBGL_debug_renderer_info");if(c){var d=b.getParameter(c.UNMASKED_RENDERER_WEBGL);if(!(d&&0<=d.indexOf("ANGLE")&&(0<=d.indexOf("AMD")||0<=d.indexOf("Radeon"))&&0<=d.indexOf("Direct3D11")))return 0}}catch(e){}return 1}};
function Qa(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}function Jb(a){for(;0<a.length;)a.shift()(g)}
var Kb=[],Lb=[],Mb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Nb=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Mb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Rb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+
b},Sb=a=>{if("/"===a)return"/";a=Nb(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)};function Tb(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var a=new Uint8Array(1);return()=>{crypto.getRandomValues(a);return a[0]}}if(Ga)try{var b=require("crypto");return()=>b.randomBytes(1)[0]}catch(c){}return()=>Va("randomDevice")}
function Ub(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!=typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Mb(a.split("/").filter(d=>!!d),!b).join("/");return(b?"/":"")+a||"."}function Vb(a,b){var c=Array(eb(a)+1);a=db(a,c,0,c.length);b&&(c.length=a);return c}var Wb=[];function Xb(a,b){Wb[a]={input:[],output:[],Ui:b};Yb(a,Zb)}
var Zb={open:function(a){var b=Wb[a.node.rdev];if(!b)throw new I(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.Ui.fsync(a.tty)},fsync:function(a){a.tty.Ui.fsync(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.Ui.$j)throw new I(60);for(var e=0,f=0;f<d;f++){try{var l=a.tty.Ui.$j(a.tty)}catch(m){throw new I(29);}if(void 0===l&&0===e)throw new I(6);if(null===l||void 0===l)break;e++;b[c+f]=l}e&&(a.node.timestamp=Date.now());return e},write:function(a,b,c,d){if(!a.tty||!a.tty.Ui.Ej)throw new I(60);
try{for(var e=0;e<d;e++)a.tty.Ui.Ej(a.tty,b[c+e])}catch(f){throw new I(29);}d&&(a.node.timestamp=Date.now());return e}},$b={$j:function(a){if(!a.input.length){var b=null;if(Ga){var c=Buffer.alloc(256),d=0;try{d=fs.readSync(process.stdin.fd,c,0,256,-1)}catch(e){if(e.toString().includes("EOF"))d=0;else throw e;}0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=
readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Vb(b,!0)}return a.input.shift()},Ej:function(a,b){null===b||10===b?(Ta(qa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},fsync:function(a){a.output&&0<a.output.length&&(Ta(qa(a.output,0)),a.output=[])}},ac={Ej:function(a,b){null===b||10===b?(Ra(qa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},fsync:function(a){a.output&&0<a.output.length&&(Ra(qa(a.output,0)),a.output=[])}},K={yi:null,Di:function(){return K.createNode(null,"/",16895,
0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new I(63);K.yi||(K.yi={dir:{node:{Hi:K.hi.Hi,ui:K.hi.ui,lookup:K.hi.lookup,nj:K.hi.nj,rename:K.hi.rename,unlink:K.hi.unlink,rmdir:K.hi.rmdir,readdir:K.hi.readdir,symlink:K.hi.symlink},stream:{Li:K.ii.Li}},file:{node:{Hi:K.hi.Hi,ui:K.hi.ui},stream:{Li:K.ii.Li,read:K.ii.read,write:K.ii.write,Pj:K.ii.Pj,Dj:K.ii.Dj,ek:K.ii.ek}},link:{node:{Hi:K.hi.Hi,ui:K.hi.ui,readlink:K.hi.readlink},stream:{}},Sj:{node:{Hi:K.hi.Hi,ui:K.hi.ui},
stream:bc}});c=cc(a,b,c,d);16384===(c.mode&61440)?(c.hi=K.yi.dir.node,c.ii=K.yi.dir.stream,c.gi={}):32768===(c.mode&61440)?(c.hi=K.yi.file.node,c.ii=K.yi.file.stream,c.mi=0,c.gi=null):40960===(c.mode&61440)?(c.hi=K.yi.link.node,c.ii=K.yi.link.stream):8192===(c.mode&61440)&&(c.hi=K.yi.Sj.node,c.ii=K.yi.Sj.stream);c.timestamp=Date.now();a&&(a.gi[b]=c,a.timestamp=c.timestamp);return c},ll:function(a){return a.gi?a.gi.subarray?a.gi.subarray(0,a.mi):new Uint8Array(a.gi):new Uint8Array(0)},Xj:function(a,
b){var c=a.gi?a.gi.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.gi,a.gi=new Uint8Array(b),0<a.mi&&a.gi.set(c.subarray(0,a.mi),0))},Nk:function(a,b){if(a.mi!=b)if(0==b)a.gi=null,a.mi=0;else{var c=a.gi;a.gi=new Uint8Array(b);c&&a.gi.set(c.subarray(0,Math.min(b,a.mi)));a.mi=b}},hi:{Hi:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;16384===(a.mode&61440)?b.size=4096:32768===(a.mode&61440)?
b.size=a.mi:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.qk=4096;b.blocks=Math.ceil(b.size/b.qk);return b},ui:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&K.Nk(a,b.size)},lookup:function(){throw dc[44];},nj:function(a,b,c,d){return K.createNode(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){try{var d=ec(b,c)}catch(f){}if(d)for(var e in d.gi)throw new I(55);
}delete a.parent.gi[a.name];a.parent.timestamp=Date.now();a.name=c;b.gi[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.gi[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=ec(a,b),d;for(d in c.gi)throw new I(55);delete a.gi[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.gi)a.gi.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=K.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new I(28);
return a.link}},ii:{read:function(a,b,c,d,e){var f=a.node.gi;if(e>=a.node.mi)return 0;a=Math.min(a.node.mi-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write:function(a,b,c,d,e,f){b.buffer===gb.buffer&&(f=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.gi||a.gi.subarray)){if(f)return a.gi=b.subarray(c,c+d),a.mi=d;if(0===a.mi&&0===e)return a.gi=b.slice(c,c+d),a.mi=d;if(e+d<=a.mi)return a.gi.set(b.subarray(c,c+d),e),d}K.Xj(a,e+
d);if(a.gi.subarray&&b.subarray)a.gi.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.gi[e+f]=b[c+f];a.mi=Math.max(a.mi,e+d);return d},Li:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.mi);if(0>b)throw new I(28);return b},Pj:function(a,b,c){K.Xj(a.node,b+c);a.node.mi=Math.max(a.node.mi,b+c)},Dj:function(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new I(43);a=a.node.gi;if(e&2||a.buffer!==fb){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,
c,c+b);c=!0;Va();b=void 0;if(!b)throw new I(48);gb.set(a,b)}else c=!1,b=a.byteOffset;return{li:b,dl:c}},ek:function(a,b,c,d){K.ii.write(a,b,0,d,c,!1);return 0}}};function fc(a,b,c){var d="al "+a;Ma(a,e=>{e||Va('Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(e));d&&xb(d)},()=>{if(c)c();else throw'Loading data file "'+a+'" failed.';});d&&wb(d)}
var hc=null,ic={},jc=[],kc=1,lc=null,mc=!0,I=null,dc={},oc=(a,b={})=>{a=Ub("/",a);if(!a)return{path:"",node:null};b=Object.assign({Zj:!0,Fj:0},b);if(8<b.Fj)throw new I(32);a=Mb(a.split("/").filter(l=>!!l),!1);for(var c=hc,d="/",e=0;e<a.length;e++){var f=e===a.length-1;if(f&&b.parent)break;c=ec(c,a[e]);d=Nb(d+"/"+a[e]);c.Xi&&(!f||f&&b.Zj)&&(c=c.Xi.root);if(!f||b.wj)for(f=0;40960===(c.mode&61440);)if(c=nc(d),d=Ub(Rb(d),c),c=oc(d,{Fj:b.Fj+1}).node,40<f++)throw new I(32);}return{path:d,node:c}},pc=a=>
{for(var b;;){if(a===a.parent)return a=a.Di.dk,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},qc=(a,b)=>{for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%lc.length},ec=(a,b)=>{var c;if(c=(c=rc(a,"x"))?c:a.hi.lookup?0:2)throw new I(c,a);for(c=lc[qc(a.id,b)];c;c=c.Ti){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.hi.lookup(a,b)},cc=(a,b,c,d)=>{a=new sc(a,b,c,d);b=qc(a.parent.id,a.name);a.Ti=lc[b];return lc[b]=a},tc={r:0,"r+":2,w:577,
"w+":578,a:1089,"a+":1090},uc=a=>{var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},rc=(a,b)=>{if(mc)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0},vc=(a,b)=>{try{return ec(a,b),20}catch(c){}return rc(a,"wx")},wc=(a=0)=>{for(;4096>=a;a++)if(!jc[a])return a;throw new I(33);},yc=(a,b)=>{xc||(xc=function(){this.ti={}},xc.prototype={},Object.defineProperties(xc.prototype,{object:{get:function(){return this.node},
set:function(c){this.node=c}},flags:{get:function(){return this.ti.flags},set:function(c){this.ti.flags=c}},position:{get:function(){return this.ti.position},set:function(c){this.ti.position=c}}}));a=Object.assign(new xc,a);b=wc(b);a.fd=b;return jc[b]=a},bc={open:a=>{a.ii=ic[a.node.rdev].ii;a.ii.open&&a.ii.open(a)},Li:()=>{throw new I(70);}},Yb=(a,b)=>{ic[a]={ii:b}},zc=(a,b)=>{var c="/"===b,d=!b;if(c&&hc)throw new I(10);if(!c&&!d){var e=oc(b,{Zj:!1});b=e.path;e=e.node;if(e.Xi)throw new I(10);if(16384!==
(e.mode&61440))throw new I(54);}b={type:a,rl:{},dk:b,Ik:[]};a=a.Di(b);a.Di=b;b.root=a;c?hc=a:e&&(e.Xi=b,e.Di&&e.Di.Ik.push(b))},Ac=(a,b,c)=>{var d=oc(a,{parent:!0}).node;a=Sb(a);if(!a||"."===a||".."===a)throw new I(28);var e=vc(d,a);if(e)throw new I(e);if(!d.hi.nj)throw new I(63);return d.hi.nj(d,a,b,c)},Bc=(a,b,c)=>{"undefined"==typeof c&&(c=b,b=438);return Ac(a,b|8192,c)},Cc=(a,b)=>{if(!Ub(a))throw new I(44);var c=oc(b,{parent:!0}).node;if(!c)throw new I(44);b=Sb(b);var d=vc(c,b);if(d)throw new I(d);
if(!c.hi.symlink)throw new I(63);c.hi.symlink(c,b,a)},Dc=a=>{var b=oc(a,{parent:!0}).node;if(!b)throw new I(44);var c=Sb(a);a=ec(b,c);a:{try{var d=ec(b,c)}catch(f){d=f.Gi;break a}var e=rc(b,"wx");d=e?e:16384===(d.mode&61440)?31:0}if(d)throw new I(d);if(!b.hi.unlink)throw new I(63);if(a.Xi)throw new I(10);b.hi.unlink(b,c);b=qc(a.parent.id,a.name);if(lc[b]===a)lc[b]=a.Ti;else for(b=lc[b];b;){if(b.Ti===a){b.Ti=a.Ti;break}b=b.Ti}},nc=a=>{a=oc(a).node;if(!a)throw new I(44);if(!a.hi.readlink)throw new I(28);
return Ub(pc(a.parent),a.hi.readlink(a))},Ec=(a,b)=>{a="string"==typeof a?oc(a,{wj:!0}).node:a;if(!a.hi.ui)throw new I(63);a.hi.ui(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},Gc=(a,b,c)=>{if(""===a)throw new I(44);if("string"==typeof b){var d=tc[b];if("undefined"==typeof d)throw Error("Unknown file open mode: "+b);b=d}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var e=a;else{a=Nb(a);try{e=oc(a,{wj:!(b&131072)}).node}catch(f){}}d=!1;if(b&64)if(e){if(b&128)throw new I(20);
}else e=Ac(a,c,0),d=!0;if(!e)throw new I(44);8192===(e.mode&61440)&&(b&=-513);if(b&65536&&16384!==(e.mode&61440))throw new I(54);if(!d&&(c=e?40960===(e.mode&61440)?32:16384===(e.mode&61440)&&("r"!==uc(b)||b&512)?31:rc(e,uc(b)):44))throw new I(c);if(b&512&&!d){c=e;c="string"==typeof c?oc(c,{wj:!0}).node:c;if(!c.hi.ui)throw new I(63);if(16384===(c.mode&61440))throw new I(31);if(32768!==(c.mode&61440))throw new I(28);if(d=rc(c,"w"))throw new I(d);c.hi.ui(c,{size:0,timestamp:Date.now()})}b&=-131713;e=
yc({node:e,path:pc(e),flags:b,seekable:!0,position:0,ii:e.ii,bl:[],error:!1});e.ii.open&&e.ii.open(e);!g.logReadFiles||b&1||(Fc||(Fc={}),a in Fc||(Fc[a]=1));return e},Hc=a=>{if(null===a.fd)throw new I(8);a.xj&&(a.xj=null);try{a.ii.close&&a.ii.close(a)}catch(b){throw b;}finally{jc[a.fd]=null}a.fd=null},Ic=(a,b,c)=>{if(null===a.fd)throw new I(8);if(!a.seekable||!a.ii.Li)throw new I(70);if(0!=c&&1!=c&&2!=c)throw new I(28);a.position=a.ii.Li(a,b,c);a.bl=[]},Jc=(a,b,c,d,e,f)=>{if(0>d||0>e)throw new I(28);
if(null===a.fd)throw new I(8);if(0===(a.flags&2097155))throw new I(8);if(16384===(a.node.mode&61440))throw new I(31);if(!a.ii.write)throw new I(28);a.seekable&&a.flags&1024&&Ic(a,0,2);var l="undefined"!=typeof e;if(!l)e=a.position;else if(!a.seekable)throw new I(70);b=a.ii.write(a,b,c,d,e,f);l||(a.position+=b);return b},Kc=()=>{I||(I=function(a,b){this.node=b;this.Qk=function(c){this.Gi=c};this.Qk(a);this.message="FS error"},I.prototype=Error(),I.prototype.constructor=I,[44].forEach(a=>{dc[a]=new I(a);
dc[a].stack="<generic error, no stack>"}))},Pc,Qc=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},Rc=(a,b)=>{a="string"==typeof a?a:pc(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Nb(a+"/"+c);try{Ac(d,16895,0)}catch(e){}a=d}}return d},Sc=(a,b,c,d)=>{a=Nb(("string"==typeof a?a:pc(a))+"/"+b);c=Qc(c,d);return Ac(a,(void 0!==c?c:438)&4095|32768,0)},Tc=(a,b,c,d,e,f)=>{var l=b;a&&(a="string"==typeof a?a:pc(a),l=b?Nb(a+"/"+b):a);a=Qc(d,e);l=Ac(l,(void 0!==a?a:438)&4095|32768,0);
if(c){if("string"==typeof c){b=Array(c.length);d=0;for(e=c.length;d<e;++d)b[d]=c.charCodeAt(d);c=b}Ec(l,a|146);b=Gc(l,577);Jc(b,c,0,c.length,0,f);Hc(b);Ec(l,a)}return l},Uc=(a,b,c,d)=>{a=Nb(("string"==typeof a?a:pc(a))+"/"+b);b=Qc(!!c,!!d);Uc.ck||(Uc.ck=64);var e=Uc.ck++<<8|0;Yb(e,{open:f=>{f.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(f,l,m,p)=>{for(var u=0,v=0;v<p;v++){try{var A=c()}catch(G){throw new I(29);}if(void 0===A&&0===u)throw new I(6);if(null===A||void 0===A)break;
u++;l[m+v]=A}u&&(f.node.timestamp=Date.now());return u},write:(f,l,m,p)=>{for(var u=0;u<p;u++)try{d(l[m+u])}catch(v){throw new I(29);}p&&(f.node.timestamp=Date.now());return u}});return Bc(a,b,e)},Vc=a=>{if(!(a.Ek||a.Fk||a.link||a.gi)){if("undefined"!=typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(Ia)try{a.gi=Vb(Ia(a.url),
!0),a.mi=a.gi.length}catch(b){throw new I(29);}else throw Error("Cannot load without read() or XMLHttpRequest.");}},Wc=(a,b,c,d,e)=>{function f(){this.Bj=!1;this.ti=[]}f.prototype.get=function(v){if(!(v>this.length-1||0>v)){var A=v%this.chunkSize;return this.Si(v/this.chunkSize|0)[A]}};f.prototype.yk=function(v){this.Si=v};f.prototype.Qj=function(){var v=new XMLHttpRequest;v.open("HEAD",c,!1);v.send(null);if(!(200<=v.status&&300>v.status||304===v.status))throw Error("Couldn't load "+c+". Status: "+
v.status);var A=Number(v.getResponseHeader("Content-length")),G,r=(G=v.getResponseHeader("Accept-Ranges"))&&"bytes"===G;v=(G=v.getResponseHeader("Content-Encoding"))&&"gzip"===G;var y=1048576;r||(y=A);var F=this;F.yk(S=>{var ca=S*y,la=(S+1)*y-1;la=Math.min(la,A-1);if("undefined"==typeof F.ti[S]){var D=F.ti;if(ca>la)throw Error("invalid range ("+ca+", "+la+") or no bytes requested!");if(la>A-1)throw Error("only "+A+" bytes available! programmer error!");var C=new XMLHttpRequest;C.open("GET",c,!1);
A!==y&&C.setRequestHeader("Range","bytes="+ca+"-"+la);C.responseType="arraybuffer";C.overrideMimeType&&C.overrideMimeType("text/plain; charset=x-user-defined");C.send(null);if(!(200<=C.status&&300>C.status||304===C.status))throw Error("Couldn't load "+c+". Status: "+C.status);ca=void 0!==C.response?new Uint8Array(C.response||[]):Vb(C.responseText||"",!0);D[S]=ca}if("undefined"==typeof F.ti[S])throw Error("doXHR failed!");return F.ti[S]});if(v||!A)y=A=1,y=A=this.Si(0).length,Ta("LazyFiles on gzip forces download of the whole file when length is accessed");
this.nk=A;this.mk=y;this.Bj=!0};if("undefined"!=typeof XMLHttpRequest){if(!Fa)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var l=new f;Object.defineProperties(l,{length:{get:function(){this.Bj||this.Qj();return this.nk}},chunkSize:{get:function(){this.Bj||this.Qj();return this.mk}}});var m=void 0}else m=c,l=void 0;var p=Sc(a,b,d,e);l?p.gi=l:m&&(p.gi=null,p.url=m);Object.defineProperties(p,{mi:{get:function(){return this.gi.length}}});
var u={};Object.keys(p.ii).forEach(v=>{var A=p.ii[v];u[v]=function(){Vc(p);return A.apply(null,arguments)}});u.read=(v,A,G,r,y)=>{Vc(p);v=v.node.gi;if(y>=v.length)A=0;else{r=Math.min(v.length-y,r);if(v.slice)for(var F=0;F<r;F++)A[G+F]=v[y+F];else for(F=0;F<r;F++)A[G+F]=v.get(y+F);A=r}return A};u.Dj=()=>{Vc(p);Va();throw new I(48);};p.ii=u;return p},Yc=(a,b,c,d,e,f,l,m,p,u)=>{function v(r){function y(F){u&&u();m||Tc(a,b,F,d,e,p);f&&f();xb(G)}Xc(r,A,y,()=>{l&&l();xb(G)})||y(r)}var A=b?Ub(Nb(a+"/"+b)):
a,G="cp "+A;wb(G);"string"==typeof c?fc(c,r=>v(r),l):v(c)},Zc={},xc,Fc,$c=void 0;function ad(){$c+=4;return E[$c-4>>2]}function bd(a){a=jc[a];if(!a)throw new I(8);return a}var cd={};function dd(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function ed(a){return this.fromWireType(E[a>>2])}var fd={},gd={},hd={};function jd(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}
function kd(a,b){a=jd(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function ld(a){var b=Error,c=kd(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}
var md=void 0;function nd(a){throw new md(a);}function od(a,b,c){function d(m){m=c(m);m.length!==a.length&&nd("Mismatched type converter count");for(var p=0;p<a.length;++p)pd(a[p],m[p])}a.forEach(function(m){hd[m]=b});var e=Array(b.length),f=[],l=0;b.forEach((m,p)=>{gd.hasOwnProperty(m)?e[p]=gd[m]:(f.push(m),fd.hasOwnProperty(m)||(fd[m]=[]),fd[m].push(()=>{e[p]=gd[m];++l;l===f.length&&d(e)}))});0===f.length&&d(e)}var qd={};
function rd(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var sd=void 0;function td(a){for(var b="";t[a];)b+=sd[t[a++]];return b}var ud=void 0;function vd(a){throw new ud(a);}
function pd(a,b,c={}){if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||vd('type "'+d+'" must have a positive integer typeid pointer');if(gd.hasOwnProperty(a)){if(c.Bk)return;vd("Cannot register type '"+d+"' twice")}gd[a]=b;delete hd[a];fd.hasOwnProperty(a)&&(b=fd[a],delete fd[a],b.forEach(e=>e()))}function wd(a){vd(a.fi.ni.ji.name+" instance already deleted")}var yd=!1;function zd(){}
function Ad(a){--a.count.value;0===a.count.value&&(a.ri?a.wi.vi(a.ri):a.ni.ji.vi(a.li))}function Bd(a,b,c){if(b===c)return a;if(void 0===c.xi)return null;a=Bd(a,b,c.xi);return null===a?null:c.tk(a)}var Cd={},Dd=[];function Ed(){for(;Dd.length;){var a=Dd.pop();a.fi.Ri=!1;a["delete"]()}}var Fd=void 0,Gd={};function Hd(a,b){for(void 0===b&&vd("ptr should not be undefined");a.xi;)b=a.$i(b),a=a.xi;return Gd[b]}
function Id(a,b){b.ni&&b.li||nd("makeClassHandle requires ptr and ptrType");!!b.wi!==!!b.ri&&nd("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Jd(Object.create(a,{fi:{value:b}}))}function Jd(a){if("undefined"===typeof FinalizationRegistry)return Jd=b=>b,a;yd=new FinalizationRegistry(b=>{Ad(b.fi)});Jd=b=>{var c=b.fi;c.ri&&yd.register(b,{fi:c},b);return b};zd=b=>{yd.unregister(b)};return Jd(a)}function Kd(){}
function Ld(a,b,c){if(void 0===a[b].Ei){var d=a[b];a[b]=function(){a[b].Ei.hasOwnProperty(arguments.length)||vd("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].Ei+")!");return a[b].Ei[arguments.length].apply(this,arguments)};a[b].Ei=[];a[b].Ei[d.uj]=d}}
function Md(a,b){g.hasOwnProperty(a)?(vd("Cannot register public name '"+a+"' twice"),Ld(g,a,a),g.hasOwnProperty(void 0)&&vd("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[a].Ei[void 0]=b):g[a]=b}function Nd(a,b,c,d,e,f,l,m){this.name=a;this.constructor=b;this.Ki=c;this.vi=d;this.xi=e;this.wk=f;this.$i=l;this.tk=m}
function Od(a,b,c){for(;b!==c;)b.$i||vd("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.$i(a),b=b.xi;return a}function Pd(a,b){if(null===b)return this.Aj&&vd("null is not a valid "+this.name),0;b.fi||vd('Cannot pass "'+Qd(b)+'" as a '+this.name);b.fi.li||vd("Cannot pass deleted object as a pointer of type "+this.name);return Od(b.fi.li,b.fi.ni.ji,this.ji)}
function Rd(a,b){if(null===b){this.Aj&&vd("null is not a valid "+this.name);if(this.ij){var c=this.Zi();null!==a&&a.push(this.vi,c);return c}return 0}b.fi||vd('Cannot pass "'+Qd(b)+'" as a '+this.name);b.fi.li||vd("Cannot pass deleted object as a pointer of type "+this.name);!this.hj&&b.fi.ni.hj&&vd("Cannot convert argument of type "+(b.fi.wi?b.fi.wi.name:b.fi.ni.name)+" to parameter type "+this.name);c=Od(b.fi.li,b.fi.ni.ji,this.ji);if(this.ij)switch(void 0===b.fi.ri&&vd("Passing raw pointer to smart pointer is illegal"),
this.Wk){case 0:b.fi.wi===this?c=b.fi.ri:vd("Cannot convert argument of type "+(b.fi.wi?b.fi.wi.name:b.fi.ni.name)+" to parameter type "+this.name);break;case 1:c=b.fi.ri;break;case 2:if(b.fi.wi===this)c=b.fi.ri;else{var d=b.clone();c=this.Mk(c,Sd(function(){d["delete"]()}));null!==a&&a.push(this.vi,c)}break;default:vd("Unsupporting sharing policy")}return c}
function Td(a,b){if(null===b)return this.Aj&&vd("null is not a valid "+this.name),0;b.fi||vd('Cannot pass "'+Qd(b)+'" as a '+this.name);b.fi.li||vd("Cannot pass deleted object as a pointer of type "+this.name);b.fi.ni.hj&&vd("Cannot convert argument of type "+b.fi.ni.name+" to parameter type "+this.name);return Od(b.fi.li,b.fi.ni.ji,this.ji)}
function Ud(a,b,c,d,e,f,l,m,p,u,v){this.name=a;this.ji=b;this.Aj=c;this.hj=d;this.ij=e;this.Kk=f;this.Wk=l;this.gk=m;this.Zi=p;this.Mk=u;this.vi=v;e||void 0!==b.xi?this.toWireType=Rd:(this.toWireType=d?Pd:Td,this.si=null)}function Vd(a,b){g.hasOwnProperty(a)||nd("Replacing nonexistant public symbol");g[a]=b;g[a].uj=void 0}
function Wd(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes("j")){var d=g["dynCall_"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=mb.get(b).apply(null,c);return d}}function Xd(a,b){a=td(a);var c=a.includes("j")?Wd(a,b):mb.get(b);"function"!=typeof c&&vd("unknown function pointer with signature "+a+": "+b);return c}var Yd=void 0;function Zd(a){a=$d(a);var b=td(a);ae(a);return b}
function be(a,b){function c(f){e[f]||gd[f]||(hd[f]?hd[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Yd(a+": "+d.map(Zd).join([", "]));}function ce(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=kd(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
function de(a,b,c,d){var e=b.length;2>e&&vd("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var f=null!==b[1]&&!1,l=!1,m=1;m<b.length;++m)if(null!==b[m]&&void 0===b[m].si){l=!0;break}var p="void"!==b[0].name,u="",v="";for(m=0;m<e-2;++m)u+=(0!==m?", ":"")+"arg"+m,v+=(0!==m?", ":"")+"arg"+m+"Wired";a="return function "+jd(a)+"("+u+") {\nif (arguments.length !== "+(e-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
(e-2)+" args!');\n}\n";l&&(a+="var destructors = [];\n");var A=l?"destructors":"null";u="throwBindingError invoker fn runDestructors retType classParam".split(" ");c=[vd,c,d,dd,b[0],b[1]];f&&(a+="var thisWired = classParam.toWireType("+A+", this);\n");for(m=0;m<e-2;++m)a+="var arg"+m+"Wired = argType"+m+".toWireType("+A+", arg"+m+"); // "+b[m+2].name+"\n",u.push("argType"+m),c.push(b[m+2]);f&&(v="thisWired"+(0<v.length?", ":"")+v);a+=(p?"var rv = ":"")+"invoker(fn"+(0<v.length?", ":"")+v+");\n";if(l)a+=
"runDestructors(destructors);\n";else for(m=f?1:2;m<b.length;++m)e=1===m?"thisWired":"arg"+(m-2)+"Wired",null!==b[m].si&&(a+=e+"_dtor("+e+"); // "+b[m].name+"\n",u.push(e+"_dtor"),c.push(b[m].si));p&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");u.push(a+"}\n");return ce(u).apply(null,c)}function ee(a,b){for(var c=[],d=0;d<a;d++)c.push(h[b+4*d>>2]);return c}
function fe(a,b,c){a instanceof Object||vd(c+' with invalid "this": '+a);a instanceof b.ji.constructor||vd(c+' incompatible with "this" of type '+a.constructor.name);a.fi.li||vd("cannot call emscripten binding method "+c+" on deleted object");return Od(a.fi.li,a.fi.ni.ji,b.ji)}var ge=[],he=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ie(a){4<a&&0===--he[a].Gj&&(he[a]=void 0,ge.push(a))}
var je=a=>{a||vd("Cannot use deleted val. handle = "+a);return he[a].value},Sd=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=ge.length?ge.pop():he.length;he[b]={Gj:1,value:a};return b}};
function ke(a,b,c){switch(b){case 0:return function(d){return this.fromWireType((c?gb:t)[d])};case 1:return function(d){return this.fromWireType((c?hb:ib)[d>>1])};case 2:return function(d){return this.fromWireType((c?E:h)[d>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function le(a,b){var c=gd[a];void 0===c&&vd(b+" has unknown type "+Zd(a));return c}function Qd(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
function me(a,b){switch(b){case 2:return function(c){return this.fromWireType(B[c>>2])};case 3:return function(c){return this.fromWireType(aa[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
function ne(a,b,c){switch(b){case 0:return c?function(d){return gb[d]}:function(d){return t[d]};case 1:return c?function(d){return hb[d>>1]}:function(d){return ib[d>>1]};case 2:return c?function(d){return E[d>>2]}:function(d){return h[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var oe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;
function pe(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&ib[c];)++c;c<<=1;if(32<c-a&&oe)return oe.decode(t.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var e=hb[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}function qe(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)hb[b>>1]=a.charCodeAt(e),b+=2;hb[b>>1]=0;return b-d}function re(a){return 2*a.length}
function se(a,b){for(var c=0,d="";!(c>=b/4);){var e=E[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}function te(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.charCodeAt(e);if(55296<=f&&57343>=f){var l=a.charCodeAt(++e);f=65536+((f&1023)<<10)|l&1023}E[b>>2]=f;b+=4;if(b+4>c)break}E[b>>2]=0;return b-d}
function ue(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}function ve(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=le(h[b+4*d>>2],"parameter "+d);return c}var we={};function xe(a){var b=we[a];return void 0===b?td(a):b}var ye=[];function ze(){return"object"==typeof globalThis?globalThis:Function("return this")()}function Ae(a){var b=ye.length;ye.push(a);return b}var Be=[];
function Ce(a){for(var b="",c=0;c<a;++c)b+=(0!==c?", ":"")+"arg"+c;var d="return function emval_allocator_"+a+"(constructor, argTypes, args) {\n var HEAPU32 = getMemory();\n";for(c=0;c<a;++c)d+="var argType"+c+" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter "+c+"');\nvar arg"+c+" = argType"+c+".readValueFromPointer(args);\nargs += argType"+c+"['argPackAdvance'];\nargTypes += 4;\n";return(new Function("requireRegisteredType","Module","valueToHandle","getMemory",d+("var obj = new constructor("+
b+");\nreturn valueToHandle(obj);\n}\n")))(le,g,Sd,()=>h)}var De={},Ee=[];
function Fe(a,b){Ge=a;He=b;if(Ie)if(Je||(Je=!0),0==a)Ke=function(){var d=Math.max(0,Le+b-Me())|0;setTimeout(Ne,d)};else if(1==a)Ke=function(){Oe(Ne)};else if(2==a){if("undefined"==typeof setImmediate){var c=[];addEventListener("message",d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);setImmediate=function(d){c.push(d);Fa?(void 0===g.setImmediates&&(g.setImmediates=[]),g.setImmediates.push(d),postMessage({target:"setimmediate"})):postMessage("setimmediate",
"*")}}Ke=function(){setImmediate(Ne)}}}var Me;Me=Ga?()=>{var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now();function Pe(a){if(!noExitRuntime){if(g.onExit)g.onExit(a);Xa=!0}ya(a,new Qa(a))}function Qe(a){a instanceof Qa||"unwind"==a||ya(1,a)}
function Re(a){!Ie||Va("emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Ie=a;var b=Se;Je=!1;Ne=function(){if(!Xa)if(0<Te.length){var c=Date.now(),d=Te.shift();d.kl(d.el);if(Ue){var e=Ue,f=0==e%1?e-1:Math.floor(e);Ue=d.fl?f:(8*e+(f+.5))/9}Ta('main loop blocker "'+d.name+'" took '+(Date.now()-c)+" ms");g.setStatus&&(c=g.statusMessage||"Please wait...",d=Ue,e=
Ve.jl,d?d<e?g.setStatus(c+" ("+(e-d)+"/"+e+")"):g.setStatus(c):g.setStatus(""));b<Se||setTimeout(Ne,0)}else b<Se||(We=We+1|0,1==Ge&&1<He&&0!=We%He?Ke():(0==Ge&&(Le=Me()),Xa||g.preMainLoop&&!1===g.preMainLoop()||(Xe(a),g.postMainLoop&&g.postMainLoop()),b<Se||("object"==typeof SDL&&SDL.audio&&SDL.audio.Lk&&SDL.audio.Lk(),Ke())))}}function Xe(a){if(!Xa)try{a()}catch(b){Qe(b)}}function Ye(a,b){setTimeout(function(){Xe(a)},b)}function Ze(a){$e||($e={});$e[a]||($e[a]=1,Ga&&(a="warning: "+a),Ra(a))}
var $e,Je=!1,Ke=null,Se=0,Ie=null,Ge=0,He=0,We=0,Te=[],Ve={},Le,Ne,Ue,af=!1,bf=!1,cf=[];
function df(){function a(){bf=document.pointerLockElement===g.canvas||document.mozPointerLockElement===g.canvas||document.webkitPointerLockElement===g.canvas||document.msPointerLockElement===g.canvas}g.preloadPlugins||(g.preloadPlugins=[]);if(!ef){ef=!0;try{ff=!0}catch(c){ff=!1,Ra("warning: no blob constructor, cannot create blobs with mimetypes")}gf="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:ff?null:Ra("warning: no BlobBuilder");hf="undefined"!=
typeof window?window.URL?window.URL:window.webkitURL:void 0;g.fk||"undefined"!=typeof hf||(Ra("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),g.fk=!0);g.preloadPlugins.push({canHandle:function(c){return!g.fk&&/\.(jpg|jpeg|png|bmp)$/i.test(c)},handle:function(c,d,e,f){var l=null;if(ff)try{l=new Blob([c],{type:jf(d)}),l.size!==c.length&&(l=new Blob([(new Uint8Array(c)).buffer],{type:jf(d)}))}catch(u){Ze("Blob constructor present but fails: "+
u+"; falling back to blob builder")}l||(l=new gf,l.append((new Uint8Array(c)).buffer),l=l.getBlob());var m=hf.createObjectURL(l),p=new Image;p.onload=()=>{p.complete||Va("Image "+d+" could not be decoded");var u=document.createElement("canvas");u.width=p.width;u.height=p.height;u.getContext("2d").drawImage(p,0,0);hf.revokeObjectURL(m);e&&e(c)};p.onerror=()=>{Ta("Image "+m+" could not be decoded");f&&f()};p.src=m}});g.preloadPlugins.push({canHandle:function(c){return!g.ql&&c.substr(-4)in{".ogg":1,
".wav":1,".mp3":1}},handle:function(c,d,e,f){function l(){p||(p=!0,e&&e(c))}function m(){p||(p=!0,new Audio,f&&f())}var p=!1;if(ff){try{var u=new Blob([c],{type:jf(d)})}catch(A){return m()}u=hf.createObjectURL(u);var v=new Audio;v.addEventListener("canplaythrough",()=>l(v),!1);v.onerror=function(){if(!p){Ra("warning: browser could not fully decode audio "+d+", trying slower base64 approach");for(var A="",G=0,r=0,y=0;y<c.length;y++)for(G=G<<8|c[y],r+=8;6<=r;){var F=G>>r-6&63;r-=6;A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[F]}2==
r?(A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(G&3)<<4],A+="=="):4==r&&(A+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(G&15)<<2],A+="=");v.src="data:audio/x-"+d.substr(-3)+";base64,"+A;l(v)}};v.src=u;Ye(function(){l(v)},1E4)}else return m()}});var b=g.canvas;b&&(b.requestPointerLock=b.requestPointerLock||b.mozRequestPointerLock||b.webkitRequestPointerLock||b.msRequestPointerLock||(()=>{}),b.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||
document.webkitExitPointerLock||document.msExitPointerLock||(()=>{}),b.exitPointerLock=b.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),g.elementPointerLock&&b.addEventListener("click",c=>{!bf&&g.canvas.requestPointerLock&&(g.canvas.requestPointerLock(),c.preventDefault())},!1))}}
function Xc(a,b,c,d){df();var e=!1;g.preloadPlugins.forEach(function(f){!e&&f.canHandle(b)&&(f.handle(a,b,c,d),e=!0)});return e}
function kf(a,b,c,d){if(b&&g.Wi&&a==g.canvas)return g.Wi;var e;if(b){var f={antialias:!1,alpha:!1,Cj:"undefined"!=typeof WebGL2RenderingContext?2:1};if(d)for(var l in d)f[l]=d[l];if("undefined"!=typeof lf&&(e=mf(a,f)))var m=nf[e].Qi}else m=a.getContext("2d");if(!m)return null;c&&(b||"undefined"==typeof M||Va("cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),g.Wi=m,b&&of(e),g.wl=b,cf.forEach(function(p){p()}),df());return m}var pf=!1,qf=void 0,rf=void 0;
function sf(a,b){function c(){af=!1;var f=d.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===f?(d.exitFullscreen=tf,qf&&d.requestPointerLock(),af=!0,rf?("undefined"!=typeof SDL&&(E[SDL.screen>>2]=h[SDL.screen>>2]|8388608),uf(g.canvas),vf()):uf(d)):(f.parentNode.insertBefore(d,f),f.parentNode.removeChild(f),rf?("undefined"!=typeof SDL&&(E[SDL.screen>>2]=h[SDL.screen>>2]&
-8388609),uf(g.canvas),vf()):uf(d));if(g.onFullScreen)g.onFullScreen(af);if(g.onFullscreen)g.onFullscreen(af)}qf=a;rf=b;"undefined"==typeof qf&&(qf=!0);"undefined"==typeof rf&&(rf=!1);var d=g.canvas;pf||(pf=!0,document.addEventListener("fullscreenchange",c,!1),document.addEventListener("mozfullscreenchange",c,!1),document.addEventListener("webkitfullscreenchange",c,!1),document.addEventListener("MSFullscreenChange",c,!1));var e=document.createElement("div");d.parentNode.insertBefore(e,d);e.appendChild(d);
e.requestFullscreen=e.requestFullscreen||e.mozRequestFullScreen||e.msRequestFullscreen||(e.webkitRequestFullscreen?()=>e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):null)||(e.webkitRequestFullScreen?()=>e.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):null);e.requestFullscreen()}
function tf(){if(!af)return!1;(document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]);return!0}var wf=0;function Oe(a){if("function"==typeof requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===wf)wf=b+1E3/60;else for(;b+2>=wf;)wf+=1E3/60;setTimeout(a,Math.max(wf-b,0))}}function xf(a){Oe(function(){Xe(a)})}
function jf(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var yf=[];function vf(){var a=g.canvas;yf.forEach(function(b){b(a.width,a.height)})}
function uf(a,b,c){b&&c?(a.cl=b,a.Ak=c):(b=a.cl,c=a.Ak);var d=b,e=c;g.forcedAspectRatio&&0<g.forcedAspectRatio&&(d/e<g.forcedAspectRatio?d=Math.round(e*g.forcedAspectRatio):e=Math.round(d/g.forcedAspectRatio));if((document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen){var f=Math.min(screen.width/d,screen.height/e);d=Math.round(d*f);e=Math.round(e*
f)}rf?(a.width!=d&&(a.width=d),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||e!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))}var ef,ff,gf,hf;
function zf(a){var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=function(c,d){b.vertexAttribDivisorANGLE(c,d)},a.drawArraysInstanced=function(c,d,e,f){b.drawArraysInstancedANGLE(c,d,e,f)},a.drawElementsInstanced=function(c,d,e,f,l){b.drawElementsInstancedANGLE(c,d,e,f,l)})}
function Af(a){var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=function(){return b.createVertexArrayOES()},a.deleteVertexArray=function(c){b.deleteVertexArrayOES(c)},a.bindVertexArray=function(c){b.bindVertexArrayOES(c)},a.isVertexArray=function(c){return b.isVertexArrayOES(c)})}function Bf(a){var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=function(c,d){b.drawBuffersWEBGL(c,d)})}
var Cf=1,Df=[],N=[],Ef=[],Ff=[],Gf=[],Hf=[],If=[],nf=[],Jf={},Kf=[],Lf=[],Mf=[],Nf=[],Of={},Pf={},Qf=4;function R(a){Rf||(Rf=a)}function Sf(a){for(var b=Cf++,c=a.length;c<b;c++)a[c]=null;return b}function Tf(a,b,c){for(var d="",e=0;e<a;++e){var f=c?E[c+4*e>>2]:-1;d+=cb(E[b+4*e>>2],0>f?void 0:f)}return d}
function mf(a,b){a.ti||(a.ti=a.getContext,a.getContext=function(d,e){e=a.ti(d,e);return"webgl"==d==e instanceof WebGLRenderingContext?e:null});var c=1<b.Cj?a.getContext("webgl2",b):a.getContext("webgl",b);return c?Uf(c,b):0}function Uf(a,b){var c=Sf(nf),d={ml:c,attributes:b,version:b.Cj,Qi:a};a.canvas&&(a.canvas.lk=d);nf[c]=d;("undefined"==typeof b.Wj||b.Wj)&&Vf(d);return c}function of(a){T=nf[a];g.Wi=M=T&&T.Qi;return!(a&&!M)}
function Vf(a){a||(a=T);if(!a.Ck){a.Ck=!0;var b=a.Qi;zf(b);Af(b);Bf(b);b.gl=b.getExtension("WEBGL_draw_instanced_base_vertex_base_instance");b.nl=b.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance");2<=a.version&&(b.pi=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.pi)b.pi=b.getExtension("EXT_disjoint_timer_query");b.pl=b.getExtension("WEBGL_multi_draw");(b.getSupportedExtensions()||[]).forEach(function(c){c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}}
var lf={},Rf,T,Wf=[];function Xf(a,b,c,d){M.drawElements(a,b,c,d)}function Yf(a,b,c,d){for(var e=0;e<a;e++){var f=M[c](),l=f&&Sf(d);f?(f.name=l,d[l]=f):R(1282);E[b+4*e>>2]=l}}function Zf(a,b,c,d,e,f,l,m){b=N[b];if(a=M[a](b,c))d=m&&db(a.name,t,m,d),e&&(E[e>>2]=d),f&&(E[f>>2]=a.size),l&&(E[l>>2]=a.type)}function $f(a,b){h[a>>2]=b;h[a+4>>2]=(b-h[a>>2])/4294967296}
function ag(a,b,c){if(b){var d=void 0;switch(a){case 36346:d=1;break;case 36344:0!=c&&1!=c&&R(1280);return;case 34814:case 36345:d=0;break;case 34466:var e=M.getParameter(34467);d=e?e.length:0;break;case 33309:if(2>T.version){R(1282);return}d=2*(M.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(2>T.version){R(1280);return}d=33307==a?3:0}if(void 0===d)switch(e=M.getParameter(a),typeof e){case "number":d=e;break;case "boolean":d=e?1:0;break;case "string":R(1280);return;case "object":if(null===
e)switch(a){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:d=0;break;default:R(1280);return}else{if(e instanceof Float32Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Array){for(a=0;a<e.length;++a)switch(c){case 0:E[b+4*a>>2]=e[a];break;case 2:B[b+4*a>>2]=e[a];break;case 4:gb[b+a>>0]=e[a]?1:0}return}try{d=e.name|0}catch(f){R(1280);
Ra("GL_INVALID_ENUM in glGet"+c+"v: Unknown object returned from WebGL getParameter("+a+")! (error: "+f+")");return}}break;default:R(1280);Ra("GL_INVALID_ENUM in glGet"+c+"v: Native code calling glGet"+c+"v("+a+") and it returns "+e+" of type "+typeof e+"!");return}switch(c){case 1:$f(b,d);break;case 0:E[b>>2]=d;break;case 2:B[b>>2]=d;break;case 4:gb[b>>0]=d?1:0}}else R(1281)}
function bg(a,b,c,d){if(c){b=M.getIndexedParameter(a,b);switch(typeof b){case "boolean":a=b?1:0;break;case "number":a=b;break;case "object":if(null===b)switch(a){case 35983:case 35368:a=0;break;default:R(1280);return}else if(b instanceof WebGLBuffer)a=b.name|0;else{R(1280);return}break;default:R(1280);return}switch(d){case 1:$f(c,a);break;case 0:E[c>>2]=a;break;case 2:B[c>>2]=a;break;case 4:gb[c>>0]=a?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+d;}}else R(1281)}
function cg(a){var b=eb(a)+1,c=dg(b);db(a,t,c,b);return c}function eg(a){return"]"==a.slice(-1)&&a.lastIndexOf("[")}function fg(a){var b=a.Pi,c=a.sj,d;if(!b)for(a.Pi=b={},a.jk={},d=0;d<M.getProgramParameter(a,35718);++d){var e=M.getActiveUniform(a,d);var f=e.name;e=e.size;var l=eg(f);l=0<l?f.slice(0,l):f;var m=a.rj;a.rj+=e;c[l]=[e,m];for(f=0;f<e;++f)b[m]=f,a.jk[m++]=l}}
function Y(a){var b=M.Uj;if(b){var c=b.Pi[a];"number"==typeof c&&(b.Pi[a]=c=M.getUniformLocation(b,b.jk[a]+(0<c?"["+c+"]":"")));return c}R(1282)}function gg(a,b,c,d){if(c)if(a=N[a],fg(a),a=M.getUniform(a,Y(b)),"number"==typeof a||"boolean"==typeof a)switch(d){case 0:E[c>>2]=a;break;case 2:B[c>>2]=a}else for(b=0;b<a.length;b++)switch(d){case 0:E[c+4*b>>2]=a[b];break;case 2:B[c+4*b>>2]=a[b]}else R(1281)}
function hg(a,b,c,d){if(c)if(a=M.getVertexAttrib(a,b),34975==b)E[c>>2]=a&&a.name;else if("number"==typeof a||"boolean"==typeof a)switch(d){case 0:E[c>>2]=a;break;case 2:B[c>>2]=a;break;case 5:E[c>>2]=Math.fround(a)}else for(b=0;b<a.length;b++)switch(d){case 0:E[c+4*b>>2]=a[b];break;case 2:B[c+4*b>>2]=a[b];break;case 5:E[c+4*b>>2]=Math.fround(a[b])}else R(1281)}function ig(a){a-=5120;return 0==a?gb:1==a?t:2==a?hb:4==a?E:6==a?B:5==a||28922==a||28520==a||30779==a||30782==a?h:ib}
function jg(a){return 31-Math.clz32(a.BYTES_PER_ELEMENT)}function kg(a,b,c,d,e){a=ig(a);var f=jg(a),l=Qf;return a.subarray(e>>f,e+d*(c*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*(1<<f)+l-1&-l)>>f)}var lg=[],mg=[],ng=[],og={},pg=["default","low-power","high-performance"],qg=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0];
function rg(a){try{if(!a)return window;"number"==typeof a&&(a=qg[a]||cb(a));return"#window"===a?window:"#document"===a?document:"#screen"===a?screen:"#canvas"===a?g.canvas:"string"==typeof a?document.getElementById(a):a}catch(b){return null}}var sg={};
function tg(){if(!ug){var a={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",_:xa||"./this.program"},b;for(b in sg)void 0===sg[b]?delete a[b]:a[b]=sg[b];var c=[];for(b in a)c.push(b+"="+a[b]);ug=c}return ug}var ug;
function vg(a,b){a=new Uint8Array(a);var c=a.byteLength;g.bk+=c+24;if(327680>=c){var d=fa();try{var e=ma(c);t.subarray(e,e+c).set(a);b(e,c)}finally{na(d)}}else{e=dg(c);try{t.subarray(e,e+c).set(a),b(e,c)}finally{ae(e)}}}
var xg={connect:function(a,b,c){g.vj=b;g.oj=wg("webSocketHandlerOnMessage",null,["number","number","number","number"]);g.Mi?g.Mi++:g.Mi=1;g.ik=!1;if(!g.worker){a=new Worker(URL.createObjectURL(new Blob(['var socket;self.onmessage = function (event) {\tif (event.data.constructor === ArrayBuffer) {\t\tsocket.send (event.data);\t} else if (event.data[0] === "connect") {\t\tsocket = new WebSocket (event.data[1]);\t\tsocket.binaryType = "arraybuffer";\t\tvar token = event.data[2];\t\tsocket.onclose = function (event) {\t\t\tself.postMessage (["close", token]);\t\t};\t\tsocket.onerror = function (event) {\t\t\tself.postMessage (["error", token]);\t\t};\t\tsocket.onopen = function (event) {\t\t\tself.postMessage (["open", token]);\t\t};\t\tsocket.onmessage = function (event) {\t\t\tself.postMessage (["data", event.data, token], [event.data]);\t\t};\t} else if (event.data[0] === "close") {\t\tsocket.close ();\t}}'],{type:"application/javascript"})));
g.worker=a;var d=function(e,f){g.oj(e,f,g.vj,2)};a.onmessage=function(e){g.$$facade&&("data"===e.data[0]?e.data[2]===g.Mi&&vg(e.data[1],d):"open"===e.data[0]?e.data[1]===g.Mi&&(g.ik=!0,g.oj(0,0,g.vj,0)):"close"===e.data[0]?e.data[1]===g.Mi&&(g.oj(0,0,g.vj,3),g.ki("websocket_connection_closed")):"error"===e.data[0]&&e.data[1]===g.Mi&&g.ki(g.ik?"socket_error":"socket_open_failed"))}}g.worker.postMessage(["connect",cb(c),g.Mi])},Jj:function(a,b){g.worker&&(a=(new Uint8Array(t.subarray(a,a+b))).buffer,
g.worker.postMessage(a,[a]))},close:function(){g.worker&&g.worker.postMessage(["close"]);g.oj=function(){}}},yg={connect:function(a,b,c){function d(m,p){f(m,p,b,2)}a=cb(c);var e=new WebSocket(a);g.Fi=e;e.binaryType="arraybuffer";var f=wg("webSocketHandlerOnMessage",null,["number","number","number","number"]),l=!1;e.onclose=function(){g.Fi===e&&(f(0,0,b,3),g.ki("websocket_connection_closed"))};e.onerror=function(){g.Fi===e&&g.ki(l?"socket_error":"socket_open_failed")};e.onopen=function(){g.Fi===e&&
(l=!0,f(0,0,b,0))};e.onmessage=function(m){g.Fi===e&&vg(m.data,d)}},Jj:function(a,b){g.Fi&&g.Fi.send(t.subarray(a,a+b))},close:function(){g.Fi&&g.Fi.close();delete g.Fi}};function zg(a){return 0===a%4&&(0!==a%100||0===a%400)}var Ag=[31,29,31,30,31,30,31,31,30,31,30,31],Bg=[31,28,31,30,31,30,31,31,30,31,30,31];
function Cg(a,b,c,d){function e(r,y,F){for(r="number"==typeof r?r.toString():r||"";r.length<y;)r=F[0]+r;return r}function f(r,y){return e(r,y,"0")}function l(r,y){function F(ca){return 0>ca?-1:0<ca?1:0}var S;0===(S=F(r.getFullYear()-y.getFullYear()))&&0===(S=F(r.getMonth()-y.getMonth()))&&(S=F(r.getDate()-y.getDate()));return S}function m(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),
0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function p(r){var y=r.Ni;for(r=new Date((new Date(r.Oi+1900,0,1)).getTime());0<y;){var F=r.getMonth(),S=(zg(r.getFullYear())?Ag:Bg)[F];if(y>S-r.getDate())y-=S-r.getDate()+1,r.setDate(1),11>F?r.setMonth(F+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else{r.setDate(r.getDate()+y);break}}F=new Date(r.getFullYear()+1,0,4);y=m(new Date(r.getFullYear(),
0,4));F=m(F);return 0>=l(y,r)?0>=l(F,r)?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var u=E[d+40>>2];d={$k:E[d>>2],Zk:E[d+4>>2],pj:E[d+8>>2],Nj:E[d+12>>2],qj:E[d+16>>2],Oi:E[d+20>>2],zi:E[d+24>>2],Ni:E[d+28>>2],ul:E[d+32>>2],Yk:E[d+36>>2],al:u?cb(u):""};c=cb(c);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 v in u)c=c.replace(new RegExp(v,"g"),u[v]);var A="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),G="January February March April May June July August September October November December".split(" ");u={"%a":function(r){return A[r.zi].substring(0,3)},"%A":function(r){return A[r.zi]},"%b":function(r){return G[r.qj].substring(0,3)},
"%B":function(r){return G[r.qj]},"%C":function(r){return f((r.Oi+1900)/100|0,2)},"%d":function(r){return f(r.Nj,2)},"%e":function(r){return e(r.Nj,2," ")},"%g":function(r){return p(r).toString().substring(2)},"%G":function(r){return p(r)},"%H":function(r){return f(r.pj,2)},"%I":function(r){r=r.pj;0==r?r=12:12<r&&(r-=12);return f(r,2)},"%j":function(r){for(var y=0,F=0;F<=r.qj-1;y+=(zg(r.Oi+1900)?Ag:Bg)[F++]);return f(r.Nj+y,3)},"%m":function(r){return f(r.qj+1,2)},"%M":function(r){return f(r.Zk,2)},
"%n":function(){return"\n"},"%p":function(r){return 0<=r.pj&&12>r.pj?"AM":"PM"},"%S":function(r){return f(r.$k,2)},"%t":function(){return"\t"},"%u":function(r){return r.zi||7},"%U":function(r){return f(Math.floor((r.Ni+7-r.zi)/7),2)},"%V":function(r){var y=Math.floor((r.Ni+7-(r.zi+6)%7)/7);2>=(r.zi+371-r.Ni-2)%7&&y++;if(y)53==y&&(F=(r.zi+371-r.Ni)%7,4==F||3==F&&zg(r.Oi)||(y=1));else{y=52;var F=(r.zi+7-r.Ni-1)%7;(4==F||5==F&&zg(r.Oi%400-1))&&y++}return f(y,2)},"%w":function(r){return r.zi},"%W":function(r){return f(Math.floor((r.Ni+
7-(r.zi+6)%7)/7),2)},"%y":function(r){return(r.Oi+1900).toString().substring(2)},"%Y":function(r){return r.Oi+1900},"%z":function(r){r=r.Yk;var y=0<=r;r=Math.abs(r)/60;return(y?"+":"-")+String("0000"+(r/60*100+r%60)).slice(-4)},"%Z":function(r){return r.al},"%%":function(){return"%"}};c=c.replace(/%%/g,"\x00\x00");for(v in u)c.includes(v)&&(c=c.replace(new RegExp(v,"g"),u[v](d)));c=c.replace(/\0\0/g,"%");v=Vb(c,!1);if(v.length>b)return 0;gb.set(v,a);return v.length-1}
function Dg(a,b,c,d){var e={string:u=>{var v=0;if(null!==u&&void 0!==u&&0!==u){var A=(u.length<<2)+1;v=ma(A);db(u,t,v,A)}return v},array:u=>{var v=ma(u.length);gb.set(u,v);return v}};a=g["_"+a];var f=[],l=0;if(d)for(var m=0;m<d.length;m++){var p=e[c[m]];p?(0===l&&(l=fa()),f[m]=p(d[m])):f[m]=d[m]}c=a.apply(null,f);return c=function(u){0!==l&&na(l);return"string"===b?cb(u):"boolean"===b?!!u:u}(c)}
function wg(a,b,c,d){c=c||[];var e=c.every(f=>"number"===f||"boolean"===f);return"string"!==b&&e&&!d?g["_"+a]:function(){return Dg(a,b,c,arguments,d)}}function sc(a,b,c,d){a||(a=this);this.parent=a;this.Di=a.Di;this.Xi=null;this.id=kc++;this.name=b;this.mode=c;this.hi={};this.ii={};this.rdev=d}
Object.defineProperties(sc.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Fk:{get:function(){return 16384===(this.mode&61440)}},Ek:{get:function(){return 8192===(this.mode&61440)}}});Kc();lc=Array(4096);zc(K,"/");Ac("/tmp",16895,0);Ac("/home",16895,0);Ac("/home/web_user",16895,0);
(()=>{Ac("/dev",16895,0);Yb(259,{read:()=>0,write:(b,c,d,e)=>e});Bc("/dev/null",259);Xb(1280,$b);Xb(1536,ac);Bc("/dev/tty",1280);Bc("/dev/tty1",1536);var a=Tb();Uc("/dev","random",a);Uc("/dev","urandom",a);Ac("/dev/shm",16895,0);Ac("/dev/shm/tmp",16895,0)})();
(()=>{Ac("/proc",16895,0);var a=Ac("/proc/self",16895,0);Ac("/proc/self/fd",16895,0);zc({Di:()=>{var b=cc(a,"fd",16895,73);b.hi={lookup:(c,d)=>{var e=jc[+d];if(!e)throw new I(8);c={parent:null,Di:{dk:"fake"},hi:{readlink:()=>e.path}};return c.parent=c}};return b}},"/proc/self/fd")})();g.FS_createPath=Rc;g.FS_createDataFile=Tc;g.FS_createPreloadedFile=Yc;g.FS_unlink=Dc;g.FS_createLazyFile=Wc;g.FS_createDevice=Uc;md=g.InternalError=ld("InternalError");for(var Eg=Array(256),Fg=0;256>Fg;++Fg)Eg[Fg]=String.fromCharCode(Fg);
sd=Eg;ud=g.BindingError=ld("BindingError");Kd.prototype.isAliasOf=function(a){if(!(this instanceof Kd&&a instanceof Kd))return!1;var b=this.fi.ni.ji,c=this.fi.li,d=a.fi.ni.ji;for(a=a.fi.li;b.xi;)c=b.$i(c),b=b.xi;for(;d.xi;)a=d.$i(a),d=d.xi;return b===d&&c===a};
Kd.prototype.clone=function(){this.fi.li||wd(this);if(this.fi.Yi)return this.fi.count.value+=1,this;var a=Jd,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.fi;a=a(c.call(b,d,{fi:{value:{count:e.count,Ri:e.Ri,Yi:e.Yi,li:e.li,ni:e.ni,ri:e.ri,wi:e.wi}}}));a.fi.count.value+=1;a.fi.Ri=!1;return a};Kd.prototype["delete"]=function(){this.fi.li||wd(this);this.fi.Ri&&!this.fi.Yi&&vd("Object already scheduled for deletion");zd(this);Ad(this.fi);this.fi.Yi||(this.fi.ri=void 0,this.fi.li=void 0)};
Kd.prototype.isDeleted=function(){return!this.fi.li};Kd.prototype.deleteLater=function(){this.fi.li||wd(this);this.fi.Ri&&!this.fi.Yi&&vd("Object already scheduled for deletion");Dd.push(this);1===Dd.length&&Fd&&Fd(Ed);this.fi.Ri=!0;return this};g.getInheritedInstanceCount=function(){return Object.keys(Gd).length};g.getLiveInheritedInstances=function(){var a=[],b;for(b in Gd)Gd.hasOwnProperty(b)&&a.push(Gd[b]);return a};g.flushPendingDeletes=Ed;g.setDelayFunction=function(a){Fd=a;Dd.length&&Fd&&Fd(Ed)};
Ud.prototype.xk=function(a){this.gk&&(a=this.gk(a));return a};Ud.prototype.Vj=function(a){this.vi&&this.vi(a)};Ud.prototype.argPackAdvance=8;Ud.prototype.readValueFromPointer=ed;Ud.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
Ud.prototype.fromWireType=function(a){function b(){return this.ij?Id(this.ji.Ki,{ni:this.Kk,li:c,wi:this,ri:a}):Id(this.ji.Ki,{ni:this,li:a})}var c=this.xk(a);if(!c)return this.Vj(a),null;var d=Hd(this.ji,c);if(void 0!==d){if(0===d.fi.count.value)return d.fi.li=c,d.fi.ri=a,d.clone();d=d.clone();this.Vj(a);return d}d=this.ji.wk(c);d=Cd[d];if(!d)return b.call(this);d=this.hj?d.rk:d.pointerType;var e=Bd(c,this.ji,d.ji);return null===e?b.call(this):this.ij?Id(d.ji.Ki,{ni:d,li:e,wi:this,ri:a}):Id(d.ji.Ki,
{ni:d,li:e})};Yd=g.UnboundTypeError=ld("UnboundTypeError");g.count_emval_handles=function(){for(var a=0,b=5;b<he.length;++b)void 0!==he[b]&&++a;return a};g.get_first_emval=function(){for(var a=5;a<he.length;++a)if(void 0!==he[a])return he[a];return null};g.requestFullscreen=function(a,b){sf(a,b)};g.requestAnimationFrame=function(a){Oe(a)};g.setCanvasSize=function(a,b,c){uf(g.canvas,a,b);c||vf()};g.pauseMainLoop=function(){Ke=null;Se++};
g.resumeMainLoop=function(){Se++;var a=Ge,b=He,c=Ie;Ie=null;Re(c);Fe(a,b);Ke()};g.getUserMedia=function(){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia);window.getUserMedia(void 0)};g.createContext=function(a,b,c,d){return kf(a,b,c,d)};for(var M,Gg=0;32>Gg;++Gg)Wf.push(Array(Gg));var Hg=new Float32Array(288);for(Gg=0;288>Gg;++Gg)lg[Gg]=Hg.subarray(0,Gg+1);var Ig=new Int32Array(288);for(Gg=0;288>Gg;++Gg)mg[Gg]=Ig.subarray(0,Gg+1);
var Kg={Ka:function(a,b,c){Kb[a]=void 0;try{var d=[new Float32Array(b),new Uint16Array(c)]}catch(e){return 0}Kb[a]=d;return 1},Ja:function(a,b,c,d,e){Kb[a]=void 0;c>>=2;e>>=1;try{var f=[new Float32Array(B.subarray(c,c+b)),new Uint16Array(ib.subarray(e,e+d))]}catch(l){return 0}Kb[a]=f;return 1},La:function(a){Kb[a]=void 0},Na:function(){if(Lb.length)return Lb.pop();var a=Kb.length;Kb[a]=void 0;return a},Ma:function(a){Kb[a]=void 0;Lb.push(a)},Dh:function(a,b){if(!b)return 0;a=Kb[a];if(!a)return 0;
a=a[1];return a.length?(ib.set(a,b>>1),1):0},Eh:function(a,b){if(!b)return 0;a=Kb[a];if(!a)return 0;a=a[0];return a.length?(B.set(a,b>>2),1):0},Gh:function(a){return(a=Kb[a])?a[1].length:0},Bh:function(a,b){a=Kb[a];if(!a)return 0;a=a[1];return a.length?(M.bufferSubData(M.ELEMENT_ARRAY_BUFFER,b,a),1):0},zh:function(a,b,c,d){a=Kb[a];if(!a)return 0;a=a[1];try{var e=new Uint8Array(a.buffer,b,c)}catch(f){return 0}return e.length?(M.bufferSubData(M.ELEMENT_ARRAY_BUFFER,d,e),1):0},Ch:function(a,b){a=Kb[a];
if(!a)return 0;a=a[0];return a.length?(M.bufferSubData(M.ARRAY_BUFFER,b,a),1):0},Ah:function(a,b,c,d){a=Kb[a];if(!a)return 0;a=a[0];try{var e=new Uint8Array(a.buffer,b,c)}catch(f){return 0}return e.length?(M.bufferSubData(M.ARRAY_BUFFER,d,e),1):0},Fh:function(a,b,c,d){a=Kb[a];if(!a)return 0;a=a[0];return a.length&&b<a.length&&a.length-b>=c?(d>>=2,a.set(B.subarray(d,d+c),b),1):0},Hh:function(a){return(a=Kb[a])?a[0].length:0},wb:function(a,b){0>a&&(a+=4294967296);0>b&&(b+=4294967296);g.ki("announce_model",
a,b)},Y:function(a,b,c){var d=g.$$facade;if(d){var e=g.callAfterMap,f=++e.index,l=function(m){d===g.$$facade&&Dg("callFuncWrapper",null,["number","number","number"],[a,!m,b]);delete e.indexedWrappers[f]};e.indexedWrappers[f]=l;0<=c?Ye(l,c):xf(l)}},Td:function(){for(var a=g.callAfterMap,b=a.indexedWrappers,c=Object.keys(b),d=0;d<c.length;++d)b[c[d]](!0);a.indexedWrappers={};a.index=0},vb:function(a,b){g.ki("capping_idle",!!a,b)},pb:function(a){0>a&&(a+=4294967296);g.ki("data_access_attached",a)},ob:function(){g.ki("first_instance")},
X:function(a){g.ki(cb(a))},ha:function(a,b){b=cb(b);try{var c=JSON.parse(b)}catch(d){c=b}g.ki(cb(a),c)},ub:function(a,b,c){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);g.ki("inclusion",a,b,c)},nc:function(a,b,c,d){g.ki("meta_data",a,b,g.HEAPU8.subarray(c,c+d))},tb:function(a,b){0>a&&(a+=4294967296);b=cb(b);g.ki("missing_model",a,b)},Cb:function(a){g.ki("network_receive_data",a)},nb:function(a){g.ki("post_draw_json","{"+cb(a)+"}")},qb:function(a,b){0>a&&(a+=4294967296);0>b&&(b+=4294967296);
g.ki("priority_meta_data_sent",a,b)},rb:function(a,b,c,d){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);0>d&&(d+=4294967296);g.ki("remap_inclusion",a,b,c,d)},sb:function(a,b,c){0>a&&(a+=4294967296);0>b&&(b+=4294967296);0>c&&(c+=4294967296);g.ki("remap_model",a,b,c)},h:function(a,b){g.tj&&(a=g.HEAP8.buffer.slice(a,b),g.tj.Ok(a))},cc:function(){g.ki("session_started")},xd:function(){g.$$setReady()},l:function(a,b,c,d){Va("Assertion failed: "+cb(a)+", at: "+[b?cb(b):"unknown filename",
c,d?cb(d):"unknown function"])},ua:function(a,b,c){$c=c;try{var d=bd(a);switch(b){case 0:var e=ad();return 0>e?-28:yc(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=ad(),d.flags|=e,0;case 5:return e=ad(),hb[e+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return E[Jg()>>2]=28,-1;default:return-28}}catch(f){if("undefined"==typeof Zc||!(f instanceof I))throw f;return-f.Gi}},Gb:function(a,b,c){$c=c;try{var d=bd(a);switch(b){case 21509:case 21505:return d.tty?0:
-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.tty?0:-59;case 21519:if(!d.tty)return-59;var e=ad();return E[e>>2]=0;case 21520:return d.tty?-28:-59;case 21531:a=e=ad();if(!d.ii.Dk)throw new I(59);return d.ii.Dk(d,b,a);case 21523:return d.tty?0:-59;case 21524:return d.tty?0:-59;default:return-28}}catch(f){if("undefined"==typeof Zc||!(f instanceof I))throw f;return-f.Gi}},Hb:function(a,b,c,d){$c=d;try{b=cb(b);var e=b;if("/"===e.charAt(0))b=e;else{var f=-100===a?"/":bd(a).path;
if(0==e.length)throw new I(44);b=Nb(f+"/"+e)}var l=d?ad():0;return Gc(b,c,l).fd}catch(m){if("undefined"==typeof Zc||!(m instanceof I))throw m;return-m.Gi}},w:function(a){var b=cd[a];delete cd[a];var c=b.elements,d=c.length,e=c.map(function(m){return m.zj}).concat(c.map(function(m){return m.Lj})),f=b.Zi,l=b.vi;od([a],e,function(m){c.forEach((p,u)=>{var v=m[u],A=p.Si,G=p.yj,r=m[u+d],y=p.Kj,F=p.Mj;p.read=S=>v.fromWireType(A(G,S));p.write=(S,ca)=>{var la=[];y(F,S,r.toWireType(la,ca));dd(la)}});return[{name:b.name,
fromWireType:function(p){for(var u=Array(d),v=0;v<d;++v)u[v]=c[v].read(p);l(p);return u},toWireType:function(p,u){if(d!==u.length)throw new TypeError("Incorrect number of tuple elements for "+b.name+": expected="+d+", actual="+u.length);for(var v=f(),A=0;A<d;++A)c[A].write(v,u[A]);null!==p&&p.push(l,v);return v},argPackAdvance:8,readValueFromPointer:ed,si:l}]})},L:function(a){var b=qd[a];delete qd[a];var c=b.Zi,d=b.vi,e=b.Yj,f=e.map(l=>l.zj).concat(e.map(l=>l.Lj));od([a],f,l=>{var m={};e.forEach((p,
u)=>{var v=l[u],A=p.Si,G=p.yj,r=l[u+e.length],y=p.Kj,F=p.Mj;m[p.vk]={read:S=>v.fromWireType(A(G,S)),write:(S,ca)=>{var la=[];y(F,S,r.toWireType(la,ca));dd(la)}}});return[{name:b.name,fromWireType:function(p){var u={},v;for(v in m)u[v]=m[v].read(p);d(p);return u},toWireType:function(p,u){for(var v in m)if(!(v in u))throw new TypeError('Missing field: "'+v+'"');var A=c();for(v in m)m[v].write(A,u[v]);null!==p&&p.push(d,A);return A},argPackAdvance:8,readValueFromPointer:ed,si:d}]})},yb:function(){},
Tg:function(a,b,c,d,e){var f=rd(c);b=td(b);pd(a,{name:b,fromWireType:function(l){return!!l},toWireType:function(l,m){return m?d:e},argPackAdvance:8,readValueFromPointer:function(l){if(1===c)var m=gb;else if(2===c)m=hb;else if(4===c)m=E;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(m[l>>f])},si:null})},_:function(a,b,c,d,e,f,l,m,p,u,v,A,G){v=td(v);f=Xd(e,f);m&&(m=Xd(l,m));u&&(u=Xd(p,u));G=Xd(A,G);var r=jd(v);Md(r,function(){be("Cannot construct "+v+" due to unbound types",
[d])});od([a,b,c],d?[d]:[],function(y){y=y[0];if(d){var F=y.ji;var S=F.Ki}else S=Kd.prototype;y=kd(r,function(){if(Object.getPrototypeOf(this)!==ca)throw new ud("Use 'new' to construct "+v);if(void 0===la.Ii)throw new ud(v+" has no accessible constructor");var C=la.Ii[arguments.length];if(void 0===C)throw new ud("Tried to invoke ctor of "+v+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(la.Ii).toString()+") parameters instead!");return C.apply(this,arguments)});
var ca=Object.create(S,{constructor:{value:y}});y.prototype=ca;var la=new Nd(v,y,ca,G,F,f,m,u);F=new Ud(v,la,!0,!1,!1);S=new Ud(v+"*",la,!1,!1,!1);var D=new Ud(v+" const*",la,!1,!0,!1);Cd[a]={pointerType:S,rk:D};Vd(r,y);return[F,S,D]})},b:function(a,b,c,d,e,f,l){var m=ee(c,d);b=td(b);f=Xd(e,f);od([],[a],function(p){function u(){be("Cannot call "+v+" due to unbound types",m)}p=p[0];var v=p.name+"."+b;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var A=p.ji.constructor;void 0===A[b]?(u.uj=c-1,A[b]=
u):(Ld(A,b,v),A[b].Ei[c-1]=u);od([],m,function(G){G=[G[0],null].concat(G.slice(1));G=de(v,G,f,l);void 0===A[b].Ei?(G.uj=c-1,A[b]=G):A[b].Ei[c-1]=G;return[]});return[]})},ja:function(a,b,c,d,e,f){0<b||Va();var l=ee(b,c);e=Xd(d,e);od([],[a],function(m){m=m[0];var p="constructor "+m.name;void 0===m.ji.Ii&&(m.ji.Ii=[]);if(void 0!==m.ji.Ii[b-1])throw new ud("Cannot register multiple constructors with identical number of parameters ("+(b-1)+") for class '"+m.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");
m.ji.Ii[b-1]=()=>{be("Cannot construct "+m.name+" due to unbound types",l)};od([],l,function(u){u.splice(1,0,null);m.ji.Ii[b-1]=de(p,u,e,f);return[]});return[]})},Z:function(a,b,c,d,e,f,l,m,p,u){b=td(b);e=Xd(d,e);od([],[a],function(v){v=v[0];var A=v.name+"."+b,G={get:function(){be("Cannot access "+A+" due to unbound types",[c,l])},enumerable:!0,configurable:!0};G.set=p?()=>{be("Cannot access "+A+" due to unbound types",[c,l])}:()=>{vd(A+" is a read-only property")};Object.defineProperty(v.ji.Ki,b,
G);od([],p?[c,l]:[c],function(r){var y=r[0],F={get:function(){var ca=fe(this,v,A+" getter");return y.fromWireType(e(f,ca))},enumerable:!0};if(p){p=Xd(m,p);var S=r[1];F.set=function(ca){var la=fe(this,v,A+" setter"),D=[];p(u,la,S.toWireType(D,ca));dd(D)}}Object.defineProperty(v.ji.Ki,b,F);return[]});return[]})},Sg:function(a,b){b=td(b);pd(a,{name:b,fromWireType:function(c){var d=je(c);ie(c);return d},toWireType:function(c,d){return Sd(d)},argPackAdvance:8,readValueFromPointer:ed,si:null})},K:function(a,
b,c,d){function e(){}c=rd(c);b=td(b);e.values={};pd(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,l){return l.value},argPackAdvance:8,readValueFromPointer:ke(b,c,d),si:null});Md(b,e)},v:function(a,b,c){var d=le(a,"enum");b=td(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:kd(d.name+"_"+b,function(){})}});a.values[c]=d;a[b]=d},xa:function(a,b,c){c=rd(c);b=td(b);pd(a,{name:b,fromWireType:function(d){return d},
toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:me(b,c),si:null})},P:function(a,b,c,d,e){b=td(b);-1===e&&(e=4294967295);e=rd(c);var f=m=>m;if(0===d){var l=32-8*c;f=m=>m<<l>>>l}c=b.includes("unsigned")?function(m,p){return p>>>0}:function(m,p){return p};pd(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:ne(b,e,0!==d),si:null})},D:function(a,b,c){function d(f){f>>=2;var l=h;return new e(fb,l[f+1],l[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,
Int32Array,Uint32Array,Float32Array,Float64Array][b];c=td(c);pd(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{Bk:!0})},ia:function(a,b,c,d,e,f,l,m,p,u,v,A){c=td(c);f=Xd(e,f);m=Xd(l,m);u=Xd(p,u);A=Xd(v,A);od([a],[b],function(G){G=G[0];return[new Ud(c,G.ji,!1,!1,!0,G,d,f,m,u,A)]})},wa:function(a,b){b=td(b);var c="std::string"===b;pd(a,{name:b,fromWireType:function(d){var e=h[d>>2],f=d+4;if(c)for(var l=f,m=0;m<=e;++m){var p=f+m;if(m==e||0==t[p]){l=cb(l,p-l);if(void 0===u)var u=l;
else u+=String.fromCharCode(0),u+=l;l=p+1}}else{u=Array(e);for(m=0;m<e;++m)u[m]=String.fromCharCode(t[f+m]);u=u.join("")}ae(d);return u},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var f="string"==typeof e;f||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||vd("Cannot pass non-string to std::string");var l=c&&f?eb(e):e.length;var m=dg(4+l+1),p=m+4;h[m>>2]=l;if(c&&f)db(e,t,p,l+1);else if(f)for(f=0;f<l;++f){var u=e.charCodeAt(f);255<u&&(ae(p),
vd("String has UTF-16 code units that do not fit in 8 bits"));t[p+f]=u}else for(f=0;f<l;++f)t[p+f]=e[f];null!==d&&d.push(ae,m);return m},argPackAdvance:8,readValueFromPointer:ed,si:function(d){ae(d)}})},ka:function(a,b,c){c=td(c);if(2===b){var d=pe;var e=qe;var f=re;var l=()=>ib;var m=1}else 4===b&&(d=se,e=te,f=ue,l=()=>h,m=2);pd(a,{name:c,fromWireType:function(p){for(var u=h[p>>2],v=l(),A,G=p+4,r=0;r<=u;++r){var y=p+4+r*b;if(r==u||0==v[y>>m])G=d(G,y-G),void 0===A?A=G:(A+=String.fromCharCode(0),A+=
G),G=y+b}ae(p);return A},toWireType:function(p,u){"string"!=typeof u&&vd("Cannot pass non-string to C++ string type "+c);var v=f(u),A=dg(4+v+b);h[A>>2]=v>>m;e(u,A+4,v+b);null!==p&&p.push(ae,A);return A},argPackAdvance:8,readValueFromPointer:ed,si:function(p){ae(p)}})},x:function(a,b,c,d,e,f){cd[a]={name:td(b),Zi:Xd(c,d),vi:Xd(e,f),elements:[]}},i:function(a,b,c,d,e,f,l,m,p){cd[a].elements.push({zj:b,Si:Xd(c,d),yj:e,Lj:f,Kj:Xd(l,m),Mj:p})},M:function(a,b,c,d,e,f){qd[a]={name:td(b),Zi:Xd(c,d),vi:Xd(e,
f),Yj:[]}},z:function(a,b,c,d,e,f,l,m,p,u){qd[a].Yj.push({vk:td(b),zj:c,Si:Xd(d,e),yj:f,Lj:l,Kj:Xd(m,p),Mj:u})},Ug:function(a,b){b=td(b);pd(a,{Gk:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},Vg:function(a){do{var b=h[a>>2];a+=4;var c=h[a>>2];a+=4;var d=h[a>>2];a+=4;b=cb(b);Rc("/",Rb(b),!0,!0);Tc(b,null,gb.subarray(d,d+c),!0,!0,!0)}while(h[a>>2])},Db:function(){return!0},p:function(a,b,c){a=je(a);b=le(b,"emval::as");var d=[],e=Sd(d);h[c>>2]=e;return b.toWireType(d,
a)},j:function(a,b,c,d){a=je(a);c=ve(b,c);for(var e=Array(b),f=0;f<b;++f){var l=c[f];e[f]=l.readValueFromPointer(d);d+=l.argPackAdvance}a=a.apply(void 0,e);return Sd(a)},Q:function(a,b,c,d,e){a=ye[a];b=je(b);c=xe(c);var f=[];h[d>>2]=Sd(f);return a(b,c,f,e)},a:ie,J:function(a){if(0===a)return Sd(ze());a=xe(a);return Sd(ze()[a])},R:function(a,b){var c=ve(a,b),d=c[0];b=d.name+"_$"+c.slice(1).map(function(v){return v.name}).join("_")+"$";var e=Be[b];if(void 0!==e)return e;e=["retType"];for(var f=[d],
l="",m=0;m<a-1;++m)l+=(0!==m?", ":"")+"arg"+m,e.push("argType"+m),f.push(c[1+m]);var p="return function "+jd("methodCaller_"+b)+"(handle, name, destructors, args) {\n",u=0;for(m=0;m<a-1;++m)p+=" var arg"+m+" = argType"+m+".readValueFromPointer(args"+(u?"+"+u:"")+");\n",u+=c[m+1].argPackAdvance;p+=" var rv = handle[name]("+l+");\n";for(m=0;m<a-1;++m)c[m+1].deleteObject&&(p+=" argType"+m+".deleteObject(arg"+m+");\n");d.Gk||(p+=" return retType.toWireType(destructors, rv);\n");e.push(p+"};\n");
a=ce(e).apply(null,f);e=Ae(a);return Be[b]=e},aa:function(a){a=xe(a);return Sd(g[a])},o:function(a,b){a=je(a);b=je(b);return Sd(a[b])},d:function(a){4<a&&(he[a].Gj+=1)},S:function(a,b,c,d){a=je(a);var e=De[b];e||(e=Ce(b),De[b]=e);return e(a,c,d)},u:function(){return Sd([])},f:function(a){return Sd(xe(a))},B:function(){return Sd({})},m:function(a){var b=je(a);dd(b);ie(a)},g:function(a,b,c){a=je(a);b=je(b);c=je(c);a[b]=c},e:function(a,b){a=le(a,"_emval_take_value");a=a.readValueFromPointer(b);return Sd(a)},
c:function(){Va("")},da:function(a,b,c){Ee.length=0;var d;for(c>>=2;d=t[b++];)c+=105!=d&c,Ee.push(105==d?E[c]:aa[c++>>1]),++c;return Ib[a].apply(null,Ee)},Id:function(a,b,c){var d=g.canvas;E[a>>2]=d.width;E[b>>2]=d.height;E[c>>2]=af?1:0},A:Me,yg:function(a){M.activeTexture(a)},xg:function(a,b){M.attachShader(N[a],Hf[b])},Bd:function(a,b){M.beginQuery(a,Kf[b])},Og:function(a,b){M.pi.beginQueryEXT(a,Kf[b])},hd:function(a){M.beginTransformFeedback(a)},wg:function(a,b,c){M.bindAttribLocation(N[a],b,cb(c))},
vg:function(a,b){35051==a?M.Ji=b:35052==a&&(M.oi=b);M.bindBuffer(a,Df[b])},ed:function(a,b,c){M.bindBufferBase(a,b,Df[c])},fd:function(a,b,c,d,e){M.bindBufferRange(a,b,Df[c],d,e)},ug:function(a,b){M.bindFramebuffer(a,Ef[b])},tg:function(a,b){M.bindRenderbuffer(a,Ff[b])},ic:function(a,b){M.bindSampler(a,Lf[b])},sg:function(a,b){M.bindTexture(a,Gf[b])},$b:function(a,b){M.bindTransformFeedback(a,Mf[b])},md:function(a){M.bindVertexArray(If[a])},Gg:function(a){M.bindVertexArray(If[a])},rg:function(a,b,
c,d){M.blendColor(a,b,c,d)},qg:function(a){M.blendEquation(a)},pg:function(a,b){M.blendEquationSeparate(a,b)},og:function(a,b){M.blendFunc(a,b)},ng:function(a,b,c,d){M.blendFuncSeparate(a,b,c,d)},pd:function(a,b,c,d,e,f,l,m,p,u){M.blitFramebuffer(a,b,c,d,e,f,l,m,p,u)},mg:function(a,b,c,d){2<=T.version?c&&b?M.bufferData(a,t,d,c,b):M.bufferData(a,b,d):M.bufferData(a,c?t.subarray(c,c+b):b,d)},lg:function(a,b,c,d){2<=T.version?c&&M.bufferSubData(a,b,t,d,c):M.bufferSubData(a,b,t.subarray(d,d+c))},kg:function(a){return M.checkFramebufferStatus(a)},
jg:function(a){M.clear(a)},Hc:function(a,b,c,d){M.clearBufferfi(a,b,c,d)},Ic:function(a,b,c){M.clearBufferfv(a,b,B,c>>2)},Lc:function(a,b,c){M.clearBufferiv(a,b,E,c>>2)},Kc:function(a,b,c){M.clearBufferuiv(a,b,h,c>>2)},ig:function(a,b,c,d){M.clearColor(a,b,c,d)},hg:function(a){M.clearDepth(a)},gg:function(a){M.clearStencil(a)},sc:function(a,b,c,d){return M.clientWaitSync(Nf[a],b,(c>>>0)+4294967296*d)},fg:function(a,b,c,d){M.colorMask(!!a,!!b,!!c,!!d)},eg:function(a){M.compileShader(Hf[a])},dg:function(a,
b,c,d,e,f,l,m){2<=T.version?M.oi||!l?M.compressedTexImage2D(a,b,c,d,e,f,l,m):M.compressedTexImage2D(a,b,c,d,e,f,t,m,l):M.compressedTexImage2D(a,b,c,d,e,f,m?t.subarray(m,m+l):null)},Gd:function(a,b,c,d,e,f,l,m,p){M.oi?M.compressedTexImage3D(a,b,c,d,e,f,l,m,p):M.compressedTexImage3D(a,b,c,d,e,f,l,t,p,m)},cg:function(a,b,c,d,e,f,l,m,p){2<=T.version?M.oi||!m?M.compressedTexSubImage2D(a,b,c,d,e,f,l,m,p):M.compressedTexSubImage2D(a,b,c,d,e,f,l,t,p,m):M.compressedTexSubImage2D(a,b,c,d,e,f,l,p?t.subarray(p,
p+m):null)},Fd:function(a,b,c,d,e,f,l,m,p,u,v){M.oi?M.compressedTexSubImage3D(a,b,c,d,e,f,l,m,p,u,v):M.compressedTexSubImage3D(a,b,c,d,e,f,l,m,p,t,v,u)},Fc:function(a,b,c,d,e){M.copyBufferSubData(a,b,c,d,e)},bg:function(a,b,c,d,e,f,l,m){M.copyTexImage2D(a,b,c,d,e,f,l,m)},ag:function(a,b,c,d,e,f,l,m){M.copyTexSubImage2D(a,b,c,d,e,f,l,m)},Hd:function(a,b,c,d,e,f,l,m,p){M.copyTexSubImage3D(a,b,c,d,e,f,l,m,p)},$f:function(){var a=Sf(N),b=M.createProgram();b.name=a;b.Ci=b.Ai=b.Bi=0;b.rj=1;N[a]=b;return a},
_f:function(a){var b=Sf(Hf);Hf[b]=M.createShader(a);return b},Zf:function(a){M.cullFace(a)},Yf:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Df[d];e&&(M.deleteBuffer(e),e.name=0,Df[d]=null,d==M.Ji&&(M.Ji=0),d==M.oi&&(M.oi=0))}},Xf:function(a,b){for(var c=0;c<a;++c){var d=E[b+4*c>>2],e=Ef[d];e&&(M.deleteFramebuffer(e),e.name=0,Ef[d]=null)}},Wf:function(a){if(a){var b=N[a];b?(M.deleteProgram(b),b.name=0,N[a]=null):R(1281)}},Dd:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Kf[d];e&&
(M.deleteQuery(e),Kf[d]=null)}},Qg:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Kf[d];e&&(M.pi.deleteQueryEXT(e),Kf[d]=null)}},Vf:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Ff[d];e&&(M.deleteRenderbuffer(e),e.name=0,Ff[d]=null)}},kc:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Lf[d];e&&(M.deleteSampler(e),e.name=0,Lf[d]=null)}},Uf:function(a){if(a){var b=Hf[a];b?(M.deleteShader(b),Hf[a]=null):R(1281)}},tc:function(a){if(a){var b=Nf[a];b?(M.deleteSync(b),b.name=0,Nf[a]=
null):R(1281)}},Tf:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Gf[d];e&&(M.deleteTexture(e),e.name=0,Gf[d]=null)}},_b:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Mf[d];e&&(M.deleteTransformFeedback(e),e.name=0,Mf[d]=null)}},ld:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2];M.deleteVertexArray(If[d]);If[d]=null}},Fg:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2];M.deleteVertexArray(If[d]);If[d]=null}},Sf:function(a){M.depthFunc(a)},Rf:function(a){M.depthMask(!!a)},
Qf:function(a,b){M.depthRange(a,b)},Pf:function(a,b){M.detachShader(N[a],Hf[b])},Of:function(a){M.disable(a)},Nf:function(a){M.disableVertexAttribArray(a)},Mf:function(a,b,c){M.drawArrays(a,b,c)},xc:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},Bg:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},Kb:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},Pd:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},Lb:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},wd:function(a,b){for(var c=Wf[a],d=0;d<a;d++)c[d]=
E[b+4*d>>2];M.drawBuffers(c)},Nd:function(a,b){for(var c=Wf[a],d=0;d<a;d++)c[d]=E[b+4*d>>2];M.drawBuffers(c)},Cg:function(a,b){for(var c=Wf[a],d=0;d<a;d++)c[d]=E[b+4*d>>2];M.drawBuffers(c)},Lf:function(a,b,c,d){M.drawElements(a,b,c,d)},wc:function(a,b,c,d,e){M.drawElementsInstanced(a,b,c,d,e)},Ag:function(a,b,c,d,e){M.drawElementsInstanced(a,b,c,d,e)},Ib:function(a,b,c,d,e){M.drawElementsInstanced(a,b,c,d,e)},Jb:function(a,b,c,d,e){M.drawElementsInstanced(a,b,c,d,e)},Od:function(a,b,c,d,e){M.drawElementsInstanced(a,
b,c,d,e)},Ld:function(a,b,c,d,e,f){Xf(a,d,e,f)},Kf:function(a){M.enable(a)},Jf:function(a){M.enableVertexAttribArray(a)},Ad:function(a){M.endQuery(a)},Ng:function(a){M.pi.endQueryEXT(a)},gd:function(){M.endTransformFeedback()},vc:function(a,b){return(a=M.fenceSync(a,b))?(b=Sf(Nf),a.name=b,Nf[b]=a,b):0},If:function(){M.finish()},Hf:function(){M.flush()},Gf:function(a,b,c,d){M.framebufferRenderbuffer(a,b,c,Ff[d])},Ff:function(a,b,c,d,e){M.framebufferTexture2D(a,b,c,Gf[d],e)},nd:function(a,b,c,d,e){M.framebufferTextureLayer(a,
b,Gf[c],d,e)},Ef:function(a){M.frontFace(a)},Df:function(a,b){Yf(a,b,"createBuffer",Df)},Bf:function(a,b){Yf(a,b,"createFramebuffer",Ef)},Ed:function(a,b){Yf(a,b,"createQuery",Kf)},Rg:function(a,b){for(var c=0;c<a;c++){var d=M.pi.createQueryEXT();if(!d){for(R(1282);c<a;)E[b+4*c++>>2]=0;break}var e=Sf(Kf);d.name=e;Kf[e]=d;E[b+4*c>>2]=e}},Af:function(a,b){Yf(a,b,"createRenderbuffer",Ff)},lc:function(a,b){Yf(a,b,"createSampler",Lf)},zf:function(a,b){Yf(a,b,"createTexture",Gf)},Zb:function(a,b){Yf(a,
b,"createTransformFeedback",Mf)},kd:function(a,b){Yf(a,b,"createVertexArray",If)},Eg:function(a,b){Yf(a,b,"createVertexArray",If)},Cf:function(a){M.generateMipmap(a)},yf:function(a,b,c,d,e,f,l){Zf("getActiveAttrib",a,b,c,d,e,f,l)},xf:function(a,b,c,d,e,f,l){Zf("getActiveUniform",a,b,c,d,e,f,l)},Ac:function(a,b,c,d,e){a=N[a];if(a=M.getActiveUniformBlockName(a,b))e&&0<c?(c=db(a,t,e,c),d&&(E[d>>2]=c)):d&&(E[d>>2]=0)},Bc:function(a,b,c,d){if(d)if(a=N[a],35393==c)c=M.getActiveUniformBlockName(a,b),E[d>>
2]=c.length+1;else{if(a=M.getActiveUniformBlockParameter(a,b,c),null!==a)if(35395==c)for(c=0;c<a.length;c++)E[d+4*c>>2]=a[c];else E[d>>2]=a}else R(1281)},Dc:function(a,b,c,d,e){if(e)if(0<b&&0==c)R(1281);else{a=N[a];for(var f=[],l=0;l<b;l++)f.push(E[c+4*l>>2]);if(a=M.getActiveUniforms(a,f,d))for(b=a.length,l=0;l<b;l++)E[e+4*l>>2]=a[l]}else R(1281)},wf:function(a,b,c,d){a=M.getAttachedShaders(N[a]);var e=a.length;e>b&&(e=b);E[c>>2]=e;for(b=0;b<e;++b)E[d+4*b>>2]=Hf.indexOf(a[b])},vf:function(a,b){return M.getAttribLocation(N[a],
cb(b))},uf:function(a,b){ag(a,b,4)},mc:function(a,b,c){c?$f(c,M.getBufferParameter(a,b)):R(1281)},tf:function(a,b,c){c?E[c>>2]=M.getBufferParameter(a,b):R(1281)},sf:function(){var a=M.getError()||Rf;Rf=0;return a},rf:function(a,b){ag(a,b,2)},Uc:function(a,b){return M.getFragDataLocation(N[a],cb(b))},qf:function(a,b,c,d){a=M.getFramebufferAttachmentParameter(a,b,c);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;E[d>>2]=a},oc:function(a,b,c){bg(a,b,c,1)},qc:function(a,b){ag(a,
b,1)},id:function(a,b,c){bg(a,b,c,0)},pf:function(a,b){ag(a,b,0)},Ob:function(a,b,c,d,e){if(0>d)R(1281);else if(e){if(a=M.getInternalformatParameter(a,b,c),null!==a)for(b=0;b<a.length&&b<d;++b)E[e+4*b>>2]=a[b]}else R(1281)},Vb:function(){R(1282)},nf:function(a,b,c,d){a=M.getProgramInfoLog(N[a]);null===a&&(a="(unknown error)");b=0<b&&d?db(a,t,d,b):0;c&&(E[c>>2]=b)},of:function(a,b,c){if(c)if(a>=Cf)R(1281);else if(a=N[a],35716==b)a=M.getProgramInfoLog(a),null===a&&(a="(unknown error)"),E[c>>2]=a.length+
1;else if(35719==b){if(!a.Ci)for(b=0;b<M.getProgramParameter(a,35718);++b)a.Ci=Math.max(a.Ci,M.getActiveUniform(a,b).name.length+1);E[c>>2]=a.Ci}else if(35722==b){if(!a.Ai)for(b=0;b<M.getProgramParameter(a,35721);++b)a.Ai=Math.max(a.Ai,M.getActiveAttrib(a,b).name.length+1);E[c>>2]=a.Ai}else if(35381==b){if(!a.Bi)for(b=0;b<M.getProgramParameter(a,35382);++b)a.Bi=Math.max(a.Bi,M.getActiveUniformBlockName(a,b).length+1);E[c>>2]=a.Bi}else E[c>>2]=M.getProgramParameter(a,b);else R(1281)},Ig:function(a,
b,c){if(c){a=Kf[a];b=2>T.version?M.pi.getQueryObjectEXT(a,b):M.getQueryParameter(a,b);var d;"boolean"==typeof b?d=b?1:0:d=b;$f(c,d)}else R(1281)},Kg:function(a,b,c){if(c){a=M.pi.getQueryObjectEXT(Kf[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;E[c>>2]=d}else R(1281)},Hg:function(a,b,c){if(c){a=Kf[a];b=2>T.version?M.pi.getQueryObjectEXT(a,b):M.getQueryParameter(a,b);var d;"boolean"==typeof b?d=b?1:0:d=b;$f(c,d)}else R(1281)},yd:function(a,b,c){if(c){a=M.getQueryParameter(Kf[a],b);var d;"boolean"==typeof a?
d=a?1:0:d=a;E[c>>2]=d}else R(1281)},Jg:function(a,b,c){if(c){a=M.pi.getQueryObjectEXT(Kf[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;E[c>>2]=d}else R(1281)},zd:function(a,b,c){c?E[c>>2]=M.getQuery(a,b):R(1281)},Lg:function(a,b,c){c?E[c>>2]=M.pi.getQueryEXT(a,b):R(1281)},mf:function(a,b,c){c?E[c>>2]=M.getRenderbufferParameter(a,b):R(1281)},bc:function(a,b,c){c?B[c>>2]=M.getSamplerParameter(Lf[a],b):R(1281)},dc:function(a,b,c){c?E[c>>2]=M.getSamplerParameter(Lf[a],b):R(1281)},kf:function(a,b,c,d){a=
M.getShaderInfoLog(Hf[a]);null===a&&(a="(unknown error)");b=0<b&&d?db(a,t,d,b):0;c&&(E[c>>2]=b)},jf:function(a,b,c,d){a=M.getShaderPrecisionFormat(a,b);E[c>>2]=a.rangeMin;E[c+4>>2]=a.rangeMax;E[d>>2]=a.precision},hf:function(a,b,c,d){if(a=M.getShaderSource(Hf[a]))b=0<b&&d?db(a,t,d,b):0,c&&(E[c>>2]=b)},lf:function(a,b,c){c?35716==b?(a=M.getShaderInfoLog(Hf[a]),null===a&&(a="(unknown error)"),E[c>>2]=a?a.length+1:0):35720==b?(a=M.getShaderSource(Hf[a]),E[c>>2]=a?a.length+1:0):E[c>>2]=M.getShaderParameter(Hf[a],
b):R(1281)},gf:function(a){var b=Of[a];if(!b){switch(a){case 7939:b=M.getSupportedExtensions()||[];b=b.concat(b.map(function(d){return"GL_"+d}));b=cg(b.join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=M.getParameter(a))||R(1280);b=b&&cg(b);break;case 7938:b=M.getParameter(7938);b=2<=T.version?"OpenGL ES 3.0 ("+b+")":"OpenGL ES 2.0 ("+b+")";b=cg(b);break;case 35724:b=M.getParameter(35724);var c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==c&&(3==c[1].length&&(c[1]+="0"),
b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=cg(b);break;default:R(1280)}Of[a]=b}return b},Gc:function(a,b){if(2>T.version)return R(1282),0;var c=Pf[a];if(c)return 0>b||b>=c.length?(R(1281),0):c[b];switch(a){case 7939:return c=M.getSupportedExtensions()||[],c=c.concat(c.map(function(d){return"GL_"+d})),c=c.map(function(d){return cg(d)}),c=Pf[a]=c,0>b||b>=c.length?(R(1281),0):c[b];default:return R(1280),0}},pc:function(a,b,c,d,e){0>c?R(1281):e?(a=M.getSyncParameter(Nf[a],b),null!==a&&(E[e>>2]=a,d&&(E[d>>
2]=1))):R(1281)},ff:function(a,b,c){c?B[c>>2]=M.getTexParameter(a,b):R(1281)},ef:function(a,b,c){c?E[c>>2]=M.getTexParameter(a,b):R(1281)},bd:function(a,b,c,d,e,f,l){a=N[a];if(a=M.getTransformFeedbackVarying(a,b))l&&0<c?(c=db(a.name,t,l,c),d&&(E[d>>2]=c)):d&&(E[d>>2]=0),e&&(E[e>>2]=a.size),f&&(E[f>>2]=a.type)},Cc:function(a,b){return M.getUniformBlockIndex(N[a],cb(b))},Ec:function(a,b,c,d){if(d)if(0<b&&(0==c||0==d))R(1281);else{a=N[a];for(var e=[],f=0;f<b;f++)e.push(cb(E[c+4*f>>2]));if(a=M.getUniformIndices(a,
e))for(b=a.length,f=0;f<b;f++)E[d+4*f>>2]=a[f]}else R(1281)},bf:function(a,b){b=cb(b);if(a=N[a]){fg(a);var c=a.Pi,d=0,e=b,f=eg(b);0<f&&(d=parseInt(b.slice(f+1))>>>0,e=b.slice(0,f));if((e=a.sj[e])&&d<e[0]&&(d+=e[1],c[d]=c[d]||M.getUniformLocation(a,b)))return d}else R(1281);return-1},df:function(a,b,c){gg(a,b,c,2)},cf:function(a,b,c){gg(a,b,c,0)},Vc:function(a,b,c){gg(a,b,c,0)},$c:function(a,b,c){hg(a,b,c,0)},_c:function(a,b,c){hg(a,b,c,0)},_e:function(a,b,c){c?E[c>>2]=M.getVertexAttribOffset(a,b):
R(1281)},af:function(a,b,c){hg(a,b,c,2)},$e:function(a,b,c){hg(a,b,c,5)},Ze:function(a,b){M.hint(a,b)},Sb:function(a,b,c){for(var d=Wf[b],e=0;e<b;e++)d[e]=E[c+4*e>>2];M.invalidateFramebuffer(a,d)},Rb:function(a,b,c,d,e,f,l){for(var m=Wf[b],p=0;p<b;p++)m[p]=E[c+4*p>>2];M.invalidateSubFramebuffer(a,m,d,e,f,l)},Ye:function(a){return(a=Df[a])?M.isBuffer(a):0},Xe:function(a){return M.isEnabled(a)},We:function(a){return(a=Ef[a])?M.isFramebuffer(a):0},Ve:function(a){return(a=N[a])?M.isProgram(a):0},Cd:function(a){return(a=
Kf[a])?M.isQuery(a):0},Pg:function(a){return(a=Kf[a])?M.pi.isQueryEXT(a):0},Ue:function(a){return(a=Ff[a])?M.isRenderbuffer(a):0},jc:function(a){return(a=Lf[a])?M.isSampler(a):0},Te:function(a){return(a=Hf[a])?M.isShader(a):0},uc:function(a){return M.isSync(Nf[a])},Se:function(a){return(a=Gf[a])?M.isTexture(a):0},Yb:function(a){return M.isTransformFeedback(Mf[a])},jd:function(a){return(a=If[a])?M.isVertexArray(a):0},Dg:function(a){return(a=If[a])?M.isVertexArray(a):0},Re:function(a){M.lineWidth(a)},
Qe:function(a){a=N[a];M.linkProgram(a);a.Pi=0;a.sj={}},Xb:function(){M.pauseTransformFeedback()},Pe:function(a,b){3317==a&&(Qf=b);M.pixelStorei(a,b)},Oe:function(a,b){M.polygonOffset(a,b)},Ub:function(){R(1280)},Tb:function(){R(1280)},Mg:function(a,b){M.pi.queryCounterEXT(Kf[a],b)},Md:function(a){M.readBuffer(a)},Ne:function(a,b,c,d,e,f,l){if(2<=T.version)if(M.Ji)M.readPixels(a,b,c,d,e,f,l);else{var m=ig(f);M.readPixels(a,b,c,d,e,f,m,l>>jg(m))}else(l=kg(f,e,c,d,l))?M.readPixels(a,b,c,d,e,f,l):R(1280)},
Me:function(){},Le:function(a,b,c,d){M.renderbufferStorage(a,b,c,d)},od:function(a,b,c,d,e){M.renderbufferStorageMultisample(a,b,c,d,e)},Wb:function(){M.resumeTransformFeedback()},Ke:function(a,b){M.sampleCoverage(a,!!b)},fc:function(a,b,c){M.samplerParameterf(Lf[a],b,c)},ec:function(a,b,c){M.samplerParameterf(Lf[a],b,B[c>>2])},hc:function(a,b,c){M.samplerParameteri(Lf[a],b,c)},gc:function(a,b,c){M.samplerParameteri(Lf[a],b,E[c>>2])},Je:function(a,b,c,d){M.scissor(a,b,c,d)},Ie:function(){R(1280)},
He:function(a,b,c,d){b=Tf(b,c,d);M.shaderSource(Hf[a],b)},Ge:function(a,b,c){M.stencilFunc(a,b,c)},Fe:function(a,b,c,d){M.stencilFuncSeparate(a,b,c,d)},Ee:function(a){M.stencilMask(a)},De:function(a,b){M.stencilMaskSeparate(a,b)},Ce:function(a,b,c){M.stencilOp(a,b,c)},Be:function(a,b,c,d){M.stencilOpSeparate(a,b,c,d)},Ae:function(a,b,c,d,e,f,l,m,p){if(2<=T.version)if(M.oi)M.texImage2D(a,b,c,d,e,f,l,m,p);else if(p){var u=ig(m);M.texImage2D(a,b,c,d,e,f,l,m,u,p>>jg(u))}else M.texImage2D(a,b,c,d,e,f,
l,m,null);else M.texImage2D(a,b,c,d,e,f,l,m,p?kg(m,l,d,e,p):null)},Kd:function(a,b,c,d,e,f,l,m,p,u){if(M.oi)M.texImage3D(a,b,c,d,e,f,l,m,p,u);else if(u){var v=ig(p);M.texImage3D(a,b,c,d,e,f,l,m,p,v,u>>jg(v))}else M.texImage3D(a,b,c,d,e,f,l,m,p,null)},ze:function(a,b,c){M.texParameterf(a,b,c)},ye:function(a,b,c){M.texParameterf(a,b,B[c>>2])},xe:function(a,b,c){M.texParameteri(a,b,c)},we:function(a,b,c){M.texParameteri(a,b,E[c>>2])},Qb:function(a,b,c,d,e){M.texStorage2D(a,b,c,d,e)},Pb:function(a,b,
c,d,e,f){M.texStorage3D(a,b,c,d,e,f)},ve:function(a,b,c,d,e,f,l,m,p){if(2<=T.version)if(M.oi)M.texSubImage2D(a,b,c,d,e,f,l,m,p);else if(p){var u=ig(m);M.texSubImage2D(a,b,c,d,e,f,l,m,u,p>>jg(u))}else M.texSubImage2D(a,b,c,d,e,f,l,m,null);else u=null,p&&(u=kg(m,l,e,f,p)),M.texSubImage2D(a,b,c,d,e,f,l,m,u)},Jd:function(a,b,c,d,e,f,l,m,p,u,v){if(M.oi)M.texSubImage3D(a,b,c,d,e,f,l,m,p,u,v);else if(v){var A=ig(u);M.texSubImage3D(a,b,c,d,e,f,l,m,p,u,A,v>>jg(A))}else M.texSubImage3D(a,b,c,d,e,f,l,m,p,u,
null)},dd:function(a,b,c,d){a=N[a];for(var e=[],f=0;f<b;f++)e.push(cb(E[c+4*f>>2]));M.transformFeedbackVaryings(a,e,d)},ue:function(a,b){M.uniform1f(Y(a),b)},te:function(a,b,c){if(2<=T.version)b&&M.uniform1fv(Y(a),B,c>>2,b);else{if(288>=b)for(var d=lg[b-1],e=0;e<b;++e)d[e]=B[c+4*e>>2];else d=B.subarray(c>>2,c+4*b>>2);M.uniform1fv(Y(a),d)}},se:function(a,b){M.uniform1i(Y(a),b)},re:function(a,b,c){if(2<=T.version)b&&M.uniform1iv(Y(a),E,c>>2,b);else{if(288>=b)for(var d=mg[b-1],e=0;e<b;++e)d[e]=E[c+4*
e>>2];else d=E.subarray(c>>2,c+4*b>>2);M.uniform1iv(Y(a),d)}},Tc:function(a,b){M.uniform1ui(Y(a),b)},Pc:function(a,b,c){b&&M.uniform1uiv(Y(a),h,c>>2,b)},qe:function(a,b,c){M.uniform2f(Y(a),b,c)},pe:function(a,b,c){if(2<=T.version)b&&M.uniform2fv(Y(a),B,c>>2,2*b);else{if(144>=b)for(var d=lg[2*b-1],e=0;e<2*b;e+=2)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2];else d=B.subarray(c>>2,c+8*b>>2);M.uniform2fv(Y(a),d)}},oe:function(a,b,c){M.uniform2i(Y(a),b,c)},ne:function(a,b,c){if(2<=T.version)b&&M.uniform2iv(Y(a),
E,c>>2,2*b);else{if(144>=b)for(var d=mg[2*b-1],e=0;e<2*b;e+=2)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2];else d=E.subarray(c>>2,c+8*b>>2);M.uniform2iv(Y(a),d)}},Sc:function(a,b,c){M.uniform2ui(Y(a),b,c)},Oc:function(a,b,c){b&&M.uniform2uiv(Y(a),h,c>>2,2*b)},me:function(a,b,c,d){M.uniform3f(Y(a),b,c,d)},le:function(a,b,c){if(2<=T.version)b&&M.uniform3fv(Y(a),B,c>>2,3*b);else{if(96>=b)for(var d=lg[3*b-1],e=0;e<3*b;e+=3)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2],d[e+2]=B[c+(4*e+8)>>2];else d=B.subarray(c>>
2,c+12*b>>2);M.uniform3fv(Y(a),d)}},ke:function(a,b,c,d){M.uniform3i(Y(a),b,c,d)},je:function(a,b,c){if(2<=T.version)b&&M.uniform3iv(Y(a),E,c>>2,3*b);else{if(96>=b)for(var d=mg[3*b-1],e=0;e<3*b;e+=3)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2],d[e+2]=E[c+(4*e+8)>>2];else d=E.subarray(c>>2,c+12*b>>2);M.uniform3iv(Y(a),d)}},Rc:function(a,b,c,d){M.uniform3ui(Y(a),b,c,d)},Nc:function(a,b,c){b&&M.uniform3uiv(Y(a),h,c>>2,3*b)},ie:function(a,b,c,d,e){M.uniform4f(Y(a),b,c,d,e)},he:function(a,b,c){if(2<=T.version)b&&
M.uniform4fv(Y(a),B,c>>2,4*b);else{if(72>=b){var d=lg[4*b-1],e=B;c>>=2;for(var f=0;f<4*b;f+=4){var l=c+f;d[f]=e[l];d[f+1]=e[l+1];d[f+2]=e[l+2];d[f+3]=e[l+3]}}else d=B.subarray(c>>2,c+16*b>>2);M.uniform4fv(Y(a),d)}},ge:function(a,b,c,d,e){M.uniform4i(Y(a),b,c,d,e)},fe:function(a,b,c){if(2<=T.version)b&&M.uniform4iv(Y(a),E,c>>2,4*b);else{if(72>=b)for(var d=mg[4*b-1],e=0;e<4*b;e+=4)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2],d[e+2]=E[c+(4*e+8)>>2],d[e+3]=E[c+(4*e+12)>>2];else d=E.subarray(c>>2,c+16*b>>2);
M.uniform4iv(Y(a),d)}},Qc:function(a,b,c,d,e){M.uniform4ui(Y(a),b,c,d,e)},Mc:function(a,b,c){b&&M.uniform4uiv(Y(a),h,c>>2,4*b)},zc:function(a,b,c){a=N[a];M.uniformBlockBinding(a,b,c)},ee:function(a,b,c,d){if(2<=T.version)b&&M.uniformMatrix2fv(Y(a),!!c,B,d>>2,4*b);else{if(72>=b)for(var e=lg[4*b-1],f=0;f<4*b;f+=4)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2];else e=B.subarray(d>>2,d+16*b>>2);M.uniformMatrix2fv(Y(a),!!c,e)}},vd:function(a,b,c,d){b&&M.uniformMatrix2x3fv(Y(a),
!!c,B,d>>2,6*b)},td:function(a,b,c,d){b&&M.uniformMatrix2x4fv(Y(a),!!c,B,d>>2,8*b)},de:function(a,b,c,d){if(2<=T.version)b&&M.uniformMatrix3fv(Y(a),!!c,B,d>>2,9*b);else{if(32>=b)for(var e=lg[9*b-1],f=0;f<9*b;f+=9)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2],e[f+4]=B[d+(4*f+16)>>2],e[f+5]=B[d+(4*f+20)>>2],e[f+6]=B[d+(4*f+24)>>2],e[f+7]=B[d+(4*f+28)>>2],e[f+8]=B[d+(4*f+32)>>2];else e=B.subarray(d>>2,d+36*b>>2);M.uniformMatrix3fv(Y(a),!!c,e)}},ud:function(a,
b,c,d){b&&M.uniformMatrix3x2fv(Y(a),!!c,B,d>>2,6*b)},rd:function(a,b,c,d){b&&M.uniformMatrix3x4fv(Y(a),!!c,B,d>>2,12*b)},ce:function(a,b,c,d){if(2<=T.version)b&&M.uniformMatrix4fv(Y(a),!!c,B,d>>2,16*b);else{if(18>=b){var e=lg[16*b-1],f=B;d>>=2;for(var l=0;l<16*b;l+=16){var m=d+l;e[l]=f[m];e[l+1]=f[m+1];e[l+2]=f[m+2];e[l+3]=f[m+3];e[l+4]=f[m+4];e[l+5]=f[m+5];e[l+6]=f[m+6];e[l+7]=f[m+7];e[l+8]=f[m+8];e[l+9]=f[m+9];e[l+10]=f[m+10];e[l+11]=f[m+11];e[l+12]=f[m+12];e[l+13]=f[m+13];e[l+14]=f[m+14];e[l+15]=
f[m+15]}}else e=B.subarray(d>>2,d+64*b>>2);M.uniformMatrix4fv(Y(a),!!c,e)}},sd:function(a,b,c,d){b&&M.uniformMatrix4x2fv(Y(a),!!c,B,d>>2,8*b)},qd:function(a,b,c,d){b&&M.uniformMatrix4x3fv(Y(a),!!c,B,d>>2,12*b)},be:function(a){a=N[a];M.useProgram(a);M.Uj=a},ae:function(a){M.validateProgram(N[a])},$d:function(a,b){M.vertexAttrib1f(a,b)},_d:function(a,b){M.vertexAttrib1f(a,B[b>>2])},Zd:function(a,b,c){M.vertexAttrib2f(a,b,c)},Yd:function(a,b){M.vertexAttrib2f(a,B[b>>2],B[b+4>>2])},Xd:function(a,b,c,
d){M.vertexAttrib3f(a,b,c,d)},Wd:function(a,b){M.vertexAttrib3f(a,B[b>>2],B[b+4>>2],B[b+8>>2])},Vd:function(a,b,c,d,e){M.vertexAttrib4f(a,b,c,d,e)},Ud:function(a,b){M.vertexAttrib4f(a,B[b>>2],B[b+4>>2],B[b+8>>2],B[b+12>>2])},ac:function(a,b){M.vertexAttribDivisor(a,b)},zg:function(a,b){M.vertexAttribDivisor(a,b)},Mb:function(a,b){M.vertexAttribDivisor(a,b)},Qd:function(a,b){M.vertexAttribDivisor(a,b)},Nb:function(a,b){M.vertexAttribDivisor(a,b)},Zc:function(a,b,c,d,e){M.vertexAttribI4i(a,b,c,d,e)},
Xc:function(a,b){M.vertexAttribI4i(a,E[b>>2],E[b+4>>2],E[b+8>>2],E[b+12>>2])},Yc:function(a,b,c,d,e){M.vertexAttribI4ui(a,b,c,d,e)},Wc:function(a,b){M.vertexAttribI4ui(a,h[b>>2],h[b+4>>2],h[b+8>>2],h[b+12>>2])},ad:function(a,b,c,d,e){M.vertexAttribIPointer(a,b,c,d,e)},Sd:function(a,b,c,d,e,f){M.vertexAttribPointer(a,b,c,!!d,e,f)},Rd:function(a,b,c,d){M.viewport(a,b,c,d)},rc:function(a,b,c,d){M.waitSync(Nf[a],b,(c>>>0)+4294967296*d)},Eb:function(a){var b=t.length;a>>>=0;if(2147483648<a)return!1;for(var c=
1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{Wa.grow(e-fb.byteLength+65535>>>16);jb();var f=1;break a}catch(l){}f=void 0}if(f)return!0}return!1},va:function(a,b){b>>=2;b={alpha:!!E[b],depth:!!E[b+1],stencil:!!E[b+2],antialias:!!E[b+3],premultipliedAlpha:!!E[b+4],preserveDrawingBuffer:!!E[b+5],powerPreference:pg[E[b+6]],failIfMajorPerformanceCaveat:!!E[b+7],Cj:E[b+8],ol:E[b+9],Wj:E[b+10],uk:E[b+11],sl:E[b+
12],tl:E[b+13]};"number"==typeof a&&(a=cb(a));a=a&&"#canvas"!==a?"undefined"!=typeof lf&&Jf[a]?Jf[a]:rg(a):"undefined"!=typeof lf&&Jf.canvas?Jf.canvas:g.canvas;return!a||b.uk?0:mf(a,b)},yc:function(a){T==a&&(T=0);T===nf[a]&&(T=null);if("object"==typeof og)for(var b=nf[a].Qi.canvas,c=0;c<ng.length;++c)if(ng[c].target==b){var d=c--,e=ng[d];e.target.removeEventListener(e.il,e.hl,e.vl);ng.splice(d,1)}nf[a]&&nf[a].Qi.canvas&&(nf[a].Qi.canvas.lk=void 0);nf[a]=null},cd:function(a){a>>=2;for(var b=0;14>b;++b)E[a+
b]=0;E[a]=E[a+1]=E[a+3]=E[a+4]=E[a+8]=E[a+10]=1},Jc:function(a){return of(a)?0:-5},Ab:function(a,b){var c=0;tg().forEach(function(d,e){var f=b+c;e=h[a+4*e>>2]=f;for(f=0;f<d.length;++f)gb[e++>>0]=d.charCodeAt(f);gb[e>>0]=0;c+=d.length+1});return 0},Bb:function(a,b){var c=tg();h[a>>2]=c.length;var d=0;c.forEach(function(e){d+=e.length+1});h[b>>2]=d;return 0},la:Pe,sa:function(a){try{var b=bd(a);Hc(b);return 0}catch(c){if("undefined"==typeof Zc||!(c instanceof I))throw c;return c.Gi}},Fb:function(a,
b,c,d){try{a:{var e=bd(a);a=b;for(var f=b=0;f<c;f++){var l=h[a>>2],m=h[a+4>>2];a+=8;var p=e,u=l,v=m,A=void 0,G=gb;if(0>v||0>A)throw new I(28);if(null===p.fd)throw new I(8);if(1===(p.flags&2097155))throw new I(8);if(16384===(p.node.mode&61440))throw new I(31);if(!p.ii.read)throw new I(28);var r="undefined"!=typeof A;if(!r)A=p.position;else if(!p.seekable)throw new I(70);var y=p.ii.read(p,G,u,v,A);r||(p.position+=y);var F=y;if(0>F){var S=-1;break a}b+=F;if(F<m)break}S=b}h[d>>2]=S;return 0}catch(ca){if("undefined"==
typeof Zc||!(ca instanceof I))throw ca;return ca.Gi}},xb:function(a,b,c,d,e){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return 61;var f=bd(a);Ic(f,b,d);Hb=[f.position>>>0,(Gb=f.position,1<=+Math.abs(Gb)?0<Gb?(Math.min(+Math.floor(Gb/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Gb-+(~~Gb>>>0))/4294967296)>>>0:0)];E[e>>2]=Hb[0];E[e+4>>2]=Hb[1];f.xj&&0===b&&0===d&&(f.xj=null);return 0}catch(l){if("undefined"==typeof Zc||!(l instanceof I))throw l;return l.Gi}},ta:function(a,
b,c,d){try{a:{var e=bd(a);a=b;for(var f=b=0;f<c;f++){var l=h[a>>2],m=h[a+4>>2];a+=8;var p=Jc(e,gb,l,m);if(0>p){var u=-1;break a}b+=p}u=b}h[d>>2]=u;return 0}catch(v){if("undefined"==typeof Zc||!(v instanceof I))throw v;return v.Gi}},ga:function(a){M.activeTexture(a)},oa:function(a,b){M.attachShader(N[a],Hf[b])},_g:function(a,b){M.beginQuery(a,Kf[b])},ca:function(a,b){35051==a?M.Ji=b:35052==a&&(M.oi=b);M.bindBuffer(a,Df[b])},fa:function(a,b){M.bindFramebuffer(a,Ef[b])},eb:function(a,b){M.bindRenderbuffer(a,
Ff[b])},ib:function(a,b){M.bindTexture(a,Gf[b])},Wa:function(a,b){M.blendFunc(a,b)},Xa:function(a,b,c,d){M.blendFuncSeparate(a,b,c,d)},xh:function(a,b,c,d){2<=T.version?c&&b?M.bufferData(a,t,d,c,b):M.bufferData(a,b,d):M.bufferData(a,c?t.subarray(c,c+b):b,d)},wh:function(a,b,c,d){2<=T.version?c&&M.bufferSubData(a,b,t,d,c):M.bufferSubData(a,b,t.subarray(d,d+c))},s:function(a){M.clear(a)},Za:function(a,b,c,d){M.clearColor(a,b,c,d)},Ya:function(a){M.clearStencil(a)},ab:function(a,b,c,d){M.colorMask(!!a,
!!b,!!c,!!d)},oh:function(a){M.compileShader(Hf[a])},Ia:function(){var a=Sf(N),b=M.createProgram();b.name=a;b.Ci=b.Ai=b.Bi=0;b.rj=1;N[a]=b;return a},qh:function(a){var b=Sf(Hf);Hf[b]=M.createShader(a);return b},gb:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Df[d];e&&(M.deleteBuffer(e),e.name=0,Df[d]=null,d==M.Ji&&(M.Ji=0),d==M.oi&&(M.oi=0))}},cb:function(a,b){for(var c=0;c<a;++c){var d=E[b+4*c>>2],e=Ef[d];e&&(M.deleteFramebuffer(e),e.name=0,Ef[d]=null)}},nh:function(a){if(a){var b=N[a];
b?(M.deleteProgram(b),b.name=0,N[a]=null):R(1281)}},$g:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Kf[d];e&&(M.deleteQuery(e),Kf[d]=null)}},db:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Ff[d];e&&(M.deleteRenderbuffer(e),e.name=0,Ff[d]=null)}},rh:function(a){if(a){var b=Hf[a];b?(M.deleteShader(b),Hf[a]=null):R(1281)}},hb:function(a,b){for(var c=0;c<a;c++){var d=E[b+4*c>>2],e=Gf[d];e&&(M.deleteTexture(e),e.name=0,Gf[d]=null)}},Va:function(a){M.depthFunc(a)},$a:function(a){M.depthMask(!!a)},
Ua:function(a,b){M.depthRange(a,b)},Oa:function(a){M.disable(a)},I:function(a){M.disableVertexAttribArray(a)},U:function(a,b,c){M.drawArrays(a,b,c)},Ba:function(a,b,c,d){M.drawArraysInstanced(a,b,c,d)},fh:function(a,b){for(var c=Wf[a],d=0;d<a;d++)c[d]=E[b+4*d>>2];M.drawBuffers(c)},Ga:Xf,Ca:function(a,b,c,d,e){M.drawElementsInstanced(a,b,c,d,e)},Pa:function(a){M.enable(a)},E:function(a){M.enableVertexAttribArray(a)},Zg:function(a){M.endQuery(a)},ih:function(){M.finish()},Ea:function(a,b,c,d){M.framebufferRenderbuffer(a,
b,c,Ff[d])},eh:function(a,b,c,d,e){M.framebufferTexture2D(a,b,c,Gf[d],e)},_a:function(a){M.frontFace(a)},yh:function(a,b){Yf(a,b,"createBuffer",Df)},Fa:function(a,b){Yf(a,b,"createFramebuffer",Ef)},ah:function(a,b){Yf(a,b,"createQuery",Kf)},hh:function(a,b){Yf(a,b,"createRenderbuffer",Ff)},th:function(a,b){Yf(a,b,"createTexture",Gf)},vh:function(a){M.generateMipmap(a)},kh:function(a,b,c,d,e,f,l){Zf("getActiveAttrib",a,b,c,d,e,f,l)},jh:function(a,b,c,d,e,f,l){Zf("getActiveUniform",a,b,c,d,e,f,l)},
mh:function(a,b){return M.getAttribLocation(N[a],cb(b))},kb:function(a,b){ag(a,b,4)},mb:function(){var a=M.getError()||Rf;Rf=0;return a},W:function(a,b){ag(a,b,2)},n:function(a,b){ag(a,b,0)},ba:function(a,b,c){if(c)if(a>=Cf)R(1281);else if(a=N[a],35716==b)a=M.getProgramInfoLog(a),null===a&&(a="(unknown error)"),E[c>>2]=a.length+1;else if(35719==b){if(!a.Ci)for(b=0;b<M.getProgramParameter(a,35718);++b)a.Ci=Math.max(a.Ci,M.getActiveUniform(a,b).name.length+1);E[c>>2]=a.Ci}else if(35722==b){if(!a.Ai)for(b=
0;b<M.getProgramParameter(a,35721);++b)a.Ai=Math.max(a.Ai,M.getActiveAttrib(a,b).name.length+1);E[c>>2]=a.Ai}else if(35381==b){if(!a.Bi)for(b=0;b<M.getProgramParameter(a,35382);++b)a.Bi=Math.max(a.Bi,M.getActiveUniformBlockName(a,b).length+1);E[c>>2]=a.Bi}else E[c>>2]=M.getProgramParameter(a,b);else R(1281)},za:function(a,b,c){if(c){a=M.getQueryParameter(Kf[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;E[c>>2]=d}else R(1281)},lb:function(a,b,c,d){a=M.getShaderPrecisionFormat(a,b);E[c>>2]=a.rangeMin;
E[c+4>>2]=a.rangeMax;E[d>>2]=a.precision},ra:function(a){var b=Of[a];if(!b){switch(a){case 7939:b=M.getSupportedExtensions()||[];b=b.concat(b.map(function(d){return"GL_"+d}));b=cg(b.join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=M.getParameter(a))||R(1280);b=b&&cg(b);break;case 7938:b=M.getParameter(7938);b=2<=T.version?"OpenGL ES 3.0 ("+b+")":"OpenGL ES 2.0 ("+b+")";b=cg(b);break;case 35724:b=M.getParameter(35724);var c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==
c&&(3==c[1].length&&(c[1]+="0"),b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=cg(b);break;default:R(1280)}Of[a]=b}return b},lh:function(a,b){b=cb(b);if(a=N[a]){fg(a);var c=a.Pi,d=0,e=b,f=eg(b);0<f&&(d=parseInt(b.slice(f+1))>>>0,e=b.slice(0,f));if((e=a.sj[e])&&d<e[0]&&(d+=e[1],c[d]=c[d]||M.getUniformLocation(a,b)))return d}else R(1281);return-1},O:function(a){return M.isEnabled(a)},Ha:function(a){a=N[a];M.linkProgram(a);a.Pi=0;a.sj={}},bb:function(a,b){3317==a&&(Qf=b);M.pixelStorei(a,b)},Ta:function(a,
b){M.polygonOffset(a,b)},dh:function(a,b,c,d,e,f,l){if(2<=T.version)if(M.Ji)M.readPixels(a,b,c,d,e,f,l);else{var m=ig(f);M.readPixels(a,b,c,d,e,f,m,l>>jg(m))}else(l=kg(f,e,c,d,l))?M.readPixels(a,b,c,d,e,f,l):R(1280)},gh:function(a,b,c,d){M.renderbufferStorage(a,b,c,d)},Sa:function(a,b,c,d){M.scissor(a,b,c,d)},ph:function(a,b,c,d){b=Tf(b,c,d);M.shaderSource(Hf[a],b)},ea:function(a,b,c){M.stencilFunc(a,b,c)},V:function(a,b,c,d){M.stencilFuncSeparate(a,b,c,d)},Ra:function(a){M.stencilMask(a)},qa:function(a,
b){M.stencilMaskSeparate(a,b)},Qa:function(a,b,c){M.stencilOp(a,b,c)},pa:function(a,b,c,d){M.stencilOpSeparate(a,b,c,d)},$:function(a,b,c,d,e,f,l,m,p){if(2<=T.version)if(M.oi)M.texImage2D(a,b,c,d,e,f,l,m,p);else if(p){var u=ig(m);M.texImage2D(a,b,c,d,e,f,l,m,u,p>>jg(u))}else M.texImage2D(a,b,c,d,e,f,l,m,null);else M.texImage2D(a,b,c,d,e,f,l,m,p?kg(m,l,d,e,p):null)},uh:function(a,b,c){M.texParameterf(a,b,c)},G:function(a,b,c){M.texParameteri(a,b,c)},q:function(a,b){M.uniform1f(Y(a),b)},N:function(a,
b,c){if(2<=T.version)b&&M.uniform1fv(Y(a),B,c>>2,b);else{if(288>=b)for(var d=lg[b-1],e=0;e<b;++e)d[e]=B[c+4*e>>2];else d=B.subarray(c>>2,c+4*b>>2);M.uniform1fv(Y(a),d)}},k:function(a,b){M.uniform1i(Y(a),b)},y:function(a,b,c){M.uniform2f(Y(a),b,c)},Da:function(a,b,c){if(2<=T.version)b&&M.uniform2fv(Y(a),B,c>>2,2*b);else{if(144>=b)for(var d=lg[2*b-1],e=0;e<2*b;e+=2)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2];else d=B.subarray(c>>2,c+8*b>>2);M.uniform2fv(Y(a),d)}},ch:function(a,b,c){M.uniform2i(Y(a),b,c)},
ma:function(a,b,c,d){M.uniform3f(Y(a),b,c,d)},F:function(a,b,c){if(2<=T.version)b&&M.uniform3fv(Y(a),B,c>>2,3*b);else{if(96>=b)for(var d=lg[3*b-1],e=0;e<3*b;e+=3)d[e]=B[c+4*e>>2],d[e+1]=B[c+(4*e+4)>>2],d[e+2]=B[c+(4*e+8)>>2];else d=B.subarray(c>>2,c+12*b>>2);M.uniform3fv(Y(a),d)}},T:function(a,b,c,d,e){M.uniform4f(Y(a),b,c,d,e)},r:function(a,b,c){if(2<=T.version)b&&M.uniform4fv(Y(a),B,c>>2,4*b);else{if(72>=b){var d=lg[4*b-1],e=B;c>>=2;for(var f=0;f<4*b;f+=4){var l=c+f;d[f]=e[l];d[f+1]=e[l+1];d[f+
2]=e[l+2];d[f+3]=e[l+3]}}else d=B.subarray(c>>2,c+16*b>>2);M.uniform4fv(Y(a),d)}},na:function(a,b,c,d){if(2<=T.version)b&&M.uniformMatrix3fv(Y(a),!!c,B,d>>2,9*b);else{if(32>=b)for(var e=lg[9*b-1],f=0;f<9*b;f+=9)e[f]=B[d+4*f>>2],e[f+1]=B[d+(4*f+4)>>2],e[f+2]=B[d+(4*f+8)>>2],e[f+3]=B[d+(4*f+12)>>2],e[f+4]=B[d+(4*f+16)>>2],e[f+5]=B[d+(4*f+20)>>2],e[f+6]=B[d+(4*f+24)>>2],e[f+7]=B[d+(4*f+28)>>2],e[f+8]=B[d+(4*f+32)>>2];else e=B.subarray(d>>2,d+36*b>>2);M.uniformMatrix3fv(Y(a),!!c,e)}},t:function(a,b,c,
d){if(2<=T.version)b&&M.uniformMatrix4fv(Y(a),!!c,B,d>>2,16*b);else{if(18>=b){var e=lg[16*b-1],f=B;d>>=2;for(var l=0;l<16*b;l+=16){var m=d+l;e[l]=f[m];e[l+1]=f[m+1];e[l+2]=f[m+2];e[l+3]=f[m+3];e[l+4]=f[m+4];e[l+5]=f[m+5];e[l+6]=f[m+6];e[l+7]=f[m+7];e[l+8]=f[m+8];e[l+9]=f[m+9];e[l+10]=f[m+10];e[l+11]=f[m+11];e[l+12]=f[m+12];e[l+13]=f[m+13];e[l+14]=f[m+14];e[l+15]=f[m+15]}}else e=B.subarray(d>>2,d+64*b>>2);M.uniformMatrix4fv(Y(a),!!c,e)}},fb:function(a){a=N[a];M.useProgram(a);M.Uj=a},Aa:function(a,
b){M.vertexAttrib1f(a,b)},bh:function(a,b,c,d,e){M.vertexAttrib4f(a,b,c,d,e)},H:function(a,b){M.vertexAttribDivisor(a,b)},C:function(a,b,c,d,e,f){M.vertexAttribPointer(a,b,c,!!d,e,f)},jb:function(a,b,c,d){M.viewport(a,b,c,d)},sh:function(a,b,c,d,e){df();a=t.subarray(a,a+b);b=null;c=["image/jpeg","image/png","image/gif","image/bmp","image/svg+xml"][c];var f=[M.LUMINANCE,M.LUMINANCE_ALPHA,M.RGB,M.RGBA][d-1];void 0===f&&(f=M.RGBA);if(ff)try{b=new Blob([a],{type:c}),b.size!==a.length&&(b=new Blob([(new Uint8Array(a)).buffer],
{type:c}))}catch(G){}b||(c=new gf,c.append((new Uint8Array(a)).buffer),b=c.getBlob());var l=wg("wrapperTexturePreLoad","number",["number","number","number","number"]),m=wg("wrapperTexturePostLoad",null,["number","number","number"]),p=wg("wrapperTextureOnError",null,["number","number"]),u=hf.createObjectURL(b),v=document.createElement("img"),A=g.$$facade;v.onload=function(){if(A===g.$$facade){var G=1;l&&(G=l(e,v.width,v.height,d));var r=0;if(G)try{M.texImage2D(M.TEXTURE_2D,0,f,f,M.UNSIGNED_BYTE,v),
r=1}catch(y){}m&&m(0,e,r)}else m&&m(1,e,0);hf.revokeObjectURL(u)};v.onerror=function(){A===g.$$facade?p&&p(0,e):p&&p(1,e);hf.revokeObjectURL(u)};v.src=u},ya:function(){return g.bj?xg.close.apply(xg,arguments):yg.close.apply(yg,arguments)},Yg:function(){window.addEventListener("beforeunload",function(){g.bj?xg.close():yg.close()})},Xg:function(a,b,c){g.bk=0;self.bowser.chrome&&0>self.bowser.compareVersions([self.bowser.version,"68"])&&(g.bj=!0);return g.bj?xg.connect.apply(xg,arguments):yg.connect.apply(yg,
arguments)},Wg:function(a,b){return g.bj?xg.Jj.apply(xg,arguments):yg.Jj.apply(yg,arguments)},zb:function(a,b,c,d){return Cg(a,b,c,d)}};
(function(){function a(e){g.asm=e.exports;Wa=g.asm.Ih;jb();mb=g.asm.Kh;ob.unshift(g.asm.Jh);xb("wasm-instantiate")}function b(e){a(e.instance)}function c(e){return Fb().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){Ra("failed to asynchronously prepare wasm: "+f);Va(f)})}var d={a:Kg};wb("wasm-instantiate");if(g.instantiateWasm)try{return g.instantiateWasm(d,a)}catch(e){return Ra("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return Ua||
"function"!=typeof WebAssembly.instantiateStreaming||yb()||zb.startsWith("file://")||Ga||"function"!=typeof fetch?c(b):fetch(zb,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){Ra("wasm streaming compile failed: "+f);Ra("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})();g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.Jh).apply(null,arguments)};
g._callFuncWrapper=function(){return(g._callFuncWrapper=g.asm.Lh).apply(null,arguments)};g._main=function(){return(g._main=g.asm.Mh).apply(null,arguments)};g._wrapperTexturePreLoad=function(){return(g._wrapperTexturePreLoad=g.asm.Nh).apply(null,arguments)};g._wrapperTexturePostLoad=function(){return(g._wrapperTexturePostLoad=g.asm.Oh).apply(null,arguments)};g._wrapperTextureOnError=function(){return(g._wrapperTextureOnError=g.asm.Ph).apply(null,arguments)};
var ae=g._free=function(){return(ae=g._free=g.asm.Qh).apply(null,arguments)},Jg=g.___errno_location=function(){return(Jg=g.___errno_location=g.asm.Rh).apply(null,arguments)},dg=g._malloc=function(){return(dg=g._malloc=g.asm.Sh).apply(null,arguments)};g._webSocketHandlerOnMessage=function(){return(g._webSocketHandlerOnMessage=g.asm.Th).apply(null,arguments)};var $d=g.___getTypeName=function(){return($d=g.___getTypeName=g.asm.Uh).apply(null,arguments)};
g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.Vh).apply(null,arguments)};var fa=g.stackSave=function(){return(fa=g.stackSave=g.asm.Wh).apply(null,arguments)},na=g.stackRestore=function(){return(na=g.stackRestore=g.asm.Xh).apply(null,arguments)},ma=g.stackAlloc=function(){return(ma=g.stackAlloc=g.asm.Yh).apply(null,arguments)};g.dynCall_viiijiiiiiiiiiii=function(){return(g.dynCall_viiijiiiiiiiiiii=g.asm.Zh).apply(null,arguments)};
g.dynCall_iij=function(){return(g.dynCall_iij=g.asm._h).apply(null,arguments)};g.dynCall_iiiiiijii=function(){return(g.dynCall_iiiiiijii=g.asm.$h).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.ai).apply(null,arguments)};g.dynCall_viijii=function(){return(g.dynCall_viijii=g.asm.bi).apply(null,arguments)};g.dynCall_iiiiij=function(){return(g.dynCall_iiiiij=g.asm.ci).apply(null,arguments)};g.dynCall_iiiiijj=function(){return(g.dynCall_iiiiijj=g.asm.di).apply(null,arguments)};
g.dynCall_iiiiiijj=function(){return(g.dynCall_iiiiiijj=g.asm.ei).apply(null,arguments)};g.___emscripten_embedded_file_data=662400;g.addRunDependency=wb;g.removeRunDependency=xb;g.FS_createPath=Rc;g.FS_createDataFile=Tc;g.FS_createPreloadedFile=Yc;g.FS_createLazyFile=Wc;g.FS_createDevice=Uc;g.FS_unlink=Dc;g.ccall=Dg;g.cwrap=wg;var Lg;vb=function Mg(){Lg||Ng();Lg||(vb=Mg)};
function Ng(){function a(){if(!Lg&&(Lg=!0,g.calledRun=!0,!Xa)){g.noFSInit||Pc||(Pc=!0,Kc(),g.stdin=g.stdin,g.stdout=g.stdout,g.stderr=g.stderr,g.stdin?Uc("/dev","stdin",g.stdin):Cc("/dev/tty","/dev/stdin"),g.stdout?Uc("/dev","stdout",null,g.stdout):Cc("/dev/tty","/dev/stdout"),g.stderr?Uc("/dev","stderr",null,g.stderr):Cc("/dev/tty1","/dev/stderr"),Gc("/dev/stdin",0),Gc("/dev/stdout",1),Gc("/dev/stderr",1));mc=!1;Jb(ob);Jb(pb);if(g.onRuntimeInitialized)g.onRuntimeInitialized();if(Og){var b=g._main;
try{var c=b(0,0);Pe(c,!0)}catch(d){Qe(d)}}if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)b=g.postRun.shift(),qb.unshift(b);Jb(qb)}}if(!(0<tb)){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)sb();Jb(nb);0<tb||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1);a()},1)):a())}}if(g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();
var Og=!0;g.noInitialRun&&(Og=!1);Ng();
};
var catchExceptions = function (name, func) {
return function () {
try {
func.apply(this, arguments);
} catch (e) {
console.log("Unhandled exception in " + name + "():");
console.log(e);
}
};
};
var getElement = function (id) {
if (typeof id !== "string")
return id;
return document.getElementById (id);
};
var core_pool = [];
var getAvailableCore = function () {
for (var i = 0; i < core_pool.length; ++i) {
if (core_pool[i].$$available) {
return core_pool[i];
}
}
return null;
};
var enginePath;
if (_SC) {
enginePath = _SC._enginePath;
}
// used by Emscripten to find .wasm file
var locateFile = function (path) {
if (enginePath) {
return enginePath + "/" + path;
}
return path;
};
var createInstance = function (args) {
var facade;
if (args.isWrapper) {
// populate same instance object returned from engine-loader.js
facade = args.base;
args = args.args;
} else {
facade = {};
}
var container = getElement (args.container);
if (! container)
throw new TypeError ("'container' argument is missing or invalid");
facade.container = container;
var core = getAvailableCore ();
var core_is_new = ! core;
// provides reference point for absolute position
var sub_container = document.createElement ("div");
sub_container.setAttribute ("style", "position: relative; overflow: hidden; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
if (core_is_new) {
core = {
$$legacyClient: true,
$$available: false,
locateFile: locateFile,
};
core_pool.push (core);
core.callAfterMap = {
index: 0,
indexedWrappers: {},
};
// wraps canvas and SSR elements
var wrapper = document.createElement ("div");
wrapper.setAttribute ("style", "position: absolute; overflow: hidden; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
var canvas = document.createElement ("canvas");
canvas.setAttribute ("style", "position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
core.canvas = canvas;
core.$$wrapper = wrapper;
} else {
core.$$available = false;
}
core.canvas.style.display = "";
core.$$wrapper.appendChild (core.canvas);
// facade will only call core functions if it matches core.$$facade
core.$$facade = facade;
core.$$onReady = catchExceptions("onReady", function () {
var onReady = args.onReady ? args.onReady : args.on_ready;
if (typeof onReady === "function") {
onReady(facade);
}
});
if (typeof args.onError === "function") {
// XXX after abort() is called, this core cannot be reused
core.onAbort = catchExceptions("onError", function (message) {
// avoid presenting cryptic Emscripten errors as our own
args.onError("fatal error: see console");
});
}
// sits on top of wrapper, preventing wrapper and children from receiving input events
var event_blocker = document.createElement ("div");
event_blocker.setAttribute ("style", "position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 0; margin: 0; border: 0;");
event_blocker.onmousedown = function (e) { e.preventDefault (); }; // prevent cursor change on drag
event_blocker.oncontextmenu = function (e) { e.preventDefault (); };
sub_container.appendChild (core.$$wrapper);
sub_container.appendChild (event_blocker);
container.innerHTML = "";
container.appendChild (sub_container);
if (core_is_new) {
createInstanceImpl.call (core);
} else {
setTimeout (function () { core.$$setReady (); });
}
return facade;
};
// process deferred calls to createInstance() from engine-loader.js
(function () {
if (typeof _SC !== "undefined" && Array.isArray (_SC._deferredInstances))
for (var i = 0; i < _SC._deferredInstances.length; i++)
createInstance (_SC._deferredInstances[i]);
})();
return {
createInstance: createInstance
};
})();