@internetarchive/bookreader 5.0.0-95 → 5.0.0-97

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 (330) hide show
  1. package/BookReader/474.js +2 -0
  2. package/BookReader/474.js.map +1 -0
  3. package/BookReader/BookReader.css +2257 -0
  4. package/BookReader/BookReader.js +3 -0
  5. package/BookReader/BookReader.js.LICENSE.txt +72 -0
  6. package/BookReader/BookReader.js.map +1 -0
  7. package/BookReader/bergamot-translator-worker.js +2966 -0
  8. package/BookReader/bergamot-translator-worker.wasm +0 -0
  9. package/BookReader/hypothesis/LICENSE +50 -0
  10. package/BookReader/hypothesis/README.md +55 -0
  11. package/BookReader/hypothesis/build/boot.js +1 -0
  12. package/BookReader/hypothesis/build/manifest.json +20 -0
  13. package/BookReader/hypothesis/build/scripts/annotator.bundle.js +184 -0
  14. package/BookReader/hypothesis/build/scripts/annotator.bundle.js.map +1 -0
  15. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js +798 -0
  16. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js.map +1 -0
  17. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js +711 -0
  18. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js.map +1 -0
  19. package/BookReader/hypothesis/build/styles/annotator.css +2235 -0
  20. package/BookReader/hypothesis/build/styles/annotator.css.map +1 -0
  21. package/BookReader/hypothesis/build/styles/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  22. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  23. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  24. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  25. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  26. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Bold.woff2 +0 -0
  27. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  28. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Italic.woff2 +0 -0
  29. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Regular.woff2 +0 -0
  30. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  31. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-Italic.woff2 +0 -0
  32. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  33. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  34. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  35. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Script-Regular.woff2 +0 -0
  36. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  37. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  38. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  39. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  40. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  41. package/BookReader/hypothesis/build/styles/highlights.css +2 -0
  42. package/BookReader/hypothesis/build/styles/highlights.css.map +1 -0
  43. package/BookReader/hypothesis/build/styles/katex.min.css +2 -0
  44. package/BookReader/hypothesis/build/styles/katex.min.css.map +1 -0
  45. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css +2 -0
  46. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css.map +1 -0
  47. package/BookReader/hypothesis/build/styles/sidebar.css +2731 -0
  48. package/BookReader/hypothesis/build/styles/sidebar.css.map +1 -0
  49. package/BookReader/hypothesis/build/styles/ui-playground.css +2659 -0
  50. package/BookReader/hypothesis/build/styles/ui-playground.css.map +1 -0
  51. package/BookReader/hypothesis/package.json +126 -0
  52. package/BookReader/ia-bookreader-bundle.js +1782 -0
  53. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +7 -0
  54. package/BookReader/ia-bookreader-bundle.js.map +1 -0
  55. package/BookReader/icons/1up.svg +1 -0
  56. package/BookReader/icons/2up.svg +1 -0
  57. package/BookReader/icons/advance.svg +3 -0
  58. package/BookReader/icons/chevron-right.svg +1 -0
  59. package/BookReader/icons/close-circle-dark.svg +1 -0
  60. package/BookReader/icons/close-circle.svg +1 -0
  61. package/BookReader/icons/fullscreen.svg +1 -0
  62. package/BookReader/icons/fullscreen_exit.svg +1 -0
  63. package/BookReader/icons/hamburger.svg +1 -0
  64. package/BookReader/icons/left-arrow.svg +1 -0
  65. package/BookReader/icons/magnify-minus.svg +1 -0
  66. package/BookReader/icons/magnify-plus.svg +1 -0
  67. package/BookReader/icons/magnify.svg +1 -0
  68. package/BookReader/icons/pause.svg +1 -0
  69. package/BookReader/icons/play.svg +1 -0
  70. package/BookReader/icons/playback-speed.svg +1 -0
  71. package/BookReader/icons/read-aloud.svg +1 -0
  72. package/BookReader/icons/review.svg +3 -0
  73. package/BookReader/icons/thumbnails.svg +1 -0
  74. package/BookReader/icons/voice.svg +1 -0
  75. package/BookReader/icons/volume-full.svg +1 -0
  76. package/BookReader/images/BRicons.png +0 -0
  77. package/BookReader/images/BRicons.svg +5 -0
  78. package/BookReader/images/BRicons_ia.png +0 -0
  79. package/BookReader/images/back_pages.png +0 -0
  80. package/BookReader/images/book_bottom_icon.png +0 -0
  81. package/BookReader/images/book_down_icon.png +0 -0
  82. package/BookReader/images/book_left_icon.png +0 -0
  83. package/BookReader/images/book_leftmost_icon.png +0 -0
  84. package/BookReader/images/book_right_icon.png +0 -0
  85. package/BookReader/images/book_rightmost_icon.png +0 -0
  86. package/BookReader/images/book_top_icon.png +0 -0
  87. package/BookReader/images/book_up_icon.png +0 -0
  88. package/BookReader/images/books_graphic.svg +1 -0
  89. package/BookReader/images/booksplit.png +0 -0
  90. package/BookReader/images/control_pause_icon.png +0 -0
  91. package/BookReader/images/control_play_icon.png +0 -0
  92. package/BookReader/images/embed_icon.png +0 -0
  93. package/BookReader/images/hypothesis.ico +0 -0
  94. package/BookReader/images/icon-home-ia.png +0 -0
  95. package/BookReader/images/icon_OL-logo-xs.png +0 -0
  96. package/BookReader/images/icon_alert-xs.png +0 -0
  97. package/BookReader/images/icon_book.svg +1 -0
  98. package/BookReader/images/icon_bookmark.svg +1 -0
  99. package/BookReader/images/icon_close-pop.png +0 -0
  100. package/BookReader/images/icon_download.png +0 -0
  101. package/BookReader/images/icon_experiment.svg +1 -0
  102. package/BookReader/images/icon_gear.svg +1 -0
  103. package/BookReader/images/icon_hamburger.svg +1 -0
  104. package/BookReader/images/icon_home.png +0 -0
  105. package/BookReader/images/icon_home.svg +1 -0
  106. package/BookReader/images/icon_home_ia.png +0 -0
  107. package/BookReader/images/icon_indicator.png +0 -0
  108. package/BookReader/images/icon_info.svg +1 -0
  109. package/BookReader/images/icon_one_page.svg +1 -0
  110. package/BookReader/images/icon_pause.svg +1 -0
  111. package/BookReader/images/icon_play.svg +1 -0
  112. package/BookReader/images/icon_playback-rate.svg +1 -0
  113. package/BookReader/images/icon_return.png +0 -0
  114. package/BookReader/images/icon_search_button.svg +1 -0
  115. package/BookReader/images/icon_share.svg +1 -0
  116. package/BookReader/images/icon_skip-ahead.svg +1 -0
  117. package/BookReader/images/icon_skip-back.svg +2 -0
  118. package/BookReader/images/icon_speaker.svg +1 -0
  119. package/BookReader/images/icon_speaker_open.svg +1 -0
  120. package/BookReader/images/icon_thumbnails.svg +1 -0
  121. package/BookReader/images/icon_toc.svg +1 -0
  122. package/BookReader/images/icon_two_pages.svg +1 -0
  123. package/BookReader/images/icon_zoomer.png +0 -0
  124. package/BookReader/images/loading.gif +0 -0
  125. package/BookReader/images/logo_icon.png +0 -0
  126. package/BookReader/images/marker_chap-off.png +0 -0
  127. package/BookReader/images/marker_chap-off.svg +1 -0
  128. package/BookReader/images/marker_chap-off_ia.png +0 -0
  129. package/BookReader/images/marker_chap-on.png +0 -0
  130. package/BookReader/images/marker_chap-on.svg +1 -0
  131. package/BookReader/images/marker_srch-on.svg +1 -0
  132. package/BookReader/images/marker_srchchap-off.png +0 -0
  133. package/BookReader/images/marker_srchchap-on.png +0 -0
  134. package/BookReader/images/nav_control-dn.png +0 -0
  135. package/BookReader/images/nav_control-dn_ia.png +0 -0
  136. package/BookReader/images/nav_control-up.png +0 -0
  137. package/BookReader/images/nav_control-up_ia.png +0 -0
  138. package/BookReader/images/nav_control.png +0 -0
  139. package/BookReader/images/one_page_mode_icon.png +0 -0
  140. package/BookReader/images/paper-badge.png +0 -0
  141. package/BookReader/images/print_icon.png +0 -0
  142. package/BookReader/images/progressbar.gif +0 -0
  143. package/BookReader/images/right_edges.png +0 -0
  144. package/BookReader/images/slider.png +0 -0
  145. package/BookReader/images/slider_ia.png +0 -0
  146. package/BookReader/images/thumbnail_mode_icon.png +0 -0
  147. package/BookReader/images/translate.svg +1 -0
  148. package/BookReader/images/transparent.png +0 -0
  149. package/BookReader/images/two_page_mode_icon.png +0 -0
  150. package/BookReader/images/unviewable_page.png +0 -0
  151. package/BookReader/images/zoom_in_icon.png +0 -0
  152. package/BookReader/images/zoom_out_icon.png +0 -0
  153. package/BookReader/jquery-3.js +2 -0
  154. package/BookReader/jquery-3.js.LICENSE.txt +24 -0
  155. package/BookReader/plugins/plugin.archive_analytics.js +2 -0
  156. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -0
  157. package/BookReader/plugins/plugin.autoplay.js +2 -0
  158. package/BookReader/plugins/plugin.autoplay.js.map +1 -0
  159. package/BookReader/plugins/plugin.chapters.js +26 -0
  160. package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
  161. package/BookReader/plugins/plugin.chapters.js.map +1 -0
  162. package/BookReader/plugins/plugin.experiments.js +3 -0
  163. package/BookReader/plugins/plugin.experiments.js.LICENSE.txt +1 -0
  164. package/BookReader/plugins/plugin.experiments.js.map +1 -0
  165. package/BookReader/plugins/plugin.iframe.js +2 -0
  166. package/BookReader/plugins/plugin.iframe.js.map +1 -0
  167. package/BookReader/plugins/plugin.iiif.js +2 -0
  168. package/BookReader/plugins/plugin.iiif.js.map +1 -0
  169. package/BookReader/plugins/plugin.resume.js +2 -0
  170. package/BookReader/plugins/plugin.resume.js.map +1 -0
  171. package/BookReader/plugins/plugin.search.js +3 -0
  172. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  173. package/BookReader/plugins/plugin.search.js.map +1 -0
  174. package/BookReader/plugins/plugin.text_selection.js +3 -0
  175. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  176. package/BookReader/plugins/plugin.text_selection.js.map +1 -0
  177. package/BookReader/plugins/plugin.translate.js +3 -0
  178. package/BookReader/plugins/plugin.translate.js.LICENSE.txt +1 -0
  179. package/BookReader/plugins/plugin.translate.js.map +1 -0
  180. package/BookReader/plugins/plugin.tts.js +3 -0
  181. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +29 -0
  182. package/BookReader/plugins/plugin.tts.js.map +1 -0
  183. package/BookReader/plugins/plugin.url.js +2 -0
  184. package/BookReader/plugins/plugin.url.js.map +1 -0
  185. package/BookReader/plugins/plugin.vendor-fullscreen.js +2 -0
  186. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -0
  187. package/BookReader/plugins/translator-worker.js +2 -0
  188. package/BookReader/plugins/translator-worker.js.map +1 -0
  189. package/BookReader/translator-worker.js +475 -0
  190. package/BookReader/webcomponents-bundle.js +3 -0
  191. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  192. package/BookReader/webcomponents-bundle.js.map +1 -0
  193. package/package.json +11 -3
  194. package/src/BookNavigator/book-navigator.js +1 -0
  195. package/src/BookReader/BookModel.js +564 -0
  196. package/src/BookReader/DragScrollable.js +233 -0
  197. package/src/BookReader/ImageCache.js +149 -0
  198. package/src/BookReader/Mode1Up.js +110 -0
  199. package/src/BookReader/Mode1UpLit.js +393 -0
  200. package/src/BookReader/Mode2Up.js +107 -0
  201. package/src/BookReader/Mode2UpLit.js +787 -0
  202. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  203. package/src/BookReader/ModeSmoothZoom.js +312 -0
  204. package/src/BookReader/ModeThumb.js +344 -0
  205. package/src/BookReader/Navbar/Navbar.js +416 -0
  206. package/src/BookReader/PageContainer.js +172 -0
  207. package/src/BookReader/ReduceSet.js +26 -0
  208. package/src/BookReader/Toolbar/Toolbar.js +362 -0
  209. package/src/BookReader/events.js +19 -0
  210. package/src/BookReader/options.js +387 -0
  211. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  212. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  213. package/src/BookReader/utils/SelectionObserver.js +45 -0
  214. package/src/BookReader/utils/classes.js +36 -0
  215. package/src/BookReader/utils.js +313 -0
  216. package/src/BookReader.js +22 -139
  217. package/src/assets/images/icon_experiment.svg +1 -0
  218. package/src/assets/images/translate.svg +1 -0
  219. package/src/css/_BRnav.scss +0 -24
  220. package/src/css/_BRsearch.scss +0 -5
  221. package/src/css/_TextSelection.scss +32 -1
  222. package/src/plugins/plugin.experiments.js +34 -9
  223. package/src/plugins/plugin.text_selection.js +8 -20
  224. package/src/plugins/translate/TranslationManager.js +167 -0
  225. package/src/plugins/translate/plugin.translate.js +414 -0
  226. package/src/plugins/tts/utils.js +9 -20
  227. package/src/util/cache.js +20 -0
  228. package/.eslintrc.cjs +0 -51
  229. package/.gitattributes +0 -2
  230. package/.github/ISSUE_TEMPLATE/bug.md +0 -32
  231. package/.github/ISSUE_TEMPLATE/feature-request.md +0 -30
  232. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -15
  233. package/.github/workflows/node.js.yml +0 -102
  234. package/.github/workflows/npm-publish.yml +0 -23
  235. package/.testcaferc.cjs +0 -10
  236. package/BookReaderDemo/BookReaderDemo.css +0 -40
  237. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -112
  238. package/BookReaderDemo/BookReaderJSSimple.js +0 -56
  239. package/BookReaderDemo/IADemoBr.js +0 -149
  240. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +0 -1
  241. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +0 -1
  242. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  243. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  244. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  245. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +0 -1
  246. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +0 -1
  247. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  248. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  249. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  250. package/BookReaderDemo/demo-advanced.html +0 -33
  251. package/BookReaderDemo/demo-embed-iframe-src.html +0 -85
  252. package/BookReaderDemo/demo-embed.html +0 -26
  253. package/BookReaderDemo/demo-fullscreen-mobile.html +0 -34
  254. package/BookReaderDemo/demo-fullscreen.html +0 -31
  255. package/BookReaderDemo/demo-iiif.html +0 -121
  256. package/BookReaderDemo/demo-internetarchive.html +0 -271
  257. package/BookReaderDemo/demo-multiple.html +0 -44
  258. package/BookReaderDemo/demo-preview-pages.html +0 -1093
  259. package/BookReaderDemo/demo-simple.html +0 -35
  260. package/BookReaderDemo/demo-vendor-fullscreen.html +0 -34
  261. package/BookReaderDemo/ia-multiple-volumes-manifest.js +0 -169
  262. package/BookReaderDemo/immersion-1up.html +0 -64
  263. package/BookReaderDemo/immersion-mode.html +0 -33
  264. package/BookReaderDemo/toggle_controls.html +0 -54
  265. package/BookReaderDemo/view_mode.html +0 -40
  266. package/BookReaderDemo/viewmode-cycle.html +0 -40
  267. package/CHANGELOG.md +0 -1087
  268. package/CONTRIBUTING.md +0 -7
  269. package/babel.config.cjs +0 -20
  270. package/codecov.yml +0 -23
  271. package/index.html +0 -34
  272. package/netlify.toml +0 -9
  273. package/renovate.json +0 -52
  274. package/screenshot.png +0 -0
  275. package/scripts/postversion.js +0 -11
  276. package/scripts/preversion.js +0 -15
  277. package/scripts/version.js +0 -24
  278. package/tests/e2e/README.md +0 -112
  279. package/tests/e2e/autoplay.test.js +0 -16
  280. package/tests/e2e/base.test.js +0 -27
  281. package/tests/e2e/helpers/base.js +0 -263
  282. package/tests/e2e/helpers/debug.js +0 -13
  283. package/tests/e2e/helpers/mockSearch.js +0 -90
  284. package/tests/e2e/helpers/params.js +0 -17
  285. package/tests/e2e/helpers/rightToLeft.js +0 -23
  286. package/tests/e2e/helpers/search.js +0 -73
  287. package/tests/e2e/models/BookReader.js +0 -11
  288. package/tests/e2e/models/Navigation.js +0 -39
  289. package/tests/e2e/rightToLeft.test.js +0 -19
  290. package/tests/e2e/viewmode.test.js +0 -44
  291. package/tests/jest/BookNavigator/book-navigator.test.js +0 -653
  292. package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +0 -43
  293. package/tests/jest/BookNavigator/bookmarks/bookmark-edit.test.js +0 -132
  294. package/tests/jest/BookNavigator/bookmarks/bookmarks-list.test.js +0 -221
  295. package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +0 -45
  296. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +0 -67
  297. package/tests/jest/BookNavigator/downloads/downloads.test.js +0 -53
  298. package/tests/jest/BookNavigator/search/search-provider.test.js +0 -179
  299. package/tests/jest/BookNavigator/search/search-results.test.js +0 -289
  300. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +0 -49
  301. package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +0 -80
  302. package/tests/jest/BookNavigator/visual-adjustments.test.js +0 -200
  303. package/tests/jest/BookReader.keyboard.test.js +0 -190
  304. package/tests/jest/BookReader.options.test.js +0 -47
  305. package/tests/jest/BookReader.test.js +0 -316
  306. package/tests/jest/plugins/plugin.archive_analytics.test.js +0 -20
  307. package/tests/jest/plugins/plugin.autoplay.test.js +0 -35
  308. package/tests/jest/plugins/plugin.chapters.test.js +0 -193
  309. package/tests/jest/plugins/plugin.iframe.test.js +0 -42
  310. package/tests/jest/plugins/plugin.resume.test.js +0 -85
  311. package/tests/jest/plugins/plugin.text_selection.test.js +0 -447
  312. package/tests/jest/plugins/plugin.vendor-fullscreen.test.js +0 -65
  313. package/tests/jest/plugins/search/plugin.search.test.js +0 -120
  314. package/tests/jest/plugins/search/plugin.search.view.test.js +0 -131
  315. package/tests/jest/plugins/search/utils.js +0 -25
  316. package/tests/jest/plugins/search/utils.test.js +0 -29
  317. package/tests/jest/plugins/tts/AbstractTTSEngine.test.js +0 -173
  318. package/tests/jest/plugins/tts/FestivalTTSEngine.test.js +0 -59
  319. package/tests/jest/plugins/tts/PageChunk.test.js +0 -57
  320. package/tests/jest/plugins/tts/PageChunkIterator.test.js +0 -179
  321. package/tests/jest/plugins/tts/WebTTSEngine.test.js +0 -178
  322. package/tests/jest/plugins/tts/utils.test.js +0 -74
  323. package/tests/jest/plugins/url/UrlPlugin.test.js +0 -198
  324. package/tests/jest/plugins/url/plugin.url.test.js +0 -168
  325. package/tests/jest/setup.js +0 -3
  326. package/tests/jest/util/browserSniffing.test.js +0 -62
  327. package/tests/jest/util/docCookies.test.js +0 -24
  328. package/tests/jest/util/strings.test.js +0 -63
  329. package/tests/jest/utils.js +0 -83
  330. package/webpack.config.js +0 -97
@@ -0,0 +1,2966 @@
1
+ var BERGAMOT_VERSION_FULL = "v0.4.5+d52c0c8";
2
+ null;
3
+
4
+ var Module = typeof Module != "undefined" ? Module : {};
5
+
6
+ var moduleOverrides = Object.assign({}, Module);
7
+
8
+ var arguments_ = [];
9
+
10
+ var thisProgram = "./this.program";
11
+
12
+ var quit_ = (status, toThrow) => {
13
+ throw toThrow;
14
+ };
15
+
16
+ var ENVIRONMENT_IS_WEB = typeof window == "object";
17
+
18
+ var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
19
+
20
+ var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
21
+
22
+ var scriptDirectory = "";
23
+
24
+ function locateFile(path) {
25
+ if (Module["locateFile"]) {
26
+ return Module["locateFile"](path, scriptDirectory);
27
+ }
28
+ return scriptDirectory + path;
29
+ }
30
+
31
+ var read_, readAsync, readBinary, setWindowTitle;
32
+
33
+ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
34
+ if (ENVIRONMENT_IS_WORKER) {
35
+ scriptDirectory = self.location.href;
36
+ } else if (typeof document != "undefined" && document.currentScript) {
37
+ scriptDirectory = document.currentScript.src;
38
+ }
39
+ if (scriptDirectory.indexOf("blob:") !== 0) {
40
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
41
+ } else {
42
+ scriptDirectory = "";
43
+ }
44
+ {
45
+ read_ = (url => {
46
+ var xhr = new XMLHttpRequest();
47
+ xhr.open("GET", url, false);
48
+ xhr.send(null);
49
+ return xhr.responseText;
50
+ });
51
+ if (ENVIRONMENT_IS_WORKER) {
52
+ readBinary = (url => {
53
+ var xhr = new XMLHttpRequest();
54
+ xhr.open("GET", url, false);
55
+ xhr.responseType = "arraybuffer";
56
+ xhr.send(null);
57
+ return new Uint8Array(xhr.response);
58
+ });
59
+ }
60
+ readAsync = ((url, onload, onerror) => {
61
+ var xhr = new XMLHttpRequest();
62
+ xhr.open("GET", url, true);
63
+ xhr.responseType = "arraybuffer";
64
+ xhr.onload = (() => {
65
+ if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
66
+ onload(xhr.response);
67
+ return;
68
+ }
69
+ onerror();
70
+ });
71
+ xhr.onerror = onerror;
72
+ xhr.send(null);
73
+ });
74
+ }
75
+ setWindowTitle = (title => document.title = title);
76
+ } else {}
77
+
78
+ var out = Module["print"] || console.log.bind(console);
79
+
80
+ var err = Module["printErr"] || console.warn.bind(console);
81
+
82
+ Object.assign(Module, moduleOverrides);
83
+
84
+ moduleOverrides = null;
85
+
86
+ if (Module["arguments"]) arguments_ = Module["arguments"];
87
+
88
+ if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
89
+
90
+ if (Module["quit"]) quit_ = Module["quit"];
91
+
92
+ var tempRet0 = 0;
93
+
94
+ var setTempRet0 = value => {
95
+ tempRet0 = value;
96
+ };
97
+
98
+ var wasmBinary;
99
+
100
+ if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
101
+
102
+ var noExitRuntime = Module["noExitRuntime"] || true;
103
+
104
+ if (typeof WebAssembly != "object") {
105
+ abort("no native wasm support detected");
106
+ }
107
+
108
+ var wasmMemory;
109
+
110
+ var ABORT = false;
111
+
112
+ var EXITSTATUS;
113
+
114
+ function assert(condition, text) {
115
+ if (!condition) {
116
+ abort(text);
117
+ }
118
+ }
119
+
120
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined;
121
+
122
+ function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
123
+ var endIdx = idx + maxBytesToRead;
124
+ var endPtr = idx;
125
+ while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
126
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
127
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
128
+ } else {
129
+ var str = "";
130
+ while (idx < endPtr) {
131
+ var u0 = heapOrArray[idx++];
132
+ if (!(u0 & 128)) {
133
+ str += String.fromCharCode(u0);
134
+ continue;
135
+ }
136
+ var u1 = heapOrArray[idx++] & 63;
137
+ if ((u0 & 224) == 192) {
138
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
139
+ continue;
140
+ }
141
+ var u2 = heapOrArray[idx++] & 63;
142
+ if ((u0 & 240) == 224) {
143
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
144
+ } else {
145
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
146
+ }
147
+ if (u0 < 65536) {
148
+ str += String.fromCharCode(u0);
149
+ } else {
150
+ var ch = u0 - 65536;
151
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
152
+ }
153
+ }
154
+ }
155
+ return str;
156
+ }
157
+
158
+ function UTF8ToString(ptr, maxBytesToRead) {
159
+ return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
160
+ }
161
+
162
+ function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
163
+ if (!(maxBytesToWrite > 0)) return 0;
164
+ var startIdx = outIdx;
165
+ var endIdx = outIdx + maxBytesToWrite - 1;
166
+ for (var i = 0; i < str.length; ++i) {
167
+ var u = str.charCodeAt(i);
168
+ if (u >= 55296 && u <= 57343) {
169
+ var u1 = str.charCodeAt(++i);
170
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
171
+ }
172
+ if (u <= 127) {
173
+ if (outIdx >= endIdx) break;
174
+ heap[outIdx++] = u;
175
+ } else if (u <= 2047) {
176
+ if (outIdx + 1 >= endIdx) break;
177
+ heap[outIdx++] = 192 | u >> 6;
178
+ heap[outIdx++] = 128 | u & 63;
179
+ } else if (u <= 65535) {
180
+ if (outIdx + 2 >= endIdx) break;
181
+ heap[outIdx++] = 224 | u >> 12;
182
+ heap[outIdx++] = 128 | u >> 6 & 63;
183
+ heap[outIdx++] = 128 | u & 63;
184
+ } else {
185
+ if (outIdx + 3 >= endIdx) break;
186
+ heap[outIdx++] = 240 | u >> 18;
187
+ heap[outIdx++] = 128 | u >> 12 & 63;
188
+ heap[outIdx++] = 128 | u >> 6 & 63;
189
+ heap[outIdx++] = 128 | u & 63;
190
+ }
191
+ }
192
+ heap[outIdx] = 0;
193
+ return outIdx - startIdx;
194
+ }
195
+
196
+ function stringToUTF8(str, outPtr, maxBytesToWrite) {
197
+ return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
198
+ }
199
+
200
+ function lengthBytesUTF8(str) {
201
+ var len = 0;
202
+ for (var i = 0; i < str.length; ++i) {
203
+ var u = str.charCodeAt(i);
204
+ if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
205
+ if (u <= 127) ++len; else if (u <= 2047) len += 2; else if (u <= 65535) len += 3; else len += 4;
206
+ }
207
+ return len;
208
+ }
209
+
210
+ var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : undefined;
211
+
212
+ function UTF16ToString(ptr, maxBytesToRead) {
213
+ var endPtr = ptr;
214
+ var idx = endPtr >> 1;
215
+ var maxIdx = idx + maxBytesToRead / 2;
216
+ while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx;
217
+ endPtr = idx << 1;
218
+ if (endPtr - ptr > 32 && UTF16Decoder) {
219
+ return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
220
+ } else {
221
+ var str = "";
222
+ for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
223
+ var codeUnit = HEAP16[ptr + i * 2 >> 1];
224
+ if (codeUnit == 0) break;
225
+ str += String.fromCharCode(codeUnit);
226
+ }
227
+ return str;
228
+ }
229
+ }
230
+
231
+ function stringToUTF16(str, outPtr, maxBytesToWrite) {
232
+ if (maxBytesToWrite === undefined) {
233
+ maxBytesToWrite = 2147483647;
234
+ }
235
+ if (maxBytesToWrite < 2) return 0;
236
+ maxBytesToWrite -= 2;
237
+ var startPtr = outPtr;
238
+ var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
239
+ for (var i = 0; i < numCharsToWrite; ++i) {
240
+ var codeUnit = str.charCodeAt(i);
241
+ HEAP16[outPtr >> 1] = codeUnit;
242
+ outPtr += 2;
243
+ }
244
+ HEAP16[outPtr >> 1] = 0;
245
+ return outPtr - startPtr;
246
+ }
247
+
248
+ function lengthBytesUTF16(str) {
249
+ return str.length * 2;
250
+ }
251
+
252
+ function UTF32ToString(ptr, maxBytesToRead) {
253
+ var i = 0;
254
+ var str = "";
255
+ while (!(i >= maxBytesToRead / 4)) {
256
+ var utf32 = HEAP32[ptr + i * 4 >> 2];
257
+ if (utf32 == 0) break;
258
+ ++i;
259
+ if (utf32 >= 65536) {
260
+ var ch = utf32 - 65536;
261
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
262
+ } else {
263
+ str += String.fromCharCode(utf32);
264
+ }
265
+ }
266
+ return str;
267
+ }
268
+
269
+ function stringToUTF32(str, outPtr, maxBytesToWrite) {
270
+ if (maxBytesToWrite === undefined) {
271
+ maxBytesToWrite = 2147483647;
272
+ }
273
+ if (maxBytesToWrite < 4) return 0;
274
+ var startPtr = outPtr;
275
+ var endPtr = startPtr + maxBytesToWrite - 4;
276
+ for (var i = 0; i < str.length; ++i) {
277
+ var codeUnit = str.charCodeAt(i);
278
+ if (codeUnit >= 55296 && codeUnit <= 57343) {
279
+ var trailSurrogate = str.charCodeAt(++i);
280
+ codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
281
+ }
282
+ HEAP32[outPtr >> 2] = codeUnit;
283
+ outPtr += 4;
284
+ if (outPtr + 4 > endPtr) break;
285
+ }
286
+ HEAP32[outPtr >> 2] = 0;
287
+ return outPtr - startPtr;
288
+ }
289
+
290
+ function lengthBytesUTF32(str) {
291
+ var len = 0;
292
+ for (var i = 0; i < str.length; ++i) {
293
+ var codeUnit = str.charCodeAt(i);
294
+ if (codeUnit >= 55296 && codeUnit <= 57343) ++i;
295
+ len += 4;
296
+ }
297
+ return len;
298
+ }
299
+
300
+ function allocateUTF8(str) {
301
+ var size = lengthBytesUTF8(str) + 1;
302
+ var ret = _malloc(size);
303
+ if (ret) stringToUTF8Array(str, HEAP8, ret, size);
304
+ return ret;
305
+ }
306
+
307
+ function writeArrayToMemory(array, buffer) {
308
+ HEAP8.set(array, buffer);
309
+ }
310
+
311
+ function writeAsciiToMemory(str, buffer, dontAddNull) {
312
+ for (var i = 0; i < str.length; ++i) {
313
+ HEAP8[buffer++ >> 0] = str.charCodeAt(i);
314
+ }
315
+ if (!dontAddNull) HEAP8[buffer >> 0] = 0;
316
+ }
317
+
318
+ var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
319
+
320
+ function updateGlobalBufferAndViews(buf) {
321
+ buffer = buf;
322
+ Module["HEAP8"] = HEAP8 = new Int8Array(buf);
323
+ Module["HEAP16"] = HEAP16 = new Int16Array(buf);
324
+ Module["HEAP32"] = HEAP32 = new Int32Array(buf);
325
+ Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
326
+ Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
327
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
328
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
329
+ Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
330
+ }
331
+
332
+ var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
333
+
334
+ if (Module["wasmMemory"]) {
335
+ wasmMemory = Module["wasmMemory"];
336
+ } else {
337
+ wasmMemory = new WebAssembly.Memory({
338
+ "initial": INITIAL_MEMORY / 65536,
339
+ "maximum": 2147483648 / 65536
340
+ });
341
+ }
342
+
343
+ if (wasmMemory) {
344
+ buffer = wasmMemory.buffer;
345
+ }
346
+
347
+ INITIAL_MEMORY = buffer.byteLength;
348
+
349
+ updateGlobalBufferAndViews(buffer);
350
+
351
+ var wasmTable;
352
+
353
+ var __ATPRERUN__ = [];
354
+
355
+ var __ATINIT__ = [];
356
+
357
+ var __ATPOSTRUN__ = [];
358
+
359
+ var runtimeInitialized = false;
360
+
361
+ function keepRuntimeAlive() {
362
+ return noExitRuntime;
363
+ }
364
+
365
+ function preRun() {
366
+ if (Module["preRun"]) {
367
+ if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ];
368
+ while (Module["preRun"].length) {
369
+ addOnPreRun(Module["preRun"].shift());
370
+ }
371
+ }
372
+ callRuntimeCallbacks(__ATPRERUN__);
373
+ }
374
+
375
+ function initRuntime() {
376
+ runtimeInitialized = true;
377
+ callRuntimeCallbacks(__ATINIT__);
378
+ }
379
+
380
+ function postRun() {
381
+ if (Module["postRun"]) {
382
+ if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ];
383
+ while (Module["postRun"].length) {
384
+ addOnPostRun(Module["postRun"].shift());
385
+ }
386
+ }
387
+ callRuntimeCallbacks(__ATPOSTRUN__);
388
+ }
389
+
390
+ function addOnPreRun(cb) {
391
+ __ATPRERUN__.unshift(cb);
392
+ }
393
+
394
+ function addOnInit(cb) {
395
+ __ATINIT__.unshift(cb);
396
+ }
397
+
398
+ function addOnPostRun(cb) {
399
+ __ATPOSTRUN__.unshift(cb);
400
+ }
401
+
402
+ var runDependencies = 0;
403
+
404
+ var runDependencyWatcher = null;
405
+
406
+ var dependenciesFulfilled = null;
407
+
408
+ function addRunDependency(id) {
409
+ runDependencies++;
410
+ if (Module["monitorRunDependencies"]) {
411
+ Module["monitorRunDependencies"](runDependencies);
412
+ }
413
+ }
414
+
415
+ function removeRunDependency(id) {
416
+ runDependencies--;
417
+ if (Module["monitorRunDependencies"]) {
418
+ Module["monitorRunDependencies"](runDependencies);
419
+ }
420
+ if (runDependencies == 0) {
421
+ if (runDependencyWatcher !== null) {
422
+ clearInterval(runDependencyWatcher);
423
+ runDependencyWatcher = null;
424
+ }
425
+ if (dependenciesFulfilled) {
426
+ var callback = dependenciesFulfilled;
427
+ dependenciesFulfilled = null;
428
+ callback();
429
+ }
430
+ }
431
+ }
432
+
433
+ Module["preloadedImages"] = {};
434
+
435
+ Module["preloadedAudios"] = {};
436
+
437
+ function abort(what) {
438
+ {
439
+ if (Module["onAbort"]) {
440
+ Module["onAbort"](what);
441
+ }
442
+ }
443
+ what = "Aborted(" + what + ")";
444
+ err(what);
445
+ ABORT = true;
446
+ EXITSTATUS = 1;
447
+ what += ". Build with -s ASSERTIONS=1 for more info.";
448
+ var e = new WebAssembly.RuntimeError(what);
449
+ throw e;
450
+ }
451
+
452
+ var dataURIPrefix = "data:application/octet-stream;base64,";
453
+
454
+ function isDataURI(filename) {
455
+ return filename.startsWith(dataURIPrefix);
456
+ }
457
+
458
+ var wasmBinaryFile;
459
+
460
+ wasmBinaryFile = "bergamot-translator-worker.wasm";
461
+
462
+ if (!isDataURI(wasmBinaryFile)) {
463
+ wasmBinaryFile = locateFile(wasmBinaryFile);
464
+ }
465
+
466
+ function getBinary(file) {
467
+ try {
468
+ if (file == wasmBinaryFile && wasmBinary) {
469
+ return new Uint8Array(wasmBinary);
470
+ }
471
+ if (readBinary) {
472
+ return readBinary(file);
473
+ } else {
474
+ throw "both async and sync fetching of the wasm failed";
475
+ }
476
+ } catch (err) {
477
+ abort(err);
478
+ }
479
+ }
480
+
481
+ function getBinaryPromise() {
482
+ if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
483
+ if (typeof fetch == "function") {
484
+ return fetch(wasmBinaryFile, {
485
+ credentials: "same-origin"
486
+ }).then(function(response) {
487
+ if (!response["ok"]) {
488
+ throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
489
+ }
490
+ return response["arrayBuffer"]();
491
+ }).catch(function() {
492
+ return getBinary(wasmBinaryFile);
493
+ });
494
+ }
495
+ }
496
+ return Promise.resolve().then(function() {
497
+ return getBinary(wasmBinaryFile);
498
+ });
499
+ }
500
+
501
+ function createWasm() {
502
+ var info = {
503
+ "env": asmLibraryArg,
504
+ "wasm_gemm": createWasmGemm(),
505
+ "wasi_snapshot_preview1": asmLibraryArg
506
+ };
507
+ function receiveInstance(instance, module) {
508
+ var exports = instance.exports;
509
+ Module["asm"] = exports;
510
+ wasmTable = Module["asm"]["__indirect_function_table"];
511
+ addOnInit(Module["asm"]["__wasm_call_ctors"]);
512
+ exportAsmFunctions(exports);
513
+ removeRunDependency("wasm-instantiate");
514
+ }
515
+ addRunDependency("wasm-instantiate");
516
+ function receiveInstantiationResult(result) {
517
+ receiveInstance(result["instance"]);
518
+ }
519
+ function instantiateArrayBuffer(receiver) {
520
+ return getBinaryPromise().then(function(binary) {
521
+ return WebAssembly.instantiate(binary, info);
522
+ }).then(function(instance) {
523
+ return instance;
524
+ }).then(receiver, function(reason) {
525
+ err("failed to asynchronously prepare wasm: " + reason);
526
+ abort(reason);
527
+ });
528
+ }
529
+ function instantiateAsync() {
530
+ if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") {
531
+ return fetch(wasmBinaryFile, {
532
+ credentials: "same-origin"
533
+ }).then(function(response) {
534
+ var result = WebAssembly.instantiateStreaming(response, info);
535
+ return result.then(receiveInstantiationResult, function(reason) {
536
+ err("wasm streaming compile failed: " + reason);
537
+ err("falling back to ArrayBuffer instantiation");
538
+ return instantiateArrayBuffer(receiveInstantiationResult);
539
+ });
540
+ });
541
+ } else {
542
+ return instantiateArrayBuffer(receiveInstantiationResult);
543
+ }
544
+ }
545
+ if (Module["instantiateWasm"]) {
546
+ try {
547
+ var exports = Module["instantiateWasm"](info, receiveInstance);
548
+ return exports;
549
+ } catch (e) {
550
+ err("Module.instantiateWasm callback failed with error: " + e);
551
+ return false;
552
+ }
553
+ }
554
+ instantiateAsync();
555
+ return {};
556
+ }
557
+
558
+ function callRuntimeCallbacks(callbacks) {
559
+ while (callbacks.length > 0) {
560
+ var callback = callbacks.shift();
561
+ if (typeof callback == "function") {
562
+ callback(Module);
563
+ continue;
564
+ }
565
+ var func = callback.func;
566
+ if (typeof func == "number") {
567
+ if (callback.arg === undefined) {
568
+ getWasmTableEntry(func)();
569
+ } else {
570
+ getWasmTableEntry(func)(callback.arg);
571
+ }
572
+ } else {
573
+ func(callback.arg === undefined ? null : callback.arg);
574
+ }
575
+ }
576
+ }
577
+
578
+ function asmjsMangle(x) {
579
+ var unmangledSymbols = [ "stackAlloc", "stackSave", "stackRestore" ];
580
+ return x.indexOf("dynCall_") == 0 || unmangledSymbols.includes(x) ? x : "_" + x;
581
+ }
582
+
583
+ function exportAsmFunctions(asm) {
584
+ var global_object = this;
585
+ for (var __exportedFunc in asm) {
586
+ var jsname = asmjsMangle(__exportedFunc);
587
+ global_object[jsname] = Module[jsname] = asm[__exportedFunc];
588
+ }
589
+ }
590
+
591
+ var wasmTableMirror = [];
592
+
593
+ function getWasmTableEntry(funcPtr) {
594
+ var func = wasmTableMirror[funcPtr];
595
+ if (!func) {
596
+ if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
597
+ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
598
+ }
599
+ return func;
600
+ }
601
+
602
+ function ___assert_fail(condition, filename, line, func) {
603
+ abort("Assertion failed: " + UTF8ToString(condition) + ", at: " + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]);
604
+ }
605
+
606
+ function ___cxa_allocate_exception(size) {
607
+ return _malloc(size + 16) + 16;
608
+ }
609
+
610
+ var exceptionCaught = [];
611
+
612
+ var exceptionLast = 0;
613
+
614
+ var uncaughtExceptionCount = 0;
615
+
616
+ function ___cxa_rethrow() {
617
+ var catchInfo = exceptionCaught.pop();
618
+ if (!catchInfo) {
619
+ abort("no exception to throw");
620
+ }
621
+ var info = catchInfo.get_exception_info();
622
+ var ptr = catchInfo.get_base_ptr();
623
+ if (!info.get_rethrown()) {
624
+ exceptionCaught.push(catchInfo);
625
+ info.set_rethrown(true);
626
+ info.set_caught(false);
627
+ uncaughtExceptionCount++;
628
+ } else {
629
+ catchInfo.free();
630
+ }
631
+ exceptionLast = ptr;
632
+ throw ptr;
633
+ }
634
+
635
+ function ExceptionInfo(excPtr) {
636
+ this.excPtr = excPtr;
637
+ this.ptr = excPtr - 16;
638
+ this.set_type = function(type) {
639
+ HEAP32[this.ptr + 4 >> 2] = type;
640
+ };
641
+ this.get_type = function() {
642
+ return HEAP32[this.ptr + 4 >> 2];
643
+ };
644
+ this.set_destructor = function(destructor) {
645
+ HEAP32[this.ptr + 8 >> 2] = destructor;
646
+ };
647
+ this.get_destructor = function() {
648
+ return HEAP32[this.ptr + 8 >> 2];
649
+ };
650
+ this.set_refcount = function(refcount) {
651
+ HEAP32[this.ptr >> 2] = refcount;
652
+ };
653
+ this.set_caught = function(caught) {
654
+ caught = caught ? 1 : 0;
655
+ HEAP8[this.ptr + 12 >> 0] = caught;
656
+ };
657
+ this.get_caught = function() {
658
+ return HEAP8[this.ptr + 12 >> 0] != 0;
659
+ };
660
+ this.set_rethrown = function(rethrown) {
661
+ rethrown = rethrown ? 1 : 0;
662
+ HEAP8[this.ptr + 13 >> 0] = rethrown;
663
+ };
664
+ this.get_rethrown = function() {
665
+ return HEAP8[this.ptr + 13 >> 0] != 0;
666
+ };
667
+ this.init = function(type, destructor) {
668
+ this.set_type(type);
669
+ this.set_destructor(destructor);
670
+ this.set_refcount(0);
671
+ this.set_caught(false);
672
+ this.set_rethrown(false);
673
+ };
674
+ this.add_ref = function() {
675
+ var value = HEAP32[this.ptr >> 2];
676
+ HEAP32[this.ptr >> 2] = value + 1;
677
+ };
678
+ this.release_ref = function() {
679
+ var prev = HEAP32[this.ptr >> 2];
680
+ HEAP32[this.ptr >> 2] = prev - 1;
681
+ return prev === 1;
682
+ };
683
+ }
684
+
685
+ function ___cxa_throw(ptr, type, destructor) {
686
+ var info = new ExceptionInfo(ptr);
687
+ info.init(type, destructor);
688
+ exceptionLast = ptr;
689
+ uncaughtExceptionCount++;
690
+ throw ptr;
691
+ }
692
+
693
+ var SYSCALLS = {
694
+ buffers: [ null, [], [] ],
695
+ printChar: function(stream, curr) {
696
+ var buffer = SYSCALLS.buffers[stream];
697
+ if (curr === 0 || curr === 10) {
698
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
699
+ buffer.length = 0;
700
+ } else {
701
+ buffer.push(curr);
702
+ }
703
+ },
704
+ varargs: undefined,
705
+ get: function() {
706
+ SYSCALLS.varargs += 4;
707
+ var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];
708
+ return ret;
709
+ },
710
+ getStr: function(ptr) {
711
+ var ret = UTF8ToString(ptr);
712
+ return ret;
713
+ },
714
+ get64: function(low, high) {
715
+ return low;
716
+ }
717
+ };
718
+
719
+ function ___syscall_faccessat(dirfd, path, amode, flags) {
720
+ path = SYSCALLS.getStr(path);
721
+ path = SYSCALLS.calculateAt(dirfd, path);
722
+ return SYSCALLS.doAccess(path, amode);
723
+ }
724
+
725
+ function ___syscall_fcntl64(fd, cmd, varargs) {
726
+ SYSCALLS.varargs = varargs;
727
+ return 0;
728
+ }
729
+
730
+ function ___syscall_fstat64(fd, buf) {}
731
+
732
+ function ___syscall_getcwd(buf, size) {}
733
+
734
+ function ___syscall_ioctl(fd, op, varargs) {
735
+ SYSCALLS.varargs = varargs;
736
+ return 0;
737
+ }
738
+
739
+ function ___syscall_lstat64(path, buf) {}
740
+
741
+ function ___syscall_newfstatat(dirfd, path, buf, flags) {}
742
+
743
+ function ___syscall_openat(dirfd, path, flags, varargs) {
744
+ SYSCALLS.varargs = varargs;
745
+ }
746
+
747
+ function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) {}
748
+
749
+ function ___syscall_rmdir(path) {}
750
+
751
+ function ___syscall_stat64(path, buf) {}
752
+
753
+ function ___syscall_unlinkat(dirfd, path, flags) {}
754
+
755
+ var structRegistrations = {};
756
+
757
+ function runDestructors(destructors) {
758
+ while (destructors.length) {
759
+ var ptr = destructors.pop();
760
+ var del = destructors.pop();
761
+ del(ptr);
762
+ }
763
+ }
764
+
765
+ function simpleReadValueFromPointer(pointer) {
766
+ return this["fromWireType"](HEAPU32[pointer >> 2]);
767
+ }
768
+
769
+ var awaitingDependencies = {};
770
+
771
+ var registeredTypes = {};
772
+
773
+ var typeDependencies = {};
774
+
775
+ var char_0 = 48;
776
+
777
+ var char_9 = 57;
778
+
779
+ function makeLegalFunctionName(name) {
780
+ if (undefined === name) {
781
+ return "_unknown";
782
+ }
783
+ name = name.replace(/[^a-zA-Z0-9_]/g, "$");
784
+ var f = name.charCodeAt(0);
785
+ if (f >= char_0 && f <= char_9) {
786
+ return "_" + name;
787
+ }
788
+ return name;
789
+ }
790
+
791
+ function createNamedFunction(name, body) {
792
+ name = makeLegalFunctionName(name);
793
+ return function() {
794
+ null;
795
+ return body.apply(this, arguments);
796
+ };
797
+ }
798
+
799
+ function extendError(baseErrorType, errorName) {
800
+ var errorClass = createNamedFunction(errorName, function(message) {
801
+ this.name = errorName;
802
+ this.message = message;
803
+ var stack = new Error(message).stack;
804
+ if (stack !== undefined) {
805
+ this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
806
+ }
807
+ });
808
+ errorClass.prototype = Object.create(baseErrorType.prototype);
809
+ errorClass.prototype.constructor = errorClass;
810
+ errorClass.prototype.toString = function() {
811
+ if (this.message === undefined) {
812
+ return this.name;
813
+ } else {
814
+ return this.name + ": " + this.message;
815
+ }
816
+ };
817
+ return errorClass;
818
+ }
819
+
820
+ var InternalError = undefined;
821
+
822
+ function throwInternalError(message) {
823
+ throw new InternalError(message);
824
+ }
825
+
826
+ function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
827
+ myTypes.forEach(function(type) {
828
+ typeDependencies[type] = dependentTypes;
829
+ });
830
+ function onComplete(typeConverters) {
831
+ var myTypeConverters = getTypeConverters(typeConverters);
832
+ if (myTypeConverters.length !== myTypes.length) {
833
+ throwInternalError("Mismatched type converter count");
834
+ }
835
+ for (var i = 0; i < myTypes.length; ++i) {
836
+ registerType(myTypes[i], myTypeConverters[i]);
837
+ }
838
+ }
839
+ var typeConverters = new Array(dependentTypes.length);
840
+ var unregisteredTypes = [];
841
+ var registered = 0;
842
+ dependentTypes.forEach((dt, i) => {
843
+ if (registeredTypes.hasOwnProperty(dt)) {
844
+ typeConverters[i] = registeredTypes[dt];
845
+ } else {
846
+ unregisteredTypes.push(dt);
847
+ if (!awaitingDependencies.hasOwnProperty(dt)) {
848
+ awaitingDependencies[dt] = [];
849
+ }
850
+ awaitingDependencies[dt].push(() => {
851
+ typeConverters[i] = registeredTypes[dt];
852
+ ++registered;
853
+ if (registered === unregisteredTypes.length) {
854
+ onComplete(typeConverters);
855
+ }
856
+ });
857
+ }
858
+ });
859
+ if (0 === unregisteredTypes.length) {
860
+ onComplete(typeConverters);
861
+ }
862
+ }
863
+
864
+ function __embind_finalize_value_object(structType) {
865
+ var reg = structRegistrations[structType];
866
+ delete structRegistrations[structType];
867
+ var rawConstructor = reg.rawConstructor;
868
+ var rawDestructor = reg.rawDestructor;
869
+ var fieldRecords = reg.fields;
870
+ var fieldTypes = fieldRecords.map(field => field.getterReturnType).concat(fieldRecords.map(field => field.setterArgumentType));
871
+ whenDependentTypesAreResolved([ structType ], fieldTypes, fieldTypes => {
872
+ var fields = {};
873
+ fieldRecords.forEach((field, i) => {
874
+ var fieldName = field.fieldName;
875
+ var getterReturnType = fieldTypes[i];
876
+ var getter = field.getter;
877
+ var getterContext = field.getterContext;
878
+ var setterArgumentType = fieldTypes[i + fieldRecords.length];
879
+ var setter = field.setter;
880
+ var setterContext = field.setterContext;
881
+ fields[fieldName] = {
882
+ read: ptr => {
883
+ return getterReturnType["fromWireType"](getter(getterContext, ptr));
884
+ },
885
+ write: (ptr, o) => {
886
+ var destructors = [];
887
+ setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
888
+ runDestructors(destructors);
889
+ }
890
+ };
891
+ });
892
+ return [ {
893
+ name: reg.name,
894
+ "fromWireType": function(ptr) {
895
+ var rv = {};
896
+ for (var i in fields) {
897
+ rv[i] = fields[i].read(ptr);
898
+ }
899
+ rawDestructor(ptr);
900
+ return rv;
901
+ },
902
+ "toWireType": function(destructors, o) {
903
+ for (var fieldName in fields) {
904
+ if (!(fieldName in o)) {
905
+ throw new TypeError('Missing field: "' + fieldName + '"');
906
+ }
907
+ }
908
+ var ptr = rawConstructor();
909
+ for (fieldName in fields) {
910
+ fields[fieldName].write(ptr, o[fieldName]);
911
+ }
912
+ if (destructors !== null) {
913
+ destructors.push(rawDestructor, ptr);
914
+ }
915
+ return ptr;
916
+ },
917
+ "argPackAdvance": 8,
918
+ "readValueFromPointer": simpleReadValueFromPointer,
919
+ destructorFunction: rawDestructor
920
+ } ];
921
+ });
922
+ }
923
+
924
+ function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {}
925
+
926
+ function getShiftFromSize(size) {
927
+ switch (size) {
928
+ case 1:
929
+ return 0;
930
+
931
+ case 2:
932
+ return 1;
933
+
934
+ case 4:
935
+ return 2;
936
+
937
+ case 8:
938
+ return 3;
939
+
940
+ default:
941
+ throw new TypeError("Unknown type size: " + size);
942
+ }
943
+ }
944
+
945
+ function embind_init_charCodes() {
946
+ var codes = new Array(256);
947
+ for (var i = 0; i < 256; ++i) {
948
+ codes[i] = String.fromCharCode(i);
949
+ }
950
+ embind_charCodes = codes;
951
+ }
952
+
953
+ var embind_charCodes = undefined;
954
+
955
+ function readLatin1String(ptr) {
956
+ var ret = "";
957
+ var c = ptr;
958
+ while (HEAPU8[c]) {
959
+ ret += embind_charCodes[HEAPU8[c++]];
960
+ }
961
+ return ret;
962
+ }
963
+
964
+ var BindingError = undefined;
965
+
966
+ function throwBindingError(message) {
967
+ throw new BindingError(message);
968
+ }
969
+
970
+ function registerType(rawType, registeredInstance, options = {}) {
971
+ if (!("argPackAdvance" in registeredInstance)) {
972
+ throw new TypeError("registerType registeredInstance requires argPackAdvance");
973
+ }
974
+ var name = registeredInstance.name;
975
+ if (!rawType) {
976
+ throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
977
+ }
978
+ if (registeredTypes.hasOwnProperty(rawType)) {
979
+ if (options.ignoreDuplicateRegistrations) {
980
+ return;
981
+ } else {
982
+ throwBindingError("Cannot register type '" + name + "' twice");
983
+ }
984
+ }
985
+ registeredTypes[rawType] = registeredInstance;
986
+ delete typeDependencies[rawType];
987
+ if (awaitingDependencies.hasOwnProperty(rawType)) {
988
+ var callbacks = awaitingDependencies[rawType];
989
+ delete awaitingDependencies[rawType];
990
+ callbacks.forEach(cb => cb());
991
+ }
992
+ }
993
+
994
+ function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
995
+ var shift = getShiftFromSize(size);
996
+ name = readLatin1String(name);
997
+ registerType(rawType, {
998
+ name: name,
999
+ "fromWireType": function(wt) {
1000
+ return !!wt;
1001
+ },
1002
+ "toWireType": function(destructors, o) {
1003
+ return o ? trueValue : falseValue;
1004
+ },
1005
+ "argPackAdvance": 8,
1006
+ "readValueFromPointer": function(pointer) {
1007
+ var heap;
1008
+ if (size === 1) {
1009
+ heap = HEAP8;
1010
+ } else if (size === 2) {
1011
+ heap = HEAP16;
1012
+ } else if (size === 4) {
1013
+ heap = HEAP32;
1014
+ } else {
1015
+ throw new TypeError("Unknown boolean type size: " + name);
1016
+ }
1017
+ return this["fromWireType"](heap[pointer >> shift]);
1018
+ },
1019
+ destructorFunction: null
1020
+ });
1021
+ }
1022
+
1023
+ function ClassHandle_isAliasOf(other) {
1024
+ if (!(this instanceof ClassHandle)) {
1025
+ return false;
1026
+ }
1027
+ if (!(other instanceof ClassHandle)) {
1028
+ return false;
1029
+ }
1030
+ var leftClass = this.$$.ptrType.registeredClass;
1031
+ var left = this.$$.ptr;
1032
+ var rightClass = other.$$.ptrType.registeredClass;
1033
+ var right = other.$$.ptr;
1034
+ while (leftClass.baseClass) {
1035
+ left = leftClass.upcast(left);
1036
+ leftClass = leftClass.baseClass;
1037
+ }
1038
+ while (rightClass.baseClass) {
1039
+ right = rightClass.upcast(right);
1040
+ rightClass = rightClass.baseClass;
1041
+ }
1042
+ return leftClass === rightClass && left === right;
1043
+ }
1044
+
1045
+ function shallowCopyInternalPointer(o) {
1046
+ return {
1047
+ count: o.count,
1048
+ deleteScheduled: o.deleteScheduled,
1049
+ preservePointerOnDelete: o.preservePointerOnDelete,
1050
+ ptr: o.ptr,
1051
+ ptrType: o.ptrType,
1052
+ smartPtr: o.smartPtr,
1053
+ smartPtrType: o.smartPtrType
1054
+ };
1055
+ }
1056
+
1057
+ function throwInstanceAlreadyDeleted(obj) {
1058
+ function getInstanceTypeName(handle) {
1059
+ return handle.$$.ptrType.registeredClass.name;
1060
+ }
1061
+ throwBindingError(getInstanceTypeName(obj) + " instance already deleted");
1062
+ }
1063
+
1064
+ var finalizationRegistry = false;
1065
+
1066
+ function detachFinalizer(handle) {}
1067
+
1068
+ function runDestructor($$) {
1069
+ if ($$.smartPtr) {
1070
+ $$.smartPtrType.rawDestructor($$.smartPtr);
1071
+ } else {
1072
+ $$.ptrType.registeredClass.rawDestructor($$.ptr);
1073
+ }
1074
+ }
1075
+
1076
+ function releaseClassHandle($$) {
1077
+ $$.count.value -= 1;
1078
+ var toDelete = 0 === $$.count.value;
1079
+ if (toDelete) {
1080
+ runDestructor($$);
1081
+ }
1082
+ }
1083
+
1084
+ function downcastPointer(ptr, ptrClass, desiredClass) {
1085
+ if (ptrClass === desiredClass) {
1086
+ return ptr;
1087
+ }
1088
+ if (undefined === desiredClass.baseClass) {
1089
+ return null;
1090
+ }
1091
+ var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
1092
+ if (rv === null) {
1093
+ return null;
1094
+ }
1095
+ return desiredClass.downcast(rv);
1096
+ }
1097
+
1098
+ var registeredPointers = {};
1099
+
1100
+ function getInheritedInstanceCount() {
1101
+ return Object.keys(registeredInstances).length;
1102
+ }
1103
+
1104
+ function getLiveInheritedInstances() {
1105
+ var rv = [];
1106
+ for (var k in registeredInstances) {
1107
+ if (registeredInstances.hasOwnProperty(k)) {
1108
+ rv.push(registeredInstances[k]);
1109
+ }
1110
+ }
1111
+ return rv;
1112
+ }
1113
+
1114
+ var deletionQueue = [];
1115
+
1116
+ function flushPendingDeletes() {
1117
+ while (deletionQueue.length) {
1118
+ var obj = deletionQueue.pop();
1119
+ obj.$$.deleteScheduled = false;
1120
+ obj["delete"]();
1121
+ }
1122
+ }
1123
+
1124
+ var delayFunction = undefined;
1125
+
1126
+ function setDelayFunction(fn) {
1127
+ delayFunction = fn;
1128
+ if (deletionQueue.length && delayFunction) {
1129
+ delayFunction(flushPendingDeletes);
1130
+ }
1131
+ }
1132
+
1133
+ function init_embind() {
1134
+ Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
1135
+ Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
1136
+ Module["flushPendingDeletes"] = flushPendingDeletes;
1137
+ Module["setDelayFunction"] = setDelayFunction;
1138
+ }
1139
+
1140
+ var registeredInstances = {};
1141
+
1142
+ function getBasestPointer(class_, ptr) {
1143
+ if (ptr === undefined) {
1144
+ throwBindingError("ptr should not be undefined");
1145
+ }
1146
+ while (class_.baseClass) {
1147
+ ptr = class_.upcast(ptr);
1148
+ class_ = class_.baseClass;
1149
+ }
1150
+ return ptr;
1151
+ }
1152
+
1153
+ function getInheritedInstance(class_, ptr) {
1154
+ ptr = getBasestPointer(class_, ptr);
1155
+ return registeredInstances[ptr];
1156
+ }
1157
+
1158
+ function makeClassHandle(prototype, record) {
1159
+ if (!record.ptrType || !record.ptr) {
1160
+ throwInternalError("makeClassHandle requires ptr and ptrType");
1161
+ }
1162
+ var hasSmartPtrType = !!record.smartPtrType;
1163
+ var hasSmartPtr = !!record.smartPtr;
1164
+ if (hasSmartPtrType !== hasSmartPtr) {
1165
+ throwInternalError("Both smartPtrType and smartPtr must be specified");
1166
+ }
1167
+ record.count = {
1168
+ value: 1
1169
+ };
1170
+ return attachFinalizer(Object.create(prototype, {
1171
+ $$: {
1172
+ value: record
1173
+ }
1174
+ }));
1175
+ }
1176
+
1177
+ function RegisteredPointer_fromWireType(ptr) {
1178
+ var rawPointer = this.getPointee(ptr);
1179
+ if (!rawPointer) {
1180
+ this.destructor(ptr);
1181
+ return null;
1182
+ }
1183
+ var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
1184
+ if (undefined !== registeredInstance) {
1185
+ if (0 === registeredInstance.$$.count.value) {
1186
+ registeredInstance.$$.ptr = rawPointer;
1187
+ registeredInstance.$$.smartPtr = ptr;
1188
+ return registeredInstance["clone"]();
1189
+ } else {
1190
+ var rv = registeredInstance["clone"]();
1191
+ this.destructor(ptr);
1192
+ return rv;
1193
+ }
1194
+ }
1195
+ function makeDefaultHandle() {
1196
+ if (this.isSmartPointer) {
1197
+ return makeClassHandle(this.registeredClass.instancePrototype, {
1198
+ ptrType: this.pointeeType,
1199
+ ptr: rawPointer,
1200
+ smartPtrType: this,
1201
+ smartPtr: ptr
1202
+ });
1203
+ } else {
1204
+ return makeClassHandle(this.registeredClass.instancePrototype, {
1205
+ ptrType: this,
1206
+ ptr: ptr
1207
+ });
1208
+ }
1209
+ }
1210
+ var actualType = this.registeredClass.getActualType(rawPointer);
1211
+ var registeredPointerRecord = registeredPointers[actualType];
1212
+ if (!registeredPointerRecord) {
1213
+ return makeDefaultHandle.call(this);
1214
+ }
1215
+ var toType;
1216
+ if (this.isConst) {
1217
+ toType = registeredPointerRecord.constPointerType;
1218
+ } else {
1219
+ toType = registeredPointerRecord.pointerType;
1220
+ }
1221
+ var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
1222
+ if (dp === null) {
1223
+ return makeDefaultHandle.call(this);
1224
+ }
1225
+ if (this.isSmartPointer) {
1226
+ return makeClassHandle(toType.registeredClass.instancePrototype, {
1227
+ ptrType: toType,
1228
+ ptr: dp,
1229
+ smartPtrType: this,
1230
+ smartPtr: ptr
1231
+ });
1232
+ } else {
1233
+ return makeClassHandle(toType.registeredClass.instancePrototype, {
1234
+ ptrType: toType,
1235
+ ptr: dp
1236
+ });
1237
+ }
1238
+ }
1239
+
1240
+ function attachFinalizer(handle) {
1241
+ if ("undefined" === typeof FinalizationRegistry) {
1242
+ attachFinalizer = (handle => handle);
1243
+ return handle;
1244
+ }
1245
+ finalizationRegistry = new FinalizationRegistry(info => {
1246
+ releaseClassHandle(info.$$);
1247
+ });
1248
+ attachFinalizer = (handle => {
1249
+ var $$ = handle.$$;
1250
+ var hasSmartPtr = !!$$.smartPtr;
1251
+ if (hasSmartPtr) {
1252
+ var info = {
1253
+ $$: $$
1254
+ };
1255
+ finalizationRegistry.register(handle, info, handle);
1256
+ }
1257
+ return handle;
1258
+ });
1259
+ detachFinalizer = (handle => finalizationRegistry.unregister(handle));
1260
+ return attachFinalizer(handle);
1261
+ }
1262
+
1263
+ function ClassHandle_clone() {
1264
+ if (!this.$$.ptr) {
1265
+ throwInstanceAlreadyDeleted(this);
1266
+ }
1267
+ if (this.$$.preservePointerOnDelete) {
1268
+ this.$$.count.value += 1;
1269
+ return this;
1270
+ } else {
1271
+ var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), {
1272
+ $$: {
1273
+ value: shallowCopyInternalPointer(this.$$)
1274
+ }
1275
+ }));
1276
+ clone.$$.count.value += 1;
1277
+ clone.$$.deleteScheduled = false;
1278
+ return clone;
1279
+ }
1280
+ }
1281
+
1282
+ function ClassHandle_delete() {
1283
+ if (!this.$$.ptr) {
1284
+ throwInstanceAlreadyDeleted(this);
1285
+ }
1286
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
1287
+ throwBindingError("Object already scheduled for deletion");
1288
+ }
1289
+ detachFinalizer(this);
1290
+ releaseClassHandle(this.$$);
1291
+ if (!this.$$.preservePointerOnDelete) {
1292
+ this.$$.smartPtr = undefined;
1293
+ this.$$.ptr = undefined;
1294
+ }
1295
+ }
1296
+
1297
+ function ClassHandle_isDeleted() {
1298
+ return !this.$$.ptr;
1299
+ }
1300
+
1301
+ function ClassHandle_deleteLater() {
1302
+ if (!this.$$.ptr) {
1303
+ throwInstanceAlreadyDeleted(this);
1304
+ }
1305
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
1306
+ throwBindingError("Object already scheduled for deletion");
1307
+ }
1308
+ deletionQueue.push(this);
1309
+ if (deletionQueue.length === 1 && delayFunction) {
1310
+ delayFunction(flushPendingDeletes);
1311
+ }
1312
+ this.$$.deleteScheduled = true;
1313
+ return this;
1314
+ }
1315
+
1316
+ function init_ClassHandle() {
1317
+ ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf;
1318
+ ClassHandle.prototype["clone"] = ClassHandle_clone;
1319
+ ClassHandle.prototype["delete"] = ClassHandle_delete;
1320
+ ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted;
1321
+ ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater;
1322
+ }
1323
+
1324
+ function ClassHandle() {}
1325
+
1326
+ function ensureOverloadTable(proto, methodName, humanName) {
1327
+ if (undefined === proto[methodName].overloadTable) {
1328
+ var prevFunc = proto[methodName];
1329
+ proto[methodName] = function() {
1330
+ if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
1331
+ throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!");
1332
+ }
1333
+ return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
1334
+ };
1335
+ proto[methodName].overloadTable = [];
1336
+ proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
1337
+ }
1338
+ }
1339
+
1340
+ function exposePublicSymbol(name, value, numArguments) {
1341
+ if (Module.hasOwnProperty(name)) {
1342
+ if (undefined === numArguments || undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) {
1343
+ throwBindingError("Cannot register public name '" + name + "' twice");
1344
+ }
1345
+ ensureOverloadTable(Module, name, name);
1346
+ if (Module.hasOwnProperty(numArguments)) {
1347
+ throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!");
1348
+ }
1349
+ Module[name].overloadTable[numArguments] = value;
1350
+ } else {
1351
+ Module[name] = value;
1352
+ if (undefined !== numArguments) {
1353
+ Module[name].numArguments = numArguments;
1354
+ }
1355
+ }
1356
+ }
1357
+
1358
+ function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
1359
+ this.name = name;
1360
+ this.constructor = constructor;
1361
+ this.instancePrototype = instancePrototype;
1362
+ this.rawDestructor = rawDestructor;
1363
+ this.baseClass = baseClass;
1364
+ this.getActualType = getActualType;
1365
+ this.upcast = upcast;
1366
+ this.downcast = downcast;
1367
+ this.pureVirtualFunctions = [];
1368
+ }
1369
+
1370
+ function upcastPointer(ptr, ptrClass, desiredClass) {
1371
+ while (ptrClass !== desiredClass) {
1372
+ if (!ptrClass.upcast) {
1373
+ throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name);
1374
+ }
1375
+ ptr = ptrClass.upcast(ptr);
1376
+ ptrClass = ptrClass.baseClass;
1377
+ }
1378
+ return ptr;
1379
+ }
1380
+
1381
+ function constNoSmartPtrRawPointerToWireType(destructors, handle) {
1382
+ if (handle === null) {
1383
+ if (this.isReference) {
1384
+ throwBindingError("null is not a valid " + this.name);
1385
+ }
1386
+ return 0;
1387
+ }
1388
+ if (!handle.$$) {
1389
+ throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
1390
+ }
1391
+ if (!handle.$$.ptr) {
1392
+ throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
1393
+ }
1394
+ var handleClass = handle.$$.ptrType.registeredClass;
1395
+ var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
1396
+ return ptr;
1397
+ }
1398
+
1399
+ function genericPointerToWireType(destructors, handle) {
1400
+ var ptr;
1401
+ if (handle === null) {
1402
+ if (this.isReference) {
1403
+ throwBindingError("null is not a valid " + this.name);
1404
+ }
1405
+ if (this.isSmartPointer) {
1406
+ ptr = this.rawConstructor();
1407
+ if (destructors !== null) {
1408
+ destructors.push(this.rawDestructor, ptr);
1409
+ }
1410
+ return ptr;
1411
+ } else {
1412
+ return 0;
1413
+ }
1414
+ }
1415
+ if (!handle.$$) {
1416
+ throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
1417
+ }
1418
+ if (!handle.$$.ptr) {
1419
+ throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
1420
+ }
1421
+ if (!this.isConst && handle.$$.ptrType.isConst) {
1422
+ throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name);
1423
+ }
1424
+ var handleClass = handle.$$.ptrType.registeredClass;
1425
+ ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
1426
+ if (this.isSmartPointer) {
1427
+ if (undefined === handle.$$.smartPtr) {
1428
+ throwBindingError("Passing raw pointer to smart pointer is illegal");
1429
+ }
1430
+ switch (this.sharingPolicy) {
1431
+ case 0:
1432
+ if (handle.$$.smartPtrType === this) {
1433
+ ptr = handle.$$.smartPtr;
1434
+ } else {
1435
+ throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name);
1436
+ }
1437
+ break;
1438
+
1439
+ case 1:
1440
+ ptr = handle.$$.smartPtr;
1441
+ break;
1442
+
1443
+ case 2:
1444
+ if (handle.$$.smartPtrType === this) {
1445
+ ptr = handle.$$.smartPtr;
1446
+ } else {
1447
+ var clonedHandle = handle["clone"]();
1448
+ ptr = this.rawShare(ptr, Emval.toHandle(function() {
1449
+ clonedHandle["delete"]();
1450
+ }));
1451
+ if (destructors !== null) {
1452
+ destructors.push(this.rawDestructor, ptr);
1453
+ }
1454
+ }
1455
+ break;
1456
+
1457
+ default:
1458
+ throwBindingError("Unsupporting sharing policy");
1459
+ }
1460
+ }
1461
+ return ptr;
1462
+ }
1463
+
1464
+ function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
1465
+ if (handle === null) {
1466
+ if (this.isReference) {
1467
+ throwBindingError("null is not a valid " + this.name);
1468
+ }
1469
+ return 0;
1470
+ }
1471
+ if (!handle.$$) {
1472
+ throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name);
1473
+ }
1474
+ if (!handle.$$.ptr) {
1475
+ throwBindingError("Cannot pass deleted object as a pointer of type " + this.name);
1476
+ }
1477
+ if (handle.$$.ptrType.isConst) {
1478
+ throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name);
1479
+ }
1480
+ var handleClass = handle.$$.ptrType.registeredClass;
1481
+ var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
1482
+ return ptr;
1483
+ }
1484
+
1485
+ function RegisteredPointer_getPointee(ptr) {
1486
+ if (this.rawGetPointee) {
1487
+ ptr = this.rawGetPointee(ptr);
1488
+ }
1489
+ return ptr;
1490
+ }
1491
+
1492
+ function RegisteredPointer_destructor(ptr) {
1493
+ if (this.rawDestructor) {
1494
+ this.rawDestructor(ptr);
1495
+ }
1496
+ }
1497
+
1498
+ function RegisteredPointer_deleteObject(handle) {
1499
+ if (handle !== null) {
1500
+ handle["delete"]();
1501
+ }
1502
+ }
1503
+
1504
+ function init_RegisteredPointer() {
1505
+ RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;
1506
+ RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;
1507
+ RegisteredPointer.prototype["argPackAdvance"] = 8;
1508
+ RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer;
1509
+ RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject;
1510
+ RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType;
1511
+ }
1512
+
1513
+ function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
1514
+ this.name = name;
1515
+ this.registeredClass = registeredClass;
1516
+ this.isReference = isReference;
1517
+ this.isConst = isConst;
1518
+ this.isSmartPointer = isSmartPointer;
1519
+ this.pointeeType = pointeeType;
1520
+ this.sharingPolicy = sharingPolicy;
1521
+ this.rawGetPointee = rawGetPointee;
1522
+ this.rawConstructor = rawConstructor;
1523
+ this.rawShare = rawShare;
1524
+ this.rawDestructor = rawDestructor;
1525
+ if (!isSmartPointer && registeredClass.baseClass === undefined) {
1526
+ if (isConst) {
1527
+ this["toWireType"] = constNoSmartPtrRawPointerToWireType;
1528
+ this.destructorFunction = null;
1529
+ } else {
1530
+ this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType;
1531
+ this.destructorFunction = null;
1532
+ }
1533
+ } else {
1534
+ this["toWireType"] = genericPointerToWireType;
1535
+ }
1536
+ }
1537
+
1538
+ function replacePublicSymbol(name, value, numArguments) {
1539
+ if (!Module.hasOwnProperty(name)) {
1540
+ throwInternalError("Replacing nonexistant public symbol");
1541
+ }
1542
+ if (undefined !== Module[name].overloadTable && undefined !== numArguments) {
1543
+ Module[name].overloadTable[numArguments] = value;
1544
+ } else {
1545
+ Module[name] = value;
1546
+ Module[name].argCount = numArguments;
1547
+ }
1548
+ }
1549
+
1550
+ function dynCallLegacy(sig, ptr, args) {
1551
+ var f = Module["dynCall_" + sig];
1552
+ return args && args.length ? f.apply(null, [ ptr ].concat(args)) : f.call(null, ptr);
1553
+ }
1554
+
1555
+ function dynCall(sig, ptr, args) {
1556
+ if (sig.includes("j")) {
1557
+ return dynCallLegacy(sig, ptr, args);
1558
+ }
1559
+ return getWasmTableEntry(ptr).apply(null, args);
1560
+ }
1561
+
1562
+ function getDynCaller(sig, ptr) {
1563
+ var argCache = [];
1564
+ return function() {
1565
+ argCache.length = 0;
1566
+ Object.assign(argCache, arguments);
1567
+ return dynCall(sig, ptr, argCache);
1568
+ };
1569
+ }
1570
+
1571
+ function embind__requireFunction(signature, rawFunction) {
1572
+ signature = readLatin1String(signature);
1573
+ function makeDynCaller() {
1574
+ if (signature.includes("j")) {
1575
+ return getDynCaller(signature, rawFunction);
1576
+ }
1577
+ return getWasmTableEntry(rawFunction);
1578
+ }
1579
+ var fp = makeDynCaller();
1580
+ if (typeof fp != "function") {
1581
+ throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
1582
+ }
1583
+ return fp;
1584
+ }
1585
+
1586
+ var UnboundTypeError = undefined;
1587
+
1588
+ function getTypeName(type) {
1589
+ var ptr = ___getTypeName(type);
1590
+ var rv = readLatin1String(ptr);
1591
+ _free(ptr);
1592
+ return rv;
1593
+ }
1594
+
1595
+ function throwUnboundTypeError(message, types) {
1596
+ var unboundTypes = [];
1597
+ var seen = {};
1598
+ function visit(type) {
1599
+ if (seen[type]) {
1600
+ return;
1601
+ }
1602
+ if (registeredTypes[type]) {
1603
+ return;
1604
+ }
1605
+ if (typeDependencies[type]) {
1606
+ typeDependencies[type].forEach(visit);
1607
+ return;
1608
+ }
1609
+ unboundTypes.push(type);
1610
+ seen[type] = true;
1611
+ }
1612
+ types.forEach(visit);
1613
+ throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([ ", " ]));
1614
+ }
1615
+
1616
+ function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {
1617
+ name = readLatin1String(name);
1618
+ getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
1619
+ if (upcast) {
1620
+ upcast = embind__requireFunction(upcastSignature, upcast);
1621
+ }
1622
+ if (downcast) {
1623
+ downcast = embind__requireFunction(downcastSignature, downcast);
1624
+ }
1625
+ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
1626
+ var legalFunctionName = makeLegalFunctionName(name);
1627
+ exposePublicSymbol(legalFunctionName, function() {
1628
+ throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [ baseClassRawType ]);
1629
+ });
1630
+ whenDependentTypesAreResolved([ rawType, rawPointerType, rawConstPointerType ], baseClassRawType ? [ baseClassRawType ] : [], function(base) {
1631
+ base = base[0];
1632
+ var baseClass;
1633
+ var basePrototype;
1634
+ if (baseClassRawType) {
1635
+ baseClass = base.registeredClass;
1636
+ basePrototype = baseClass.instancePrototype;
1637
+ } else {
1638
+ basePrototype = ClassHandle.prototype;
1639
+ }
1640
+ var constructor = createNamedFunction(legalFunctionName, function() {
1641
+ if (Object.getPrototypeOf(this) !== instancePrototype) {
1642
+ throw new BindingError("Use 'new' to construct " + name);
1643
+ }
1644
+ if (undefined === registeredClass.constructor_body) {
1645
+ throw new BindingError(name + " has no accessible constructor");
1646
+ }
1647
+ var body = registeredClass.constructor_body[arguments.length];
1648
+ if (undefined === body) {
1649
+ throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!");
1650
+ }
1651
+ return body.apply(this, arguments);
1652
+ });
1653
+ var instancePrototype = Object.create(basePrototype, {
1654
+ constructor: {
1655
+ value: constructor
1656
+ }
1657
+ });
1658
+ constructor.prototype = instancePrototype;
1659
+ var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
1660
+ var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
1661
+ var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false);
1662
+ var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false);
1663
+ registeredPointers[rawType] = {
1664
+ pointerType: pointerConverter,
1665
+ constPointerType: constPointerConverter
1666
+ };
1667
+ replacePublicSymbol(legalFunctionName, constructor);
1668
+ return [ referenceConverter, pointerConverter, constPointerConverter ];
1669
+ });
1670
+ }
1671
+
1672
+ function heap32VectorToArray(count, firstElement) {
1673
+ var array = [];
1674
+ for (var i = 0; i < count; i++) {
1675
+ array.push(HEAP32[(firstElement >> 2) + i]);
1676
+ }
1677
+ return array;
1678
+ }
1679
+
1680
+ function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
1681
+ assert(argCount > 0);
1682
+ var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
1683
+ invoker = embind__requireFunction(invokerSignature, invoker);
1684
+ whenDependentTypesAreResolved([], [ rawClassType ], function(classType) {
1685
+ classType = classType[0];
1686
+ var humanName = "constructor " + classType.name;
1687
+ if (undefined === classType.registeredClass.constructor_body) {
1688
+ classType.registeredClass.constructor_body = [];
1689
+ }
1690
+ if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) {
1691
+ throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!");
1692
+ }
1693
+ classType.registeredClass.constructor_body[argCount - 1] = (() => {
1694
+ throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes);
1695
+ });
1696
+ whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
1697
+ argTypes.splice(1, 0, null);
1698
+ classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);
1699
+ return [];
1700
+ });
1701
+ return [];
1702
+ });
1703
+ }
1704
+
1705
+ function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {
1706
+ var argCount = argTypes.length;
1707
+ if (argCount < 2) {
1708
+ throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
1709
+ }
1710
+ var isClassMethodFunc = argTypes[1] !== null && classType !== null;
1711
+ var needsDestructorStack = false;
1712
+ for (var i = 1; i < argTypes.length; ++i) {
1713
+ if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) {
1714
+ needsDestructorStack = true;
1715
+ break;
1716
+ }
1717
+ }
1718
+ var returns = argTypes[0].name !== "void";
1719
+ var expectedArgCount = argCount - 2;
1720
+ var argsWired = new Array(expectedArgCount);
1721
+ var invokerFuncArgs = [];
1722
+ var destructors = [];
1723
+ return function() {
1724
+ if (arguments.length !== expectedArgCount) {
1725
+ throwBindingError("function " + humanName + " called with " + arguments.length + " arguments, expected " + expectedArgCount + " args!");
1726
+ }
1727
+ destructors.length = 0;
1728
+ var thisWired;
1729
+ invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;
1730
+ invokerFuncArgs[0] = cppTargetFunc;
1731
+ if (isClassMethodFunc) {
1732
+ thisWired = argTypes[1]["toWireType"](destructors, this);
1733
+ invokerFuncArgs[1] = thisWired;
1734
+ }
1735
+ for (var i = 0; i < expectedArgCount; ++i) {
1736
+ argsWired[i] = argTypes[i + 2]["toWireType"](destructors, arguments[i]);
1737
+ invokerFuncArgs.push(argsWired[i]);
1738
+ }
1739
+ var rv = cppInvokerFunc.apply(null, invokerFuncArgs);
1740
+ function onDone(rv) {
1741
+ if (needsDestructorStack) {
1742
+ runDestructors(destructors);
1743
+ } else {
1744
+ for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; i++) {
1745
+ var param = i === 1 ? thisWired : argsWired[i - 2];
1746
+ if (argTypes[i].destructorFunction !== null) {
1747
+ argTypes[i].destructorFunction(param);
1748
+ }
1749
+ }
1750
+ }
1751
+ if (returns) {
1752
+ return argTypes[0]["fromWireType"](rv);
1753
+ }
1754
+ }
1755
+ return onDone(rv);
1756
+ };
1757
+ }
1758
+
1759
+ function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {
1760
+ var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
1761
+ methodName = readLatin1String(methodName);
1762
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
1763
+ whenDependentTypesAreResolved([], [ rawClassType ], function(classType) {
1764
+ classType = classType[0];
1765
+ var humanName = classType.name + "." + methodName;
1766
+ if (methodName.startsWith("@@")) {
1767
+ methodName = Symbol[methodName.substring(2)];
1768
+ }
1769
+ if (isPureVirtual) {
1770
+ classType.registeredClass.pureVirtualFunctions.push(methodName);
1771
+ }
1772
+ function unboundTypesHandler() {
1773
+ throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes);
1774
+ }
1775
+ var proto = classType.registeredClass.instancePrototype;
1776
+ var method = proto[methodName];
1777
+ if (undefined === method || undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) {
1778
+ unboundTypesHandler.argCount = argCount - 2;
1779
+ unboundTypesHandler.className = classType.name;
1780
+ proto[methodName] = unboundTypesHandler;
1781
+ } else {
1782
+ ensureOverloadTable(proto, methodName, humanName);
1783
+ proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
1784
+ }
1785
+ whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
1786
+ var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);
1787
+ if (undefined === proto[methodName].overloadTable) {
1788
+ memberFunction.argCount = argCount - 2;
1789
+ proto[methodName] = memberFunction;
1790
+ } else {
1791
+ proto[methodName].overloadTable[argCount - 2] = memberFunction;
1792
+ }
1793
+ return [];
1794
+ });
1795
+ return [];
1796
+ });
1797
+ }
1798
+
1799
+ var emval_free_list = [];
1800
+
1801
+ var emval_handle_array = [ {}, {
1802
+ value: undefined
1803
+ }, {
1804
+ value: null
1805
+ }, {
1806
+ value: true
1807
+ }, {
1808
+ value: false
1809
+ } ];
1810
+
1811
+ function __emval_decref(handle) {
1812
+ if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
1813
+ emval_handle_array[handle] = undefined;
1814
+ emval_free_list.push(handle);
1815
+ }
1816
+ }
1817
+
1818
+ function count_emval_handles() {
1819
+ var count = 0;
1820
+ for (var i = 5; i < emval_handle_array.length; ++i) {
1821
+ if (emval_handle_array[i] !== undefined) {
1822
+ ++count;
1823
+ }
1824
+ }
1825
+ return count;
1826
+ }
1827
+
1828
+ function get_first_emval() {
1829
+ for (var i = 5; i < emval_handle_array.length; ++i) {
1830
+ if (emval_handle_array[i] !== undefined) {
1831
+ return emval_handle_array[i];
1832
+ }
1833
+ }
1834
+ return null;
1835
+ }
1836
+
1837
+ function init_emval() {
1838
+ Module["count_emval_handles"] = count_emval_handles;
1839
+ Module["get_first_emval"] = get_first_emval;
1840
+ }
1841
+
1842
+ var Emval = {
1843
+ toValue: handle => {
1844
+ if (!handle) {
1845
+ throwBindingError("Cannot use deleted val. handle = " + handle);
1846
+ }
1847
+ return emval_handle_array[handle].value;
1848
+ },
1849
+ toHandle: value => {
1850
+ switch (value) {
1851
+ case undefined:
1852
+ return 1;
1853
+
1854
+ case null:
1855
+ return 2;
1856
+
1857
+ case true:
1858
+ return 3;
1859
+
1860
+ case false:
1861
+ return 4;
1862
+
1863
+ default:
1864
+ {
1865
+ var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;
1866
+ emval_handle_array[handle] = {
1867
+ refcount: 1,
1868
+ value: value
1869
+ };
1870
+ return handle;
1871
+ }
1872
+ }
1873
+ }
1874
+ };
1875
+
1876
+ function __embind_register_emval(rawType, name) {
1877
+ name = readLatin1String(name);
1878
+ registerType(rawType, {
1879
+ name: name,
1880
+ "fromWireType": function(handle) {
1881
+ var rv = Emval.toValue(handle);
1882
+ __emval_decref(handle);
1883
+ return rv;
1884
+ },
1885
+ "toWireType": function(destructors, value) {
1886
+ return Emval.toHandle(value);
1887
+ },
1888
+ "argPackAdvance": 8,
1889
+ "readValueFromPointer": simpleReadValueFromPointer,
1890
+ destructorFunction: null
1891
+ });
1892
+ }
1893
+
1894
+ function _embind_repr(v) {
1895
+ if (v === null) {
1896
+ return "null";
1897
+ }
1898
+ var t = typeof v;
1899
+ if (t === "object" || t === "array" || t === "function") {
1900
+ return v.toString();
1901
+ } else {
1902
+ return "" + v;
1903
+ }
1904
+ }
1905
+
1906
+ function floatReadValueFromPointer(name, shift) {
1907
+ switch (shift) {
1908
+ case 2:
1909
+ return function(pointer) {
1910
+ return this["fromWireType"](HEAPF32[pointer >> 2]);
1911
+ };
1912
+
1913
+ case 3:
1914
+ return function(pointer) {
1915
+ return this["fromWireType"](HEAPF64[pointer >> 3]);
1916
+ };
1917
+
1918
+ default:
1919
+ throw new TypeError("Unknown float type: " + name);
1920
+ }
1921
+ }
1922
+
1923
+ function __embind_register_float(rawType, name, size) {
1924
+ var shift = getShiftFromSize(size);
1925
+ name = readLatin1String(name);
1926
+ registerType(rawType, {
1927
+ name: name,
1928
+ "fromWireType": function(value) {
1929
+ return value;
1930
+ },
1931
+ "toWireType": function(destructors, value) {
1932
+ return value;
1933
+ },
1934
+ "argPackAdvance": 8,
1935
+ "readValueFromPointer": floatReadValueFromPointer(name, shift),
1936
+ destructorFunction: null
1937
+ });
1938
+ }
1939
+
1940
+ function integerReadValueFromPointer(name, shift, signed) {
1941
+ switch (shift) {
1942
+ case 0:
1943
+ return signed ? function readS8FromPointer(pointer) {
1944
+ return HEAP8[pointer];
1945
+ } : function readU8FromPointer(pointer) {
1946
+ return HEAPU8[pointer];
1947
+ };
1948
+
1949
+ case 1:
1950
+ return signed ? function readS16FromPointer(pointer) {
1951
+ return HEAP16[pointer >> 1];
1952
+ } : function readU16FromPointer(pointer) {
1953
+ return HEAPU16[pointer >> 1];
1954
+ };
1955
+
1956
+ case 2:
1957
+ return signed ? function readS32FromPointer(pointer) {
1958
+ return HEAP32[pointer >> 2];
1959
+ } : function readU32FromPointer(pointer) {
1960
+ return HEAPU32[pointer >> 2];
1961
+ };
1962
+
1963
+ default:
1964
+ throw new TypeError("Unknown integer type: " + name);
1965
+ }
1966
+ }
1967
+
1968
+ function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
1969
+ name = readLatin1String(name);
1970
+ if (maxRange === -1) {
1971
+ maxRange = 4294967295;
1972
+ }
1973
+ var shift = getShiftFromSize(size);
1974
+ var fromWireType = value => value;
1975
+ if (minRange === 0) {
1976
+ var bitshift = 32 - 8 * size;
1977
+ fromWireType = (value => value << bitshift >>> bitshift);
1978
+ }
1979
+ var isUnsignedType = name.includes("unsigned");
1980
+ var checkAssertions = (value, toTypeName) => {};
1981
+ var toWireType;
1982
+ if (isUnsignedType) {
1983
+ toWireType = function(destructors, value) {
1984
+ checkAssertions(value, this.name);
1985
+ return value >>> 0;
1986
+ };
1987
+ } else {
1988
+ toWireType = function(destructors, value) {
1989
+ checkAssertions(value, this.name);
1990
+ return value;
1991
+ };
1992
+ }
1993
+ registerType(primitiveType, {
1994
+ name: name,
1995
+ "fromWireType": fromWireType,
1996
+ "toWireType": toWireType,
1997
+ "argPackAdvance": 8,
1998
+ "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0),
1999
+ destructorFunction: null
2000
+ });
2001
+ }
2002
+
2003
+ function __embind_register_memory_view(rawType, dataTypeIndex, name) {
2004
+ var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array ];
2005
+ var TA = typeMapping[dataTypeIndex];
2006
+ function decodeMemoryView(handle) {
2007
+ handle = handle >> 2;
2008
+ var heap = HEAPU32;
2009
+ var size = heap[handle];
2010
+ var data = heap[handle + 1];
2011
+ return new TA(buffer, data, size);
2012
+ }
2013
+ name = readLatin1String(name);
2014
+ registerType(rawType, {
2015
+ name: name,
2016
+ "fromWireType": decodeMemoryView,
2017
+ "argPackAdvance": 8,
2018
+ "readValueFromPointer": decodeMemoryView
2019
+ }, {
2020
+ ignoreDuplicateRegistrations: true
2021
+ });
2022
+ }
2023
+
2024
+ function __embind_register_smart_ptr(rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) {
2025
+ name = readLatin1String(name);
2026
+ rawGetPointee = embind__requireFunction(getPointeeSignature, rawGetPointee);
2027
+ rawConstructor = embind__requireFunction(constructorSignature, rawConstructor);
2028
+ rawShare = embind__requireFunction(shareSignature, rawShare);
2029
+ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
2030
+ whenDependentTypesAreResolved([ rawType ], [ rawPointeeType ], function(pointeeType) {
2031
+ pointeeType = pointeeType[0];
2032
+ var registeredPointer = new RegisteredPointer(name, pointeeType.registeredClass, false, false, true, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor);
2033
+ return [ registeredPointer ];
2034
+ });
2035
+ }
2036
+
2037
+ function __embind_register_std_string(rawType, name) {
2038
+ name = readLatin1String(name);
2039
+ var stdStringIsUTF8 = name === "std::string";
2040
+ registerType(rawType, {
2041
+ name: name,
2042
+ "fromWireType": function(value) {
2043
+ var length = HEAPU32[value >> 2];
2044
+ var str;
2045
+ if (stdStringIsUTF8) {
2046
+ var decodeStartPtr = value + 4;
2047
+ for (var i = 0; i <= length; ++i) {
2048
+ var currentBytePtr = value + 4 + i;
2049
+ if (i == length || HEAPU8[currentBytePtr] == 0) {
2050
+ var maxRead = currentBytePtr - decodeStartPtr;
2051
+ var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
2052
+ if (str === undefined) {
2053
+ str = stringSegment;
2054
+ } else {
2055
+ str += String.fromCharCode(0);
2056
+ str += stringSegment;
2057
+ }
2058
+ decodeStartPtr = currentBytePtr + 1;
2059
+ }
2060
+ }
2061
+ } else {
2062
+ var a = new Array(length);
2063
+ for (var i = 0; i < length; ++i) {
2064
+ a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);
2065
+ }
2066
+ str = a.join("");
2067
+ }
2068
+ _free(value);
2069
+ return str;
2070
+ },
2071
+ "toWireType": function(destructors, value) {
2072
+ if (value instanceof ArrayBuffer) {
2073
+ value = new Uint8Array(value);
2074
+ }
2075
+ var getLength;
2076
+ var valueIsOfTypeString = typeof value == "string";
2077
+ if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
2078
+ throwBindingError("Cannot pass non-string to std::string");
2079
+ }
2080
+ if (stdStringIsUTF8 && valueIsOfTypeString) {
2081
+ getLength = (() => lengthBytesUTF8(value));
2082
+ } else {
2083
+ getLength = (() => value.length);
2084
+ }
2085
+ var length = getLength();
2086
+ var ptr = _malloc(4 + length + 1);
2087
+ HEAPU32[ptr >> 2] = length;
2088
+ if (stdStringIsUTF8 && valueIsOfTypeString) {
2089
+ stringToUTF8(value, ptr + 4, length + 1);
2090
+ } else {
2091
+ if (valueIsOfTypeString) {
2092
+ for (var i = 0; i < length; ++i) {
2093
+ var charCode = value.charCodeAt(i);
2094
+ if (charCode > 255) {
2095
+ _free(ptr);
2096
+ throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
2097
+ }
2098
+ HEAPU8[ptr + 4 + i] = charCode;
2099
+ }
2100
+ } else {
2101
+ for (var i = 0; i < length; ++i) {
2102
+ HEAPU8[ptr + 4 + i] = value[i];
2103
+ }
2104
+ }
2105
+ }
2106
+ if (destructors !== null) {
2107
+ destructors.push(_free, ptr);
2108
+ }
2109
+ return ptr;
2110
+ },
2111
+ "argPackAdvance": 8,
2112
+ "readValueFromPointer": simpleReadValueFromPointer,
2113
+ destructorFunction: function(ptr) {
2114
+ _free(ptr);
2115
+ }
2116
+ });
2117
+ }
2118
+
2119
+ function __embind_register_std_wstring(rawType, charSize, name) {
2120
+ name = readLatin1String(name);
2121
+ var decodeString, encodeString, getHeap, lengthBytesUTF, shift;
2122
+ if (charSize === 2) {
2123
+ decodeString = UTF16ToString;
2124
+ encodeString = stringToUTF16;
2125
+ lengthBytesUTF = lengthBytesUTF16;
2126
+ getHeap = (() => HEAPU16);
2127
+ shift = 1;
2128
+ } else if (charSize === 4) {
2129
+ decodeString = UTF32ToString;
2130
+ encodeString = stringToUTF32;
2131
+ lengthBytesUTF = lengthBytesUTF32;
2132
+ getHeap = (() => HEAPU32);
2133
+ shift = 2;
2134
+ }
2135
+ registerType(rawType, {
2136
+ name: name,
2137
+ "fromWireType": function(value) {
2138
+ var length = HEAPU32[value >> 2];
2139
+ var HEAP = getHeap();
2140
+ var str;
2141
+ var decodeStartPtr = value + 4;
2142
+ for (var i = 0; i <= length; ++i) {
2143
+ var currentBytePtr = value + 4 + i * charSize;
2144
+ if (i == length || HEAP[currentBytePtr >> shift] == 0) {
2145
+ var maxReadBytes = currentBytePtr - decodeStartPtr;
2146
+ var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
2147
+ if (str === undefined) {
2148
+ str = stringSegment;
2149
+ } else {
2150
+ str += String.fromCharCode(0);
2151
+ str += stringSegment;
2152
+ }
2153
+ decodeStartPtr = currentBytePtr + charSize;
2154
+ }
2155
+ }
2156
+ _free(value);
2157
+ return str;
2158
+ },
2159
+ "toWireType": function(destructors, value) {
2160
+ if (!(typeof value == "string")) {
2161
+ throwBindingError("Cannot pass non-string to C++ string type " + name);
2162
+ }
2163
+ var length = lengthBytesUTF(value);
2164
+ var ptr = _malloc(4 + length + charSize);
2165
+ HEAPU32[ptr >> 2] = length >> shift;
2166
+ encodeString(value, ptr + 4, length + charSize);
2167
+ if (destructors !== null) {
2168
+ destructors.push(_free, ptr);
2169
+ }
2170
+ return ptr;
2171
+ },
2172
+ "argPackAdvance": 8,
2173
+ "readValueFromPointer": simpleReadValueFromPointer,
2174
+ destructorFunction: function(ptr) {
2175
+ _free(ptr);
2176
+ }
2177
+ });
2178
+ }
2179
+
2180
+ function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
2181
+ structRegistrations[rawType] = {
2182
+ name: readLatin1String(name),
2183
+ rawConstructor: embind__requireFunction(constructorSignature, rawConstructor),
2184
+ rawDestructor: embind__requireFunction(destructorSignature, rawDestructor),
2185
+ fields: []
2186
+ };
2187
+ }
2188
+
2189
+ function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
2190
+ structRegistrations[structType].fields.push({
2191
+ fieldName: readLatin1String(fieldName),
2192
+ getterReturnType: getterReturnType,
2193
+ getter: embind__requireFunction(getterSignature, getter),
2194
+ getterContext: getterContext,
2195
+ setterArgumentType: setterArgumentType,
2196
+ setter: embind__requireFunction(setterSignature, setter),
2197
+ setterContext: setterContext
2198
+ });
2199
+ }
2200
+
2201
+ function __embind_register_void(rawType, name) {
2202
+ name = readLatin1String(name);
2203
+ registerType(rawType, {
2204
+ isVoid: true,
2205
+ name: name,
2206
+ "argPackAdvance": 0,
2207
+ "fromWireType": function() {
2208
+ return undefined;
2209
+ },
2210
+ "toWireType": function(destructors, o) {
2211
+ return undefined;
2212
+ }
2213
+ });
2214
+ }
2215
+
2216
+ function __emscripten_date_now() {
2217
+ return Date.now();
2218
+ }
2219
+
2220
+ var nowIsMonotonic = true;
2221
+
2222
+ function __emscripten_get_now_is_monotonic() {
2223
+ return nowIsMonotonic;
2224
+ }
2225
+
2226
+ function requireRegisteredType(rawType, humanName) {
2227
+ var impl = registeredTypes[rawType];
2228
+ if (undefined === impl) {
2229
+ throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
2230
+ }
2231
+ return impl;
2232
+ }
2233
+
2234
+ function __emval_lookupTypes(argCount, argTypes) {
2235
+ var a = new Array(argCount);
2236
+ for (var i = 0; i < argCount; ++i) {
2237
+ a[i] = requireRegisteredType(HEAP32[(argTypes >> 2) + i], "parameter " + i);
2238
+ }
2239
+ return a;
2240
+ }
2241
+
2242
+ function __emval_call(handle, argCount, argTypes, argv) {
2243
+ handle = Emval.toValue(handle);
2244
+ var types = __emval_lookupTypes(argCount, argTypes);
2245
+ var args = new Array(argCount);
2246
+ for (var i = 0; i < argCount; ++i) {
2247
+ var type = types[i];
2248
+ args[i] = type["readValueFromPointer"](argv);
2249
+ argv += type["argPackAdvance"];
2250
+ }
2251
+ var rv = handle.apply(undefined, args);
2252
+ return Emval.toHandle(rv);
2253
+ }
2254
+
2255
+ function __emval_incref(handle) {
2256
+ if (handle > 4) {
2257
+ emval_handle_array[handle].refcount += 1;
2258
+ }
2259
+ }
2260
+
2261
+ function __emval_take_value(type, argv) {
2262
+ type = requireRegisteredType(type, "_emval_take_value");
2263
+ var v = type["readValueFromPointer"](argv);
2264
+ return Emval.toHandle(v);
2265
+ }
2266
+
2267
+ function __localtime_js(time, tmPtr) {
2268
+ var date = new Date(HEAP32[time >> 2] * 1e3);
2269
+ HEAP32[tmPtr >> 2] = date.getSeconds();
2270
+ HEAP32[tmPtr + 4 >> 2] = date.getMinutes();
2271
+ HEAP32[tmPtr + 8 >> 2] = date.getHours();
2272
+ HEAP32[tmPtr + 12 >> 2] = date.getDate();
2273
+ HEAP32[tmPtr + 16 >> 2] = date.getMonth();
2274
+ HEAP32[tmPtr + 20 >> 2] = date.getFullYear() - 1900;
2275
+ HEAP32[tmPtr + 24 >> 2] = date.getDay();
2276
+ var start = new Date(date.getFullYear(), 0, 1);
2277
+ var yday = (date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24) | 0;
2278
+ HEAP32[tmPtr + 28 >> 2] = yday;
2279
+ HEAP32[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60);
2280
+ var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();
2281
+ var winterOffset = start.getTimezoneOffset();
2282
+ var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;
2283
+ HEAP32[tmPtr + 32 >> 2] = dst;
2284
+ }
2285
+
2286
+ function __mmap_js(addr, len, prot, flags, fd, off, allocated, builtin) {
2287
+ return -52;
2288
+ }
2289
+
2290
+ function __munmap_js(addr, len, prot, flags, fd, offset) {}
2291
+
2292
+ function _tzset_impl(timezone, daylight, tzname) {
2293
+ var currentYear = new Date().getFullYear();
2294
+ var winter = new Date(currentYear, 0, 1);
2295
+ var summer = new Date(currentYear, 6, 1);
2296
+ var winterOffset = winter.getTimezoneOffset();
2297
+ var summerOffset = summer.getTimezoneOffset();
2298
+ var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
2299
+ HEAP32[timezone >> 2] = stdTimezoneOffset * 60;
2300
+ HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);
2301
+ function extractZone(date) {
2302
+ var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
2303
+ return match ? match[1] : "GMT";
2304
+ }
2305
+ var winterName = extractZone(winter);
2306
+ var summerName = extractZone(summer);
2307
+ var winterNamePtr = allocateUTF8(winterName);
2308
+ var summerNamePtr = allocateUTF8(summerName);
2309
+ if (summerOffset < winterOffset) {
2310
+ HEAP32[tzname >> 2] = winterNamePtr;
2311
+ HEAP32[tzname + 4 >> 2] = summerNamePtr;
2312
+ } else {
2313
+ HEAP32[tzname >> 2] = summerNamePtr;
2314
+ HEAP32[tzname + 4 >> 2] = winterNamePtr;
2315
+ }
2316
+ }
2317
+
2318
+ function __tzset_js(timezone, daylight, tzname) {
2319
+ if (__tzset_js.called) return;
2320
+ __tzset_js.called = true;
2321
+ _tzset_impl(timezone, daylight, tzname);
2322
+ }
2323
+
2324
+ function _abort() {
2325
+ abort("");
2326
+ }
2327
+
2328
+ function _emscripten_get_heap_max() {
2329
+ return 2147483648;
2330
+ }
2331
+
2332
+ var _emscripten_get_now;
2333
+
2334
+ _emscripten_get_now = (() => performance.now());
2335
+
2336
+ function _emscripten_memcpy_big(dest, src, num) {
2337
+ HEAPU8.copyWithin(dest, src, src + num);
2338
+ }
2339
+
2340
+ function emscripten_realloc_buffer(size) {
2341
+ try {
2342
+ wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
2343
+ updateGlobalBufferAndViews(wasmMemory.buffer);
2344
+ return 1;
2345
+ } catch (e) {}
2346
+ }
2347
+
2348
+ function _emscripten_resize_heap(requestedSize) {
2349
+ var oldSize = HEAPU8.length;
2350
+ requestedSize = requestedSize >>> 0;
2351
+ var maxHeapSize = _emscripten_get_heap_max();
2352
+ if (requestedSize > maxHeapSize) {
2353
+ return false;
2354
+ }
2355
+ let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
2356
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
2357
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
2358
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
2359
+ var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
2360
+ var replacement = emscripten_realloc_buffer(newSize);
2361
+ if (replacement) {
2362
+ return true;
2363
+ }
2364
+ }
2365
+ return false;
2366
+ }
2367
+
2368
+ var ENV = {};
2369
+
2370
+ function getExecutableName() {
2371
+ return thisProgram || "./this.program";
2372
+ }
2373
+
2374
+ function getEnvStrings() {
2375
+ if (!getEnvStrings.strings) {
2376
+ var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8";
2377
+ var env = {
2378
+ "USER": "web_user",
2379
+ "LOGNAME": "web_user",
2380
+ "PATH": "/",
2381
+ "PWD": "/",
2382
+ "HOME": "/home/web_user",
2383
+ "LANG": lang,
2384
+ "_": getExecutableName()
2385
+ };
2386
+ for (var x in ENV) {
2387
+ if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x];
2388
+ }
2389
+ var strings = [];
2390
+ for (var x in env) {
2391
+ strings.push(x + "=" + env[x]);
2392
+ }
2393
+ getEnvStrings.strings = strings;
2394
+ }
2395
+ return getEnvStrings.strings;
2396
+ }
2397
+
2398
+ function _environ_get(__environ, environ_buf) {
2399
+ var bufSize = 0;
2400
+ getEnvStrings().forEach(function(string, i) {
2401
+ var ptr = environ_buf + bufSize;
2402
+ HEAP32[__environ + i * 4 >> 2] = ptr;
2403
+ writeAsciiToMemory(string, ptr);
2404
+ bufSize += string.length + 1;
2405
+ });
2406
+ return 0;
2407
+ }
2408
+
2409
+ function _environ_sizes_get(penviron_count, penviron_buf_size) {
2410
+ var strings = getEnvStrings();
2411
+ HEAP32[penviron_count >> 2] = strings.length;
2412
+ var bufSize = 0;
2413
+ strings.forEach(function(string) {
2414
+ bufSize += string.length + 1;
2415
+ });
2416
+ HEAP32[penviron_buf_size >> 2] = bufSize;
2417
+ return 0;
2418
+ }
2419
+
2420
+ function _exit(status) {
2421
+ exit(status);
2422
+ }
2423
+
2424
+ function _fd_close(fd) {
2425
+ return 0;
2426
+ }
2427
+
2428
+ function _fd_read(fd, iov, iovcnt, pnum) {
2429
+ var stream = SYSCALLS.getStreamFromFD(fd);
2430
+ var num = SYSCALLS.doReadv(stream, iov, iovcnt);
2431
+ HEAP32[pnum >> 2] = num;
2432
+ return 0;
2433
+ }
2434
+
2435
+ function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {}
2436
+
2437
+ function _fd_write(fd, iov, iovcnt, pnum) {
2438
+ var num = 0;
2439
+ for (var i = 0; i < iovcnt; i++) {
2440
+ var ptr = HEAP32[iov >> 2];
2441
+ var len = HEAP32[iov + 4 >> 2];
2442
+ iov += 8;
2443
+ for (var j = 0; j < len; j++) {
2444
+ SYSCALLS.printChar(fd, HEAPU8[ptr + j]);
2445
+ }
2446
+ num += len;
2447
+ }
2448
+ HEAP32[pnum >> 2] = num;
2449
+ return 0;
2450
+ }
2451
+
2452
+ function getRandomDevice() {
2453
+ if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") {
2454
+ var randomBuffer = new Uint8Array(1);
2455
+ return function() {
2456
+ crypto.getRandomValues(randomBuffer);
2457
+ return randomBuffer[0];
2458
+ };
2459
+ } else return function() {
2460
+ abort("randomDevice");
2461
+ };
2462
+ }
2463
+
2464
+ function _getentropy(buffer, size) {
2465
+ if (!_getentropy.randomDevice) {
2466
+ _getentropy.randomDevice = getRandomDevice();
2467
+ }
2468
+ for (var i = 0; i < size; i++) {
2469
+ HEAP8[buffer + i >> 0] = _getentropy.randomDevice();
2470
+ }
2471
+ return 0;
2472
+ }
2473
+
2474
+ function _pclose() {
2475
+ err("missing function: pclose");
2476
+ abort(-1);
2477
+ }
2478
+
2479
+ function _setTempRet0(val) {
2480
+ setTempRet0(val);
2481
+ }
2482
+
2483
+ function __isLeapYear(year) {
2484
+ return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
2485
+ }
2486
+
2487
+ function __arraySum(array, index) {
2488
+ var sum = 0;
2489
+ for (var i = 0; i <= index; sum += array[i++]) {}
2490
+ return sum;
2491
+ }
2492
+
2493
+ var __MONTH_DAYS_LEAP = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
2494
+
2495
+ var __MONTH_DAYS_REGULAR = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
2496
+
2497
+ function __addDays(date, days) {
2498
+ var newDate = new Date(date.getTime());
2499
+ while (days > 0) {
2500
+ var leap = __isLeapYear(newDate.getFullYear());
2501
+ var currentMonth = newDate.getMonth();
2502
+ var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
2503
+ if (days > daysInCurrentMonth - newDate.getDate()) {
2504
+ days -= daysInCurrentMonth - newDate.getDate() + 1;
2505
+ newDate.setDate(1);
2506
+ if (currentMonth < 11) {
2507
+ newDate.setMonth(currentMonth + 1);
2508
+ } else {
2509
+ newDate.setMonth(0);
2510
+ newDate.setFullYear(newDate.getFullYear() + 1);
2511
+ }
2512
+ } else {
2513
+ newDate.setDate(newDate.getDate() + days);
2514
+ return newDate;
2515
+ }
2516
+ }
2517
+ return newDate;
2518
+ }
2519
+
2520
+ function _strftime(s, maxsize, format, tm) {
2521
+ var tm_zone = HEAP32[tm + 40 >> 2];
2522
+ var date = {
2523
+ tm_sec: HEAP32[tm >> 2],
2524
+ tm_min: HEAP32[tm + 4 >> 2],
2525
+ tm_hour: HEAP32[tm + 8 >> 2],
2526
+ tm_mday: HEAP32[tm + 12 >> 2],
2527
+ tm_mon: HEAP32[tm + 16 >> 2],
2528
+ tm_year: HEAP32[tm + 20 >> 2],
2529
+ tm_wday: HEAP32[tm + 24 >> 2],
2530
+ tm_yday: HEAP32[tm + 28 >> 2],
2531
+ tm_isdst: HEAP32[tm + 32 >> 2],
2532
+ tm_gmtoff: HEAP32[tm + 36 >> 2],
2533
+ tm_zone: tm_zone ? UTF8ToString(tm_zone) : ""
2534
+ };
2535
+ var pattern = UTF8ToString(format);
2536
+ var EXPANSION_RULES_1 = {
2537
+ "%c": "%a %b %d %H:%M:%S %Y",
2538
+ "%D": "%m/%d/%y",
2539
+ "%F": "%Y-%m-%d",
2540
+ "%h": "%b",
2541
+ "%r": "%I:%M:%S %p",
2542
+ "%R": "%H:%M",
2543
+ "%T": "%H:%M:%S",
2544
+ "%x": "%m/%d/%y",
2545
+ "%X": "%H:%M:%S",
2546
+ "%Ec": "%c",
2547
+ "%EC": "%C",
2548
+ "%Ex": "%m/%d/%y",
2549
+ "%EX": "%H:%M:%S",
2550
+ "%Ey": "%y",
2551
+ "%EY": "%Y",
2552
+ "%Od": "%d",
2553
+ "%Oe": "%e",
2554
+ "%OH": "%H",
2555
+ "%OI": "%I",
2556
+ "%Om": "%m",
2557
+ "%OM": "%M",
2558
+ "%OS": "%S",
2559
+ "%Ou": "%u",
2560
+ "%OU": "%U",
2561
+ "%OV": "%V",
2562
+ "%Ow": "%w",
2563
+ "%OW": "%W",
2564
+ "%Oy": "%y"
2565
+ };
2566
+ for (var rule in EXPANSION_RULES_1) {
2567
+ pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]);
2568
+ }
2569
+ var WEEKDAYS = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
2570
+ var MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
2571
+ function leadingSomething(value, digits, character) {
2572
+ var str = typeof value == "number" ? value.toString() : value || "";
2573
+ while (str.length < digits) {
2574
+ str = character[0] + str;
2575
+ }
2576
+ return str;
2577
+ }
2578
+ function leadingNulls(value, digits) {
2579
+ return leadingSomething(value, digits, "0");
2580
+ }
2581
+ function compareByDay(date1, date2) {
2582
+ function sgn(value) {
2583
+ return value < 0 ? -1 : value > 0 ? 1 : 0;
2584
+ }
2585
+ var compare;
2586
+ if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {
2587
+ if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {
2588
+ compare = sgn(date1.getDate() - date2.getDate());
2589
+ }
2590
+ }
2591
+ return compare;
2592
+ }
2593
+ function getFirstWeekStartDate(janFourth) {
2594
+ switch (janFourth.getDay()) {
2595
+ case 0:
2596
+ return new Date(janFourth.getFullYear() - 1, 11, 29);
2597
+
2598
+ case 1:
2599
+ return janFourth;
2600
+
2601
+ case 2:
2602
+ return new Date(janFourth.getFullYear(), 0, 3);
2603
+
2604
+ case 3:
2605
+ return new Date(janFourth.getFullYear(), 0, 2);
2606
+
2607
+ case 4:
2608
+ return new Date(janFourth.getFullYear(), 0, 1);
2609
+
2610
+ case 5:
2611
+ return new Date(janFourth.getFullYear() - 1, 11, 31);
2612
+
2613
+ case 6:
2614
+ return new Date(janFourth.getFullYear() - 1, 11, 30);
2615
+ }
2616
+ }
2617
+ function getWeekBasedYear(date) {
2618
+ var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);
2619
+ var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
2620
+ var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);
2621
+ var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
2622
+ var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
2623
+ if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
2624
+ if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
2625
+ return thisDate.getFullYear() + 1;
2626
+ } else {
2627
+ return thisDate.getFullYear();
2628
+ }
2629
+ } else {
2630
+ return thisDate.getFullYear() - 1;
2631
+ }
2632
+ }
2633
+ var EXPANSION_RULES_2 = {
2634
+ "%a": function(date) {
2635
+ return WEEKDAYS[date.tm_wday].substring(0, 3);
2636
+ },
2637
+ "%A": function(date) {
2638
+ return WEEKDAYS[date.tm_wday];
2639
+ },
2640
+ "%b": function(date) {
2641
+ return MONTHS[date.tm_mon].substring(0, 3);
2642
+ },
2643
+ "%B": function(date) {
2644
+ return MONTHS[date.tm_mon];
2645
+ },
2646
+ "%C": function(date) {
2647
+ var year = date.tm_year + 1900;
2648
+ return leadingNulls(year / 100 | 0, 2);
2649
+ },
2650
+ "%d": function(date) {
2651
+ return leadingNulls(date.tm_mday, 2);
2652
+ },
2653
+ "%e": function(date) {
2654
+ return leadingSomething(date.tm_mday, 2, " ");
2655
+ },
2656
+ "%g": function(date) {
2657
+ return getWeekBasedYear(date).toString().substring(2);
2658
+ },
2659
+ "%G": function(date) {
2660
+ return getWeekBasedYear(date);
2661
+ },
2662
+ "%H": function(date) {
2663
+ return leadingNulls(date.tm_hour, 2);
2664
+ },
2665
+ "%I": function(date) {
2666
+ var twelveHour = date.tm_hour;
2667
+ if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12;
2668
+ return leadingNulls(twelveHour, 2);
2669
+ },
2670
+ "%j": function(date) {
2671
+ return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3);
2672
+ },
2673
+ "%m": function(date) {
2674
+ return leadingNulls(date.tm_mon + 1, 2);
2675
+ },
2676
+ "%M": function(date) {
2677
+ return leadingNulls(date.tm_min, 2);
2678
+ },
2679
+ "%n": function() {
2680
+ return "\n";
2681
+ },
2682
+ "%p": function(date) {
2683
+ if (date.tm_hour >= 0 && date.tm_hour < 12) {
2684
+ return "AM";
2685
+ } else {
2686
+ return "PM";
2687
+ }
2688
+ },
2689
+ "%S": function(date) {
2690
+ return leadingNulls(date.tm_sec, 2);
2691
+ },
2692
+ "%t": function() {
2693
+ return "\t";
2694
+ },
2695
+ "%u": function(date) {
2696
+ return date.tm_wday || 7;
2697
+ },
2698
+ "%U": function(date) {
2699
+ var days = date.tm_yday + 7 - date.tm_wday;
2700
+ return leadingNulls(Math.floor(days / 7), 2);
2701
+ },
2702
+ "%V": function(date) {
2703
+ var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7) / 7);
2704
+ if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) {
2705
+ val++;
2706
+ }
2707
+ if (!val) {
2708
+ val = 52;
2709
+ var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7;
2710
+ if (dec31 == 4 || dec31 == 5 && __isLeapYear(date.tm_year % 400 - 1)) {
2711
+ val++;
2712
+ }
2713
+ } else if (val == 53) {
2714
+ var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7;
2715
+ if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date.tm_year))) val = 1;
2716
+ }
2717
+ return leadingNulls(val, 2);
2718
+ },
2719
+ "%w": function(date) {
2720
+ return date.tm_wday;
2721
+ },
2722
+ "%W": function(date) {
2723
+ var days = date.tm_yday + 7 - (date.tm_wday + 6) % 7;
2724
+ return leadingNulls(Math.floor(days / 7), 2);
2725
+ },
2726
+ "%y": function(date) {
2727
+ return (date.tm_year + 1900).toString().substring(2);
2728
+ },
2729
+ "%Y": function(date) {
2730
+ return date.tm_year + 1900;
2731
+ },
2732
+ "%z": function(date) {
2733
+ var off = date.tm_gmtoff;
2734
+ var ahead = off >= 0;
2735
+ off = Math.abs(off) / 60;
2736
+ off = off / 60 * 100 + off % 60;
2737
+ return (ahead ? "+" : "-") + String("0000" + off).slice(-4);
2738
+ },
2739
+ "%Z": function(date) {
2740
+ return date.tm_zone;
2741
+ },
2742
+ "%%": function() {
2743
+ return "%";
2744
+ }
2745
+ };
2746
+ pattern = pattern.replace(/%%/g, "\0\0");
2747
+ for (var rule in EXPANSION_RULES_2) {
2748
+ if (pattern.includes(rule)) {
2749
+ pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date));
2750
+ }
2751
+ }
2752
+ pattern = pattern.replace(/\0\0/g, "%");
2753
+ var bytes = intArrayFromString(pattern, false);
2754
+ if (bytes.length > maxsize) {
2755
+ return 0;
2756
+ }
2757
+ writeArrayToMemory(bytes, s);
2758
+ return bytes.length - 1;
2759
+ }
2760
+
2761
+ function _strftime_l(s, maxsize, format, tm) {
2762
+ return _strftime(s, maxsize, format, tm);
2763
+ }
2764
+
2765
+ InternalError = Module["InternalError"] = extendError(Error, "InternalError");
2766
+
2767
+ embind_init_charCodes();
2768
+
2769
+ BindingError = Module["BindingError"] = extendError(Error, "BindingError");
2770
+
2771
+ init_ClassHandle();
2772
+
2773
+ init_embind();
2774
+
2775
+ init_RegisteredPointer();
2776
+
2777
+ UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
2778
+
2779
+ init_emval();
2780
+
2781
+ function intArrayFromString(stringy, dontAddNull, length) {
2782
+ var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
2783
+ var u8array = new Array(len);
2784
+ var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
2785
+ if (dontAddNull) u8array.length = numBytesWritten;
2786
+ return u8array;
2787
+ }
2788
+
2789
+ var asmLibraryArg = {
2790
+ "__assert_fail": ___assert_fail,
2791
+ "__cxa_allocate_exception": ___cxa_allocate_exception,
2792
+ "__cxa_rethrow": ___cxa_rethrow,
2793
+ "__cxa_throw": ___cxa_throw,
2794
+ "__syscall_faccessat": ___syscall_faccessat,
2795
+ "__syscall_fcntl64": ___syscall_fcntl64,
2796
+ "__syscall_fstat64": ___syscall_fstat64,
2797
+ "__syscall_getcwd": ___syscall_getcwd,
2798
+ "__syscall_ioctl": ___syscall_ioctl,
2799
+ "__syscall_lstat64": ___syscall_lstat64,
2800
+ "__syscall_newfstatat": ___syscall_newfstatat,
2801
+ "__syscall_openat": ___syscall_openat,
2802
+ "__syscall_renameat": ___syscall_renameat,
2803
+ "__syscall_rmdir": ___syscall_rmdir,
2804
+ "__syscall_stat64": ___syscall_stat64,
2805
+ "__syscall_unlinkat": ___syscall_unlinkat,
2806
+ "_embind_finalize_value_object": __embind_finalize_value_object,
2807
+ "_embind_register_bigint": __embind_register_bigint,
2808
+ "_embind_register_bool": __embind_register_bool,
2809
+ "_embind_register_class": __embind_register_class,
2810
+ "_embind_register_class_constructor": __embind_register_class_constructor,
2811
+ "_embind_register_class_function": __embind_register_class_function,
2812
+ "_embind_register_emval": __embind_register_emval,
2813
+ "_embind_register_float": __embind_register_float,
2814
+ "_embind_register_integer": __embind_register_integer,
2815
+ "_embind_register_memory_view": __embind_register_memory_view,
2816
+ "_embind_register_smart_ptr": __embind_register_smart_ptr,
2817
+ "_embind_register_std_string": __embind_register_std_string,
2818
+ "_embind_register_std_wstring": __embind_register_std_wstring,
2819
+ "_embind_register_value_object": __embind_register_value_object,
2820
+ "_embind_register_value_object_field": __embind_register_value_object_field,
2821
+ "_embind_register_void": __embind_register_void,
2822
+ "_emscripten_date_now": __emscripten_date_now,
2823
+ "_emscripten_get_now_is_monotonic": __emscripten_get_now_is_monotonic,
2824
+ "_emval_call": __emval_call,
2825
+ "_emval_decref": __emval_decref,
2826
+ "_emval_incref": __emval_incref,
2827
+ "_emval_take_value": __emval_take_value,
2828
+ "_localtime_js": __localtime_js,
2829
+ "_mmap_js": __mmap_js,
2830
+ "_munmap_js": __munmap_js,
2831
+ "_tzset_js": __tzset_js,
2832
+ "abort": _abort,
2833
+ "emscripten_get_heap_max": _emscripten_get_heap_max,
2834
+ "emscripten_get_now": _emscripten_get_now,
2835
+ "emscripten_memcpy_big": _emscripten_memcpy_big,
2836
+ "emscripten_resize_heap": _emscripten_resize_heap,
2837
+ "environ_get": _environ_get,
2838
+ "environ_sizes_get": _environ_sizes_get,
2839
+ "exit": _exit,
2840
+ "fd_close": _fd_close,
2841
+ "fd_read": _fd_read,
2842
+ "fd_seek": _fd_seek,
2843
+ "fd_write": _fd_write,
2844
+ "getentropy": _getentropy,
2845
+ "memory": wasmMemory,
2846
+ "pclose": _pclose,
2847
+ "setTempRet0": _setTempRet0,
2848
+ "strftime_l": _strftime_l
2849
+ };
2850
+
2851
+ var asm = createWasm();
2852
+
2853
+ var calledRun;
2854
+
2855
+ function ExitStatus(status) {
2856
+ this.name = "ExitStatus";
2857
+ this.message = "Program terminated with exit(" + status + ")";
2858
+ this.status = status;
2859
+ }
2860
+
2861
+ dependenciesFulfilled = function runCaller() {
2862
+ if (!calledRun) run();
2863
+ if (!calledRun) dependenciesFulfilled = runCaller;
2864
+ };
2865
+
2866
+ function run(args) {
2867
+ args = args || arguments_;
2868
+ if (runDependencies > 0) {
2869
+ return;
2870
+ }
2871
+ preRun();
2872
+ if (runDependencies > 0) {
2873
+ return;
2874
+ }
2875
+ function doRun() {
2876
+ if (calledRun) return;
2877
+ calledRun = true;
2878
+ Module["calledRun"] = true;
2879
+ if (ABORT) return;
2880
+ initRuntime();
2881
+ if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
2882
+ postRun();
2883
+ }
2884
+ if (Module["setStatus"]) {
2885
+ Module["setStatus"]("Running...");
2886
+ setTimeout(function() {
2887
+ setTimeout(function() {
2888
+ Module["setStatus"]("");
2889
+ }, 1);
2890
+ doRun();
2891
+ }, 1);
2892
+ } else {
2893
+ doRun();
2894
+ }
2895
+ }
2896
+
2897
+ Module["run"] = run;
2898
+
2899
+ function exit(status, implicit) {
2900
+ EXITSTATUS = status;
2901
+ procExit(status);
2902
+ }
2903
+
2904
+ function procExit(code) {
2905
+ EXITSTATUS = code;
2906
+ if (!keepRuntimeAlive()) {
2907
+ if (Module["onExit"]) Module["onExit"](code);
2908
+ ABORT = true;
2909
+ }
2910
+ quit_(code, new ExitStatus(code));
2911
+ }
2912
+
2913
+ if (Module["preInit"]) {
2914
+ if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ];
2915
+ while (Module["preInit"].length > 0) {
2916
+ Module["preInit"].pop()();
2917
+ }
2918
+ }
2919
+
2920
+ run();
2921
+
2922
+ /* Use an optimized gemm implementation if available, otherwise use the fallback
2923
+ * implementation.
2924
+ */
2925
+ function createWasmGemm() {
2926
+ // A map of expected gemm function to the corresponding fallback gemm function names.
2927
+ const GEMM_TO_FALLBACK_FUNCTIONS_MAP = {
2928
+ "int8_prepare_a": "int8PrepareAFallback",
2929
+ "int8_prepare_b": "int8PrepareBFallback",
2930
+ "int8_prepare_b_from_transposed": "int8PrepareBFromTransposedFallback",
2931
+ "int8_prepare_b_from_quantized_transposed": "int8PrepareBFromQuantizedTransposedFallback",
2932
+ "int8_prepare_bias": "int8PrepareBiasFallback",
2933
+ "int8_multiply_and_add_bias": "int8MultiplyAndAddBiasFallback",
2934
+ "int8_select_columns_of_b": "int8SelectColumnsOfBFallback"
2935
+ };
2936
+
2937
+ // Name of the optimized gemm implementation.
2938
+ const OPTIMIZED_GEMM = "mozIntGemm";
2939
+
2940
+ const optimizedGemmModule = WebAssembly[OPTIMIZED_GEMM];
2941
+ if (!optimizedGemmModule) {
2942
+ return fallbackGemm(GEMM_TO_FALLBACK_FUNCTIONS_MAP);
2943
+ }
2944
+
2945
+ const optimizedGemmModuleExports = new WebAssembly.Instance(optimizedGemmModule(), {"": {memory: wasmMemory}}).exports;
2946
+ for (let key in GEMM_TO_FALLBACK_FUNCTIONS_MAP) {
2947
+ if (!optimizedGemmModuleExports[key]) {
2948
+ return fallbackGemm(GEMM_TO_FALLBACK_FUNCTIONS_MAP);
2949
+ }
2950
+ }
2951
+ console.log(`Using optimized gemm (${OPTIMIZED_GEMM}) implementation`);
2952
+ return optimizedGemmModuleExports;
2953
+ }
2954
+
2955
+ // Return the fallback gemm implementation.
2956
+ function fallbackGemm(gemmToFallbackFunctionsMap) {
2957
+ // The fallback gemm implementation
2958
+ const FALLBACK_GEMM = "asm";
2959
+
2960
+ let fallbackGemmModuleExports = {};
2961
+ for (let key in gemmToFallbackFunctionsMap) {
2962
+ fallbackGemmModuleExports[key] = (...a) => Module[FALLBACK_GEMM][gemmToFallbackFunctionsMap[key]](...a)
2963
+ }
2964
+ console.log(`Using fallback gemm implementation`);
2965
+ return fallbackGemmModuleExports;
2966
+ }