@roomle/web-sdk 2.26.0 → 2.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/lib/{banana-for-scale-05fca6be.js → banana-for-scale-b325b756.js} +2 -2
  2. package/lib/{banana-for-scale-05fca6be.js.map → banana-for-scale-b325b756.js.map} +1 -1
  3. package/lib/{banana-for-scale-1d968b50.nomodule.js → banana-for-scale-cedb7a7b.nomodule.js} +2 -2
  4. package/lib/{banana-for-scale-1d968b50.nomodule.js.map → banana-for-scale-cedb7a7b.nomodule.js.map} +1 -1
  5. package/lib/{component-dimensioning-6ce00887.js → component-dimensioning-e91669c2.js} +2 -2
  6. package/lib/component-dimensioning-e91669c2.js.map +1 -0
  7. package/lib/{component-dimensioning-f5228e37.nomodule.js → component-dimensioning-ec0c0695.nomodule.js} +2 -2
  8. package/lib/component-dimensioning-ec0c0695.nomodule.js.map +1 -0
  9. package/lib/configurator-1e8ca083.nomodule.js +2 -0
  10. package/lib/{configurator-db15efff.nomodule.js.map → configurator-1e8ca083.nomodule.js.map} +1 -1
  11. package/lib/configurator-91a2e439.js +2 -0
  12. package/lib/{configurator-4a8929c6.js.map → configurator-91a2e439.js.map} +1 -1
  13. package/lib/configurator-dummy-app.js +1 -1
  14. package/lib/configurator-dummy-app.js.map +1 -1
  15. package/lib/configurator-main-ed07480b.js +2 -0
  16. package/lib/configurator-main-ed07480b.js.map +1 -0
  17. package/lib/configurator-main.nomodule.js +1 -1
  18. package/lib/{configurator-mesh-generator-bf0fe069.nomodule.js → configurator-mesh-generator-484d0c28.nomodule.js} +2 -2
  19. package/lib/configurator-mesh-generator-484d0c28.nomodule.js.map +1 -0
  20. package/lib/{configurator-mesh-generator-a82aeb4e.js → configurator-mesh-generator-4d1cbc6b.js} +2 -2
  21. package/lib/configurator-mesh-generator-4d1cbc6b.js.map +1 -0
  22. package/lib/{default-light-setting-28197064.nomodule.js → default-light-setting-a2b463ae.nomodule.js} +2 -2
  23. package/lib/default-light-setting-a2b463ae.nomodule.js.map +1 -0
  24. package/lib/{default-light-setting-cb59df9a.js → default-light-setting-ed0ed89e.js} +2 -2
  25. package/lib/default-light-setting-ed0ed89e.js.map +1 -0
  26. package/lib/definitions/common-core/mock/kernel-instances.d.ts +2 -0
  27. package/lib/definitions/common-core/src/kernel-access.d.ts +1 -0
  28. package/lib/definitions/common-core/src/webgl/image-renderer.d.ts +4 -4
  29. package/lib/definitions/configurator-core/__tests__/utils/configurator-history.d.ts +1 -0
  30. package/lib/definitions/configurator-core/src/roomle-configurator.d.ts +14 -2
  31. package/lib/definitions/configurator-core/src/services/configurator-ui-callback.d.ts +6 -0
  32. package/lib/definitions/configurator-core/src/utils/configurator-history.d.ts +42 -0
  33. package/lib/definitions/configurator-core/src/webgl/scene-helper.d.ts +3 -2
  34. package/lib/{dimensioning-helper-d225f2b4.js → dimensioning-helper-0183ab03.js} +2 -2
  35. package/lib/dimensioning-helper-0183ab03.js.map +1 -0
  36. package/lib/{dimensioning-helper-d7f18196.nomodule.js → dimensioning-helper-4aafe358.nomodule.js} +2 -2
  37. package/lib/dimensioning-helper-4aafe358.nomodule.js.map +1 -0
  38. package/lib/{glb-viewer-9381d4fe.js → glb-viewer-0452466e.js} +2 -2
  39. package/lib/{glb-viewer-9381d4fe.js.map → glb-viewer-0452466e.js.map} +1 -1
  40. package/lib/{glb-viewer-8bbde594.nomodule.js → glb-viewer-11dfcdb6.nomodule.js} +2 -2
  41. package/lib/{glb-viewer-8bbde594.nomodule.js.map → glb-viewer-11dfcdb6.nomodule.js.map} +1 -1
  42. package/lib/glb-viewer-main-f6fd6d9d.js +2 -0
  43. package/lib/glb-viewer-main-f6fd6d9d.js.map +1 -0
  44. package/lib/glb-viewer-main.nomodule.js +1 -1
  45. package/lib/image-renderer-8c3b0bb9.nomodule.js +2 -0
  46. package/lib/{image-renderer-92e3313b.nomodule.js.map → image-renderer-8c3b0bb9.nomodule.js.map} +1 -1
  47. package/lib/image-renderer-ff5eb4c8.js +2 -0
  48. package/lib/{image-renderer-3b1ee442.js.map → image-renderer-ff5eb4c8.js.map} +1 -1
  49. package/lib/legacy/{banana-for-scale-38eab087.legacy.js → banana-for-scale-0fe76bab.legacy.js} +2 -2
  50. package/lib/legacy/{banana-for-scale-38eab087.legacy.js.map → banana-for-scale-0fe76bab.legacy.js.map} +1 -1
  51. package/lib/legacy/{component-dimensioning-191e31f0.legacy.js → component-dimensioning-137137ef.legacy.js} +2 -2
  52. package/lib/legacy/component-dimensioning-137137ef.legacy.js.map +1 -0
  53. package/lib/legacy/configurator-f690ab2a.legacy.js +2 -0
  54. package/lib/legacy/{configurator-bac629e0.legacy.js.map → configurator-f690ab2a.legacy.js.map} +1 -1
  55. package/lib/legacy/configurator-main.legacy.js +1 -1
  56. package/lib/legacy/{configurator-mesh-generator-f09bd26b.legacy.js → configurator-mesh-generator-962ccf42.legacy.js} +2 -2
  57. package/lib/legacy/configurator-mesh-generator-962ccf42.legacy.js.map +1 -0
  58. package/lib/legacy/{default-light-setting-1ec4f4b6.legacy.js → default-light-setting-79979e5b.legacy.js} +2 -2
  59. package/lib/legacy/default-light-setting-79979e5b.legacy.js.map +1 -0
  60. package/lib/legacy/{dimensioning-helper-8cf5fb49.legacy.js → dimensioning-helper-f704767b.legacy.js} +2 -2
  61. package/lib/legacy/dimensioning-helper-f704767b.legacy.js.map +1 -0
  62. package/lib/legacy/{glb-viewer-22da7c62.legacy.js → glb-viewer-cf8a8f43.legacy.js} +2 -2
  63. package/lib/legacy/{glb-viewer-22da7c62.legacy.js.map → glb-viewer-cf8a8f43.legacy.js.map} +1 -1
  64. package/lib/legacy/glb-viewer-main.legacy.js +1 -1
  65. package/lib/legacy/image-renderer-7213779e.legacy.js +2 -0
  66. package/lib/legacy/{image-renderer-9c6d1a1b.legacy.js.map → image-renderer-7213779e.legacy.js.map} +1 -1
  67. package/lib/legacy/{material-viewer-451afb97.legacy.js → material-viewer-b19cbe54.legacy.js} +2 -2
  68. package/lib/legacy/material-viewer-b19cbe54.legacy.js.map +1 -0
  69. package/lib/legacy/material-viewer-main.legacy.js +1 -1
  70. package/lib/legacy/{mesh-generator-71c01adb.legacy.js → mesh-generator-c67674f2.legacy.js} +2 -2
  71. package/lib/legacy/mesh-generator-c67674f2.legacy.js.map +1 -0
  72. package/lib/legacy/{pixotron-f2654b42.legacy.js → pixotron-c4fac0ae.legacy.js} +2 -2
  73. package/lib/legacy/{pixotron-f2654b42.legacy.js.map → pixotron-c4fac0ae.legacy.js.map} +1 -1
  74. package/lib/legacy/{planner-4200cb3f.legacy.js → planner-379b577c.legacy.js} +2 -2
  75. package/lib/legacy/{planner-4200cb3f.legacy.js.map → planner-379b577c.legacy.js.map} +1 -1
  76. package/lib/legacy/planner-main.legacy.js +1 -1
  77. package/lib/legacy/{rapi-access-ebb2cc69.legacy.js → rapi-access-fe5574a3.legacy.js} +2 -2
  78. package/lib/legacy/{rapi-access-ebb2cc69.legacy.js.map → rapi-access-fe5574a3.legacy.js.map} +1 -1
  79. package/lib/legacy/roomle-sdk.legacy.js +1 -1
  80. package/lib/legacy/{scene-manager-40480d75.legacy.js → scene-manager-7be9a565.legacy.js} +2 -2
  81. package/lib/legacy/scene-manager-7be9a565.legacy.js.map +1 -0
  82. package/lib/legacy/static/ConfiguratorKernel-8b4bd961343f30f9.wasm +0 -0
  83. package/lib/legacy/static/{ConfiguratorKernel-1e2f7d6ca24383c9.js → ConfiguratorKernel-d989a8cab7a99da7.js} +10 -10
  84. package/lib/legacy/static/ConfiguratorKernelJs-797a216a4d116c96.mem +0 -0
  85. package/lib/legacy/static/ConfiguratorKernelJs-cd2a231b7b949964.js +185 -0
  86. package/lib/legacy/static/{RoomleCore-a56b243722499a86.js → RoomleCore-5be906753aa5228b.js} +7 -7
  87. package/lib/legacy/static/RoomleCore-e25d6cdea0e57965.wasm +0 -0
  88. package/lib/legacy/static/RoomleCoreJs-23db3d37e84e2b22.js +199 -0
  89. package/lib/legacy/static/RoomleCoreJs-fd6c115752cd6cd0.mem +0 -0
  90. package/lib/legacy/static/shaders-1c57017b6d362eb9.json +1 -0
  91. package/lib/legacy/{stats-helper-d5dc3a34.legacy.js → stats-helper-a4cd8c9f.legacy.js} +2 -2
  92. package/lib/legacy/{stats-helper-d5dc3a34.legacy.js.map → stats-helper-a4cd8c9f.legacy.js.map} +1 -1
  93. package/lib/{material-viewer-aeaff986.js → material-viewer-2dc1814c.js} +2 -2
  94. package/lib/material-viewer-2dc1814c.js.map +1 -0
  95. package/lib/{material-viewer-4da968da.nomodule.js → material-viewer-7d2eb311.nomodule.js} +2 -2
  96. package/lib/material-viewer-7d2eb311.nomodule.js.map +1 -0
  97. package/lib/material-viewer-main-d52dd578.js +2 -0
  98. package/lib/material-viewer-main-d52dd578.js.map +1 -0
  99. package/lib/material-viewer-main.nomodule.js +1 -1
  100. package/lib/{mesh-generator-8aaa0b10.js → mesh-generator-75d64184.js} +2 -2
  101. package/lib/mesh-generator-75d64184.js.map +1 -0
  102. package/lib/{mesh-generator-3fd1ad98.nomodule.js → mesh-generator-d84ad031.nomodule.js} +2 -2
  103. package/lib/mesh-generator-d84ad031.nomodule.js.map +1 -0
  104. package/lib/{pixotron-b2a163d4.nomodule.js → pixotron-6ec28601.nomodule.js} +2 -2
  105. package/lib/{pixotron-b2a163d4.nomodule.js.map → pixotron-6ec28601.nomodule.js.map} +1 -1
  106. package/lib/{pixotron-b88e1b25.js → pixotron-7ff769f3.js} +2 -2
  107. package/lib/{pixotron-b88e1b25.js.map → pixotron-7ff769f3.js.map} +1 -1
  108. package/lib/{planner-d34b9d35.nomodule.js → planner-180833e5.nomodule.js} +2 -2
  109. package/lib/{planner-d34b9d35.nomodule.js.map → planner-180833e5.nomodule.js.map} +1 -1
  110. package/lib/{planner-13243206.js → planner-b1be9728.js} +2 -2
  111. package/lib/{planner-13243206.js.map → planner-b1be9728.js.map} +1 -1
  112. package/lib/planner-main-ff9c2a84.js +2 -0
  113. package/lib/planner-main-ff9c2a84.js.map +1 -0
  114. package/lib/planner-main.nomodule.js +1 -1
  115. package/lib/{rapi-access-b8179375.js → rapi-access-abd53fb8.js} +2 -2
  116. package/lib/{rapi-access-b8179375.js.map → rapi-access-abd53fb8.js.map} +1 -1
  117. package/lib/{rapi-access-885a34b1.nomodule.js → rapi-access-ef24c5f8.nomodule.js} +2 -2
  118. package/lib/{rapi-access-885a34b1.nomodule.js.map → rapi-access-ef24c5f8.nomodule.js.map} +1 -1
  119. package/lib/{roomle-sdk-68b1208f.js → roomle-sdk-14dbc0a1.js} +2 -2
  120. package/lib/roomle-sdk-14dbc0a1.js.map +1 -0
  121. package/lib/roomle-sdk.nomodule.js +1 -1
  122. package/lib/{scene-manager-39bab117.js → scene-manager-3aaca073.js} +2 -2
  123. package/lib/scene-manager-3aaca073.js.map +1 -0
  124. package/lib/{scene-manager-a8e0af76.nomodule.js → scene-manager-bb7f8d41.nomodule.js} +2 -2
  125. package/lib/scene-manager-bb7f8d41.nomodule.js.map +1 -0
  126. package/lib/static/ConfiguratorKernel-8b4bd961343f30f9.wasm +0 -0
  127. package/lib/static/{ConfiguratorKernel-1e2f7d6ca24383c9.js → ConfiguratorKernel-d989a8cab7a99da7.js} +1 -1
  128. package/lib/static/ConfiguratorKernel-d989a8cab7a99da7.js.map +1 -0
  129. package/lib/static/ConfiguratorKernelJs-797a216a4d116c96.mem +0 -0
  130. package/lib/static/ConfiguratorKernelJs-cd2a231b7b949964.js +185 -0
  131. package/lib/static/{RoomleCore-a56b243722499a86.js → RoomleCore-5be906753aa5228b.js} +1 -1
  132. package/lib/static/{RoomleCore-a56b243722499a86.js.map → RoomleCore-5be906753aa5228b.js.map} +1 -1
  133. package/lib/static/RoomleCore-e25d6cdea0e57965.wasm +0 -0
  134. package/lib/static/RoomleCoreJs-23db3d37e84e2b22.js +199 -0
  135. package/lib/static/RoomleCoreJs-fd6c115752cd6cd0.mem +0 -0
  136. package/lib/static/shaders-1c57017b6d362eb9.json +1 -0
  137. package/lib/{stats-helper-ce621e1d.nomodule.js → stats-helper-0a9717e9.nomodule.js} +2 -2
  138. package/lib/{stats-helper-ce621e1d.nomodule.js.map → stats-helper-0a9717e9.nomodule.js.map} +1 -1
  139. package/lib/{stats-helper-93d2097f.js → stats-helper-4a155513.js} +2 -2
  140. package/lib/{stats-helper-93d2097f.js.map → stats-helper-4a155513.js.map} +1 -1
  141. package/package.json +2 -2
  142. package/lib/component-dimensioning-6ce00887.js.map +0 -1
  143. package/lib/component-dimensioning-f5228e37.nomodule.js.map +0 -1
  144. package/lib/configurator-4a8929c6.js +0 -2
  145. package/lib/configurator-db15efff.nomodule.js +0 -2
  146. package/lib/configurator-main-2bdf3143.js +0 -2
  147. package/lib/configurator-main-2bdf3143.js.map +0 -1
  148. package/lib/configurator-mesh-generator-a82aeb4e.js.map +0 -1
  149. package/lib/configurator-mesh-generator-bf0fe069.nomodule.js.map +0 -1
  150. package/lib/default-light-setting-28197064.nomodule.js.map +0 -1
  151. package/lib/default-light-setting-cb59df9a.js.map +0 -1
  152. package/lib/dimensioning-helper-d225f2b4.js.map +0 -1
  153. package/lib/dimensioning-helper-d7f18196.nomodule.js.map +0 -1
  154. package/lib/glb-viewer-main-f3406cf5.js +0 -2
  155. package/lib/glb-viewer-main-f3406cf5.js.map +0 -1
  156. package/lib/image-renderer-3b1ee442.js +0 -2
  157. package/lib/image-renderer-92e3313b.nomodule.js +0 -2
  158. package/lib/legacy/component-dimensioning-191e31f0.legacy.js.map +0 -1
  159. package/lib/legacy/configurator-bac629e0.legacy.js +0 -2
  160. package/lib/legacy/configurator-mesh-generator-f09bd26b.legacy.js.map +0 -1
  161. package/lib/legacy/default-light-setting-1ec4f4b6.legacy.js.map +0 -1
  162. package/lib/legacy/dimensioning-helper-8cf5fb49.legacy.js.map +0 -1
  163. package/lib/legacy/image-renderer-9c6d1a1b.legacy.js +0 -2
  164. package/lib/legacy/material-viewer-451afb97.legacy.js.map +0 -1
  165. package/lib/legacy/mesh-generator-71c01adb.legacy.js.map +0 -1
  166. package/lib/legacy/scene-manager-40480d75.legacy.js.map +0 -1
  167. package/lib/legacy/static/ConfiguratorKernel-baaee80927c9ed3c.wasm +0 -0
  168. package/lib/legacy/static/ConfiguratorKernelJs-6f8adeacebb2ea38.js +0 -185
  169. package/lib/legacy/static/ConfiguratorKernelJs-fda4a7e216d411c4.mem +0 -0
  170. package/lib/legacy/static/RoomleCore-ac2181c23d7e3088.wasm +0 -0
  171. package/lib/legacy/static/RoomleCoreJs-112bc1e3e8657dd1.mem +0 -0
  172. package/lib/legacy/static/RoomleCoreJs-be869bde68ed4601.js +0 -199
  173. package/lib/legacy/static/shaders-2c1a28938153ee6b.json +0 -1
  174. package/lib/material-viewer-4da968da.nomodule.js.map +0 -1
  175. package/lib/material-viewer-aeaff986.js.map +0 -1
  176. package/lib/material-viewer-main-44545959.js +0 -2
  177. package/lib/material-viewer-main-44545959.js.map +0 -1
  178. package/lib/mesh-generator-3fd1ad98.nomodule.js.map +0 -1
  179. package/lib/mesh-generator-8aaa0b10.js.map +0 -1
  180. package/lib/planner-main-2504a566.js +0 -2
  181. package/lib/planner-main-2504a566.js.map +0 -1
  182. package/lib/roomle-sdk-68b1208f.js.map +0 -1
  183. package/lib/scene-manager-39bab117.js.map +0 -1
  184. package/lib/scene-manager-a8e0af76.nomodule.js.map +0 -1
  185. package/lib/static/ConfiguratorKernel-1e2f7d6ca24383c9.js.map +0 -1
  186. package/lib/static/ConfiguratorKernel-baaee80927c9ed3c.wasm +0 -0
  187. package/lib/static/ConfiguratorKernelJs-6f8adeacebb2ea38.js +0 -185
  188. package/lib/static/ConfiguratorKernelJs-fda4a7e216d411c4.mem +0 -0
  189. package/lib/static/RoomleCore-ac2181c23d7e3088.wasm +0 -0
  190. package/lib/static/RoomleCoreJs-112bc1e3e8657dd1.mem +0 -0
  191. package/lib/static/RoomleCoreJs-be869bde68ed4601.js +0 -199
  192. package/lib/static/shaders-2c1a28938153ee6b.json +0 -1
@@ -1,2 +1,2 @@
1
- import{t as toRadiant,u as position3VectorsAreEqual,a8 as rotationQuaternionsAreEqual,a9 as getDelta,v as position2VectorsAreEqual,_ as __decorate,i as inject,e as dispose,h as getGUI,f as DynamicLightSettingLoader,R as RoomleComponentFactoryInitializer,aa as DynamicQualitySettingLoader}from"./rapi-access-b8179375.js";import{i as isWebGl2}from"./main-thread-to-worker-91bf9f5e.js";import{d as CameraControl,i as MIN_MOVE_DISTANCE,D as DynamicLightSetting,C as CameraControl3D,b as PixotronUtil,B as BakedShadowEnvironment,f as DAT_GUI_FILE_NAME,c as DynamicEnvironmentSettingLoader}from"./pixotron-b88e1b25.js";class CameraControl2D extends CameraControl{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let a=this._size,r=this._size;n>1?a=this._size*n:r=this._size*(s/i),this._center.copy(e),this._camera.left=a/-2,this._camera.right=a/2,this._camera.top=r/2,this._camera.bottom=r/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}const KEYBOARD_ROTATION_ANGLE=Math.PI/4;class CameraControlFirstPerson extends CameraControl{constructor(t,e,i,s){super(t,e,i),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=toRadiant(-60),this.maxPolarAngle=toRadiant(60),this._camera=s||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),i?this._camera.position.set(i.x,1.5,i.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let n=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(n),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*KEYBOARD_ROTATION_ANGLE*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*KEYBOARD_ROTATION_ANGLE*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,s=this.getCamera(),n=position3VectorsAreEqual(e,s.position),a=rotationQuaternionsAreEqual(i,s.quaternion);if(!e||n&&a)return!1;let r=this.getCamera().position.clone(),o=Math.min(10*t,1);r.lerp(e,o),this.getCamera().position.copy(r);let h=this.getCamera().quaternion.clone(),_=Math.min(5*t,1);h.slerp(i,_),this.getCamera().setRotationFromQuaternion(h);let d=!1;return this._keyMap.forEach(t=>{t&&(d=!0)}),d&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){getDelta(this._downPosition,this._position)<MIN_MOVE_DISTANCE&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),position2VectorsAreEqual(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}let SceneManager=(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._updateShadowsAndAO=!0,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof CameraControlFirstPerson&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof CameraControlFirstPerson&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_renderEverything(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!0),this._requestRender()}_renderWithoutShadowsAndAO(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!1),this._requestRender()}_requestRender(){if(!this._renderer)return;const t=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._pixotron.autoShadowsClear=this._updateShadowsAndAO,this._pixotron.autoSAOClear=this._updateShadowsAndAO,this._forceRender&&(this._pixotron.needsUpdate=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._updateShadowsAndAO=!0,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(t))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(t))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof DynamicLightSetting&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof CameraControl3D&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},a=THREE.sRGBEncoding,r=Math.floor(i*window.devicePixelRatio),o=Math.floor(s*window.devicePixelRatio);isWebGl2()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(r,o,n):this._renderTarget=new THREE.WebGLRenderTarget(r,o,n),this._renderTarget.texture.encoding=a,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender()),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._renderEverything()}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender()}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender()}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{dispose(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new PixotronUtil(this._pixotron),this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,a,r){return new Promise((o,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,a,null,r).then(t=>{this._setCamera("GLTF",t),o(t)},h)})}_loadGLB(t,e,i,s,n,a,r,o){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,a,r,o).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(DAT_GUI_FILE_NAME,{id:"dat-gui-js"}).then(()=>{let t=getGUI(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=getGUI();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){import("./stats-helper-93d2097f.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._renderEverything()}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new DynamicEnvironmentSettingLoader).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500)))}loadQualitySetting(t){this._pixotron&&(new DynamicQualitySettingLoader).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=DynamicLightSettingLoader.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender()}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._renderEverything()}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender()}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender()):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return RoomleComponentFactoryInitializer().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return __decorate([inject],t.prototype,"_domHelper",void 0),__decorate([inject],t.prototype,"_scriptLoader",void 0),__decorate([inject],t.prototype,"_lifeCycleManager",void 0),__decorate([inject],t.prototype,"_staticItemLoader",void 0),__decorate([inject],t.prototype,"_environmentLoader",void 0),__decorate([inject],t.prototype,"_initData",void 0),t})();export{CameraControl2D as C,SceneManager as S,CameraControlFirstPerson as a};
2
- //# sourceMappingURL=scene-manager-39bab117.js.map
1
+ import{t as toRadiant,u as position3VectorsAreEqual,a8 as rotationQuaternionsAreEqual,a9 as getDelta,v as position2VectorsAreEqual,_ as __decorate,i as inject,e as dispose,h as getGUI,f as DynamicLightSettingLoader,R as RoomleComponentFactoryInitializer,aa as DynamicQualitySettingLoader}from"./rapi-access-abd53fb8.js";import{i as isWebGl2}from"./main-thread-to-worker-91bf9f5e.js";import{d as CameraControl,i as MIN_MOVE_DISTANCE,D as DynamicLightSetting,C as CameraControl3D,b as PixotronUtil,B as BakedShadowEnvironment,f as DAT_GUI_FILE_NAME,c as DynamicEnvironmentSettingLoader}from"./pixotron-7ff769f3.js";class CameraControl2D extends CameraControl{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let a=this._size,r=this._size;n>1?a=this._size*n:r=this._size*(s/i),this._center.copy(e),this._camera.left=a/-2,this._camera.right=a/2,this._camera.top=r/2,this._camera.bottom=r/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}const KEYBOARD_ROTATION_ANGLE=Math.PI/4;class CameraControlFirstPerson extends CameraControl{constructor(t,e,i,s){super(t,e,i),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=toRadiant(-60),this.maxPolarAngle=toRadiant(60),this._camera=s||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),i?this._camera.position.set(i.x,1.5,i.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let n=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(n),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*KEYBOARD_ROTATION_ANGLE*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*KEYBOARD_ROTATION_ANGLE*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,s=this.getCamera(),n=position3VectorsAreEqual(e,s.position),a=rotationQuaternionsAreEqual(i,s.quaternion);if(!e||n&&a)return!1;let r=this.getCamera().position.clone(),o=Math.min(10*t,1);r.lerp(e,o),this.getCamera().position.copy(r);let h=this.getCamera().quaternion.clone(),_=Math.min(5*t,1);h.slerp(i,_),this.getCamera().setRotationFromQuaternion(h);let d=!1;return this._keyMap.forEach(t=>{t&&(d=!0)}),d&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){getDelta(this._downPosition,this._position)<MIN_MOVE_DISTANCE&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(KEYBOARD_ROTATION_ANGLE*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),position2VectorsAreEqual(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}let SceneManager=(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._updateShadowsAndAO=!0,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof CameraControlFirstPerson&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof CameraControlFirstPerson&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_renderEverything(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!0),this._requestRender()}_renderWithoutShadowsAndAO(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!1),this._requestRender()}_requestRender(){if(!this._renderer)return;const t=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._pixotron.autoShadowsClear=this._updateShadowsAndAO,this._pixotron.autoSAOClear=this._updateShadowsAndAO,this._forceRender&&(this._pixotron.needsUpdate=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._updateShadowsAndAO=!0,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(t))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(t))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof DynamicLightSetting&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof CameraControl3D&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},a=THREE.sRGBEncoding,r=Math.floor(i*window.devicePixelRatio),o=Math.floor(s*window.devicePixelRatio);isWebGl2()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(r,o,n):this._renderTarget=new THREE.WebGLRenderTarget(r,o,n),this._renderTarget.texture.encoding=a,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender()),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._renderEverything()}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender()}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender()}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{dispose(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new PixotronUtil(this._pixotron),this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,a,r){return new Promise((o,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,a,null,r).then(t=>{this._setCamera("GLTF",t),o(t)},h)})}_loadGLB(t,e,i,s,n,a,r,o){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,a,r,o).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof CameraControl3D&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof CameraControl2D&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(DAT_GUI_FILE_NAME,{id:"dat-gui-js"}).then(()=>{let t=getGUI(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=getGUI();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){import("./stats-helper-4a155513.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._renderEverything()}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new DynamicEnvironmentSettingLoader).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof BakedShadowEnvironment&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500)))}loadQualitySetting(t){this._pixotron&&(new DynamicQualitySettingLoader).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new DynamicLightSetting(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=DynamicLightSettingLoader.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender()}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._renderEverything()}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender()}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender()):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return RoomleComponentFactoryInitializer().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return __decorate([inject],t.prototype,"_domHelper",void 0),__decorate([inject],t.prototype,"_scriptLoader",void 0),__decorate([inject],t.prototype,"_lifeCycleManager",void 0),__decorate([inject],t.prototype,"_staticItemLoader",void 0),__decorate([inject],t.prototype,"_environmentLoader",void 0),__decorate([inject],t.prototype,"_initData",void 0),t})();export{CameraControl2D as C,SceneManager as S,CameraControlFirstPerson as a};
2
+ //# sourceMappingURL=scene-manager-3aaca073.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-manager-3aaca073.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- System.register(["./rapi-access-885a34b1.nomodule.js","./main-thread-to-worker-bb844d54.nomodule.js","./pixotron-b2a163d4.nomodule.js"],(function(t,e){var i,s,n,r,o,a,h,_,d,c,p,m,l,u,g,E,w,y,C,v,R;return{setters:[function(t){i=t.t,s=t.u,n=t.a8,r=t.a9,o=t.v,a=t._,h=t.i,_=t.e,d=t.h,c=t.f,p=t.R,m=t.aa},function(t){l=t.i},function(t){u=t.d,g=t.i,E=t.D,w=t.C,y=t.b,C=t.B,v=t.f,R=t.c}],execute:function(){class f extends u{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let r=this._size,o=this._size;n>1?r=this._size*n:o=this._size*(s/i),this._center.copy(e),this._camera.left=r/-2,this._camera.right=r/2,this._camera.top=o/2,this._camera.bottom=o/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}t("C",f);const L=Math.PI/4;class x extends u{constructor(t,e,s,n){super(t,e,s),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=i(-60),this.maxPolarAngle=i(60),this._camera=n||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),s?this._camera.position.set(s.x,1.5,s.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let r=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(r),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*L*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*L*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,r=this.getCamera(),o=s(e,r.position),a=n(i,r.quaternion);if(!e||o&&a)return!1;let h=this.getCamera().position.clone(),_=Math.min(10*t,1);h.lerp(e,_),this.getCamera().position.copy(h);let d=this.getCamera().quaternion.clone(),c=Math.min(5*t,1);d.slerp(i,c),this.getCamera().setRotationFromQuaternion(d);let p=!1;return this._keyMap.forEach(t=>{t&&(p=!0)}),p&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){r(this._downPosition,this._position)<g&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-L*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(L*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),o(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}t("a",x),t("S",(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._updateShadowsAndAO=!0,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof x&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof x&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_renderEverything(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!0),this._requestRender()}_renderWithoutShadowsAndAO(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!1),this._requestRender()}_requestRender(){if(!this._renderer)return;const t=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._pixotron.autoShadowsClear=this._updateShadowsAndAO,this._pixotron.autoSAOClear=this._updateShadowsAndAO,this._forceRender&&(this._pixotron.needsUpdate=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._updateShadowsAndAO=!0,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(t))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(t))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof E&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof w&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},r=THREE.sRGBEncoding,o=Math.floor(i*window.devicePixelRatio),a=Math.floor(s*window.devicePixelRatio);l()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(o,a,n):this._renderTarget=new THREE.WebGLRenderTarget(o,a,n),this._renderTarget.texture.encoding=r,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender()),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._renderEverything()}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender()}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender()}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{_(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new y(this._pixotron),this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,r,o){return new Promise((a,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,r,null,o).then(t=>{this._setCamera("GLTF",t),a(t)},h)})}_loadGLB(t,e,i,s,n,r,o,a){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,r,o,a).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof w&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof w&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof f&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(v,{id:"dat-gui-js"}).then(()=>{let t=d(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=d();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){e.import("./stats-helper-ce621e1d.nomodule.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._renderEverything()}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new R).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new E(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500)))}loadQualitySetting(t){this._pixotron&&(new m).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new E(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=c.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender()}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._renderEverything()}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender()}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender()):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return p().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return a([h],t.prototype,"_domHelper",void 0),a([h],t.prototype,"_scriptLoader",void 0),a([h],t.prototype,"_lifeCycleManager",void 0),a([h],t.prototype,"_staticItemLoader",void 0),a([h],t.prototype,"_environmentLoader",void 0),a([h],t.prototype,"_initData",void 0),t})())}}}));
2
- //# sourceMappingURL=scene-manager-a8e0af76.nomodule.js.map
1
+ System.register(["./rapi-access-ef24c5f8.nomodule.js","./main-thread-to-worker-bb844d54.nomodule.js","./pixotron-6ec28601.nomodule.js"],(function(t,e){var i,s,n,r,o,a,h,_,d,c,p,m,l,u,g,E,w,y,C,v,R;return{setters:[function(t){i=t.t,s=t.u,n=t.a8,r=t.a9,o=t.v,a=t._,h=t.i,_=t.e,d=t.h,c=t.f,p=t.R,m=t.aa},function(t){l=t.i},function(t){u=t.d,g=t.i,E=t.D,w=t.C,y=t.b,C=t.B,v=t.f,R=t.c}],execute:function(){class f extends u{constructor(t,e,i){super(t,e,i),this._scale=1,this._state=0,this._size=20,this._center=new THREE.Vector3,this._raycaster=new THREE.Raycaster,this._lastPosition=new THREE.Vector2,this._zoomPosition=new THREE.Vector3,this._lastZoom=0,this._zoomSpeed=Math.pow(.95,2),this._cameraZoom=1,this._initCamera(i||new THREE.Vector3(0,10,0));let s=new THREE.PlaneGeometry(1e3,1e3);s.rotateX(-Math.PI/2),this._plane=new THREE.Mesh(s,new THREE.MeshStandardMaterial)}_getCamera(){return this._camera||this._initCamera(new THREE.Vector3(0,10,0)),this._camera}_initCamera(t){let{x:e,y:i}=this._domHelper.getClientDimensions(),s=e/i*this._size,n=this._size;this._camera=new THREE.OrthographicCamera(s/-2,s/2,n/2,n/-2,1,1e3),this._camera.position.copy(t),this._cameraPosition=t,this._camera.lookAt(new THREE.Vector3(0,0,0))}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions(),i=t/e*this._size,s=this._size;this._camera.left=i/-2,this._camera.right=i/2,this._camera.top=s/2,this._camera.bottom=s/-2,this._camera.updateProjectionMatrix()}_initInputListener(){this._inputListeners.push({key:3,fun:t=>{this._locked||(this._state=1,this._lastPosition.set(t.position.x,t.position.y),this.dispatchEvent(0))}}),this._inputListeners.push({key:6,fun:t=>{1!==this._state||this._locked||(this._move(new THREE.Vector2(t.position.x,t.position.y),t.type),this.dispatchEvent(1))}}),this._inputListeners.push({key:4,fun:t=>{1===this._state&&this.dispatchEvent(2),this._state=0}}),this._inputListeners.push({key:7,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale/=this._zoomSpeed,this._zoomTo(t.position,1),this._update()}}),this._inputListeners.push({key:8,fun:t=>{t.event&&(t.event.stopPropagation(),t.event.preventDefault()),this._scale*=this._zoomSpeed,this._zoomTo(t.position,-1),this._update()}})}_zoomTo(t,e){if(Date.now()-this._lastZoom>200){if(e>0||this._cameraZoom>=1){const e=this.getInputPosition(t);this._raycaster.setFromCamera(e,this._camera);const i=this._raycaster.intersectObject(this._plane);if(i.length<=0)return;const s=i.pop().point;this._zoomPosition.copy(s)}else this._zoomPosition.copy(this._center);this._cameraPosition.x=this._zoomPosition.x,this._cameraPosition.z=this._zoomPosition.z}this._lastZoom=Date.now()}_move(t,e){let i=new THREE.Vector2;i.subVectors(this._lastPosition,t),i.divideScalar(100),this._cameraPosition.x+=i.x*(2===e?1.1:1),this._cameraPosition.z+=i.y*(2===e?1.1:1),this._lastPosition.copy(t)}updateToBounds(t,e){let{x:i,y:s}=this._domHelper.getClientDimensions(),n=i/s;this._size=Math.max(t.x,t.z);let r=this._size,o=this._size;n>1?r=this._size*n:o=this._size*(s/i),this._center.copy(e),this._camera.left=r/-2,this._camera.right=r/2,this._camera.top=o/2,this._camera.bottom=o/-2,this._camera.zoom=1,this._camera.position.set(this._center.x,10,this._center.z),this._cameraPosition.copy(this._camera.position)}_update(t){this._scale=Math.min(this._scale,5),this._scale=Math.max(this._scale,.8),this._cameraZoom=this._scale,this._camera.updateProjectionMatrix()}animateCamera(t){return!(!super.animateCamera(t)&&Math.abs(this._cameraZoom-this._camera.zoom)<=.01||(this._camera.zoom=THREE.MathUtils.lerp(this._camera.zoom,this._cameraZoom,10*t),0))}}t("C",f);const L=Math.PI/4;class x extends u{constructor(t,e,s,n){super(t,e,s),this._state=0,this._rotationSpeed=1,this._keyMap=new Map,this.minPolarAngle=i(-60),this.maxPolarAngle=i(60),this._camera=n||new THREE.PerspectiveCamera,this._camera.fov=70,this._camera.aspect=this._width/this._height,this._camera.near=.1,this._camera.far=100,this._camera.updateProjectionMatrix(),this._camera.layers.set(3),this._camera.layers.enable(1),this._camera.layers.enable(2),this._camera.layers.enable(5),this._camera.layers.enable(4),s?this._camera.position.set(s.x,1.5,s.z):this._camera.position.set(0,1.5,0),this._cameraPosition=new THREE.Vector3,this._cameraPosition.copy(this._camera.position),this._cameraRotation=new THREE.Quaternion,this._pitch=0,this._yaw=0;let r=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(r),window.addEventListener("gamepadconnected",this._gamepadConnected.bind(this)),window.addEventListener("gamepaddisconnected",this._gamepadDisconnected.bind(this))}_gamepadConnected(t){this.startButtonPressListener()}_gamepadDisconnected(t){window.cancelAnimationFrame(this._listenerLoopAnimationFrame)}startButtonPressListener(){this._listenerLoopAnimationFrame=window.requestAnimationFrame(()=>{this.buttonPressListener()})}buttonPressListener(){let t=navigator.getGamepads()[0];this._checkRightStick(t),this._checkLeftStick(t),this._checkButtons(t),this._processKeyMap(this._keyMap,.001),this.startButtonPressListener()}_checkRightStick(t){let e=t.axes[2],i=t.axes[3];Math.abs(e)>.2&&(this._rotateHorizontal(.01*L*e),this._update(),this.dispatchEvent(1)),Math.abs(i)>.2&&(this._rotateVertical(.01*L*i),this._update(),this.dispatchEvent(1))}_checkLeftStick(t){let e=t.axes[0],i=t.axes[1];Math.abs(i)>.2?i<0?this._keyMap.set(87,!0):this._keyMap.set(83,!0):t.buttons&&t.buttons[12]&&t.buttons[12].pressed?this._keyMap.set(87,!0):t.buttons&&t.buttons[13]&&t.buttons[13].pressed?this._keyMap.set(83,!0):(this._keyMap.set(87,!1),this._keyMap.set(83,!1)),Math.abs(e)>.2?e<0?this._keyMap.set(65,!0):this._keyMap.set(68,!0):(this._keyMap.set(65,!1),this._keyMap.set(68,!1))}_checkButtons(t){t.buttons&&t.buttons[6]&&t.buttons[6].pressed?this._keyMap.set(16,!0):this._keyMap.set(16,!1),t.buttons&&t.buttons[14]&&t.buttons[14].pressed?(this._keyMap.set(37,!0),this.dispatchEvent(1)):this._keyMap.set(37,!1),t.buttons&&t.buttons[15]&&t.buttons[15].pressed?(this._keyMap.set(39,!0),this.dispatchEvent(1)):this._keyMap.set(39,!1)}animateCamera(t){let e=this._cameraPosition,i=this._cameraRotation,r=this.getCamera(),o=s(e,r.position),a=n(i,r.quaternion);if(!e||o&&a)return!1;let h=this.getCamera().position.clone(),_=Math.min(10*t,1);h.lerp(e,_),this.getCamera().position.copy(h);let d=this.getCamera().quaternion.clone(),c=Math.min(5*t,1);d.slerp(i,c),this.getCamera().setRotationFromQuaternion(d);let p=!1;return this._keyMap.forEach(t=>{t&&(p=!0)}),p&&this._processKeyMap(this._keyMap,t),!0}_getCamera(){return this._camera}_initInputListener(){window.addEventListener("keyup",this._onKeyChanged.bind(this),!1),window.addEventListener("keydown",this._onKeyChanged.bind(this),!1),this._inputListeners.push({key:3,fun:t=>{this._down(t)}}),this._inputListeners.push({key:6,fun:t=>{this._move(t)}}),this._inputListeners.push({key:4,fun:t=>{this._up(t)}})}_down(t){this._downPosition=t.position,this._position=t.position,this._state=1,2===t.type&&window.setTimeout(this._onLongDown.bind(this),350),2===t.type?this._rotationSpeed=.6:this._rotationSpeed=1}_move(t){this._position=t.position,1!==this._state||this._locked||this._orbit(new THREE.Vector2(t.position.x,t.position.y)),2!==this._state||this._locked||(this._orbit(new THREE.Vector2(t.position.x,t.position.y)),this._moveForward())}_up(t){1===this._state&&this.dispatchEvent(2),2===this._state&&this._keyMap.set(87,!1),this._state=0,this._orbitPosition=null}_onLongDown(){r(this._downPosition,this._position)<g&&1===this._state&&(this._state=2,this._orbit(new THREE.Vector2(this._position.x,this._position.y)),this._moveForward())}_update(t){let e=new THREE.Euler(-this._pitch,this._yaw,0,"ZYX");this._cameraRotation.setFromEuler(e)}updateCamera(){let{x:t,y:e}=this._domHelper.getClientDimensions();this._camera.aspect=t/e,this._camera.updateProjectionMatrix()}_onKeyChanged(t){this._keyMap.set(t.keyCode,"keydown"===t.type),this.dispatchEvent(6),this._processKeyMap(this._keyMap,.001)&&t.preventDefault()}_processKeyMap(t,e){e=Math.min(e,.1);let i=new THREE.Vector3(0,0,0),s=!1;return this._processUpDown(t,i,e),t.get(65)&&(i.x=-1*e),t.get(68)&&(i.x=1*e),t.get(37)&&(this._rotateHorizontal(-L*this._rotationSpeed*e),s=!0),t.get(39)&&(this._rotateHorizontal(L*this._rotationSpeed*e),s=!0),t.get(16)&&(i.x*=3,i.z*=3),!(0===i.x&&0===i.y&&0===i.z&&!s||(i.applyQuaternion(this.getCamera().quaternion),this._cameraPosition.add(new THREE.Vector3(i.x,0,i.z)),this._update(),0))}_processUpDown(t,e,i){(t.get(87)||t.get(38))&&(e.z=-1*i),(t.get(83)||t.get(40))&&(e.z=1*i)}_orbit(t){this._orbitPosition||(this._orbitPosition=new THREE.Vector2(t.x,t.y),this.dispatchEvent(0));let e=t.clone().sub(this._orbitPosition),i=this._domHelper.element instanceof Document?this._domHelper.element.body:this._domHelper.element;e.multiplyScalar(-1),this._rotateHorizontal(2*Math.PI*e.x/i.clientWidth*1),this._rotateVertical(2*Math.PI*e.y/i.clientHeight*1),o(this._orbitPosition,t)||this.dispatchEvent(1),this._orbitPosition.copy(t),this._update()}_moveForward(){this._keyMap.set(87,!0),this._processKeyMap(this._keyMap,.001)}_rotateVertical(t){let e=this._pitch+t;e>this.maxPolarAngle||e<this.minPolarAngle||(this._pitch=e,this._pitch<-Math.PI?this._pitch+=2*Math.PI:this._pitch>Math.PI&&(this._pitch-=2*Math.PI),this._saveYawAndPitch())}}t("a",x),t("S",(()=>{class t{constructor(t,e,i,s,n){this._maxAnisotropy=1,this._clock=new THREE.Clock,this._delta=0,this._renderListener=null,this._stopRendering=!1,this._forceRender=!1,this._updateShadowsAndAO=!0,this._lastChange=Date.now(),this._running=!1,this._onAfterRender=()=>{},this._creator_=t,this._canvasID=i,this.createCameraControl(s),this._addCameraControlListener(),this._setupScene(e,n),document.addEventListener("visibilitychange",this._tabVisible.bind(this)),this._renderListener=()=>{this._requestRender()},this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this),this._lifeCycleManager.addEventListener(this)}onBeforeRender(){}_changeCameraControl(t){this._cameraControl&&this._cameraControl.cleanUp(),t instanceof x&&(this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener)),this._cameraControl instanceof x&&(this._getInputManager().addEventListener(7,this._renderListener,this),this._getInputManager().addEventListener(8,this._renderListener,this)),this._cameraControl=t,this.cameraControlChanged()}cameraControlChanged(){}_addCameraControlListener(){this._cameraControl.addEventListener(0,this._requestRender,this),this._cameraControl.addEventListener(1,this._requestRender,this),this._cameraControl.addEventListener(2,this._requestRender,this),this._cameraControl.addEventListener(6,this._requestRender,this)}_renderEverything(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!0),this._requestRender()}_renderWithoutShadowsAndAO(){this._pixotron&&(this._forceRender=!0,this._updateShadowsAndAO=!1),this._requestRender()}_requestRender(){if(!this._renderer)return;const t=()=>{this._delta=this._clock.getDelta(),this._animateCamera(),this._cameraControl.getCamera().layers.mask=65535,this._renderLoopFunction&&(this._renderLoopFunction(),this._renderLoopFunction=null),this.onBeforeRender(),this._statsHelper&&this._statsHelper.updateRenderInfo(this._renderer.info),this._pixotron?(this._pixotron.autoShadowsClear=this._updateShadowsAndAO,this._pixotron.autoSAOClear=this._updateShadowsAndAO,this._forceRender&&(this._pixotron.needsUpdate=!0),this._pixotron.render(this._renderer,this._scene,this._cameraControl.getCamera(),this._renderTarget),this._forceRender=!1,this._updateShadowsAndAO=!0,this._pixotron.blit()):(this._renderer.clear(),this._renderer.render(this._scene,this._cameraControl.getCamera()),this._renderer.clearDepth()),this._onAfterRender(),window.TWEEN&&TWEEN.update(),this._lastChange+3e3<Date.now()||this._stopRendering?this._running=!1:(this._running=!0,requestAnimationFrame(t))};this._lastChange=Date.now(),this._running||this._stopRendering||(this._running=!0,requestAnimationFrame(t))}_animateCamera(){this._cameraControl&&(this._cameraControl.animateCamera(this._delta)||!this._pixotron||this._forceRender?(this._lightSetting instanceof E&&this._cameraControl.getCamera()instanceof THREE.PerspectiveCamera&&this._lightSetting.update(this._cameraControl.getCamera(),this._cameraControl.getTargetPosition()),this._pixotron&&(this._pixotron.needsUpdate=!0)):(this._pixotron.autoShadowsClear=!1,this._pixotron.autoSAOClear=!1)),this._environment&&this._environment.needsCamera()&&this._cameraControl instanceof w&&this._environment.updateCamera(this._cameraControl.getCamera())}_setupScene(t,e){const{x:i,y:s}=this._domHelper.getClientDimensions();this._scene=new THREE.Scene,(e=e||!1)||(this._scene.background=new THREE.Color(this._initData.colors.DEFAULT_BACKGROUND)),THREE.Math={DEG2RAD:THREE.MathUtils.DEG2RAD};const n={format:THREE.RGBAFormat,minFilter:THREE.NearestFilter,magFilter:THREE.NearestFilter},r=THREE.sRGBEncoding,o=Math.floor(i*window.devicePixelRatio),a=Math.floor(s*window.devicePixelRatio);l()?this._renderTarget=new THREE.WebGLMultisampleRenderTarget(o,a,n):this._renderTarget=new THREE.WebGLRenderTarget(o,a,n),this._renderTarget.texture.encoding=r,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(i,s),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.gammaFactor=2.2,this._renderer.autoClear=!1,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=THREE.PCFSoftShadowMap,this._maxAnisotropy=this._renderer.capabilities.getMaxAnisotropy(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),this._environmentLoader.setRendererAndScene(this._renderer,this._scene),this._environmentLoader.registerEnvironmentChangedCallback(()=>this._requestRender()),this._requestRender(),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this.sceneChanged()}_tabVisible(t){this.updateCamera(),this._renderEverything()}setupScene(t,e){this._setupScene(t,e)}updateCamera(){const{x:t,y:e}=this._domHelper.getClientDimensions();this._renderer.setSize(t,e);const i=this._renderer.getPixelRatio();if(this._renderTarget){const s=Math.floor(t*i),n=Math.floor(e*i);this._renderTarget.setSize(s,n)}if(this._pixotron){this._pixotron.autoShadowsClear=!0,this._pixotron.autoSAOClear=!0,this._forceRender=!0;try{this._pixotron.setSize(t,e)}catch(t){console.warn(t)}}this._cameraControl.updateCamera(),this._requestRender()}_onWindowResize(){const t=this._getInputManager();t&&t.updateSize(),this.updateCamera(),this._requestRender()}_isPartOfScene(t){return"Object3D"===t.type||"Mesh"===t.type||"GLB"===t.type||"GLTF"===t.type||"Group"===t.type}cleanUp(){this._getInputManager().removeEventListener(7,this._renderListener),this._getInputManager().removeEventListener(8,this._renderListener),this._cameraControl&&this._cameraControl.cleanUp()}clearScene(){let t=[];this._scene.children.forEach(e=>{this._isPartOfScene(e)&&t.push(e)}),t.forEach(t=>{_(t),this._scene.remove(t)}),this._renderer.renderLists.dispose()}enableHD(){this._pixotron=new window.PIXOTRON.Pixotron(this.getPixotronParams()),this._pixotronUtil=new y(this._pixotron),this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500))),this._requestRender()}_loadGLTF(t,e,i,s,n,r,o){return new Promise((a,h)=>{this._staticItemLoader.loadGLTF(t,e,i,s,n,r,null,o).then(t=>{this._setCamera("GLTF",t),a(t)},h)})}_loadGLB(t,e,i,s,n,r,o,a){return new Promise((h,_)=>{this._staticItemLoader.loadGLB(t,e,i,s,n,r,o,a).then(t=>{this._setCamera("GLB",t),h(t)},_)})}_setCamera(t,e){if(!e)return void console.warn("could not set camera for gltf",e);const i=new THREE.Box3;i.setFromObject(e),"GLB"===t?this._cameraControl instanceof w&&this._cameraControl.updateToBounds(i,!1):"GLTF"===t&&(this._cameraControl instanceof w&&this._cameraControl.updateAndReset(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3),-15,70,5,!1),this._cameraControl instanceof f&&this._cameraControl.updateToBounds(i.getSize(new THREE.Vector3),i.getCenter(new THREE.Vector3))),this.updateCamera()}showGUI(){if(this._initData.disableDebugGUI)return;const t=document.createElement("style");t.innerText=".dg.main{position:absolute;z-index:100;top:0;left:0;}",document.head.appendChild(t),this._scriptLoader.fetch(v,{id:"dat-gui-js"}).then(()=>{let t=d(!1);t&&(this._domHelper.element.appendChild(t.domElement),this._guiLoaded())},t=>console.error(t))}_guiLoaded(){let t=d();t&&(this._lightSetting&&this._lightSetting.showGUI(),this._pixotron&&this._pixotronUtil.showGUI(),this._environment&&this._environment.showGUI(),this._addGUIListener(t))}_addGUIListener(t){let e=t.__folders;Object.keys(e).forEach(t=>{let i=e[t];i.__folders&&Object.keys(i.__folders).forEach(t=>{let i=e[t];this._addGUIListener(i)}),i.__controllers&&i.__controllers.forEach(t=>{t.onFinishChange(()=>{this._guiParamChanged()})})})}_guiParamChanged(){this._requestRender()}showStats(){e.import("./stats-helper-0a9717e9.nomodule.js").then(t=>this._statsHelper=new t.default)}_onKeyDown(t){}_onKeyUp(t){}pause(){this._getInputManager().removeEvents(this._renderer.domElement),window.removeEventListener("resize",this,!1),window.removeEventListener("keydown",this,!1),window.removeEventListener("keyup",this,!1)}resume(){this.updateCamera(),this._renderer.domElement.classList.add(this._canvasID),this._domHelper.element.appendChild(this._renderer.domElement),this._getInputManager().addEvents(this._renderer.domElement),window.addEventListener("resize",this,!1),window.addEventListener("keydown",this,!1),window.addEventListener("keyup",this,!1),this._renderEverything()}destroy(){this.pause(),this.cleanUp()}handleEvent(t){switch(t.type){case"resize":this._onWindowResize();break;case"keydown":this._onKeyDown(t);break;case"keyup":this._onKeyUp(t)}}loadSceneSettings(t){let e,i;return e=t.environment?new Promise(e=>{(new R).load(this._scene,this._renderer.domElement,this._environment,t).then(t=>{this._setEnvironment(t),e()})}):Promise.resolve(),t.lights?(this._lightSetting=new E(this._scene,this._lightSetting),i=this._lightSetting.loadFromObject(t)):i=Promise.resolve(),new Promise((t,s)=>{Promise.all([e,i]).then(()=>{this._requestRender(),t()},s)})}_setEnvironment(t){this._environment=t,this._pixotron&&this._environment instanceof C&&(this._environment.setPixotron(this._pixotron,this._renderer,this._cameraControl.getCamera(),this.getBakedShadowParams()),this._environment.setLoadedCallback(()=>setTimeout(()=>this._requestRender(),500)))}loadQualitySetting(t){this._pixotron&&(new m).set(this._pixotron,t)}async loadDynamicLightSetting(t){this._lightSetting=new E(this._scene,this._lightSetting);let e=!1;if(t.url)await this._lightSetting.loadFromURL(t.url),e=!0;else if(t.json)await this._lightSetting.loadFromJSON(t.json),e=!0;else if(t.object)await this._lightSetting.loadFromObject(t.object),e=!0;else if(t.ls){const i=c.createDynamicLightSettingSource(null,t.ls);await this._lightSetting.loadFromURL(i.url),e=!0}if(!e)throw new Error("No dynamic light setting source set");this._requestRender()}getScene(){return this._scene}updateScene(){this._updateBounds(this.getBounds()),this._renderEverything()}_updateBounds(t){if(t){if(this.updateEnvironment(t),this._lightSetting&&this._lightSetting.needsBounds()&&this._lightSetting.updateBounds(t),this._pixotronUtil){const e=new THREE.Sphere;t.getBoundingSphere(e),this._pixotronUtil.updateBounds(e)}this._requestRender()}}setCameraOffset(t){const e=this._cameraControl.getCamera();e.offset?(e.offset=t,this._requestRender()):console.warn("Cannot set offset, current camera does not support it")}getCameraOffset(){const t=this._cameraControl.getCamera();return t.offset?JSON.parse(JSON.stringify(t.offset)):{left:0,top:0,right:1,bottom:1}}getPerspectiveOffsetCamera(){const t=this._domHelper.getClientDimensions(),e=t.x,i=t.y;return p().createCamera(30,e/i,.1,20)}updateEnvironment(t,e=!1){if(t&&this._environment&&this._environment.needsBounds()){const i=t.getSize(new THREE.Vector3);i.x+i.y+i.z!==0&&this._environment.updateBounds(t.getSize(new THREE.Vector3),e)}}}return a([h],t.prototype,"_domHelper",void 0),a([h],t.prototype,"_scriptLoader",void 0),a([h],t.prototype,"_lifeCycleManager",void 0),a([h],t.prototype,"_staticItemLoader",void 0),a([h],t.prototype,"_environmentLoader",void 0),a([h],t.prototype,"_initData",void 0),t})())}}}));
2
+ //# sourceMappingURL=scene-manager-bb7f8d41.nomodule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-manager-bb7f8d41.nomodule.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +1 @@
1
- var _scriptDir,ConfiguratorKernel=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(n){var t;n=n||{},t||(t=void 0!==n?n:{});var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var e="./this.program";function a(n,t){throw t}var o="";document.currentScript&&(o=document.currentScript.src),_scriptDir&&(o=_scriptDir),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"";var u=t.print||console.log.bind(console),l=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(e=t.thisProgram),t.quit&&(a=t.quit);var c,f,d=0;t.wasmBinary&&(c=t.wasmBinary),t.noExitRuntime&&(f=t.noExitRuntime),"object"!=typeof WebAssembly&&l("no native wasm support detected");var s,p=new WebAssembly.Table({initial:7838,maximum:7838,element:"anyfunc"}),y=!1,h="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(n,t,r){var i=t+r;for(r=t;n[r]&&!(r>=i);)++r;if(16<r-t&&n.subarray&&h)return h.decode(n.subarray(t,r));for(i="";t<r;){var e=n[t++];if(128&e){var a=63&n[t++];if(192==(224&e))i+=String.fromCharCode((31&e)<<6|a);else{var o=63&n[t++];65536>(e=224==(240&e)?(15&e)<<12|a<<6|o:(7&e)<<18|a<<12|o<<6|63&n[t++])?i+=String.fromCharCode(e):(e-=65536,i+=String.fromCharCode(55296|e>>10,56320|1023&e))}}else i+=String.fromCharCode(e)}return i}function m(n){return n?v(w,n,void 0):""}function g(n,t,r,i){if(0<i){i=r+i-1;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),127>=a){if(r>=i)break;t[r++]=a}else{if(2047>=a){if(r+1>=i)break;t[r++]=192|a>>6}else{if(65535>=a){if(r+2>=i)break;t[r++]=224|a>>12}else{if(r+3>=i)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63}t[r++]=128|a>>6&63}t[r++]=128|63&a}}t[r]=0}}function _(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++r)),127>=i?++t:t=2047>=i?t+2:65535>=i?t+3:t+4}return t}var C,b,w,j,T,A,P,k,E,W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function F(n){var t;for(t=n>>1;j[t];)++t;if(32<(t<<=1)-n&&W)return W.decode(w.subarray(n,t));t=0;for(var r="";;){var i=j[n+2*t>>1];if(0==i)return r;++t,r+=String.fromCharCode(i)}}function D(n,t,r){if(void 0===r&&(r=2147483647),2>r)return 0;var i=t;r=(r-=2)<2*n.length?r/2:n.length;for(var e=0;e<r;++e)j[t>>1]=n.charCodeAt(e),t+=2;return j[t>>1]=0,t-i}function O(n){return 2*n.length}function S(n){for(var t=0,r="";;){var i=A[n+4*t>>2];if(0==i)return r;++t,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}}function x(n,t,r){if(void 0===r&&(r=2147483647),4>r)return 0;var i=t;r=i+r-4;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),A[t>>2]=a,(t+=4)+4>r)break}return A[t>>2]=0,t-i}function M(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&++r,t+=4}return t}function I(n){C=n,t.HEAP8=b=new Int8Array(n),t.HEAP16=j=new Int16Array(n),t.HEAP32=A=new Int32Array(n),t.HEAPU8=w=new Uint8Array(n),t.HEAPU16=T=new Uint16Array(n),t.HEAPU32=P=new Uint32Array(n),t.HEAPF32=k=new Float32Array(n),t.HEAPF64=E=new Float64Array(n)}var R=t.INITIAL_MEMORY||167772160;function U(n){for(;0<n.length;){var r=n.shift();if("function"==typeof r)r();else{var i=r.Kd;"number"==typeof i?void 0===r.yd?t.dynCall_v(i):t.dynCall_vi(i,r.yd):i(void 0===r.yd?null:r.yd)}}}(s=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:R/65536}))&&(C=s.buffer),R=C.byteLength,I(C),A[38004]=5395072;var Y=[],H=[],V=[],B=[],z=[];function q(){var n=t.preRun.shift();Y.unshift(n)}var N=Math.ceil,L=Math.floor,G=0,K=null,J=null;function Z(n){throw t.onAbort&&t.onAbort(n),u(n),l(n),y=!0,new WebAssembly.RuntimeError("abort("+n+"). Build with -s ASSERTIONS=1 for more info.")}function $(){var n=X;return String.prototype.startsWith?n.startsWith("data:application/octet-stream;base64,"):0===n.indexOf("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var X="ConfiguratorKernel.wasm";if(!$()){var Q=X;X=t.locateFile?t.locateFile(Q,o):o+Q}function nn(){try{if(c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(n){Z(n)}}H.push({Kd:function(){St()}});var tn={},rn=[];function en(n){if(!n||tn[n])return n;for(var t in tn)for(var r=+t,i=tn[r].sd,e=i.length,a=0;a<e;a++)if(i[a]===n)return r;return n}function an(n){try{return Mt(n)}catch(n){}}function on(n){if(n){var r=tn[n];r.nd--,0!==r.nd||r.vd||(r.td&&t.dynCall_ii(r.td,n),delete tn[n],an(n))}}var un=0;function ln(){var n=rn.pop();throw n=en(n),tn[n].vd||(rn.push(n),tn[n].vd=!0),un=n,n}var cn={},fn=[null,[],[]],dn={},sn={};function pn(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function yn(n){return this.fromWireType(P[n>>2])}var hn={},vn={},mn={};function gn(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function _n(n,t){return n=gn(n),new Function("body","return function "+n+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Cn(n){var t=Error,r=_n(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var bn=void 0;function wn(n){throw new bn(n)}function jn(n,t,r){function i(t){(t=r(t)).length!==n.length&&wn("Mismatched type converter count");for(var i=0;i<n.length;++i)Wn(n[i],t[i])}n.forEach((function(n){mn[n]=t}));var e=Array(t.length),a=[],o=0;t.forEach((function(n,t){vn.hasOwnProperty(n)?e[t]=vn[n]:(a.push(n),hn.hasOwnProperty(n)||(hn[n]=[]),hn[n].push((function(){e[t]=vn[n],++o===a.length&&i(e)})))})),0===a.length&&i(e)}function Tn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}var An=void 0;function Pn(n){for(var t="";w[n];)t+=An[w[n++]];return t}var kn=void 0;function En(n){throw new kn(n)}function Wn(n,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(n||En('type "'+i+'" must have a positive integer typeid pointer'),vn.hasOwnProperty(n)){if(r.Ud)return;En("Cannot register type '"+i+"' twice")}vn[n]=t,delete mn[n],hn.hasOwnProperty(n)&&(t=hn[n],delete hn[n],t.forEach((function(n){n()})))}function Fn(n){return{count:n.count,pd:n.pd,ud:n.ud,dd:n.dd,ed:n.ed,hd:n.hd,kd:n.kd}}function Dn(n){En(n.bd.ed.cd.name+" instance already deleted")}var On=!1;function Sn(){}function xn(n){--n.count.value,0===n.count.value&&(n.hd?n.kd.md(n.hd):n.ed.cd.md(n.dd))}function Mn(n){return"undefined"==typeof FinalizationGroup?(Mn=function(n){return n},n):(On=new FinalizationGroup((function(n){for(var t=n.next();!t.done;t=n.next())(t=t.value).dd?xn(t):console.warn("object already deleted: "+t.dd)})),Sn=function(n){On.unregister(n.bd)},(Mn=function(n){return On.register(n,n.bd,n.bd),n})(n))}var In=void 0,Rn=[];function Un(){for(;Rn.length;){var n=Rn.pop();n.bd.pd=!1,n.delete()}}function Yn(){}var Hn={};function Vn(n,t,r){if(void 0===n[t].fd){var i=n[t];n[t]=function(){return n[t].fd.hasOwnProperty(arguments.length)||En("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].fd+")!"),n[t].fd[arguments.length].apply(this,arguments)},n[t].fd=[],n[t].fd[i.zd]=i}}function Bn(n,r,i){t.hasOwnProperty(n)?((void 0===i||void 0!==t[n].fd&&void 0!==t[n].fd[i])&&En("Cannot register public name '"+n+"' twice"),Vn(t,n,n),t.hasOwnProperty(i)&&En("Cannot register multiple overloads of a function with the same number of arguments ("+i+")!"),t[n].fd[i]=r):(t[n]=r,void 0!==i&&(t[n].le=i))}function zn(n,t,r,i,e,a,o,u){this.name=n,this.constructor=t,this.qd=r,this.md=i,this.ld=e,this.Pd=a,this.xd=o,this.Nd=u,this.Xd=[]}function qn(n,t,r){for(;t!==r;)t.xd||En("Expected null or instance of "+r.name+", got an instance of "+t.name),n=t.xd(n),t=t.ld;return n}function Nn(n,t){return null===t?(this.Fd&&En("null is not a valid "+this.name),0):(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),qn(t.bd.dd,t.bd.ed.cd,this.cd))}function Ln(n,t){if(null===t){if(this.Fd&&En("null is not a valid "+this.name),this.Bd){var r=this.Gd();return null!==n&&n.push(this.md,r),r}return 0}if(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),!this.Ad&&t.bd.ed.Ad&&En("Cannot convert argument of type "+(t.bd.kd?t.bd.kd.name:t.bd.ed.name)+" to parameter type "+this.name),r=qn(t.bd.dd,t.bd.ed.cd,this.cd),this.Bd)switch(void 0===t.bd.hd&&En("Passing raw pointer to smart pointer is illegal"),this.be){case 0:t.bd.kd===this?r=t.bd.hd:En("Cannot convert argument of type "+(t.bd.kd?t.bd.kd.name:t.bd.ed.name)+" to parameter type "+this.name);break;case 1:r=t.bd.hd;break;case 2:if(t.bd.kd===this)r=t.bd.hd;else{var i=t.clone();r=this.Yd(r,lt((function(){i.delete()}))),null!==n&&n.push(this.md,r)}break;default:En("Unsupporting sharing policy")}return r}function Gn(n,t){return null===t?(this.Fd&&En("null is not a valid "+this.name),0):(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),t.bd.ed.Ad&&En("Cannot convert argument of type "+t.bd.ed.name+" to parameter type "+this.name),qn(t.bd.dd,t.bd.ed.cd,this.cd))}var Kn={};function Jn(n,t){return t.ed&&t.dd||wn("makeClassHandle requires ptr and ptrType"),!!t.kd!=!!t.hd&&wn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Mn(Object.create(n,{bd:{value:t}}))}function Zn(n,t,r,i,e,a,o,u,l,c,f){this.name=n,this.cd=t,this.Fd=r,this.Ad=i,this.Bd=e,this.Wd=a,this.be=o,this.Ld=u,this.Gd=l,this.Yd=c,this.md=f,e||void 0!==t.ld?this.toWireType=Ln:(this.toWireType=i?Nn:Gn,this.jd=null)}function $n(n,r,i){t.hasOwnProperty(n)||wn("Replacing nonexistant public symbol"),void 0!==t[n].fd&&void 0!==i?t[n].fd[i]=r:(t[n]=r,t[n].zd=i)}function Xn(n,r){n=Pn(n);for(var i=t["dynCall_"+n],e=[],a=1;a<n.length;++a)e.push("a"+a);return a="return function dynCall_"+n+"_"+r+"("+e.join(", ")+") {\n",a+=" return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n","function"!=typeof(i=new Function("dynCall","rawFunction",a+"};\n")(i,r))&&En("unknown function pointer with signature "+n+": "+r),i}var Qn=void 0;function nt(n){var t=Pn(n=Ht(n));return Mt(n),t}function tt(n,t){var r=[],i={};throw t.forEach((function n(t){i[t]||vn[t]||(mn[t]?mn[t].forEach(n):(r.push(t),i[t]=!0))})),new Qn(n+": "+r.map(nt).join([", "]))}function rt(n,t){for(var r=[],i=0;i<n;i++)r.push(A[(t>>2)+i]);return r}function it(n){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var r=_n(t.name||"unknownFunctionName",(function(){}));return r.prototype=t.prototype,r=new r,(n=t.apply(r,n))instanceof Object?n:r}function et(n,t,r,i,e){var a=t.length;2>a&&En("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==r,u=!1;for(r=1;r<t.length;++r)if(null!==t[r]&&void 0===t[r].jd){u=!0;break}var l="void"!==t[0].name,c="",f="";for(r=0;r<a-2;++r)c+=(0!==r?", ":"")+"arg"+r,f+=(0!==r?", ":"")+"arg"+r+"Wired";n="return function "+gn(n)+"("+c+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+n+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",u&&(n+="var destructors = [];\n");var d=u?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),i=[En,i,e,pn,t[0],t[1]],o&&(n+="var thisWired = classParam.toWireType("+d+", this);\n"),r=0;r<a-2;++r)n+="var arg"+r+"Wired = argType"+r+".toWireType("+d+", arg"+r+"); // "+t[r+2].name+"\n",c.push("argType"+r),i.push(t[r+2]);if(o&&(f="thisWired"+(0<f.length?", ":"")+f),n+=(l?"var rv = ":"")+"invoker(fn"+(0<f.length?", ":"")+f+");\n",u)n+="runDestructors(destructors);\n";else for(r=o?1:2;r<t.length;++r)a=1===r?"thisWired":"arg"+(r-2)+"Wired",null!==t[r].jd&&(n+=a+"_dtor("+a+"); // "+t[r].name+"\n",c.push(a+"_dtor"),i.push(t[r].jd));return l&&(n+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(n+"}\n"),it(c).apply(null,i)}var at=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ut(n){4<n&&0==--ot[n].nd&&(ot[n]=void 0,at.push(n))}function lt(n){switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=at.length?at.pop():ot.length;return ot[t]={nd:1,value:n},t}}function ct(n,t,r){switch(t){case 0:return function(n){return this.fromWireType((r?b:w)[n])};case 1:return function(n){return this.fromWireType((r?j:T)[n>>1])};case 2:return function(n){return this.fromWireType((r?A:P)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function ft(n,t){var r=vn[n];return void 0===r&&En(t+" has unknown type "+nt(n)),r}function dt(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}function st(n,t){switch(t){case 2:return function(n){return this.fromWireType(k[n>>2])};case 3:return function(n){return this.fromWireType(E[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}function pt(n,t,r){switch(t){case 0:return r?function(n){return b[n]}:function(n){return w[n]};case 1:return r?function(n){return j[n>>1]}:function(n){return T[n>>1]};case 2:return r?function(n){return A[n>>2]}:function(n){return P[n>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function yt(n){return n||En("Cannot use deleted val. handle = "+n),ot[n].value}function ht(n,t){for(var r=Array(n),i=0;i<n;++i)r[i]=ft(A[(t>>2)+i],"parameter "+i);return r}var vt={};function mt(n){var t=vt[n];return void 0===t?Pn(n):t}var gt=[];function _t(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Ct,bt={},wt={};function jt(){if(!Ct){var n,t={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",_:e||"./this.program"};for(n in wt)t[n]=wt[n];var r=[];for(n in t)r.push(n+"="+t[n]);Ct=r}return Ct}function Tt(n){return 0==n%4&&(0!=n%100||0==n%400)}function At(n,t){for(var r=0,i=0;i<=t;r+=n[i++]);return r}var Pt=[31,29,31,30,31,30,31,31,30,31,30,31],kt=[31,28,31,30,31,30,31,31,30,31,30,31];function Et(n,t){for(n=new Date(n.getTime());0<t;){var r=n.getMonth(),i=(Tt(n.getFullYear())?Pt:kt)[r];if(!(t>i-n.getDate())){n.setDate(n.getDate()+t);break}t-=i-n.getDate()+1,n.setDate(1),11>r?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}bn=t.InternalError=Cn("InternalError");for(var Wt=Array(256),Ft=0;256>Ft;++Ft)Wt[Ft]=String.fromCharCode(Ft);An=Wt,kn=t.BindingError=Cn("BindingError"),Yn.prototype.isAliasOf=function(n){if(!(this instanceof Yn&&n instanceof Yn))return!1;var t=this.bd.ed.cd,r=this.bd.dd,i=n.bd.ed.cd;for(n=n.bd.dd;t.ld;)r=t.xd(r),t=t.ld;for(;i.ld;)n=i.xd(n),i=i.ld;return t===i&&r===n},Yn.prototype.clone=function(){if(this.bd.dd||Dn(this),this.bd.ud)return this.bd.count.value+=1,this;var n=Mn(Object.create(Object.getPrototypeOf(this),{bd:{value:Fn(this.bd)}}));return n.bd.count.value+=1,n.bd.pd=!1,n},Yn.prototype.delete=function(){this.bd.dd||Dn(this),this.bd.pd&&!this.bd.ud&&En("Object already scheduled for deletion"),Sn(this),xn(this.bd),this.bd.ud||(this.bd.hd=void 0,this.bd.dd=void 0)},Yn.prototype.isDeleted=function(){return!this.bd.dd},Yn.prototype.deleteLater=function(){return this.bd.dd||Dn(this),this.bd.pd&&!this.bd.ud&&En("Object already scheduled for deletion"),Rn.push(this),1===Rn.length&&In&&In(Un),this.bd.pd=!0,this},Zn.prototype.Qd=function(n){return this.Ld&&(n=this.Ld(n)),n},Zn.prototype.td=function(n){this.md&&this.md(n)},Zn.prototype.argPackAdvance=8,Zn.prototype.readValueFromPointer=yn,Zn.prototype.deleteObject=function(n){null!==n&&n.delete()},Zn.prototype.fromWireType=function(n){function t(){return this.Bd?Jn(this.cd.qd,{ed:this.Wd,dd:r,kd:this,hd:n}):Jn(this.cd.qd,{ed:this,dd:n})}var r=this.Qd(n);if(!r)return this.td(n),null;var i=function(n,t){for(void 0===t&&En("ptr should not be undefined");n.ld;)t=n.xd(t),n=n.ld;return Kn[t]}(this.cd,r);if(void 0!==i)return 0===i.bd.count.value?(i.bd.dd=r,i.bd.hd=n,i.clone()):(i=i.clone(),this.td(n),i);if(i=this.cd.Pd(r),!(i=Hn[i]))return t.call(this);i=this.Ad?i.Md:i.pointerType;var e=function n(t,r,i){return r===i?t:void 0===i.ld||null===(t=n(t,r,i.ld))?null:i.Nd(t)}(r,this.cd,i.cd);return null===e?t.call(this):this.Bd?Jn(i.cd.qd,{ed:i,dd:e,kd:this,hd:n}):Jn(i.cd.qd,{ed:i,dd:e})},t.getInheritedInstanceCount=function(){return Object.keys(Kn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in Kn)Kn.hasOwnProperty(n)&&t.push(Kn[n]);return t},t.flushPendingDeletes=Un,t.setDelayFunction=function(n){In=n,Rn.length&&In&&In(Un)},Qn=t.UnboundTypeError=Cn("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;t<ot.length;++t)void 0!==ot[t]&&++n;return n},t.get_first_emval=function(){for(var n=5;n<ot.length;++n)if(void 0!==ot[n])return ot[n];return null};var Dt={n:function(n){return xt(n)},p:function(n){var t=tn[n];return t&&!t.Id&&(t.Id=!0,Rt.Hd--),t&&(t.vd=!1),rn.push(n),(t=en(n))&&tn[t].nd++,n},Ua:function(){var n=rn[rn.length-1]||0;if(n){var t=en(n);t&&tn[t].nd++}return n},xa:function(n){on(en(n))},t:function(){It(0);var n=rn.pop();n&&(on(en(n)),un=0)},b:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[38044]=n,n=152176;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},h:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[38044]=n,n=152176;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},G:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[38044]=n,n=152176;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},Ba:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[38044]=n,n=152176;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},q:an,wa:function(n){(n=en(n))&&tn[n].nd++},sa:ln,Ta:function(n){n&&(n=en(n),rn.push(n),tn[n].vd=!0,ln())},ya:function(n,t){B.unshift({Kd:n,yd:t})},B:function(n,t,r){throw tn[n]={dd:n,sd:[n],type:t,td:r,nd:0,Id:!1,vd:!1},un=n,"uncaught_exception"in Rt?Rt.Hd++:Rt.Hd=1,n},Va:function(){return Rt.Hd},Qa:function(){return t.___errno_location&&(A[t.___errno_location()>>2]=63),-1},d:function(n){throw un||(un=n),n},Pa:function(n,t){if(-1===n||0===t)n=-28;else{var r=cn[n];r&&t===r.je&&(cn[n]=null,r.ge&&Mt(r.ke)),n=0}return n},_a:function(n){var t=sn[n];delete sn[n];var r=t.Gd,i=t.md,e=t.Jd;jn([n],e.map((function(n){return n.Td})).concat(e.map((function(n){return n.$d}))),(function(n){var a={};return e.forEach((function(t,r){var i=n[r],o=t.Rd,u=t.Sd,l=n[r+e.length],c=t.Zd,f=t.ae;a[t.Od]={read:function(n){return i.fromWireType(o(u,n))},write:function(n,t){var r=[];c(f,n,l.toWireType(r,t)),pn(r)}}})),[{name:t.name,fromWireType:function(n){var t,r={};for(t in a)r[t]=a[t].read(n);return i(n),r},toWireType:function(n,t){for(var e in a)if(!(e in t))throw new TypeError("Missing field");var o=r();for(e in a)a[e].write(o,t[e]);return null!==n&&n.push(i,o),o},argPackAdvance:8,readValueFromPointer:yn,jd:i}]}))},Ma:function(n,t,r,i,e){var a=Tn(r);Wn(n,{name:t=Pn(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?i:e},argPackAdvance:8,readValueFromPointer:function(n){if(1===r)var i=b;else if(2===r)i=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);i=A}return this.fromWireType(i[n>>a])},jd:null})},D:function(n,t,r,i,e,a,o,u,l,c,f,d,s){f=Pn(f),a=Xn(e,a),u&&(u=Xn(o,u)),c&&(c=Xn(l,c)),s=Xn(d,s);var p=gn(f);Bn(p,(function(){tt("Cannot construct "+f+" due to unbound types",[i])})),jn([n,t,r],i?[i]:[],(function(t){if(t=t[0],i)var r=t.cd,e=r.qd;else e=Yn.prototype;t=_n(p,(function(){if(Object.getPrototypeOf(this)!==o)throw new kn("Use 'new' to construct "+f);if(void 0===l.od)throw new kn(f+" has no accessible constructor");var n=l.od[arguments.length];if(void 0===n)throw new kn("Tried to invoke ctor of "+f+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.od).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(e,{constructor:{value:t}});t.prototype=o;var l=new zn(f,t,o,s,r,a,u,c);r=new Zn(f,l,!0,!1,!1),e=new Zn(f+"*",l,!1,!1,!1);var d=new Zn(f+" const*",l,!1,!0,!1);return Hn[n]={pointerType:e,Md:d},$n(p,t),[r,e,d]}))},C:function(n,t,r,i,e,a){0<t||Z("Assertion failed: undefined");var o=rt(t,r);e=Xn(i,e);var u=[a],l=[];jn([],[n],(function(n){var r="constructor "+(n=n[0]).name;if(void 0===n.cd.od&&(n.cd.od=[]),void 0!==n.cd.od[t-1])throw new kn("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+n.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return n.cd.od[t-1]=function(){tt("Cannot construct "+n.name+" due to unbound types",o)},jn([],o,(function(i){return n.cd.od[t-1]=function(){arguments.length!==t-1&&En(r+" called with "+arguments.length+" arguments, expected "+(t-1)),l.length=0,u.length=t;for(var n=1;n<t;++n)u[n]=i[n].toWireType(l,arguments[n-1]);return n=e.apply(null,u),pn(l),i[0].fromWireType(n)},[]})),[]}))},m:function(n,t,r,i,e,a,o,u){var l=rt(r,i);t=Pn(t),a=Xn(e,a),jn([],[n],(function(n){function i(){tt("Cannot call "+e+" due to unbound types",l)}var e=(n=n[0]).name+"."+t;u&&n.cd.Xd.push(t);var c=n.cd.qd,f=c[t];return void 0===f||void 0===f.fd&&f.className!==n.name&&f.zd===r-2?(i.zd=r-2,i.className=n.name,c[t]=i):(Vn(c,t,e),c[t].fd[r-2]=i),jn([],l,(function(i){return i=et(e,i,n,a,o),void 0===c[t].fd?(i.zd=r-2,c[t]=i):c[t].fd[r-2]=i,[]})),[]}))},La:function(n,t){Wn(n,{name:t=Pn(t),fromWireType:function(n){var t=ot[n].value;return ut(n),t},toWireType:function(n,t){return lt(t)},argPackAdvance:8,readValueFromPointer:yn,jd:null})},_:function(n,t,r,i){function e(){}r=Tn(r),t=Pn(t),e.values={},Wn(n,{name:t,constructor:e,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:ct(t,r,i),jd:null}),Bn(t,e)},Z:function(n,t,r){var i=ft(n,"enum");t=Pn(t),n=i.constructor,i=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:_n(i.name+"_"+t,(function(){}))}}),n.values[r]=i,n[t]=i},ra:function(n,t,r){r=Tn(r),Wn(n,{name:t=Pn(t),fromWireType:function(n){return n},toWireType:function(n,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+dt(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:st(t,r),jd:null})},Y:function(n,t,r,i,e,a){var o=rt(t,r);n=Pn(n),e=Xn(i,e),Bn(n,(function(){tt("Cannot call "+n+" due to unbound types",o)}),t-1),jn([],o,(function(r){return $n(n,et(n,[r[0],null].concat(r.slice(1)),null,e,a),t-1),[]}))},O:function(n,t,r,i,e){function a(n){return n}t=Pn(t),-1===e&&(e=4294967295);var o=Tn(r);if(0===i){var u=32-8*r;a=function(n){return n<<u>>>u}}var l=-1!=t.indexOf("unsigned");Wn(n,{name:t,fromWireType:a,toWireType:function(n,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+dt(r)+'" to '+this.name);if(r<i||r>e)throw new TypeError('Passing a number "'+dt(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+i+", "+e+"]!");return l?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:pt(t,o,0!==i),jd:null})},L:function(n,t,r){function i(n){var t=P;return new e(C,t[1+(n>>=2)],t[n])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];Wn(n,{name:r=Pn(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{Ud:!0})},za:function(n,t,r,i,e,a,o,u,l,c,f,d){r=Pn(r),a=Xn(e,a),u=Xn(o,u),c=Xn(l,c),d=Xn(f,d),jn([n],[t],(function(n){return n=n[0],[new Zn(r,n.cd,!1,!1,!0,n,i,a,u,c,d)]}))},ta:function(n,t){var r="std::string"===(t=Pn(t));Wn(n,{name:t,fromWireType:function(n){var t=P[n>>2];if(r){var i=w[n+4+t],e=0;0!=i&&(e=i,w[n+4+t]=0);var a=n+4;for(i=0;i<=t;++i){var o=n+4+i;if(0==w[o]){if(a=m(a),void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}0!=e&&(w[n+4+t]=e)}else{for(u=Array(t),i=0;i<t;++i)u[i]=String.fromCharCode(w[n+4+i]);u=u.join("")}return Mt(n),u},toWireType:function(n,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||En("Cannot pass non-string to std::string");var e=(r&&i?function(){return _(t)}:function(){return t.length})(),a=xt(4+e+1);if(P[a>>2]=e,r&&i)g(t,w,a+4,e+1);else if(i)for(i=0;i<e;++i){var o=t.charCodeAt(i);255<o&&(Mt(a),En("String has UTF-16 code units that do not fit in 8 bits")),w[a+4+i]=o}else for(i=0;i<e;++i)w[a+4+i]=t[i];return null!==n&&n.push(Mt,a),a},argPackAdvance:8,readValueFromPointer:yn,jd:function(n){Mt(n)}})},ga:function(n,t,r){if(r=Pn(r),2===t)var i=F,e=D,a=O,o=function(){return T},u=1;else 4===t&&(i=S,e=x,a=M,o=function(){return P},u=2);Wn(n,{name:r,fromWireType:function(n){var r=P[n>>2],e=o(),a=e[n+4+r*t>>u],l=0;0!=a&&(l=a,e[n+4+r*t>>u]=0);var c=n+4;for(a=0;a<=r;++a){var f=n+4+a*t;if(0==e[f>>u]){if(c=i(c),void 0===d)var d=c;else d+=String.fromCharCode(0),d+=c;c=f+t}}return 0!=l&&(e[n+4+r*t>>u]=l),Mt(n),d},toWireType:function(n,i){"string"!=typeof i&&En("Cannot pass non-string to C++ string type "+r);var o=a(i),l=xt(4+o+t);return P[l>>2]=o>>u,e(i,l+4,o+t),null!==n&&n.push(Mt,l),l},argPackAdvance:8,readValueFromPointer:yn,jd:function(n){Mt(n)}})},$a:function(n,t,r,i,e,a){sn[n]={name:Pn(t),Gd:Xn(r,i),md:Xn(e,a),Jd:[]}},u:function(n,t,r,i,e,a,o,u,l,c){sn[n].Jd.push({Od:Pn(t),Td:r,Rd:Xn(i,e),Sd:a,$d:o,Zd:Xn(u,l),ae:c})},Na:function(n,t){Wn(n,{Vd:!0,name:t=Pn(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},cb:function(n,t,r){n=yt(n),t=ft(t,"emval::as");var i=[],e=lt(i);return A[r>>2]=e,t.toWireType(i,n)},Za:function(n,t,r,i){n=yt(n),r=ht(t,r);for(var e=Array(t),a=0;a<t;++a){var o=r[a];e[a]=o.readValueFromPointer(i),i+=o.argPackAdvance}return lt(n=n.apply(void 0,e))},K:function(n,t,r,i,e){n=gt[n],t=yt(t),r=mt(r);var a=[];return A[i>>2]=lt(a),n(t,r,a,e)},E:function(n,t,r,i){(n=gt[n])(t=yt(t),r=mt(r),null,i)},ha:ut,Ga:function(n){return 0===n?lt(_t()):(n=mt(n),lt(_t()[n]))},y:function(n,t){for(var r=(t=ht(n,t))[0],i=r.name+"_$"+t.slice(1).map((function(n){return n.name})).join("_")+"$",e=["retType"],a=[r],o="",u=0;u<n-1;++u)o+=(0!==u?", ":"")+"arg"+u,e.push("argType"+u),a.push(t[1+u]);i="return function "+gn("methodCaller_"+i)+"(handle, name, destructors, args) {\n";var l=0;for(u=0;u<n-1;++u)i+=" var arg"+u+" = argType"+u+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=t[u+1].argPackAdvance;for(i+=" var rv = handle[name]("+o+");\n",u=0;u<n-1;++u)t[u+1].deleteObject&&(i+=" argType"+u+".deleteObject(arg"+u+");\n");return r.Vd||(i+=" return retType.toWireType(destructors, rv);\n"),e.push(i+"};\n"),function(n){var t=gt.length;return gt.push(n),t}(n=it(e).apply(null,a))},db:function(n){return n=mt(n),lt(t[n])},nb:function(n,t){return lt((n=yt(n))[t=yt(t)])},ja:function(n){4<n&&(ot[n].nd+=1)},bb:function(n,r,i,e){n=yt(n);var a=bt[r];if(!a){a="";for(var o=0;o<r;++o)a+=(0!==o?", ":"")+"arg"+o;var u="return function emval_allocator_"+r+"(constructor, argTypes, args) {\n";for(o=0;o<r;++o)u+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",u+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(ft,t,lt),bt[r]=a}return a(n,i,e)},Ya:function(){return lt([])},ib:function(n){return lt(mt(n))},Ha:function(n){pn(ot[n].value),ut(n)},ab:function(n,t){return(n=yt(n))===yt(t)},A:function(n,t){return lt(n=(n=ft(n,"_emval_take_value")).readValueFromPointer(t))},ua:function(){Z()},Ja:function(n,t,r){w.copyWithin(n,t,t+r)},Ka:function(n){var t=w.length;if(2147418112<n)return!1;for(var r=1;4>=r;r*=2){var i=t*(1+.2/r);i=Math.min(i,n+100663296),0<(i=Math.max(16777216,n,i))%65536&&(i+=65536-i%65536);n:{try{s.grow(Math.min(2147418112,i)-C.byteLength+65535>>16),I(s.buffer);var e=1;break n}catch(n){}e=void 0}if(e)return!0}return!1},Wa:function(n,t){var r=0;return jt().forEach((function(i,e){var a=t+r;for(e=A[n+4*e>>2]=a,a=0;a<i.length;++a)b[e++>>0]=i.charCodeAt(a);b[e>>0]=0,r+=i.length+1})),0},Xa:function(n,t){var r=jt();A[n>>2]=r.length;var i=0;return r.forEach((function(n){i+=n.length+1})),A[t>>2]=i,0},Sa:function(){return 0},Ra:function(n,t,r,i){return n=dn.ie(n),t=dn.he(n,t,r),A[i>>2]=t,0},hb:function(){},va:function(n,t,r,i){for(var e=0,a=0;a<r;a++){for(var o=A[t+8*a>>2],c=A[t+(8*a+4)>>2],f=0;f<c;f++){var d=w[o+f],s=fn[n];0===d||10===d?((1===n?u:l)(v(s,0)),s.length=0):s.push(d)}e+=c}return A[i>>2]=e,0},a:function(){return 0|d},Ia:function(n,t){var r=Lr();try{return Br(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Fa:function(n,t,r){var i=Lr();try{return zr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},da:function(n,t,r,i){var e=Lr();try{return qr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},H:function(n,t){var r=Lr();try{return Ir(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},la:function(n,t,r){var i=Lr();try{return Hr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},pb:function(n,t,r,i){var e=Lr();try{return Vr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},J:function(n,t,r){var i=Lr();try{return Rr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},R:function(n,t,r,i,e){var a=Lr();try{return Yr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Q:function(n,t,r,i){var e=Lr();try{return Ur(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},v:function(n){var t=Lr();try{return vr(n)}catch(n){if(Gr(t),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},W:function(n,t){var r=Lr();try{return Sr(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},g:function(n,t){var r=Lr();try{return mr(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},aa:function(n,t,r){var i=Lr();try{return Or(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},P:function(n,t,r){var i=Lr();try{return Fr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ob:function(n,t,r,i){var e=Lr();try{return Dr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},c:function(n,t,r){var i=Lr();try{return gr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},mb:function(n,t,r,i){var e=Lr();try{return kr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},pa:function(n,t,r,i,e){var a=Lr();try{return Er(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},i:function(n,t,r,i){var e=Lr();try{return _r(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},o:function(n,t,r,i,e){var a=Lr();try{return Cr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Aa:function(n,t,r,i,e,a){var o=Lr();try{return Pr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},x:function(n,t,r,i,e,a){var o=Lr();try{return br(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},z:function(n,t,r,i,e,a,o){var u=Lr();try{return wr(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},N:function(n,t,r,i,e,a,o,u){var l=Lr();try{return jr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},$:function(n,t,r,i,e,a,o,u,l){var c=Lr();try{return Tr(n,t,r,i,e,a,o,u,l)}catch(n){if(Gr(c),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ca:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=Lr();try{return Ar(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(Gr(s),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},fb:function(n,t,r,i){var e=Lr();try{return Wr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},gb:function(n,t,r){var i=Lr();try{return xr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},eb:function(n,t,r,i,e){var a=Lr();try{return Mr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},l:function(n){var t=Lr();try{Vt(n)}catch(n){if(Gr(t),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},k:function(n,t){var r=Lr();try{Bt(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},qa:function(n,t,r,i){var e=Lr();try{hr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ea:function(n,t,r){var i=Lr();try{dr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},rb:function(n,t,r,i){var e=Lr();try{sr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},qb:function(n,t,r,i,e,a,o,u){var l=Lr();try{yr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Ca:function(n,t,r,i,e,a,o,u){var l=Lr();try{pr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},e:function(n,t,r){var i=Lr();try{zt(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ma:function(n,t,r,i){var e=Lr();try{lr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},U:function(n,t,r,i,e){var a=Lr();try{cr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},T:function(n,t,r,i,e,a){var o=Lr();try{fr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ka:function(n,t,r,i){var e=Lr();try{ar(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},lb:function(n,t,r,i,e){var a=Lr();try{or(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Ea:function(n,t,r,i,e,a,o){var u=Lr();try{ur(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},f:function(n,t,r,i){var e=Lr();try{qt(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},na:function(n,t,r,i,e){var a=Lr();try{ir(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},oa:function(n,t,r,i,e,a){var o=Lr();try{er(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},j:function(n,t,r,i,e){var a=Lr();try{Nt(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},fa:function(n,t,r,i,e,a){var o=Lr();try{rr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Da:function(n,t,r,i,e,a,o){var u=Lr();try{tr(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},s:function(n,t,r,i,e,a){var o=Lr();try{Lt(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},w:function(n,t,r,i,e,a,o){var u=Lr();try{Gt(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},F:function(n,t,r,i,e,a,o,u){var l=Lr();try{Kt(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},M:function(n,t,r,i,e,a,o,u,l){var c=Lr();try{Jt(n,t,r,i,e,a,o,u,l)}catch(n){if(Gr(c),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},V:function(n,t,r,i,e,a,o,u,l,c){var f=Lr();try{Zt(n,t,r,i,e,a,o,u,l,c)}catch(n){if(Gr(f),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},I:function(n,t,r,i,e,a,o,u,l,c,f){var d=Lr();try{$t(n,t,r,i,e,a,o,u,l,c,f)}catch(n){if(Gr(d),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},kb:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=Lr();try{Xt(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(Gr(s),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},jb:function(n,t,r,i,e,a,o,u,l,c,f,d,s){var p=Lr();try{Qt(n,t,r,i,e,a,o,u,l,c,f,d,s)}catch(n){if(Gr(p),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ba:function(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h){var v=Lr();try{nr(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h)}catch(n){if(Gr(v),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},r:function(n){return n},memory:s,S:function(n){return 0<=(n=+n)?+L(n+.5):+N(n-.5)},X:function(n){return 0<=(n=+n)?+L(n+.5):+N(n-.5)},ia:function(n){d=0|n},Oa:function(n,t,r,i){return function(n,t,r,i){function e(n,t,r){for(n="number"==typeof n?n.toString():n||"";n.length<t;)n=r[0]+n;return n}function a(n,t){return e(n,t,"0")}function o(n,t){function r(n){return 0>n?-1:0<n?1:0}var i;return 0===(i=r(n.getFullYear()-t.getFullYear()))&&0===(i=r(n.getMonth()-t.getMonth()))&&(i=r(n.getDate()-t.getDate())),i}function u(n){switch(n.getDay()){case 0:return new Date(n.getFullYear()-1,11,29);case 1:return n;case 2:return new Date(n.getFullYear(),0,3);case 3:return new Date(n.getFullYear(),0,2);case 4:return new Date(n.getFullYear(),0,1);case 5:return new Date(n.getFullYear()-1,11,31);case 6:return new Date(n.getFullYear()-1,11,30)}}function l(n){n=Et(new Date(n.gd+1900,0,1),n.Ed);var t=new Date(n.getFullYear()+1,0,4),r=u(new Date(n.getFullYear(),0,4));return t=u(t),0>=o(r,n)?0>=o(t,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var c=A[i+40>>2];for(var f in i={ee:A[i>>2],de:A[i+4>>2],Cd:A[i+8>>2],wd:A[i+12>>2],rd:A[i+16>>2],gd:A[i+20>>2],Dd:A[i+24>>2],Ed:A[i+28>>2],me:A[i+32>>2],ce:A[i+36>>2],fe:c?m(c):""},r=m(r),c={"%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"})r=r.replace(new RegExp(f,"g"),c[f]);var d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),s="January February March April May June July August September October November December".split(" ");for(f in c={"%a":function(n){return d[n.Dd].substring(0,3)},"%A":function(n){return d[n.Dd]},"%b":function(n){return s[n.rd].substring(0,3)},"%B":function(n){return s[n.rd]},"%C":function(n){return a((n.gd+1900)/100|0,2)},"%d":function(n){return a(n.wd,2)},"%e":function(n){return e(n.wd,2," ")},"%g":function(n){return l(n).toString().substring(2)},"%G":function(n){return l(n)},"%H":function(n){return a(n.Cd,2)},"%I":function(n){return 0==(n=n.Cd)?n=12:12<n&&(n-=12),a(n,2)},"%j":function(n){return a(n.wd+At(Tt(n.gd+1900)?Pt:kt,n.rd-1),3)},"%m":function(n){return a(n.rd+1,2)},"%M":function(n){return a(n.de,2)},"%n":function(){return"\n"},"%p":function(n){return 0<=n.Cd&&12>n.Cd?"AM":"PM"},"%S":function(n){return a(n.ee,2)},"%t":function(){return"\t"},"%u":function(n){return n.Dd||7},"%U":function(n){var t=new Date(n.gd+1900,0,1),r=0===t.getDay()?t:Et(t,7-t.getDay());return 0>o(r,n=new Date(n.gd+1900,n.rd,n.wd))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%V":function(n){var t=new Date(n.gd+1901,0,4),r=u(new Date(n.gd+1900,0,4));t=u(t);var i=Et(new Date(n.gd+1900,0,1),n.Ed);return 0>o(i,r)?"53":0>=o(t,i)?"01":a(Math.ceil((r.getFullYear()<n.gd+1900?n.Ed+32-r.getDate():n.Ed+1-r.getDate())/7),2)},"%w":function(n){return n.Dd},"%W":function(n){var t=new Date(n.gd,0,1),r=1===t.getDay()?t:Et(t,0===t.getDay()?1:7-t.getDay()+1);return 0>o(r,n=new Date(n.gd+1900,n.rd,n.wd))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%y":function(n){return(n.gd+1900).toString().substring(2)},"%Y":function(n){return n.gd+1900},"%z":function(n){var t=0<=(n=n.ce);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.fe},"%%":function(){return"%"}})0<=r.indexOf(f)&&(r=r.replace(new RegExp(f,"g"),c[f](i)));return(f=function(n){var t=Array(_(n)+1);return g(n,t,0,t.length),t}(r)).length>t?0:(b.set(f,n),f.length-1)}(n,t,r,i)},table:p},Ot=function(){function n(n){t.asm=n.exports,G--,t.monitorRunDependencies&&t.monitorRunDependencies(G),0==G&&(null!==K&&(clearInterval(K),K=null),J&&(n=J,J=null,n()))}function r(t){n(t.instance)}function i(n){return(c||"function"!=typeof fetch?new Promise((function(n){n(nn())})):fetch(X,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+X+"'";return n.arrayBuffer()})).catch((function(){return nn()}))).then((function(n){return WebAssembly.instantiate(n,e)})).then(n,(function(n){l("failed to asynchronously prepare wasm: "+n),Z(n)}))}var e={a:Dt};if(G++,t.monitorRunDependencies&&t.monitorRunDependencies(G),t.instantiateWasm)try{return t.instantiateWasm(e,n)}catch(n){return l("Module.instantiateWasm callback failed with error: "+n),!1}return function(){if(c||"function"!=typeof WebAssembly.instantiateStreaming||$()||"function"!=typeof fetch)return i(r);fetch(X,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,e).then(r,(function(n){l("wasm streaming compile failed: "+n),l("falling back to ArrayBuffer instantiation"),i(r)}))}))}(),{}}();t.asm=Ot;var St=t.___wasm_call_ctors=function(){return(St=t.___wasm_call_ctors=t.asm.sb).apply(null,arguments)},xt=t._malloc=function(){return(xt=t._malloc=t.asm.tb).apply(null,arguments)},Mt=t._free=function(){return(Mt=t._free=t.asm.ub).apply(null,arguments)};t._main=function(){return(t._main=t.asm.vb).apply(null,arguments)};var It=t._setThrew=function(){return(It=t._setThrew=t.asm.wb).apply(null,arguments)},Rt=t.__ZSt18uncaught_exceptionv=function(){return(Rt=t.__ZSt18uncaught_exceptionv=t.asm.xb).apply(null,arguments)},Ut=t.___cxa_can_catch=function(){return(Ut=t.___cxa_can_catch=t.asm.yb).apply(null,arguments)},Yt=t.___cxa_is_pointer_type=function(){return(Yt=t.___cxa_is_pointer_type=t.asm.zb).apply(null,arguments)},Ht=t.___getTypeName=function(){return(Ht=t.___getTypeName=t.asm.Ab).apply(null,arguments)};t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.Bb).apply(null,arguments)};var Vt=t.dynCall_v=function(){return(Vt=t.dynCall_v=t.asm.Cb).apply(null,arguments)},Bt=t.dynCall_vi=function(){return(Bt=t.dynCall_vi=t.asm.Db).apply(null,arguments)},zt=t.dynCall_vii=function(){return(zt=t.dynCall_vii=t.asm.Eb).apply(null,arguments)},qt=t.dynCall_viii=function(){return(qt=t.dynCall_viii=t.asm.Fb).apply(null,arguments)},Nt=t.dynCall_viiii=function(){return(Nt=t.dynCall_viiii=t.asm.Gb).apply(null,arguments)},Lt=t.dynCall_viiiii=function(){return(Lt=t.dynCall_viiiii=t.asm.Hb).apply(null,arguments)},Gt=t.dynCall_viiiiii=function(){return(Gt=t.dynCall_viiiiii=t.asm.Ib).apply(null,arguments)},Kt=t.dynCall_viiiiiii=function(){return(Kt=t.dynCall_viiiiiii=t.asm.Jb).apply(null,arguments)},Jt=t.dynCall_viiiiiiii=function(){return(Jt=t.dynCall_viiiiiiii=t.asm.Kb).apply(null,arguments)},Zt=t.dynCall_viiiiiiiii=function(){return(Zt=t.dynCall_viiiiiiiii=t.asm.Lb).apply(null,arguments)},$t=t.dynCall_viiiiiiiiii=function(){return($t=t.dynCall_viiiiiiiiii=t.asm.Mb).apply(null,arguments)},Xt=t.dynCall_viiiiiiiiiii=function(){return(Xt=t.dynCall_viiiiiiiiiii=t.asm.Nb).apply(null,arguments)},Qt=t.dynCall_viiiiiiiiiiii=function(){return(Qt=t.dynCall_viiiiiiiiiiii=t.asm.Ob).apply(null,arguments)},nr=t.dynCall_viiiiiiiiiiiiiii=function(){return(nr=t.dynCall_viiiiiiiiiiiiiii=t.asm.Pb).apply(null,arguments)},tr=t.dynCall_viiiifi=function(){return(tr=t.dynCall_viiiifi=t.asm.Qb).apply(null,arguments)},rr=t.dynCall_viiiid=function(){return(rr=t.dynCall_viiiid=t.asm.Rb).apply(null,arguments)},ir=t.dynCall_viiif=function(){return(ir=t.dynCall_viiif=t.asm.Sb).apply(null,arguments)},er=t.dynCall_viiifi=function(){return(er=t.dynCall_viiifi=t.asm.Tb).apply(null,arguments)},ar=t.dynCall_viif=function(){return(ar=t.dynCall_viif=t.asm.Ub).apply(null,arguments)},or=t.dynCall_viifi=function(){return(or=t.dynCall_viifi=t.asm.Vb).apply(null,arguments)},ur=t.dynCall_viifiii=function(){return(ur=t.dynCall_viifiii=t.asm.Wb).apply(null,arguments)},lr=t.dynCall_viid=function(){return(lr=t.dynCall_viid=t.asm.Xb).apply(null,arguments)},cr=t.dynCall_viidi=function(){return(cr=t.dynCall_viidi=t.asm.Yb).apply(null,arguments)},fr=t.dynCall_viidii=function(){return(fr=t.dynCall_viidii=t.asm.Zb).apply(null,arguments)},dr=t.dynCall_vif=function(){return(dr=t.dynCall_vif=t.asm._b).apply(null,arguments)},sr=t.dynCall_vifi=function(){return(sr=t.dynCall_vifi=t.asm.$b).apply(null,arguments)},pr=t.dynCall_vifiiiff=function(){return(pr=t.dynCall_vifiiiff=t.asm.ac).apply(null,arguments)},yr=t.dynCall_vifiifif=function(){return(yr=t.dynCall_vifiifif=t.asm.bc).apply(null,arguments)};t.dynCall_vid=function(){return(t.dynCall_vid=t.asm.cc).apply(null,arguments)};var hr=t.dynCall_vidi=function(){return(hr=t.dynCall_vidi=t.asm.dc).apply(null,arguments)},vr=t.dynCall_i=function(){return(vr=t.dynCall_i=t.asm.ec).apply(null,arguments)},mr=t.dynCall_ii=function(){return(mr=t.dynCall_ii=t.asm.fc).apply(null,arguments)},gr=t.dynCall_iii=function(){return(gr=t.dynCall_iii=t.asm.gc).apply(null,arguments)},_r=t.dynCall_iiii=function(){return(_r=t.dynCall_iiii=t.asm.hc).apply(null,arguments)},Cr=t.dynCall_iiiii=function(){return(Cr=t.dynCall_iiiii=t.asm.ic).apply(null,arguments)},br=t.dynCall_iiiiii=function(){return(br=t.dynCall_iiiiii=t.asm.jc).apply(null,arguments)},wr=t.dynCall_iiiiiii=function(){return(wr=t.dynCall_iiiiiii=t.asm.kc).apply(null,arguments)},jr=t.dynCall_iiiiiiii=function(){return(jr=t.dynCall_iiiiiiii=t.asm.lc).apply(null,arguments)},Tr=t.dynCall_iiiiiiiii=function(){return(Tr=t.dynCall_iiiiiiiii=t.asm.mc).apply(null,arguments)};t.dynCall_iiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiii=t.asm.nc).apply(null,arguments)};var Ar=t.dynCall_iiiiiiiiiiii=function(){return(Ar=t.dynCall_iiiiiiiiiiii=t.asm.oc).apply(null,arguments)};t.dynCall_iiiiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiiiii=t.asm.pc).apply(null,arguments)};var Pr=t.dynCall_iiiiid=function(){return(Pr=t.dynCall_iiiiid=t.asm.qc).apply(null,arguments)},kr=t.dynCall_iiif=function(){return(kr=t.dynCall_iiif=t.asm.rc).apply(null,arguments)},Er=t.dynCall_iiifi=function(){return(Er=t.dynCall_iiifi=t.asm.sc).apply(null,arguments)},Wr=t.dynCall_iij=function(){return(Wr=t.dynCall_iij=t.asm.tc).apply(null,arguments)},Fr=t.dynCall_iif=function(){return(Fr=t.dynCall_iif=t.asm.uc).apply(null,arguments)},Dr=t.dynCall_iiff=function(){return(Dr=t.dynCall_iiff=t.asm.vc).apply(null,arguments)};t.dynCall_iiffff=function(){return(t.dynCall_iiffff=t.asm.wc).apply(null,arguments)};var Or=t.dynCall_iid=function(){return(Or=t.dynCall_iid=t.asm.xc).apply(null,arguments)},Sr=t.dynCall_if=function(){return(Sr=t.dynCall_if=t.asm.yc).apply(null,arguments)};t.dynCall_id=function(){return(t.dynCall_id=t.asm.zc).apply(null,arguments)};var xr=t.dynCall_jii=function(){return(xr=t.dynCall_jii=t.asm.Ac).apply(null,arguments)},Mr=t.dynCall_jiiii=function(){return(Mr=t.dynCall_jiiii=t.asm.Bc).apply(null,arguments)},Ir=t.dynCall_fi=function(){return(Ir=t.dynCall_fi=t.asm.Cc).apply(null,arguments)},Rr=t.dynCall_fii=function(){return(Rr=t.dynCall_fii=t.asm.Dc).apply(null,arguments)},Ur=t.dynCall_fiii=function(){return(Ur=t.dynCall_fiii=t.asm.Ec).apply(null,arguments)},Yr=t.dynCall_fiifi=function(){return(Yr=t.dynCall_fiifi=t.asm.Fc).apply(null,arguments)},Hr=t.dynCall_fif=function(){return(Hr=t.dynCall_fif=t.asm.Gc).apply(null,arguments)},Vr=t.dynCall_fiff=function(){return(Vr=t.dynCall_fiff=t.asm.Hc).apply(null,arguments)},Br=t.dynCall_di=function(){return(Br=t.dynCall_di=t.asm.Ic).apply(null,arguments)},zr=t.dynCall_dii=function(){return(zr=t.dynCall_dii=t.asm.Jc).apply(null,arguments)},qr=t.dynCall_diii=function(){return(qr=t.dynCall_diii=t.asm.Kc).apply(null,arguments)};t.dynCall_ddi=function(){return(t.dynCall_ddi=t.asm.Lc).apply(null,arguments)};var Nr,Lr=t.stackSave=function(){return(Lr=t.stackSave=t.asm.Mc).apply(null,arguments)},Gr=t.stackRestore=function(){return(Gr=t.stackRestore=t.asm.Nc).apply(null,arguments)};function Kr(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Jr(){function n(){if(!Nr&&(Nr=!0,t.calledRun=!0,!y)){if(U(H),U(V),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Zr){var n=t._main;try{var r=n(0,0);f&&0===r||(!f&&(y=!0,t.onExit)&&t.onExit(r),a(r,new Kr(r)))}catch(t){t instanceof Kr||("unwind"==t?f=!0:((n=t)&&"object"==typeof t&&t.stack&&(n=[t,t.stack]),l("exception thrown: "+n),a(1,t)))}}if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)n=t.postRun.shift(),z.unshift(n);U(z)}}if(!(0<G)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)q();U(Y),0<G||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),n()}),1)):n())}}if(t.dynCall_iiidii=function(){return(t.dynCall_iiidii=t.asm.Oc).apply(null,arguments)},t.dynCall_fiiii=function(){return(t.dynCall_fiiii=t.asm.Pc).apply(null,arguments)},t.dynCall_iiidi=function(){return(t.dynCall_iiidi=t.asm.Qc).apply(null,arguments)},t.dynCall_diiii=function(){return(t.dynCall_diiii=t.asm.Rc).apply(null,arguments)},t.dynCall_iiiif=function(){return(t.dynCall_iiiif=t.asm.Sc).apply(null,arguments)},t.dynCall_iidiiii=function(){return(t.dynCall_iidiiii=t.asm.Tc).apply(null,arguments)},t.dynCall_viijii=function(){return(t.dynCall_viijii=t.asm.Uc).apply(null,arguments)},t.dynCall_viiifif=function(){return(t.dynCall_viiifif=t.asm.Vc).apply(null,arguments)},t.dynCall_vifffiii=function(){return(t.dynCall_vifffiii=t.asm.Wc).apply(null,arguments)},t.dynCall_vifffiifif=function(){return(t.dynCall_vifffiifif=t.asm.Xc).apply(null,arguments)},t.dynCall_fifi=function(){return(t.dynCall_fifi=t.asm.Yc).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.Zc).apply(null,arguments)},t.dynCall_iiiiiijj=function(){return(t.dynCall_iiiiiijj=t.asm._c).apply(null,arguments)},t.dynCall_iiiiij=function(){return(t.dynCall_iiiiij=t.asm.$c).apply(null,arguments)},t.dynCall_iiiiijj=function(){return(t.dynCall_iiiiijj=t.asm.ad).apply(null,arguments)},t.asm=Ot,t.then=function(n){if(Nr)n(t);else{var r=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){r&&r(),n(t)}}return t},J=function n(){Nr||Jr(),Nr||(J=n)},t.run=Jr,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();var Zr=!0;return t.noInitialRun&&(Zr=!1),f=!0,Jr(),n});"object"==typeof exports&&"object"==typeof module?module.exports=ConfiguratorKernel:"function"==typeof define&&define.amd?define([],(function(){return ConfiguratorKernel})):"object"==typeof exports&&(exports.ConfiguratorKernel=ConfiguratorKernel);
1
+ var _scriptDir,ConfiguratorKernel=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(n){var t;n=n||{},t||(t=void 0!==n?n:{});var r,i={};for(r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);var e="./this.program";function a(n,t){throw t}var o="";document.currentScript&&(o=document.currentScript.src),_scriptDir&&(o=_scriptDir),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"";var u=t.print||console.log.bind(console),l=t.printErr||console.warn.bind(console);for(r in i)i.hasOwnProperty(r)&&(t[r]=i[r]);i=null,t.thisProgram&&(e=t.thisProgram),t.quit&&(a=t.quit);var c,f,d=0;t.wasmBinary&&(c=t.wasmBinary),t.noExitRuntime&&(f=t.noExitRuntime),"object"!=typeof WebAssembly&&l("no native wasm support detected");var s,p=new WebAssembly.Table({initial:7964,maximum:7964,element:"anyfunc"}),y=!1,h="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function v(n,t,r){var i=t+r;for(r=t;n[r]&&!(r>=i);)++r;if(16<r-t&&n.subarray&&h)return h.decode(n.subarray(t,r));for(i="";t<r;){var e=n[t++];if(128&e){var a=63&n[t++];if(192==(224&e))i+=String.fromCharCode((31&e)<<6|a);else{var o=63&n[t++];65536>(e=224==(240&e)?(15&e)<<12|a<<6|o:(7&e)<<18|a<<12|o<<6|63&n[t++])?i+=String.fromCharCode(e):(e-=65536,i+=String.fromCharCode(55296|e>>10,56320|1023&e))}}else i+=String.fromCharCode(e)}return i}function m(n){return n?v(w,n,void 0):""}function g(n,t,r,i){if(0<i){i=r+i-1;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),127>=a){if(r>=i)break;t[r++]=a}else{if(2047>=a){if(r+1>=i)break;t[r++]=192|a>>6}else{if(65535>=a){if(r+2>=i)break;t[r++]=224|a>>12}else{if(r+3>=i)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63}t[r++]=128|a>>6&63}t[r++]=128|63&a}}t[r]=0}}function _(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++r)),127>=i?++t:t=2047>=i?t+2:65535>=i?t+3:t+4}return t}var C,b,w,j,T,A,P,k,E,W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function F(n){var t;for(t=n>>1;j[t];)++t;if(32<(t<<=1)-n&&W)return W.decode(w.subarray(n,t));t=0;for(var r="";;){var i=j[n+2*t>>1];if(0==i)return r;++t,r+=String.fromCharCode(i)}}function D(n,t,r){if(void 0===r&&(r=2147483647),2>r)return 0;var i=t;r=(r-=2)<2*n.length?r/2:n.length;for(var e=0;e<r;++e)j[t>>1]=n.charCodeAt(e),t+=2;return j[t>>1]=0,t-i}function O(n){return 2*n.length}function S(n){for(var t=0,r="";;){var i=A[n+4*t>>2];if(0==i)return r;++t,65536<=i?(i-=65536,r+=String.fromCharCode(55296|i>>10,56320|1023&i)):r+=String.fromCharCode(i)}}function x(n,t,r){if(void 0===r&&(r=2147483647),4>r)return 0;var i=t;r=i+r-4;for(var e=0;e<n.length;++e){var a=n.charCodeAt(e);if(55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&n.charCodeAt(++e)),A[t>>2]=a,(t+=4)+4>r)break}return A[t>>2]=0,t-i}function M(n){for(var t=0,r=0;r<n.length;++r){var i=n.charCodeAt(r);55296<=i&&57343>=i&&++r,t+=4}return t}function I(n){C=n,t.HEAP8=b=new Int8Array(n),t.HEAP16=j=new Int16Array(n),t.HEAP32=A=new Int32Array(n),t.HEAPU8=w=new Uint8Array(n),t.HEAPU16=T=new Uint16Array(n),t.HEAPU32=P=new Uint32Array(n),t.HEAPF32=k=new Float32Array(n),t.HEAPF64=E=new Float64Array(n)}var R=t.INITIAL_MEMORY||167772160;function U(n){for(;0<n.length;){var r=n.shift();if("function"==typeof r)r();else{var i=r.Kd;"number"==typeof i?void 0===r.yd?t.dynCall_v(i):t.dynCall_vi(i,r.yd):i(void 0===r.yd?null:r.yd)}}}(s=t.wasmMemory?t.wasmMemory:new WebAssembly.Memory({initial:R/65536}))&&(C=s.buffer),R=C.byteLength,I(C),A[37356]=5392480;var Y=[],H=[],V=[],B=[],z=[];function q(){var n=t.preRun.shift();Y.unshift(n)}var N=Math.ceil,L=Math.floor,G=0,K=null,J=null;function Z(n){throw t.onAbort&&t.onAbort(n),u(n),l(n),y=!0,new WebAssembly.RuntimeError("abort("+n+"). Build with -s ASSERTIONS=1 for more info.")}function $(){var n=X;return String.prototype.startsWith?n.startsWith("data:application/octet-stream;base64,"):0===n.indexOf("data:application/octet-stream;base64,")}t.preloadedImages={},t.preloadedAudios={};var X="ConfiguratorKernel.wasm";if(!$()){var Q=X;X=t.locateFile?t.locateFile(Q,o):o+Q}function nn(){try{if(c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(n){Z(n)}}H.push({Kd:function(){St()}});var tn={},rn=[];function en(n){if(!n||tn[n])return n;for(var t in tn)for(var r=+t,i=tn[r].sd,e=i.length,a=0;a<e;a++)if(i[a]===n)return r;return n}function an(n){try{return Mt(n)}catch(n){}}function on(n){if(n){var r=tn[n];r.nd--,0!==r.nd||r.vd||(r.td&&t.dynCall_ii(r.td,n),delete tn[n],an(n))}}var un=0;function ln(){var n=rn.pop();throw n=en(n),tn[n].vd||(rn.push(n),tn[n].vd=!0),un=n,n}var cn={},fn=[null,[],[]],dn={},sn={};function pn(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function yn(n){return this.fromWireType(P[n>>2])}var hn={},vn={},mn={};function gn(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function _n(n,t){return n=gn(n),new Function("body","return function "+n+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Cn(n){var t=Error,r=_n(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var bn=void 0;function wn(n){throw new bn(n)}function jn(n,t,r){function i(t){(t=r(t)).length!==n.length&&wn("Mismatched type converter count");for(var i=0;i<n.length;++i)Wn(n[i],t[i])}n.forEach((function(n){mn[n]=t}));var e=Array(t.length),a=[],o=0;t.forEach((function(n,t){vn.hasOwnProperty(n)?e[t]=vn[n]:(a.push(n),hn.hasOwnProperty(n)||(hn[n]=[]),hn[n].push((function(){e[t]=vn[n],++o===a.length&&i(e)})))})),0===a.length&&i(e)}function Tn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}var An=void 0;function Pn(n){for(var t="";w[n];)t+=An[w[n++]];return t}var kn=void 0;function En(n){throw new kn(n)}function Wn(n,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(n||En('type "'+i+'" must have a positive integer typeid pointer'),vn.hasOwnProperty(n)){if(r.Ud)return;En("Cannot register type '"+i+"' twice")}vn[n]=t,delete mn[n],hn.hasOwnProperty(n)&&(t=hn[n],delete hn[n],t.forEach((function(n){n()})))}function Fn(n){return{count:n.count,pd:n.pd,ud:n.ud,dd:n.dd,ed:n.ed,hd:n.hd,kd:n.kd}}function Dn(n){En(n.bd.ed.cd.name+" instance already deleted")}var On=!1;function Sn(){}function xn(n){--n.count.value,0===n.count.value&&(n.hd?n.kd.md(n.hd):n.ed.cd.md(n.dd))}function Mn(n){return"undefined"==typeof FinalizationGroup?(Mn=function(n){return n},n):(On=new FinalizationGroup((function(n){for(var t=n.next();!t.done;t=n.next())(t=t.value).dd?xn(t):console.warn("object already deleted: "+t.dd)})),Sn=function(n){On.unregister(n.bd)},(Mn=function(n){return On.register(n,n.bd,n.bd),n})(n))}var In=void 0,Rn=[];function Un(){for(;Rn.length;){var n=Rn.pop();n.bd.pd=!1,n.delete()}}function Yn(){}var Hn={};function Vn(n,t,r){if(void 0===n[t].fd){var i=n[t];n[t]=function(){return n[t].fd.hasOwnProperty(arguments.length)||En("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].fd+")!"),n[t].fd[arguments.length].apply(this,arguments)},n[t].fd=[],n[t].fd[i.zd]=i}}function Bn(n,r,i){t.hasOwnProperty(n)?((void 0===i||void 0!==t[n].fd&&void 0!==t[n].fd[i])&&En("Cannot register public name '"+n+"' twice"),Vn(t,n,n),t.hasOwnProperty(i)&&En("Cannot register multiple overloads of a function with the same number of arguments ("+i+")!"),t[n].fd[i]=r):(t[n]=r,void 0!==i&&(t[n].le=i))}function zn(n,t,r,i,e,a,o,u){this.name=n,this.constructor=t,this.qd=r,this.md=i,this.ld=e,this.Pd=a,this.xd=o,this.Nd=u,this.Xd=[]}function qn(n,t,r){for(;t!==r;)t.xd||En("Expected null or instance of "+r.name+", got an instance of "+t.name),n=t.xd(n),t=t.ld;return n}function Nn(n,t){return null===t?(this.Fd&&En("null is not a valid "+this.name),0):(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),qn(t.bd.dd,t.bd.ed.cd,this.cd))}function Ln(n,t){if(null===t){if(this.Fd&&En("null is not a valid "+this.name),this.Bd){var r=this.Gd();return null!==n&&n.push(this.md,r),r}return 0}if(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),!this.Ad&&t.bd.ed.Ad&&En("Cannot convert argument of type "+(t.bd.kd?t.bd.kd.name:t.bd.ed.name)+" to parameter type "+this.name),r=qn(t.bd.dd,t.bd.ed.cd,this.cd),this.Bd)switch(void 0===t.bd.hd&&En("Passing raw pointer to smart pointer is illegal"),this.be){case 0:t.bd.kd===this?r=t.bd.hd:En("Cannot convert argument of type "+(t.bd.kd?t.bd.kd.name:t.bd.ed.name)+" to parameter type "+this.name);break;case 1:r=t.bd.hd;break;case 2:if(t.bd.kd===this)r=t.bd.hd;else{var i=t.clone();r=this.Yd(r,lt((function(){i.delete()}))),null!==n&&n.push(this.md,r)}break;default:En("Unsupporting sharing policy")}return r}function Gn(n,t){return null===t?(this.Fd&&En("null is not a valid "+this.name),0):(t.bd||En('Cannot pass "'+dt(t)+'" as a '+this.name),t.bd.dd||En("Cannot pass deleted object as a pointer of type "+this.name),t.bd.ed.Ad&&En("Cannot convert argument of type "+t.bd.ed.name+" to parameter type "+this.name),qn(t.bd.dd,t.bd.ed.cd,this.cd))}var Kn={};function Jn(n,t){return t.ed&&t.dd||wn("makeClassHandle requires ptr and ptrType"),!!t.kd!=!!t.hd&&wn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Mn(Object.create(n,{bd:{value:t}}))}function Zn(n,t,r,i,e,a,o,u,l,c,f){this.name=n,this.cd=t,this.Fd=r,this.Ad=i,this.Bd=e,this.Wd=a,this.be=o,this.Ld=u,this.Gd=l,this.Yd=c,this.md=f,e||void 0!==t.ld?this.toWireType=Ln:(this.toWireType=i?Nn:Gn,this.jd=null)}function $n(n,r,i){t.hasOwnProperty(n)||wn("Replacing nonexistant public symbol"),void 0!==t[n].fd&&void 0!==i?t[n].fd[i]=r:(t[n]=r,t[n].zd=i)}function Xn(n,r){n=Pn(n);for(var i=t["dynCall_"+n],e=[],a=1;a<n.length;++a)e.push("a"+a);return a="return function dynCall_"+n+"_"+r+"("+e.join(", ")+") {\n",a+=" return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n","function"!=typeof(i=new Function("dynCall","rawFunction",a+"};\n")(i,r))&&En("unknown function pointer with signature "+n+": "+r),i}var Qn=void 0;function nt(n){var t=Pn(n=Ht(n));return Mt(n),t}function tt(n,t){var r=[],i={};throw t.forEach((function n(t){i[t]||vn[t]||(mn[t]?mn[t].forEach(n):(r.push(t),i[t]=!0))})),new Qn(n+": "+r.map(nt).join([", "]))}function rt(n,t){for(var r=[],i=0;i<n;i++)r.push(A[(t>>2)+i]);return r}function it(n){var t=Function;if(!(t instanceof Function))throw new TypeError("new_ called with constructor type "+typeof t+" which is not a function");var r=_n(t.name||"unknownFunctionName",(function(){}));return r.prototype=t.prototype,r=new r,(n=t.apply(r,n))instanceof Object?n:r}function et(n,t,r,i,e){var a=t.length;2>a&&En("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==r,u=!1;for(r=1;r<t.length;++r)if(null!==t[r]&&void 0===t[r].jd){u=!0;break}var l="void"!==t[0].name,c="",f="";for(r=0;r<a-2;++r)c+=(0!==r?", ":"")+"arg"+r,f+=(0!==r?", ":"")+"arg"+r+"Wired";n="return function "+gn(n)+"("+c+") {\nif (arguments.length !== "+(a-2)+") {\nthrowBindingError('function "+n+" called with ' + arguments.length + ' arguments, expected "+(a-2)+" args!');\n}\n",u&&(n+="var destructors = [];\n");var d=u?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),i=[En,i,e,pn,t[0],t[1]],o&&(n+="var thisWired = classParam.toWireType("+d+", this);\n"),r=0;r<a-2;++r)n+="var arg"+r+"Wired = argType"+r+".toWireType("+d+", arg"+r+"); // "+t[r+2].name+"\n",c.push("argType"+r),i.push(t[r+2]);if(o&&(f="thisWired"+(0<f.length?", ":"")+f),n+=(l?"var rv = ":"")+"invoker(fn"+(0<f.length?", ":"")+f+");\n",u)n+="runDestructors(destructors);\n";else for(r=o?1:2;r<t.length;++r)a=1===r?"thisWired":"arg"+(r-2)+"Wired",null!==t[r].jd&&(n+=a+"_dtor("+a+"); // "+t[r].name+"\n",c.push(a+"_dtor"),i.push(t[r].jd));return l&&(n+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(n+"}\n"),it(c).apply(null,i)}var at=[],ot=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ut(n){4<n&&0==--ot[n].nd&&(ot[n]=void 0,at.push(n))}function lt(n){switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=at.length?at.pop():ot.length;return ot[t]={nd:1,value:n},t}}function ct(n,t,r){switch(t){case 0:return function(n){return this.fromWireType((r?b:w)[n])};case 1:return function(n){return this.fromWireType((r?j:T)[n>>1])};case 2:return function(n){return this.fromWireType((r?A:P)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function ft(n,t){var r=vn[n];return void 0===r&&En(t+" has unknown type "+nt(n)),r}function dt(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}function st(n,t){switch(t){case 2:return function(n){return this.fromWireType(k[n>>2])};case 3:return function(n){return this.fromWireType(E[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}function pt(n,t,r){switch(t){case 0:return r?function(n){return b[n]}:function(n){return w[n]};case 1:return r?function(n){return j[n>>1]}:function(n){return T[n>>1]};case 2:return r?function(n){return A[n>>2]}:function(n){return P[n>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function yt(n){return n||En("Cannot use deleted val. handle = "+n),ot[n].value}function ht(n,t){for(var r=Array(n),i=0;i<n;++i)r[i]=ft(A[(t>>2)+i],"parameter "+i);return r}var vt={};function mt(n){var t=vt[n];return void 0===t?Pn(n):t}var gt=[];function _t(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Ct,bt={},wt={};function jt(){if(!Ct){var n,t={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",_:e||"./this.program"};for(n in wt)t[n]=wt[n];var r=[];for(n in t)r.push(n+"="+t[n]);Ct=r}return Ct}function Tt(n){return 0==n%4&&(0!=n%100||0==n%400)}function At(n,t){for(var r=0,i=0;i<=t;r+=n[i++]);return r}var Pt=[31,29,31,30,31,30,31,31,30,31,30,31],kt=[31,28,31,30,31,30,31,31,30,31,30,31];function Et(n,t){for(n=new Date(n.getTime());0<t;){var r=n.getMonth(),i=(Tt(n.getFullYear())?Pt:kt)[r];if(!(t>i-n.getDate())){n.setDate(n.getDate()+t);break}t-=i-n.getDate()+1,n.setDate(1),11>r?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}bn=t.InternalError=Cn("InternalError");for(var Wt=Array(256),Ft=0;256>Ft;++Ft)Wt[Ft]=String.fromCharCode(Ft);An=Wt,kn=t.BindingError=Cn("BindingError"),Yn.prototype.isAliasOf=function(n){if(!(this instanceof Yn&&n instanceof Yn))return!1;var t=this.bd.ed.cd,r=this.bd.dd,i=n.bd.ed.cd;for(n=n.bd.dd;t.ld;)r=t.xd(r),t=t.ld;for(;i.ld;)n=i.xd(n),i=i.ld;return t===i&&r===n},Yn.prototype.clone=function(){if(this.bd.dd||Dn(this),this.bd.ud)return this.bd.count.value+=1,this;var n=Mn(Object.create(Object.getPrototypeOf(this),{bd:{value:Fn(this.bd)}}));return n.bd.count.value+=1,n.bd.pd=!1,n},Yn.prototype.delete=function(){this.bd.dd||Dn(this),this.bd.pd&&!this.bd.ud&&En("Object already scheduled for deletion"),Sn(this),xn(this.bd),this.bd.ud||(this.bd.hd=void 0,this.bd.dd=void 0)},Yn.prototype.isDeleted=function(){return!this.bd.dd},Yn.prototype.deleteLater=function(){return this.bd.dd||Dn(this),this.bd.pd&&!this.bd.ud&&En("Object already scheduled for deletion"),Rn.push(this),1===Rn.length&&In&&In(Un),this.bd.pd=!0,this},Zn.prototype.Qd=function(n){return this.Ld&&(n=this.Ld(n)),n},Zn.prototype.td=function(n){this.md&&this.md(n)},Zn.prototype.argPackAdvance=8,Zn.prototype.readValueFromPointer=yn,Zn.prototype.deleteObject=function(n){null!==n&&n.delete()},Zn.prototype.fromWireType=function(n){function t(){return this.Bd?Jn(this.cd.qd,{ed:this.Wd,dd:r,kd:this,hd:n}):Jn(this.cd.qd,{ed:this,dd:n})}var r=this.Qd(n);if(!r)return this.td(n),null;var i=function(n,t){for(void 0===t&&En("ptr should not be undefined");n.ld;)t=n.xd(t),n=n.ld;return Kn[t]}(this.cd,r);if(void 0!==i)return 0===i.bd.count.value?(i.bd.dd=r,i.bd.hd=n,i.clone()):(i=i.clone(),this.td(n),i);if(i=this.cd.Pd(r),!(i=Hn[i]))return t.call(this);i=this.Ad?i.Md:i.pointerType;var e=function n(t,r,i){return r===i?t:void 0===i.ld||null===(t=n(t,r,i.ld))?null:i.Nd(t)}(r,this.cd,i.cd);return null===e?t.call(this):this.Bd?Jn(i.cd.qd,{ed:i,dd:e,kd:this,hd:n}):Jn(i.cd.qd,{ed:i,dd:e})},t.getInheritedInstanceCount=function(){return Object.keys(Kn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in Kn)Kn.hasOwnProperty(n)&&t.push(Kn[n]);return t},t.flushPendingDeletes=Un,t.setDelayFunction=function(n){In=n,Rn.length&&In&&In(Un)},Qn=t.UnboundTypeError=Cn("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;t<ot.length;++t)void 0!==ot[t]&&++n;return n},t.get_first_emval=function(){for(var n=5;n<ot.length;++n)if(void 0!==ot[n])return ot[n];return null};var Dt={o:function(n){return xt(n)},p:function(n){var t=tn[n];return t&&!t.Id&&(t.Id=!0,Rt.Hd--),t&&(t.vd=!1),rn.push(n),(t=en(n))&&tn[t].nd++,n},Ua:function(){var n=rn[rn.length-1]||0;if(n){var t=en(n);t&&tn[t].nd++}return n},xa:function(n){on(en(n))},t:function(){It(0);var n=rn.pop();n&&(on(en(n)),un=0)},b:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[37396]=n,n=149584;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},h:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[37396]=n,n=149584;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},G:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[37396]=n,n=149584;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},Ba:function(){var n=un;if(!n)return d=0;var t=tn[n],r=t.type;if(!r)return d=0,0|n;var i=Array.prototype.slice.call(arguments);Yt(r),A[37396]=n,n=149584;for(var e=0;e<i.length;e++)if(i[e]&&Ut(i[e],r,n))return n=A[n>>2],t.sd.push(n),d=i[e],0|n;return n=A[n>>2],d=r,0|n},q:an,wa:function(n){(n=en(n))&&tn[n].nd++},sa:ln,Ta:function(n){n&&(n=en(n),rn.push(n),tn[n].vd=!0,ln())},ya:function(n,t){B.unshift({Kd:n,yd:t})},C:function(n,t,r){throw tn[n]={dd:n,sd:[n],type:t,td:r,nd:0,Id:!1,vd:!1},un=n,"uncaught_exception"in Rt?Rt.Hd++:Rt.Hd=1,n},Va:function(){return Rt.Hd},Qa:function(){return t.___errno_location&&(A[t.___errno_location()>>2]=63),-1},d:function(n){throw un||(un=n),n},Pa:function(n,t){if(-1===n||0===t)n=-28;else{var r=cn[n];r&&t===r.je&&(cn[n]=null,r.ge&&Mt(r.ke)),n=0}return n},_a:function(n){var t=sn[n];delete sn[n];var r=t.Gd,i=t.md,e=t.Jd;jn([n],e.map((function(n){return n.Td})).concat(e.map((function(n){return n.$d}))),(function(n){var a={};return e.forEach((function(t,r){var i=n[r],o=t.Rd,u=t.Sd,l=n[r+e.length],c=t.Zd,f=t.ae;a[t.Od]={read:function(n){return i.fromWireType(o(u,n))},write:function(n,t){var r=[];c(f,n,l.toWireType(r,t)),pn(r)}}})),[{name:t.name,fromWireType:function(n){var t,r={};for(t in a)r[t]=a[t].read(n);return i(n),r},toWireType:function(n,t){for(var e in a)if(!(e in t))throw new TypeError("Missing field");var o=r();for(e in a)a[e].write(o,t[e]);return null!==n&&n.push(i,o),o},argPackAdvance:8,readValueFromPointer:yn,jd:i}]}))},Ma:function(n,t,r,i,e){var a=Tn(r);Wn(n,{name:t=Pn(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?i:e},argPackAdvance:8,readValueFromPointer:function(n){if(1===r)var i=b;else if(2===r)i=j;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);i=A}return this.fromWireType(i[n>>a])},jd:null})},E:function(n,t,r,i,e,a,o,u,l,c,f,d,s){f=Pn(f),a=Xn(e,a),u&&(u=Xn(o,u)),c&&(c=Xn(l,c)),s=Xn(d,s);var p=gn(f);Bn(p,(function(){tt("Cannot construct "+f+" due to unbound types",[i])})),jn([n,t,r],i?[i]:[],(function(t){if(t=t[0],i)var r=t.cd,e=r.qd;else e=Yn.prototype;t=_n(p,(function(){if(Object.getPrototypeOf(this)!==o)throw new kn("Use 'new' to construct "+f);if(void 0===l.od)throw new kn(f+" has no accessible constructor");var n=l.od[arguments.length];if(void 0===n)throw new kn("Tried to invoke ctor of "+f+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.od).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(e,{constructor:{value:t}});t.prototype=o;var l=new zn(f,t,o,s,r,a,u,c);r=new Zn(f,l,!0,!1,!1),e=new Zn(f+"*",l,!1,!1,!1);var d=new Zn(f+" const*",l,!1,!0,!1);return Hn[n]={pointerType:e,Md:d},$n(p,t),[r,e,d]}))},D:function(n,t,r,i,e,a){0<t||Z("Assertion failed: undefined");var o=rt(t,r);e=Xn(i,e);var u=[a],l=[];jn([],[n],(function(n){var r="constructor "+(n=n[0]).name;if(void 0===n.cd.od&&(n.cd.od=[]),void 0!==n.cd.od[t-1])throw new kn("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+n.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return n.cd.od[t-1]=function(){tt("Cannot construct "+n.name+" due to unbound types",o)},jn([],o,(function(i){return n.cd.od[t-1]=function(){arguments.length!==t-1&&En(r+" called with "+arguments.length+" arguments, expected "+(t-1)),l.length=0,u.length=t;for(var n=1;n<t;++n)u[n]=i[n].toWireType(l,arguments[n-1]);return n=e.apply(null,u),pn(l),i[0].fromWireType(n)},[]})),[]}))},n:function(n,t,r,i,e,a,o,u){var l=rt(r,i);t=Pn(t),a=Xn(e,a),jn([],[n],(function(n){function i(){tt("Cannot call "+e+" due to unbound types",l)}var e=(n=n[0]).name+"."+t;u&&n.cd.Xd.push(t);var c=n.cd.qd,f=c[t];return void 0===f||void 0===f.fd&&f.className!==n.name&&f.zd===r-2?(i.zd=r-2,i.className=n.name,c[t]=i):(Vn(c,t,e),c[t].fd[r-2]=i),jn([],l,(function(i){return i=et(e,i,n,a,o),void 0===c[t].fd?(i.zd=r-2,c[t]=i):c[t].fd[r-2]=i,[]})),[]}))},La:function(n,t){Wn(n,{name:t=Pn(t),fromWireType:function(n){var t=ot[n].value;return ut(n),t},toWireType:function(n,t){return lt(t)},argPackAdvance:8,readValueFromPointer:yn,jd:null})},_:function(n,t,r,i){function e(){}r=Tn(r),t=Pn(t),e.values={},Wn(n,{name:t,constructor:e,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:ct(t,r,i),jd:null}),Bn(t,e)},Z:function(n,t,r){var i=ft(n,"enum");t=Pn(t),n=i.constructor,i=Object.create(i.constructor.prototype,{value:{value:r},constructor:{value:_n(i.name+"_"+t,(function(){}))}}),n.values[r]=i,n[t]=i},ra:function(n,t,r){r=Tn(r),Wn(n,{name:t=Pn(t),fromWireType:function(n){return n},toWireType:function(n,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+dt(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:st(t,r),jd:null})},Y:function(n,t,r,i,e,a){var o=rt(t,r);n=Pn(n),e=Xn(i,e),Bn(n,(function(){tt("Cannot call "+n+" due to unbound types",o)}),t-1),jn([],o,(function(r){return $n(n,et(n,[r[0],null].concat(r.slice(1)),null,e,a),t-1),[]}))},O:function(n,t,r,i,e){function a(n){return n}t=Pn(t),-1===e&&(e=4294967295);var o=Tn(r);if(0===i){var u=32-8*r;a=function(n){return n<<u>>>u}}var l=-1!=t.indexOf("unsigned");Wn(n,{name:t,fromWireType:a,toWireType:function(n,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+dt(r)+'" to '+this.name);if(r<i||r>e)throw new TypeError('Passing a number "'+dt(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+i+", "+e+"]!");return l?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:pt(t,o,0!==i),jd:null})},L:function(n,t,r){function i(n){var t=P;return new e(C,t[1+(n>>=2)],t[n])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];Wn(n,{name:r=Pn(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{Ud:!0})},za:function(n,t,r,i,e,a,o,u,l,c,f,d){r=Pn(r),a=Xn(e,a),u=Xn(o,u),c=Xn(l,c),d=Xn(f,d),jn([n],[t],(function(n){return n=n[0],[new Zn(r,n.cd,!1,!1,!0,n,i,a,u,c,d)]}))},ta:function(n,t){var r="std::string"===(t=Pn(t));Wn(n,{name:t,fromWireType:function(n){var t=P[n>>2];if(r){var i=w[n+4+t],e=0;0!=i&&(e=i,w[n+4+t]=0);var a=n+4;for(i=0;i<=t;++i){var o=n+4+i;if(0==w[o]){if(a=m(a),void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}0!=e&&(w[n+4+t]=e)}else{for(u=Array(t),i=0;i<t;++i)u[i]=String.fromCharCode(w[n+4+i]);u=u.join("")}return Mt(n),u},toWireType:function(n,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var i="string"==typeof t;i||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||En("Cannot pass non-string to std::string");var e=(r&&i?function(){return _(t)}:function(){return t.length})(),a=xt(4+e+1);if(P[a>>2]=e,r&&i)g(t,w,a+4,e+1);else if(i)for(i=0;i<e;++i){var o=t.charCodeAt(i);255<o&&(Mt(a),En("String has UTF-16 code units that do not fit in 8 bits")),w[a+4+i]=o}else for(i=0;i<e;++i)w[a+4+i]=t[i];return null!==n&&n.push(Mt,a),a},argPackAdvance:8,readValueFromPointer:yn,jd:function(n){Mt(n)}})},ga:function(n,t,r){if(r=Pn(r),2===t)var i=F,e=D,a=O,o=function(){return T},u=1;else 4===t&&(i=S,e=x,a=M,o=function(){return P},u=2);Wn(n,{name:r,fromWireType:function(n){var r=P[n>>2],e=o(),a=e[n+4+r*t>>u],l=0;0!=a&&(l=a,e[n+4+r*t>>u]=0);var c=n+4;for(a=0;a<=r;++a){var f=n+4+a*t;if(0==e[f>>u]){if(c=i(c),void 0===d)var d=c;else d+=String.fromCharCode(0),d+=c;c=f+t}}return 0!=l&&(e[n+4+r*t>>u]=l),Mt(n),d},toWireType:function(n,i){"string"!=typeof i&&En("Cannot pass non-string to C++ string type "+r);var o=a(i),l=xt(4+o+t);return P[l>>2]=o>>u,e(i,l+4,o+t),null!==n&&n.push(Mt,l),l},argPackAdvance:8,readValueFromPointer:yn,jd:function(n){Mt(n)}})},$a:function(n,t,r,i,e,a){sn[n]={name:Pn(t),Gd:Xn(r,i),md:Xn(e,a),Jd:[]}},u:function(n,t,r,i,e,a,o,u,l,c){sn[n].Jd.push({Od:Pn(t),Td:r,Rd:Xn(i,e),Sd:a,$d:o,Zd:Xn(u,l),ae:c})},Na:function(n,t){Wn(n,{Vd:!0,name:t=Pn(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},cb:function(n,t,r){n=yt(n),t=ft(t,"emval::as");var i=[],e=lt(i);return A[r>>2]=e,t.toWireType(i,n)},Za:function(n,t,r,i){n=yt(n),r=ht(t,r);for(var e=Array(t),a=0;a<t;++a){var o=r[a];e[a]=o.readValueFromPointer(i),i+=o.argPackAdvance}return lt(n=n.apply(void 0,e))},K:function(n,t,r,i,e){n=gt[n],t=yt(t),r=mt(r);var a=[];return A[i>>2]=lt(a),n(t,r,a,e)},F:function(n,t,r,i){(n=gt[n])(t=yt(t),r=mt(r),null,i)},ha:ut,Ga:function(n){return 0===n?lt(_t()):(n=mt(n),lt(_t()[n]))},x:function(n,t){for(var r=(t=ht(n,t))[0],i=r.name+"_$"+t.slice(1).map((function(n){return n.name})).join("_")+"$",e=["retType"],a=[r],o="",u=0;u<n-1;++u)o+=(0!==u?", ":"")+"arg"+u,e.push("argType"+u),a.push(t[1+u]);i="return function "+gn("methodCaller_"+i)+"(handle, name, destructors, args) {\n";var l=0;for(u=0;u<n-1;++u)i+=" var arg"+u+" = argType"+u+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=t[u+1].argPackAdvance;for(i+=" var rv = handle[name]("+o+");\n",u=0;u<n-1;++u)t[u+1].deleteObject&&(i+=" argType"+u+".deleteObject(arg"+u+");\n");return r.Vd||(i+=" return retType.toWireType(destructors, rv);\n"),e.push(i+"};\n"),function(n){var t=gt.length;return gt.push(n),t}(n=it(e).apply(null,a))},db:function(n){return n=mt(n),lt(t[n])},nb:function(n,t){return lt((n=yt(n))[t=yt(t)])},ja:function(n){4<n&&(ot[n].nd+=1)},bb:function(n,r,i,e){n=yt(n);var a=bt[r];if(!a){a="";for(var o=0;o<r;++o)a+=(0!==o?", ":"")+"arg"+o;var u="return function emval_allocator_"+r+"(constructor, argTypes, args) {\n";for(o=0;o<r;++o)u+="var argType"+o+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+o+'], "parameter '+o+'");\nvar arg'+o+" = argType"+o+".readValueFromPointer(args);\nargs += argType"+o+"['argPackAdvance'];\n";a=new Function("requireRegisteredType","Module","__emval_register",u+"var obj = new constructor("+a+");\nreturn __emval_register(obj);\n}\n")(ft,t,lt),bt[r]=a}return a(n,i,e)},Ya:function(){return lt([])},ib:function(n){return lt(mt(n))},Ha:function(n){pn(ot[n].value),ut(n)},ab:function(n,t){return(n=yt(n))===yt(t)},A:function(n,t){return lt(n=(n=ft(n,"_emval_take_value")).readValueFromPointer(t))},ua:function(){Z()},Ja:function(n,t,r){w.copyWithin(n,t,t+r)},Ka:function(n){var t=w.length;if(2147418112<n)return!1;for(var r=1;4>=r;r*=2){var i=t*(1+.2/r);i=Math.min(i,n+100663296),0<(i=Math.max(16777216,n,i))%65536&&(i+=65536-i%65536);n:{try{s.grow(Math.min(2147418112,i)-C.byteLength+65535>>16),I(s.buffer);var e=1;break n}catch(n){}e=void 0}if(e)return!0}return!1},Wa:function(n,t){var r=0;return jt().forEach((function(i,e){var a=t+r;for(e=A[n+4*e>>2]=a,a=0;a<i.length;++a)b[e++>>0]=i.charCodeAt(a);b[e>>0]=0,r+=i.length+1})),0},Xa:function(n,t){var r=jt();A[n>>2]=r.length;var i=0;return r.forEach((function(n){i+=n.length+1})),A[t>>2]=i,0},Sa:function(){return 0},Ra:function(n,t,r,i){return n=dn.ie(n),t=dn.he(n,t,r),A[i>>2]=t,0},hb:function(){},va:function(n,t,r,i){for(var e=0,a=0;a<r;a++){for(var o=A[t+8*a>>2],c=A[t+(8*a+4)>>2],f=0;f<c;f++){var d=w[o+f],s=fn[n];0===d||10===d?((1===n?u:l)(v(s,0)),s.length=0):s.push(d)}e+=c}return A[i>>2]=e,0},a:function(){return 0|d},Ia:function(n,t){var r=Lr();try{return Br(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Fa:function(n,t,r){var i=Lr();try{return zr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},da:function(n,t,r,i){var e=Lr();try{return qr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},H:function(n,t){var r=Lr();try{return Ir(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},la:function(n,t,r){var i=Lr();try{return Hr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},pb:function(n,t,r,i){var e=Lr();try{return Vr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},J:function(n,t,r){var i=Lr();try{return Rr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},R:function(n,t,r,i,e){var a=Lr();try{return Yr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Q:function(n,t,r,i){var e=Lr();try{return Ur(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},v:function(n){var t=Lr();try{return vr(n)}catch(n){if(Gr(t),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},W:function(n,t){var r=Lr();try{return Sr(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},g:function(n,t){var r=Lr();try{return mr(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},aa:function(n,t,r){var i=Lr();try{return Or(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},P:function(n,t,r){var i=Lr();try{return Fr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ob:function(n,t,r,i){var e=Lr();try{return Dr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},c:function(n,t,r){var i=Lr();try{return gr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},mb:function(n,t,r,i){var e=Lr();try{return kr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},pa:function(n,t,r,i,e){var a=Lr();try{return Er(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},i:function(n,t,r,i){var e=Lr();try{return _r(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},m:function(n,t,r,i,e){var a=Lr();try{return Cr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Aa:function(n,t,r,i,e,a){var o=Lr();try{return Pr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},y:function(n,t,r,i,e,a){var o=Lr();try{return br(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},z:function(n,t,r,i,e,a,o){var u=Lr();try{return wr(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},N:function(n,t,r,i,e,a,o,u){var l=Lr();try{return jr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},$:function(n,t,r,i,e,a,o,u,l){var c=Lr();try{return Tr(n,t,r,i,e,a,o,u,l)}catch(n){if(Gr(c),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ca:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=Lr();try{return Ar(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(Gr(s),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},fb:function(n,t,r,i){var e=Lr();try{return Wr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},gb:function(n,t,r){var i=Lr();try{return xr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},eb:function(n,t,r,i,e){var a=Lr();try{return Mr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},l:function(n){var t=Lr();try{Vt(n)}catch(n){if(Gr(t),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},k:function(n,t){var r=Lr();try{Bt(n,t)}catch(n){if(Gr(r),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},qa:function(n,t,r,i){var e=Lr();try{hr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ea:function(n,t,r){var i=Lr();try{dr(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},rb:function(n,t,r,i){var e=Lr();try{sr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},qb:function(n,t,r,i,e,a,o,u){var l=Lr();try{yr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Ca:function(n,t,r,i,e,a,o,u){var l=Lr();try{pr(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},e:function(n,t,r){var i=Lr();try{zt(n,t,r)}catch(n){if(Gr(i),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ma:function(n,t,r,i){var e=Lr();try{lr(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},U:function(n,t,r,i,e){var a=Lr();try{cr(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},T:function(n,t,r,i,e,a){var o=Lr();try{fr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ka:function(n,t,r,i){var e=Lr();try{ar(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},lb:function(n,t,r,i,e){var a=Lr();try{or(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Ea:function(n,t,r,i,e,a,o){var u=Lr();try{ur(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},f:function(n,t,r,i){var e=Lr();try{qt(n,t,r,i)}catch(n){if(Gr(e),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},na:function(n,t,r,i,e){var a=Lr();try{ir(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},oa:function(n,t,r,i,e,a){var o=Lr();try{er(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},j:function(n,t,r,i,e){var a=Lr();try{Nt(n,t,r,i,e)}catch(n){if(Gr(a),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},fa:function(n,t,r,i,e,a){var o=Lr();try{rr(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},Da:function(n,t,r,i,e,a,o){var u=Lr();try{tr(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},s:function(n,t,r,i,e,a){var o=Lr();try{Lt(n,t,r,i,e,a)}catch(n){if(Gr(o),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},w:function(n,t,r,i,e,a,o){var u=Lr();try{Gt(n,t,r,i,e,a,o)}catch(n){if(Gr(u),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},B:function(n,t,r,i,e,a,o,u){var l=Lr();try{Kt(n,t,r,i,e,a,o,u)}catch(n){if(Gr(l),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},M:function(n,t,r,i,e,a,o,u,l){var c=Lr();try{Jt(n,t,r,i,e,a,o,u,l)}catch(n){if(Gr(c),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},V:function(n,t,r,i,e,a,o,u,l,c){var f=Lr();try{Zt(n,t,r,i,e,a,o,u,l,c)}catch(n){if(Gr(f),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},I:function(n,t,r,i,e,a,o,u,l,c,f){var d=Lr();try{$t(n,t,r,i,e,a,o,u,l,c,f)}catch(n){if(Gr(d),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},kb:function(n,t,r,i,e,a,o,u,l,c,f,d){var s=Lr();try{Xt(n,t,r,i,e,a,o,u,l,c,f,d)}catch(n){if(Gr(s),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},jb:function(n,t,r,i,e,a,o,u,l,c,f,d,s){var p=Lr();try{Qt(n,t,r,i,e,a,o,u,l,c,f,d,s)}catch(n){if(Gr(p),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},ba:function(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h){var v=Lr();try{nr(n,t,r,i,e,a,o,u,l,c,f,d,s,p,y,h)}catch(n){if(Gr(v),n!==n+0&&"longjmp"!==n)throw n;It(1,0)}},r:function(n){return n},memory:s,S:function(n){return 0<=(n=+n)?+L(n+.5):+N(n-.5)},X:function(n){return 0<=(n=+n)?+L(n+.5):+N(n-.5)},ia:function(n){d=0|n},Oa:function(n,t,r,i){return function(n,t,r,i){function e(n,t,r){for(n="number"==typeof n?n.toString():n||"";n.length<t;)n=r[0]+n;return n}function a(n,t){return e(n,t,"0")}function o(n,t){function r(n){return 0>n?-1:0<n?1:0}var i;return 0===(i=r(n.getFullYear()-t.getFullYear()))&&0===(i=r(n.getMonth()-t.getMonth()))&&(i=r(n.getDate()-t.getDate())),i}function u(n){switch(n.getDay()){case 0:return new Date(n.getFullYear()-1,11,29);case 1:return n;case 2:return new Date(n.getFullYear(),0,3);case 3:return new Date(n.getFullYear(),0,2);case 4:return new Date(n.getFullYear(),0,1);case 5:return new Date(n.getFullYear()-1,11,31);case 6:return new Date(n.getFullYear()-1,11,30)}}function l(n){n=Et(new Date(n.gd+1900,0,1),n.Ed);var t=new Date(n.getFullYear()+1,0,4),r=u(new Date(n.getFullYear(),0,4));return t=u(t),0>=o(r,n)?0>=o(t,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var c=A[i+40>>2];for(var f in i={ee:A[i>>2],de:A[i+4>>2],Cd:A[i+8>>2],wd:A[i+12>>2],rd:A[i+16>>2],gd:A[i+20>>2],Dd:A[i+24>>2],Ed:A[i+28>>2],me:A[i+32>>2],ce:A[i+36>>2],fe:c?m(c):""},r=m(r),c={"%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"})r=r.replace(new RegExp(f,"g"),c[f]);var d="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),s="January February March April May June July August September October November December".split(" ");for(f in c={"%a":function(n){return d[n.Dd].substring(0,3)},"%A":function(n){return d[n.Dd]},"%b":function(n){return s[n.rd].substring(0,3)},"%B":function(n){return s[n.rd]},"%C":function(n){return a((n.gd+1900)/100|0,2)},"%d":function(n){return a(n.wd,2)},"%e":function(n){return e(n.wd,2," ")},"%g":function(n){return l(n).toString().substring(2)},"%G":function(n){return l(n)},"%H":function(n){return a(n.Cd,2)},"%I":function(n){return 0==(n=n.Cd)?n=12:12<n&&(n-=12),a(n,2)},"%j":function(n){return a(n.wd+At(Tt(n.gd+1900)?Pt:kt,n.rd-1),3)},"%m":function(n){return a(n.rd+1,2)},"%M":function(n){return a(n.de,2)},"%n":function(){return"\n"},"%p":function(n){return 0<=n.Cd&&12>n.Cd?"AM":"PM"},"%S":function(n){return a(n.ee,2)},"%t":function(){return"\t"},"%u":function(n){return n.Dd||7},"%U":function(n){var t=new Date(n.gd+1900,0,1),r=0===t.getDay()?t:Et(t,7-t.getDay());return 0>o(r,n=new Date(n.gd+1900,n.rd,n.wd))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%V":function(n){var t=new Date(n.gd+1901,0,4),r=u(new Date(n.gd+1900,0,4));t=u(t);var i=Et(new Date(n.gd+1900,0,1),n.Ed);return 0>o(i,r)?"53":0>=o(t,i)?"01":a(Math.ceil((r.getFullYear()<n.gd+1900?n.Ed+32-r.getDate():n.Ed+1-r.getDate())/7),2)},"%w":function(n){return n.Dd},"%W":function(n){var t=new Date(n.gd,0,1),r=1===t.getDay()?t:Et(t,0===t.getDay()?1:7-t.getDay()+1);return 0>o(r,n=new Date(n.gd+1900,n.rd,n.wd))?a(Math.ceil((31-r.getDate()+(At(Tt(n.getFullYear())?Pt:kt,n.getMonth()-1)-31)+n.getDate())/7),2):0===o(r,t)?"01":"00"},"%y":function(n){return(n.gd+1900).toString().substring(2)},"%Y":function(n){return n.gd+1900},"%z":function(n){var t=0<=(n=n.ce);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.fe},"%%":function(){return"%"}})0<=r.indexOf(f)&&(r=r.replace(new RegExp(f,"g"),c[f](i)));return(f=function(n){var t=Array(_(n)+1);return g(n,t,0,t.length),t}(r)).length>t?0:(b.set(f,n),f.length-1)}(n,t,r,i)},table:p},Ot=function(){function n(n){t.asm=n.exports,G--,t.monitorRunDependencies&&t.monitorRunDependencies(G),0==G&&(null!==K&&(clearInterval(K),K=null),J&&(n=J,J=null,n()))}function r(t){n(t.instance)}function i(n){return(c||"function"!=typeof fetch?new Promise((function(n){n(nn())})):fetch(X,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+X+"'";return n.arrayBuffer()})).catch((function(){return nn()}))).then((function(n){return WebAssembly.instantiate(n,e)})).then(n,(function(n){l("failed to asynchronously prepare wasm: "+n),Z(n)}))}var e={a:Dt};if(G++,t.monitorRunDependencies&&t.monitorRunDependencies(G),t.instantiateWasm)try{return t.instantiateWasm(e,n)}catch(n){return l("Module.instantiateWasm callback failed with error: "+n),!1}return function(){if(c||"function"!=typeof WebAssembly.instantiateStreaming||$()||"function"!=typeof fetch)return i(r);fetch(X,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,e).then(r,(function(n){l("wasm streaming compile failed: "+n),l("falling back to ArrayBuffer instantiation"),i(r)}))}))}(),{}}();t.asm=Ot;var St=t.___wasm_call_ctors=function(){return(St=t.___wasm_call_ctors=t.asm.sb).apply(null,arguments)},xt=t._malloc=function(){return(xt=t._malloc=t.asm.tb).apply(null,arguments)},Mt=t._free=function(){return(Mt=t._free=t.asm.ub).apply(null,arguments)};t._main=function(){return(t._main=t.asm.vb).apply(null,arguments)};var It=t._setThrew=function(){return(It=t._setThrew=t.asm.wb).apply(null,arguments)},Rt=t.__ZSt18uncaught_exceptionv=function(){return(Rt=t.__ZSt18uncaught_exceptionv=t.asm.xb).apply(null,arguments)},Ut=t.___cxa_can_catch=function(){return(Ut=t.___cxa_can_catch=t.asm.yb).apply(null,arguments)},Yt=t.___cxa_is_pointer_type=function(){return(Yt=t.___cxa_is_pointer_type=t.asm.zb).apply(null,arguments)},Ht=t.___getTypeName=function(){return(Ht=t.___getTypeName=t.asm.Ab).apply(null,arguments)};t.___embind_register_native_and_builtin_types=function(){return(t.___embind_register_native_and_builtin_types=t.asm.Bb).apply(null,arguments)};var Vt=t.dynCall_v=function(){return(Vt=t.dynCall_v=t.asm.Cb).apply(null,arguments)},Bt=t.dynCall_vi=function(){return(Bt=t.dynCall_vi=t.asm.Db).apply(null,arguments)},zt=t.dynCall_vii=function(){return(zt=t.dynCall_vii=t.asm.Eb).apply(null,arguments)},qt=t.dynCall_viii=function(){return(qt=t.dynCall_viii=t.asm.Fb).apply(null,arguments)},Nt=t.dynCall_viiii=function(){return(Nt=t.dynCall_viiii=t.asm.Gb).apply(null,arguments)},Lt=t.dynCall_viiiii=function(){return(Lt=t.dynCall_viiiii=t.asm.Hb).apply(null,arguments)},Gt=t.dynCall_viiiiii=function(){return(Gt=t.dynCall_viiiiii=t.asm.Ib).apply(null,arguments)},Kt=t.dynCall_viiiiiii=function(){return(Kt=t.dynCall_viiiiiii=t.asm.Jb).apply(null,arguments)},Jt=t.dynCall_viiiiiiii=function(){return(Jt=t.dynCall_viiiiiiii=t.asm.Kb).apply(null,arguments)},Zt=t.dynCall_viiiiiiiii=function(){return(Zt=t.dynCall_viiiiiiiii=t.asm.Lb).apply(null,arguments)},$t=t.dynCall_viiiiiiiiii=function(){return($t=t.dynCall_viiiiiiiiii=t.asm.Mb).apply(null,arguments)},Xt=t.dynCall_viiiiiiiiiii=function(){return(Xt=t.dynCall_viiiiiiiiiii=t.asm.Nb).apply(null,arguments)},Qt=t.dynCall_viiiiiiiiiiii=function(){return(Qt=t.dynCall_viiiiiiiiiiii=t.asm.Ob).apply(null,arguments)},nr=t.dynCall_viiiiiiiiiiiiiii=function(){return(nr=t.dynCall_viiiiiiiiiiiiiii=t.asm.Pb).apply(null,arguments)},tr=t.dynCall_viiiifi=function(){return(tr=t.dynCall_viiiifi=t.asm.Qb).apply(null,arguments)},rr=t.dynCall_viiiid=function(){return(rr=t.dynCall_viiiid=t.asm.Rb).apply(null,arguments)},ir=t.dynCall_viiif=function(){return(ir=t.dynCall_viiif=t.asm.Sb).apply(null,arguments)},er=t.dynCall_viiifi=function(){return(er=t.dynCall_viiifi=t.asm.Tb).apply(null,arguments)},ar=t.dynCall_viif=function(){return(ar=t.dynCall_viif=t.asm.Ub).apply(null,arguments)},or=t.dynCall_viifi=function(){return(or=t.dynCall_viifi=t.asm.Vb).apply(null,arguments)},ur=t.dynCall_viifiii=function(){return(ur=t.dynCall_viifiii=t.asm.Wb).apply(null,arguments)},lr=t.dynCall_viid=function(){return(lr=t.dynCall_viid=t.asm.Xb).apply(null,arguments)},cr=t.dynCall_viidi=function(){return(cr=t.dynCall_viidi=t.asm.Yb).apply(null,arguments)},fr=t.dynCall_viidii=function(){return(fr=t.dynCall_viidii=t.asm.Zb).apply(null,arguments)},dr=t.dynCall_vif=function(){return(dr=t.dynCall_vif=t.asm._b).apply(null,arguments)},sr=t.dynCall_vifi=function(){return(sr=t.dynCall_vifi=t.asm.$b).apply(null,arguments)},pr=t.dynCall_vifiiiff=function(){return(pr=t.dynCall_vifiiiff=t.asm.ac).apply(null,arguments)},yr=t.dynCall_vifiifif=function(){return(yr=t.dynCall_vifiifif=t.asm.bc).apply(null,arguments)};t.dynCall_vid=function(){return(t.dynCall_vid=t.asm.cc).apply(null,arguments)};var hr=t.dynCall_vidi=function(){return(hr=t.dynCall_vidi=t.asm.dc).apply(null,arguments)},vr=t.dynCall_i=function(){return(vr=t.dynCall_i=t.asm.ec).apply(null,arguments)},mr=t.dynCall_ii=function(){return(mr=t.dynCall_ii=t.asm.fc).apply(null,arguments)},gr=t.dynCall_iii=function(){return(gr=t.dynCall_iii=t.asm.gc).apply(null,arguments)},_r=t.dynCall_iiii=function(){return(_r=t.dynCall_iiii=t.asm.hc).apply(null,arguments)},Cr=t.dynCall_iiiii=function(){return(Cr=t.dynCall_iiiii=t.asm.ic).apply(null,arguments)},br=t.dynCall_iiiiii=function(){return(br=t.dynCall_iiiiii=t.asm.jc).apply(null,arguments)},wr=t.dynCall_iiiiiii=function(){return(wr=t.dynCall_iiiiiii=t.asm.kc).apply(null,arguments)},jr=t.dynCall_iiiiiiii=function(){return(jr=t.dynCall_iiiiiiii=t.asm.lc).apply(null,arguments)},Tr=t.dynCall_iiiiiiiii=function(){return(Tr=t.dynCall_iiiiiiiii=t.asm.mc).apply(null,arguments)};t.dynCall_iiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiii=t.asm.nc).apply(null,arguments)};var Ar=t.dynCall_iiiiiiiiiiii=function(){return(Ar=t.dynCall_iiiiiiiiiiii=t.asm.oc).apply(null,arguments)};t.dynCall_iiiiiiiiiiiii=function(){return(t.dynCall_iiiiiiiiiiiii=t.asm.pc).apply(null,arguments)};var Pr=t.dynCall_iiiiid=function(){return(Pr=t.dynCall_iiiiid=t.asm.qc).apply(null,arguments)},kr=t.dynCall_iiif=function(){return(kr=t.dynCall_iiif=t.asm.rc).apply(null,arguments)},Er=t.dynCall_iiifi=function(){return(Er=t.dynCall_iiifi=t.asm.sc).apply(null,arguments)},Wr=t.dynCall_iij=function(){return(Wr=t.dynCall_iij=t.asm.tc).apply(null,arguments)},Fr=t.dynCall_iif=function(){return(Fr=t.dynCall_iif=t.asm.uc).apply(null,arguments)},Dr=t.dynCall_iiff=function(){return(Dr=t.dynCall_iiff=t.asm.vc).apply(null,arguments)};t.dynCall_iiffff=function(){return(t.dynCall_iiffff=t.asm.wc).apply(null,arguments)};var Or=t.dynCall_iid=function(){return(Or=t.dynCall_iid=t.asm.xc).apply(null,arguments)},Sr=t.dynCall_if=function(){return(Sr=t.dynCall_if=t.asm.yc).apply(null,arguments)};t.dynCall_id=function(){return(t.dynCall_id=t.asm.zc).apply(null,arguments)};var xr=t.dynCall_jii=function(){return(xr=t.dynCall_jii=t.asm.Ac).apply(null,arguments)},Mr=t.dynCall_jiiii=function(){return(Mr=t.dynCall_jiiii=t.asm.Bc).apply(null,arguments)},Ir=t.dynCall_fi=function(){return(Ir=t.dynCall_fi=t.asm.Cc).apply(null,arguments)},Rr=t.dynCall_fii=function(){return(Rr=t.dynCall_fii=t.asm.Dc).apply(null,arguments)},Ur=t.dynCall_fiii=function(){return(Ur=t.dynCall_fiii=t.asm.Ec).apply(null,arguments)},Yr=t.dynCall_fiifi=function(){return(Yr=t.dynCall_fiifi=t.asm.Fc).apply(null,arguments)},Hr=t.dynCall_fif=function(){return(Hr=t.dynCall_fif=t.asm.Gc).apply(null,arguments)},Vr=t.dynCall_fiff=function(){return(Vr=t.dynCall_fiff=t.asm.Hc).apply(null,arguments)},Br=t.dynCall_di=function(){return(Br=t.dynCall_di=t.asm.Ic).apply(null,arguments)},zr=t.dynCall_dii=function(){return(zr=t.dynCall_dii=t.asm.Jc).apply(null,arguments)},qr=t.dynCall_diii=function(){return(qr=t.dynCall_diii=t.asm.Kc).apply(null,arguments)};t.dynCall_ddi=function(){return(t.dynCall_ddi=t.asm.Lc).apply(null,arguments)};var Nr,Lr=t.stackSave=function(){return(Lr=t.stackSave=t.asm.Mc).apply(null,arguments)},Gr=t.stackRestore=function(){return(Gr=t.stackRestore=t.asm.Nc).apply(null,arguments)};function Kr(n){this.name="ExitStatus",this.message="Program terminated with exit("+n+")",this.status=n}function Jr(){function n(){if(!Nr&&(Nr=!0,t.calledRun=!0,!y)){if(U(H),U(V),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Zr){var n=t._main;try{var r=n(0,0);f&&0===r||(!f&&(y=!0,t.onExit)&&t.onExit(r),a(r,new Kr(r)))}catch(t){t instanceof Kr||("unwind"==t?f=!0:((n=t)&&"object"==typeof t&&t.stack&&(n=[t,t.stack]),l("exception thrown: "+n),a(1,t)))}}if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)n=t.postRun.shift(),z.unshift(n);U(z)}}if(!(0<G)){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)q();U(Y),0<G||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),n()}),1)):n())}}if(t.dynCall_iiidii=function(){return(t.dynCall_iiidii=t.asm.Oc).apply(null,arguments)},t.dynCall_fiiii=function(){return(t.dynCall_fiiii=t.asm.Pc).apply(null,arguments)},t.dynCall_iiidi=function(){return(t.dynCall_iiidi=t.asm.Qc).apply(null,arguments)},t.dynCall_diiii=function(){return(t.dynCall_diiii=t.asm.Rc).apply(null,arguments)},t.dynCall_iiiif=function(){return(t.dynCall_iiiif=t.asm.Sc).apply(null,arguments)},t.dynCall_iidiiii=function(){return(t.dynCall_iidiiii=t.asm.Tc).apply(null,arguments)},t.dynCall_viijii=function(){return(t.dynCall_viijii=t.asm.Uc).apply(null,arguments)},t.dynCall_viiifif=function(){return(t.dynCall_viiifif=t.asm.Vc).apply(null,arguments)},t.dynCall_vifffiii=function(){return(t.dynCall_vifffiii=t.asm.Wc).apply(null,arguments)},t.dynCall_vifffiifif=function(){return(t.dynCall_vifffiifif=t.asm.Xc).apply(null,arguments)},t.dynCall_fifi=function(){return(t.dynCall_fifi=t.asm.Yc).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.Zc).apply(null,arguments)},t.dynCall_iiiiiijj=function(){return(t.dynCall_iiiiiijj=t.asm._c).apply(null,arguments)},t.dynCall_iiiiij=function(){return(t.dynCall_iiiiij=t.asm.$c).apply(null,arguments)},t.dynCall_iiiiijj=function(){return(t.dynCall_iiiiijj=t.asm.ad).apply(null,arguments)},t.asm=Ot,t.then=function(n){if(Nr)n(t);else{var r=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){r&&r(),n(t)}}return t},J=function n(){Nr||Jr(),Nr||(J=n)},t.run=Jr,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();var Zr=!0;return t.noInitialRun&&(Zr=!1),f=!0,Jr(),n});"object"==typeof exports&&"object"==typeof module?module.exports=ConfiguratorKernel:"function"==typeof define&&define.amd?define([],(function(){return ConfiguratorKernel})):"object"==typeof exports&&(exports.ConfiguratorKernel=ConfiguratorKernel);