@prostgles/app 2.3.6-dev.1788969970

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 (9088) hide show
  1. package/client/build/0a4f2258bdca83efb8f7.ttf +0 -0
  2. package/client/build/cmaps/78-EUC-H.bcmap +0 -0
  3. package/client/build/cmaps/78-EUC-V.bcmap +0 -0
  4. package/client/build/cmaps/78-H.bcmap +0 -0
  5. package/client/build/cmaps/78-RKSJ-H.bcmap +0 -0
  6. package/client/build/cmaps/78-RKSJ-V.bcmap +0 -0
  7. package/client/build/cmaps/78-V.bcmap +0 -0
  8. package/client/build/cmaps/78ms-RKSJ-H.bcmap +0 -0
  9. package/client/build/cmaps/78ms-RKSJ-V.bcmap +0 -0
  10. package/client/build/cmaps/83pv-RKSJ-H.bcmap +0 -0
  11. package/client/build/cmaps/90ms-RKSJ-H.bcmap +0 -0
  12. package/client/build/cmaps/90ms-RKSJ-V.bcmap +0 -0
  13. package/client/build/cmaps/90msp-RKSJ-H.bcmap +0 -0
  14. package/client/build/cmaps/90msp-RKSJ-V.bcmap +0 -0
  15. package/client/build/cmaps/90pv-RKSJ-H.bcmap +0 -0
  16. package/client/build/cmaps/90pv-RKSJ-V.bcmap +0 -0
  17. package/client/build/cmaps/Add-H.bcmap +0 -0
  18. package/client/build/cmaps/Add-RKSJ-H.bcmap +0 -0
  19. package/client/build/cmaps/Add-RKSJ-V.bcmap +0 -0
  20. package/client/build/cmaps/Add-V.bcmap +0 -0
  21. package/client/build/cmaps/Adobe-CNS1-0.bcmap +0 -0
  22. package/client/build/cmaps/Adobe-CNS1-1.bcmap +0 -0
  23. package/client/build/cmaps/Adobe-CNS1-2.bcmap +0 -0
  24. package/client/build/cmaps/Adobe-CNS1-3.bcmap +0 -0
  25. package/client/build/cmaps/Adobe-CNS1-4.bcmap +0 -0
  26. package/client/build/cmaps/Adobe-CNS1-5.bcmap +0 -0
  27. package/client/build/cmaps/Adobe-CNS1-6.bcmap +0 -0
  28. package/client/build/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  29. package/client/build/cmaps/Adobe-GB1-0.bcmap +0 -0
  30. package/client/build/cmaps/Adobe-GB1-1.bcmap +0 -0
  31. package/client/build/cmaps/Adobe-GB1-2.bcmap +0 -0
  32. package/client/build/cmaps/Adobe-GB1-3.bcmap +0 -0
  33. package/client/build/cmaps/Adobe-GB1-4.bcmap +0 -0
  34. package/client/build/cmaps/Adobe-GB1-5.bcmap +0 -0
  35. package/client/build/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  36. package/client/build/cmaps/Adobe-Japan1-0.bcmap +0 -0
  37. package/client/build/cmaps/Adobe-Japan1-1.bcmap +0 -0
  38. package/client/build/cmaps/Adobe-Japan1-2.bcmap +0 -0
  39. package/client/build/cmaps/Adobe-Japan1-3.bcmap +0 -0
  40. package/client/build/cmaps/Adobe-Japan1-4.bcmap +0 -0
  41. package/client/build/cmaps/Adobe-Japan1-5.bcmap +0 -0
  42. package/client/build/cmaps/Adobe-Japan1-6.bcmap +0 -0
  43. package/client/build/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  44. package/client/build/cmaps/Adobe-Korea1-0.bcmap +0 -0
  45. package/client/build/cmaps/Adobe-Korea1-1.bcmap +0 -0
  46. package/client/build/cmaps/Adobe-Korea1-2.bcmap +0 -0
  47. package/client/build/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  48. package/client/build/cmaps/B5-H.bcmap +0 -0
  49. package/client/build/cmaps/B5-V.bcmap +0 -0
  50. package/client/build/cmaps/B5pc-H.bcmap +0 -0
  51. package/client/build/cmaps/B5pc-V.bcmap +0 -0
  52. package/client/build/cmaps/CNS-EUC-H.bcmap +0 -0
  53. package/client/build/cmaps/CNS-EUC-V.bcmap +0 -0
  54. package/client/build/cmaps/CNS1-H.bcmap +0 -0
  55. package/client/build/cmaps/CNS1-V.bcmap +0 -0
  56. package/client/build/cmaps/CNS2-H.bcmap +0 -0
  57. package/client/build/cmaps/CNS2-V.bcmap +3 -0
  58. package/client/build/cmaps/ETHK-B5-H.bcmap +0 -0
  59. package/client/build/cmaps/ETHK-B5-V.bcmap +0 -0
  60. package/client/build/cmaps/ETen-B5-H.bcmap +0 -0
  61. package/client/build/cmaps/ETen-B5-V.bcmap +0 -0
  62. package/client/build/cmaps/ETenms-B5-H.bcmap +3 -0
  63. package/client/build/cmaps/ETenms-B5-V.bcmap +0 -0
  64. package/client/build/cmaps/EUC-H.bcmap +0 -0
  65. package/client/build/cmaps/EUC-V.bcmap +0 -0
  66. package/client/build/cmaps/Ext-H.bcmap +0 -0
  67. package/client/build/cmaps/Ext-RKSJ-H.bcmap +0 -0
  68. package/client/build/cmaps/Ext-RKSJ-V.bcmap +0 -0
  69. package/client/build/cmaps/Ext-V.bcmap +0 -0
  70. package/client/build/cmaps/GB-EUC-H.bcmap +0 -0
  71. package/client/build/cmaps/GB-EUC-V.bcmap +0 -0
  72. package/client/build/cmaps/GB-H.bcmap +4 -0
  73. package/client/build/cmaps/GB-V.bcmap +0 -0
  74. package/client/build/cmaps/GBK-EUC-H.bcmap +0 -0
  75. package/client/build/cmaps/GBK-EUC-V.bcmap +0 -0
  76. package/client/build/cmaps/GBK2K-H.bcmap +0 -0
  77. package/client/build/cmaps/GBK2K-V.bcmap +0 -0
  78. package/client/build/cmaps/GBKp-EUC-H.bcmap +0 -0
  79. package/client/build/cmaps/GBKp-EUC-V.bcmap +0 -0
  80. package/client/build/cmaps/GBT-EUC-H.bcmap +0 -0
  81. package/client/build/cmaps/GBT-EUC-V.bcmap +0 -0
  82. package/client/build/cmaps/GBT-H.bcmap +0 -0
  83. package/client/build/cmaps/GBT-V.bcmap +0 -0
  84. package/client/build/cmaps/GBTpc-EUC-H.bcmap +0 -0
  85. package/client/build/cmaps/GBTpc-EUC-V.bcmap +0 -0
  86. package/client/build/cmaps/GBpc-EUC-H.bcmap +0 -0
  87. package/client/build/cmaps/GBpc-EUC-V.bcmap +0 -0
  88. package/client/build/cmaps/H.bcmap +0 -0
  89. package/client/build/cmaps/HKdla-B5-H.bcmap +0 -0
  90. package/client/build/cmaps/HKdla-B5-V.bcmap +0 -0
  91. package/client/build/cmaps/HKdlb-B5-H.bcmap +0 -0
  92. package/client/build/cmaps/HKdlb-B5-V.bcmap +0 -0
  93. package/client/build/cmaps/HKgccs-B5-H.bcmap +0 -0
  94. package/client/build/cmaps/HKgccs-B5-V.bcmap +0 -0
  95. package/client/build/cmaps/HKm314-B5-H.bcmap +0 -0
  96. package/client/build/cmaps/HKm314-B5-V.bcmap +0 -0
  97. package/client/build/cmaps/HKm471-B5-H.bcmap +0 -0
  98. package/client/build/cmaps/HKm471-B5-V.bcmap +0 -0
  99. package/client/build/cmaps/HKscs-B5-H.bcmap +0 -0
  100. package/client/build/cmaps/HKscs-B5-V.bcmap +0 -0
  101. package/client/build/cmaps/Hankaku.bcmap +0 -0
  102. package/client/build/cmaps/Hiragana.bcmap +0 -0
  103. package/client/build/cmaps/KSC-EUC-H.bcmap +0 -0
  104. package/client/build/cmaps/KSC-EUC-V.bcmap +0 -0
  105. package/client/build/cmaps/KSC-H.bcmap +0 -0
  106. package/client/build/cmaps/KSC-Johab-H.bcmap +0 -0
  107. package/client/build/cmaps/KSC-Johab-V.bcmap +0 -0
  108. package/client/build/cmaps/KSC-V.bcmap +0 -0
  109. package/client/build/cmaps/KSCms-UHC-H.bcmap +0 -0
  110. package/client/build/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  111. package/client/build/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  112. package/client/build/cmaps/KSCms-UHC-V.bcmap +0 -0
  113. package/client/build/cmaps/KSCpc-EUC-H.bcmap +0 -0
  114. package/client/build/cmaps/KSCpc-EUC-V.bcmap +0 -0
  115. package/client/build/cmaps/Katakana.bcmap +0 -0
  116. package/client/build/cmaps/LICENSE +36 -0
  117. package/client/build/cmaps/NWP-H.bcmap +0 -0
  118. package/client/build/cmaps/NWP-V.bcmap +0 -0
  119. package/client/build/cmaps/RKSJ-H.bcmap +0 -0
  120. package/client/build/cmaps/RKSJ-V.bcmap +0 -0
  121. package/client/build/cmaps/Roman.bcmap +0 -0
  122. package/client/build/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  123. package/client/build/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  124. package/client/build/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  125. package/client/build/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  126. package/client/build/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  127. package/client/build/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  128. package/client/build/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  129. package/client/build/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  130. package/client/build/cmaps/UniGB-UCS2-H.bcmap +0 -0
  131. package/client/build/cmaps/UniGB-UCS2-V.bcmap +0 -0
  132. package/client/build/cmaps/UniGB-UTF16-H.bcmap +0 -0
  133. package/client/build/cmaps/UniGB-UTF16-V.bcmap +0 -0
  134. package/client/build/cmaps/UniGB-UTF32-H.bcmap +0 -0
  135. package/client/build/cmaps/UniGB-UTF32-V.bcmap +0 -0
  136. package/client/build/cmaps/UniGB-UTF8-H.bcmap +0 -0
  137. package/client/build/cmaps/UniGB-UTF8-V.bcmap +0 -0
  138. package/client/build/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  139. package/client/build/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  140. package/client/build/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  141. package/client/build/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  142. package/client/build/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  143. package/client/build/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  144. package/client/build/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  145. package/client/build/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  146. package/client/build/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  147. package/client/build/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  148. package/client/build/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  149. package/client/build/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  150. package/client/build/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  151. package/client/build/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  152. package/client/build/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  153. package/client/build/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  154. package/client/build/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  155. package/client/build/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  156. package/client/build/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  157. package/client/build/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  158. package/client/build/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  159. package/client/build/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  160. package/client/build/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  161. package/client/build/cmaps/UniKS-UCS2-H.bcmap +0 -0
  162. package/client/build/cmaps/UniKS-UCS2-V.bcmap +0 -0
  163. package/client/build/cmaps/UniKS-UTF16-H.bcmap +0 -0
  164. package/client/build/cmaps/UniKS-UTF16-V.bcmap +0 -0
  165. package/client/build/cmaps/UniKS-UTF32-H.bcmap +0 -0
  166. package/client/build/cmaps/UniKS-UTF32-V.bcmap +0 -0
  167. package/client/build/cmaps/UniKS-UTF8-H.bcmap +0 -0
  168. package/client/build/cmaps/UniKS-UTF8-V.bcmap +0 -0
  169. package/client/build/cmaps/V.bcmap +0 -0
  170. package/client/build/cmaps/WP-Symbol.bcmap +0 -0
  171. package/client/build/ead34552840cdfc95cc6.mjs +2 -0
  172. package/client/build/ead34552840cdfc95cc6.mjs.LICENSE.txt +21 -0
  173. package/client/build/editor.worker.js +2 -0
  174. package/client/build/editor.worker.js.LICENSE.txt +6 -0
  175. package/client/build/img/10884617744dc1151da6.svg +3 -0
  176. package/client/build/img/211d2d6fe3604a9a520c.svg +3 -0
  177. package/client/build/img/2d166d850c0e35f16449.svg +3 -0
  178. package/client/build/img/2ef94bf18d79d33c1956.svg +3 -0
  179. package/client/build/img/3683cfffdcbd73685ff2.svg +8 -0
  180. package/client/build/img/3b058ed0b02df4fe2a4b.svg +5 -0
  181. package/client/build/img/42e4e1954f25f8c7b965.svg +6 -0
  182. package/client/build/img/4cadce1da24a888d3778.svg +3 -0
  183. package/client/build/img/553a8349e45b78d2b0e4.svg +3 -0
  184. package/client/build/img/59fe962b3e6bd8bfdda7.svg +3 -0
  185. package/client/build/img/5a0d39f4f5a65c621dbe.svg +1 -0
  186. package/client/build/img/5ea0869845becef03a06.svg +4 -0
  187. package/client/build/img/6adf7ff4167ab6e1a87f.svg +1 -0
  188. package/client/build/img/76692c54994797ddfb04.svg +3 -0
  189. package/client/build/img/7a72cfe20720a26ec417.svg +30 -0
  190. package/client/build/img/8475f8e672ed83e24520.svg +6 -0
  191. package/client/build/img/9235a934bba6a11e0c0e.svg +3 -0
  192. package/client/build/img/9e99b3c1c4e832d55661.svg +3 -0
  193. package/client/build/img/9fb032a1799ca2a1c751.svg +3 -0
  194. package/client/build/img/b3f42e9824f129eefaac.svg +3 -0
  195. package/client/build/img/b764fc7c9c83840e51bb.svg +3 -0
  196. package/client/build/img/bb72d81b39be40898db2.svg +3 -0
  197. package/client/build/img/c9dc2a6d0f9e1e7533bc.svg +3 -0
  198. package/client/build/img/ca4804e8b13a221c170a.svg +3 -0
  199. package/client/build/img/d15926e8173b24e27798.svg +5 -0
  200. package/client/build/img/d39979b82330f1bca780.svg +3 -0
  201. package/client/build/img/d9820fcb925358884b24.svg +3 -0
  202. package/client/build/img/e389d73645f134c0640a.svg +3 -0
  203. package/client/build/img/f904f4e53fc28e721147.svg +7 -0
  204. package/client/build/img/fde82a50e6de20239861.svg +5 -0
  205. package/client/build/img/fe569fb3bf1e1ac0e771.svg +3 -0
  206. package/client/build/img/ff2dfa442d903d9d5e30.gif +0 -0
  207. package/client/build/index.html +1 -0
  208. package/client/build/js/155.bundle.js +2 -0
  209. package/client/build/js/155.bundle.js.LICENSE.txt +8 -0
  210. package/client/build/js/199.bundle.js +1 -0
  211. package/client/build/js/298.bundle.js +2 -0
  212. package/client/build/js/298.bundle.js.LICENSE.txt +66 -0
  213. package/client/build/js/356.bundle.js +1 -0
  214. package/client/build/js/495.bundle.js +1 -0
  215. package/client/build/js/499.bundle.js +2 -0
  216. package/client/build/js/499.bundle.js.LICENSE.txt +6 -0
  217. package/client/build/js/578.bundle.js +2 -0
  218. package/client/build/js/578.bundle.js.LICENSE.txt +6 -0
  219. package/client/build/js/586.bundle.js +2 -0
  220. package/client/build/js/586.bundle.js.LICENSE.txt +6 -0
  221. package/client/build/js/63.bundle.js +2 -0
  222. package/client/build/js/63.bundle.js.LICENSE.txt +1 -0
  223. package/client/build/js/650.bundle.js +2 -0
  224. package/client/build/js/650.bundle.js.LICENSE.txt +6 -0
  225. package/client/build/js/872.bundle.js +2 -0
  226. package/client/build/js/872.bundle.js.LICENSE.txt +6 -0
  227. package/client/build/js/88.bundle.js +2 -0
  228. package/client/build/js/88.bundle.js.LICENSE.txt +6 -0
  229. package/client/build/js/934.bundle.js +2 -0
  230. package/client/build/js/934.bundle.js.LICENSE.txt +6 -0
  231. package/client/build/js/deckgl.bundle.js +2 -0
  232. package/client/build/js/deckgl.bundle.js.LICENSE.txt +25 -0
  233. package/client/build/js/deckglExtensions.bundle.js +1 -0
  234. package/client/build/js/main.bundle.js +2 -0
  235. package/client/build/js/monaco_editor.bundle.js +1 -0
  236. package/client/build/js/mvtLoader.bundle.js +1 -0
  237. package/client/build/js/papaparse.bundle.js +2 -0
  238. package/client/build/js/papaparse.bundle.js.LICENSE.txt +6 -0
  239. package/client/build/json.worker.js +2 -0
  240. package/client/build/json.worker.js.LICENSE.txt +6 -0
  241. package/client/build/static/css/main.09041b18.css +1945 -0
  242. package/client/build/ts.worker.js +6 -0
  243. package/client/static/favicon-32x32.png +0 -0
  244. package/client/static/icons/AbTesting.svg +3 -0
  245. package/client/static/icons/Abacus.svg +3 -0
  246. package/client/static/icons/AbjadArabic.svg +3 -0
  247. package/client/static/icons/AbjadHebrew.svg +3 -0
  248. package/client/static/icons/AbugidaDevanagari.svg +3 -0
  249. package/client/static/icons/AbugidaThai.svg +3 -0
  250. package/client/static/icons/AccessPoint.svg +3 -0
  251. package/client/static/icons/AccessPointCheck.svg +3 -0
  252. package/client/static/icons/AccessPointMinus.svg +3 -0
  253. package/client/static/icons/AccessPointNetwork.svg +3 -0
  254. package/client/static/icons/AccessPointNetworkOff.svg +3 -0
  255. package/client/static/icons/AccessPointOff.svg +3 -0
  256. package/client/static/icons/AccessPointPlus.svg +3 -0
  257. package/client/static/icons/AccessPointRemove.svg +3 -0
  258. package/client/static/icons/Account.svg +3 -0
  259. package/client/static/icons/AccountAlert.svg +3 -0
  260. package/client/static/icons/AccountAlertOutline.svg +3 -0
  261. package/client/static/icons/AccountArrowDown.svg +3 -0
  262. package/client/static/icons/AccountArrowDownOutline.svg +3 -0
  263. package/client/static/icons/AccountArrowLeft.svg +3 -0
  264. package/client/static/icons/AccountArrowLeftOutline.svg +3 -0
  265. package/client/static/icons/AccountArrowRight.svg +3 -0
  266. package/client/static/icons/AccountArrowRightOutline.svg +3 -0
  267. package/client/static/icons/AccountArrowUp.svg +3 -0
  268. package/client/static/icons/AccountArrowUpOutline.svg +3 -0
  269. package/client/static/icons/AccountBadge.svg +3 -0
  270. package/client/static/icons/AccountBadgeOutline.svg +3 -0
  271. package/client/static/icons/AccountBox.svg +3 -0
  272. package/client/static/icons/AccountBoxEditOutline.svg +3 -0
  273. package/client/static/icons/AccountBoxMinusOutline.svg +3 -0
  274. package/client/static/icons/AccountBoxMultiple.svg +3 -0
  275. package/client/static/icons/AccountBoxMultipleOutline.svg +3 -0
  276. package/client/static/icons/AccountBoxOutline.svg +3 -0
  277. package/client/static/icons/AccountBoxPlusOutline.svg +3 -0
  278. package/client/static/icons/AccountCancel.svg +3 -0
  279. package/client/static/icons/AccountCancelOutline.svg +3 -0
  280. package/client/static/icons/AccountCard.svg +3 -0
  281. package/client/static/icons/AccountCardOutline.svg +3 -0
  282. package/client/static/icons/AccountCash.svg +3 -0
  283. package/client/static/icons/AccountCashOutline.svg +3 -0
  284. package/client/static/icons/AccountCheck.svg +3 -0
  285. package/client/static/icons/AccountCheckOutline.svg +3 -0
  286. package/client/static/icons/AccountChild.svg +3 -0
  287. package/client/static/icons/AccountChildCircle.svg +3 -0
  288. package/client/static/icons/AccountChildOutline.svg +3 -0
  289. package/client/static/icons/AccountCircle.svg +3 -0
  290. package/client/static/icons/AccountCircleOutline.svg +3 -0
  291. package/client/static/icons/AccountClock.svg +3 -0
  292. package/client/static/icons/AccountClockOutline.svg +3 -0
  293. package/client/static/icons/AccountCog.svg +3 -0
  294. package/client/static/icons/AccountCogOutline.svg +3 -0
  295. package/client/static/icons/AccountConvert.svg +3 -0
  296. package/client/static/icons/AccountConvertOutline.svg +3 -0
  297. package/client/static/icons/AccountCowboyHat.svg +3 -0
  298. package/client/static/icons/AccountCowboyHatOutline.svg +3 -0
  299. package/client/static/icons/AccountCreditCard.svg +3 -0
  300. package/client/static/icons/AccountCreditCardOutline.svg +3 -0
  301. package/client/static/icons/AccountDetails.svg +3 -0
  302. package/client/static/icons/AccountDetailsOutline.svg +3 -0
  303. package/client/static/icons/AccountEdit.svg +3 -0
  304. package/client/static/icons/AccountEditOutline.svg +3 -0
  305. package/client/static/icons/AccountEye.svg +3 -0
  306. package/client/static/icons/AccountEyeOutline.svg +3 -0
  307. package/client/static/icons/AccountFile.svg +3 -0
  308. package/client/static/icons/AccountFileOutline.svg +3 -0
  309. package/client/static/icons/AccountFileText.svg +3 -0
  310. package/client/static/icons/AccountFileTextOutline.svg +3 -0
  311. package/client/static/icons/AccountFilter.svg +3 -0
  312. package/client/static/icons/AccountFilterOutline.svg +3 -0
  313. package/client/static/icons/AccountGroup.svg +3 -0
  314. package/client/static/icons/AccountGroupOutline.svg +3 -0
  315. package/client/static/icons/AccountHardHat.svg +3 -0
  316. package/client/static/icons/AccountHardHatOutline.svg +3 -0
  317. package/client/static/icons/AccountHeart.svg +3 -0
  318. package/client/static/icons/AccountHeartOutline.svg +3 -0
  319. package/client/static/icons/AccountInjury.svg +3 -0
  320. package/client/static/icons/AccountInjuryOutline.svg +3 -0
  321. package/client/static/icons/AccountKey.svg +3 -0
  322. package/client/static/icons/AccountKeyOutline.svg +3 -0
  323. package/client/static/icons/AccountLock.svg +3 -0
  324. package/client/static/icons/AccountLockOpen.svg +3 -0
  325. package/client/static/icons/AccountLockOpenOutline.svg +3 -0
  326. package/client/static/icons/AccountLockOutline.svg +3 -0
  327. package/client/static/icons/AccountMinus.svg +3 -0
  328. package/client/static/icons/AccountMinusOutline.svg +3 -0
  329. package/client/static/icons/AccountMultiple.svg +3 -0
  330. package/client/static/icons/AccountMultipleCheck.svg +3 -0
  331. package/client/static/icons/AccountMultipleCheckOutline.svg +3 -0
  332. package/client/static/icons/AccountMultipleMinus.svg +3 -0
  333. package/client/static/icons/AccountMultipleMinusOutline.svg +3 -0
  334. package/client/static/icons/AccountMultipleOutline.svg +3 -0
  335. package/client/static/icons/AccountMultiplePlus.svg +3 -0
  336. package/client/static/icons/AccountMultiplePlusOutline.svg +3 -0
  337. package/client/static/icons/AccountMultipleRemove.svg +3 -0
  338. package/client/static/icons/AccountMultipleRemoveOutline.svg +3 -0
  339. package/client/static/icons/AccountMusic.svg +3 -0
  340. package/client/static/icons/AccountMusicOutline.svg +3 -0
  341. package/client/static/icons/AccountNetwork.svg +3 -0
  342. package/client/static/icons/AccountNetworkOff.svg +3 -0
  343. package/client/static/icons/AccountNetworkOffOutline.svg +3 -0
  344. package/client/static/icons/AccountNetworkOutline.svg +3 -0
  345. package/client/static/icons/AccountOff.svg +3 -0
  346. package/client/static/icons/AccountOffOutline.svg +3 -0
  347. package/client/static/icons/AccountOutline.svg +3 -0
  348. package/client/static/icons/AccountPlus.svg +3 -0
  349. package/client/static/icons/AccountPlusOutline.svg +3 -0
  350. package/client/static/icons/AccountQuestion.svg +3 -0
  351. package/client/static/icons/AccountQuestionOutline.svg +3 -0
  352. package/client/static/icons/AccountReactivate.svg +3 -0
  353. package/client/static/icons/AccountReactivateOutline.svg +3 -0
  354. package/client/static/icons/AccountRemove.svg +3 -0
  355. package/client/static/icons/AccountRemoveOutline.svg +3 -0
  356. package/client/static/icons/AccountSchool.svg +3 -0
  357. package/client/static/icons/AccountSchoolOutline.svg +3 -0
  358. package/client/static/icons/AccountSearch.svg +3 -0
  359. package/client/static/icons/AccountSearchOutline.svg +3 -0
  360. package/client/static/icons/AccountSettings.svg +3 -0
  361. package/client/static/icons/AccountSettingsOutline.svg +3 -0
  362. package/client/static/icons/AccountStar.svg +3 -0
  363. package/client/static/icons/AccountStarOutline.svg +3 -0
  364. package/client/static/icons/AccountSupervisor.svg +3 -0
  365. package/client/static/icons/AccountSupervisorCircle.svg +3 -0
  366. package/client/static/icons/AccountSupervisorCircleOutline.svg +3 -0
  367. package/client/static/icons/AccountSupervisorOutline.svg +3 -0
  368. package/client/static/icons/AccountSwitch.svg +3 -0
  369. package/client/static/icons/AccountSwitchOutline.svg +3 -0
  370. package/client/static/icons/AccountSync.svg +3 -0
  371. package/client/static/icons/AccountSyncOutline.svg +3 -0
  372. package/client/static/icons/AccountTag.svg +3 -0
  373. package/client/static/icons/AccountTagOutline.svg +3 -0
  374. package/client/static/icons/AccountTie.svg +3 -0
  375. package/client/static/icons/AccountTieHat.svg +3 -0
  376. package/client/static/icons/AccountTieHatOutline.svg +3 -0
  377. package/client/static/icons/AccountTieOutline.svg +3 -0
  378. package/client/static/icons/AccountTieVoice.svg +3 -0
  379. package/client/static/icons/AccountTieVoiceOff.svg +3 -0
  380. package/client/static/icons/AccountTieVoiceOffOutline.svg +3 -0
  381. package/client/static/icons/AccountTieVoiceOutline.svg +3 -0
  382. package/client/static/icons/AccountTieWoman.svg +3 -0
  383. package/client/static/icons/AccountVoice.svg +3 -0
  384. package/client/static/icons/AccountVoiceOff.svg +3 -0
  385. package/client/static/icons/AccountWrench.svg +3 -0
  386. package/client/static/icons/AccountWrenchOutline.svg +3 -0
  387. package/client/static/icons/Adjust.svg +3 -0
  388. package/client/static/icons/Advertisements.svg +3 -0
  389. package/client/static/icons/AdvertisementsOff.svg +3 -0
  390. package/client/static/icons/AirConditioner.svg +3 -0
  391. package/client/static/icons/AirFilter.svg +3 -0
  392. package/client/static/icons/AirHorn.svg +3 -0
  393. package/client/static/icons/AirHumidifier.svg +3 -0
  394. package/client/static/icons/AirHumidifierOff.svg +3 -0
  395. package/client/static/icons/AirPurifier.svg +3 -0
  396. package/client/static/icons/AirPurifierOff.svg +3 -0
  397. package/client/static/icons/Airbag.svg +3 -0
  398. package/client/static/icons/Airballoon.svg +3 -0
  399. package/client/static/icons/AirballoonOutline.svg +3 -0
  400. package/client/static/icons/Airplane.svg +3 -0
  401. package/client/static/icons/AirplaneAlert.svg +3 -0
  402. package/client/static/icons/AirplaneCheck.svg +3 -0
  403. package/client/static/icons/AirplaneClock.svg +3 -0
  404. package/client/static/icons/AirplaneCog.svg +3 -0
  405. package/client/static/icons/AirplaneEdit.svg +3 -0
  406. package/client/static/icons/AirplaneLanding.svg +3 -0
  407. package/client/static/icons/AirplaneMarker.svg +3 -0
  408. package/client/static/icons/AirplaneMinus.svg +3 -0
  409. package/client/static/icons/AirplaneOff.svg +3 -0
  410. package/client/static/icons/AirplanePlus.svg +3 -0
  411. package/client/static/icons/AirplaneRemove.svg +3 -0
  412. package/client/static/icons/AirplaneSearch.svg +3 -0
  413. package/client/static/icons/AirplaneSettings.svg +3 -0
  414. package/client/static/icons/AirplaneTakeoff.svg +3 -0
  415. package/client/static/icons/Airport.svg +3 -0
  416. package/client/static/icons/Alarm.svg +3 -0
  417. package/client/static/icons/AlarmBell.svg +3 -0
  418. package/client/static/icons/AlarmCheck.svg +3 -0
  419. package/client/static/icons/AlarmLight.svg +3 -0
  420. package/client/static/icons/AlarmLightOff.svg +3 -0
  421. package/client/static/icons/AlarmLightOffOutline.svg +3 -0
  422. package/client/static/icons/AlarmLightOutline.svg +3 -0
  423. package/client/static/icons/AlarmMultiple.svg +3 -0
  424. package/client/static/icons/AlarmNote.svg +3 -0
  425. package/client/static/icons/AlarmNoteOff.svg +3 -0
  426. package/client/static/icons/AlarmOff.svg +3 -0
  427. package/client/static/icons/AlarmPanel.svg +3 -0
  428. package/client/static/icons/AlarmPanelOutline.svg +3 -0
  429. package/client/static/icons/AlarmPlus.svg +3 -0
  430. package/client/static/icons/AlarmSnooze.svg +3 -0
  431. package/client/static/icons/Album.svg +3 -0
  432. package/client/static/icons/Alert.svg +3 -0
  433. package/client/static/icons/AlertBox.svg +3 -0
  434. package/client/static/icons/AlertBoxOutline.svg +3 -0
  435. package/client/static/icons/AlertCircle.svg +3 -0
  436. package/client/static/icons/AlertCircleCheck.svg +3 -0
  437. package/client/static/icons/AlertCircleCheckOutline.svg +3 -0
  438. package/client/static/icons/AlertCircleOutline.svg +3 -0
  439. package/client/static/icons/AlertDecagram.svg +3 -0
  440. package/client/static/icons/AlertDecagramOutline.svg +3 -0
  441. package/client/static/icons/AlertMinus.svg +3 -0
  442. package/client/static/icons/AlertMinusOutline.svg +3 -0
  443. package/client/static/icons/AlertOctagon.svg +3 -0
  444. package/client/static/icons/AlertOctagonOutline.svg +3 -0
  445. package/client/static/icons/AlertOctagram.svg +3 -0
  446. package/client/static/icons/AlertOctagramOutline.svg +3 -0
  447. package/client/static/icons/AlertOutline.svg +3 -0
  448. package/client/static/icons/AlertPlus.svg +3 -0
  449. package/client/static/icons/AlertPlusOutline.svg +3 -0
  450. package/client/static/icons/AlertRemove.svg +3 -0
  451. package/client/static/icons/AlertRemoveOutline.svg +3 -0
  452. package/client/static/icons/AlertRhombus.svg +3 -0
  453. package/client/static/icons/AlertRhombusOutline.svg +3 -0
  454. package/client/static/icons/Alien.svg +3 -0
  455. package/client/static/icons/AlienOutline.svg +3 -0
  456. package/client/static/icons/AlignHorizontalCenter.svg +3 -0
  457. package/client/static/icons/AlignHorizontalDistribute.svg +3 -0
  458. package/client/static/icons/AlignHorizontalLeft.svg +3 -0
  459. package/client/static/icons/AlignHorizontalRight.svg +3 -0
  460. package/client/static/icons/AlignVerticalBottom.svg +3 -0
  461. package/client/static/icons/AlignVerticalCenter.svg +3 -0
  462. package/client/static/icons/AlignVerticalDistribute.svg +3 -0
  463. package/client/static/icons/AlignVerticalTop.svg +3 -0
  464. package/client/static/icons/AllInclusive.svg +3 -0
  465. package/client/static/icons/AllInclusiveBox.svg +3 -0
  466. package/client/static/icons/AllInclusiveBoxOutline.svg +3 -0
  467. package/client/static/icons/Allergy.svg +3 -0
  468. package/client/static/icons/Alpha.svg +3 -0
  469. package/client/static/icons/AlphaA.svg +3 -0
  470. package/client/static/icons/AlphaABox.svg +3 -0
  471. package/client/static/icons/AlphaABoxOutline.svg +3 -0
  472. package/client/static/icons/AlphaACircle.svg +3 -0
  473. package/client/static/icons/AlphaACircleOutline.svg +3 -0
  474. package/client/static/icons/AlphaB.svg +3 -0
  475. package/client/static/icons/AlphaBBox.svg +3 -0
  476. package/client/static/icons/AlphaBBoxOutline.svg +3 -0
  477. package/client/static/icons/AlphaBCircle.svg +3 -0
  478. package/client/static/icons/AlphaBCircleOutline.svg +3 -0
  479. package/client/static/icons/AlphaC.svg +3 -0
  480. package/client/static/icons/AlphaCBox.svg +3 -0
  481. package/client/static/icons/AlphaCBoxOutline.svg +3 -0
  482. package/client/static/icons/AlphaCCircle.svg +3 -0
  483. package/client/static/icons/AlphaCCircleOutline.svg +3 -0
  484. package/client/static/icons/AlphaD.svg +3 -0
  485. package/client/static/icons/AlphaDBox.svg +3 -0
  486. package/client/static/icons/AlphaDBoxOutline.svg +3 -0
  487. package/client/static/icons/AlphaDCircle.svg +3 -0
  488. package/client/static/icons/AlphaDCircleOutline.svg +3 -0
  489. package/client/static/icons/AlphaE.svg +3 -0
  490. package/client/static/icons/AlphaEBox.svg +3 -0
  491. package/client/static/icons/AlphaEBoxOutline.svg +3 -0
  492. package/client/static/icons/AlphaECircle.svg +3 -0
  493. package/client/static/icons/AlphaECircleOutline.svg +3 -0
  494. package/client/static/icons/AlphaF.svg +3 -0
  495. package/client/static/icons/AlphaFBox.svg +3 -0
  496. package/client/static/icons/AlphaFBoxOutline.svg +3 -0
  497. package/client/static/icons/AlphaFCircle.svg +3 -0
  498. package/client/static/icons/AlphaFCircleOutline.svg +3 -0
  499. package/client/static/icons/AlphaG.svg +3 -0
  500. package/client/static/icons/AlphaGBox.svg +3 -0
  501. package/client/static/icons/AlphaGBoxOutline.svg +3 -0
  502. package/client/static/icons/AlphaGCircle.svg +3 -0
  503. package/client/static/icons/AlphaGCircleOutline.svg +3 -0
  504. package/client/static/icons/AlphaH.svg +3 -0
  505. package/client/static/icons/AlphaHBox.svg +3 -0
  506. package/client/static/icons/AlphaHBoxOutline.svg +3 -0
  507. package/client/static/icons/AlphaHCircle.svg +3 -0
  508. package/client/static/icons/AlphaHCircleOutline.svg +3 -0
  509. package/client/static/icons/AlphaI.svg +3 -0
  510. package/client/static/icons/AlphaIBox.svg +3 -0
  511. package/client/static/icons/AlphaIBoxOutline.svg +3 -0
  512. package/client/static/icons/AlphaICircle.svg +3 -0
  513. package/client/static/icons/AlphaICircleOutline.svg +3 -0
  514. package/client/static/icons/AlphaJ.svg +3 -0
  515. package/client/static/icons/AlphaJBox.svg +3 -0
  516. package/client/static/icons/AlphaJBoxOutline.svg +3 -0
  517. package/client/static/icons/AlphaJCircle.svg +3 -0
  518. package/client/static/icons/AlphaJCircleOutline.svg +3 -0
  519. package/client/static/icons/AlphaK.svg +3 -0
  520. package/client/static/icons/AlphaKBox.svg +3 -0
  521. package/client/static/icons/AlphaKBoxOutline.svg +3 -0
  522. package/client/static/icons/AlphaKCircle.svg +3 -0
  523. package/client/static/icons/AlphaKCircleOutline.svg +3 -0
  524. package/client/static/icons/AlphaL.svg +3 -0
  525. package/client/static/icons/AlphaLBox.svg +3 -0
  526. package/client/static/icons/AlphaLBoxOutline.svg +3 -0
  527. package/client/static/icons/AlphaLCircle.svg +3 -0
  528. package/client/static/icons/AlphaLCircleOutline.svg +3 -0
  529. package/client/static/icons/AlphaM.svg +3 -0
  530. package/client/static/icons/AlphaMBox.svg +3 -0
  531. package/client/static/icons/AlphaMBoxOutline.svg +3 -0
  532. package/client/static/icons/AlphaMCircle.svg +3 -0
  533. package/client/static/icons/AlphaMCircleOutline.svg +3 -0
  534. package/client/static/icons/AlphaN.svg +3 -0
  535. package/client/static/icons/AlphaNBox.svg +3 -0
  536. package/client/static/icons/AlphaNBoxOutline.svg +3 -0
  537. package/client/static/icons/AlphaNCircle.svg +3 -0
  538. package/client/static/icons/AlphaNCircleOutline.svg +3 -0
  539. package/client/static/icons/AlphaO.svg +3 -0
  540. package/client/static/icons/AlphaOBox.svg +3 -0
  541. package/client/static/icons/AlphaOBoxOutline.svg +3 -0
  542. package/client/static/icons/AlphaOCircle.svg +3 -0
  543. package/client/static/icons/AlphaOCircleOutline.svg +3 -0
  544. package/client/static/icons/AlphaP.svg +3 -0
  545. package/client/static/icons/AlphaPBox.svg +3 -0
  546. package/client/static/icons/AlphaPBoxOutline.svg +3 -0
  547. package/client/static/icons/AlphaPCircle.svg +3 -0
  548. package/client/static/icons/AlphaPCircleOutline.svg +3 -0
  549. package/client/static/icons/AlphaQ.svg +3 -0
  550. package/client/static/icons/AlphaQBox.svg +3 -0
  551. package/client/static/icons/AlphaQBoxOutline.svg +3 -0
  552. package/client/static/icons/AlphaQCircle.svg +3 -0
  553. package/client/static/icons/AlphaQCircleOutline.svg +3 -0
  554. package/client/static/icons/AlphaR.svg +3 -0
  555. package/client/static/icons/AlphaRBox.svg +3 -0
  556. package/client/static/icons/AlphaRBoxOutline.svg +3 -0
  557. package/client/static/icons/AlphaRCircle.svg +3 -0
  558. package/client/static/icons/AlphaRCircleOutline.svg +3 -0
  559. package/client/static/icons/AlphaS.svg +3 -0
  560. package/client/static/icons/AlphaSBox.svg +3 -0
  561. package/client/static/icons/AlphaSBoxOutline.svg +3 -0
  562. package/client/static/icons/AlphaSCircle.svg +3 -0
  563. package/client/static/icons/AlphaSCircleOutline.svg +3 -0
  564. package/client/static/icons/AlphaT.svg +3 -0
  565. package/client/static/icons/AlphaTBox.svg +3 -0
  566. package/client/static/icons/AlphaTBoxOutline.svg +3 -0
  567. package/client/static/icons/AlphaTCircle.svg +3 -0
  568. package/client/static/icons/AlphaTCircleOutline.svg +3 -0
  569. package/client/static/icons/AlphaU.svg +3 -0
  570. package/client/static/icons/AlphaUBox.svg +3 -0
  571. package/client/static/icons/AlphaUBoxOutline.svg +3 -0
  572. package/client/static/icons/AlphaUCircle.svg +3 -0
  573. package/client/static/icons/AlphaUCircleOutline.svg +3 -0
  574. package/client/static/icons/AlphaV.svg +3 -0
  575. package/client/static/icons/AlphaVBox.svg +3 -0
  576. package/client/static/icons/AlphaVBoxOutline.svg +3 -0
  577. package/client/static/icons/AlphaVCircle.svg +3 -0
  578. package/client/static/icons/AlphaVCircleOutline.svg +3 -0
  579. package/client/static/icons/AlphaW.svg +3 -0
  580. package/client/static/icons/AlphaWBox.svg +3 -0
  581. package/client/static/icons/AlphaWBoxOutline.svg +3 -0
  582. package/client/static/icons/AlphaWCircle.svg +3 -0
  583. package/client/static/icons/AlphaWCircleOutline.svg +3 -0
  584. package/client/static/icons/AlphaX.svg +3 -0
  585. package/client/static/icons/AlphaXBox.svg +3 -0
  586. package/client/static/icons/AlphaXBoxOutline.svg +3 -0
  587. package/client/static/icons/AlphaXCircle.svg +3 -0
  588. package/client/static/icons/AlphaXCircleOutline.svg +3 -0
  589. package/client/static/icons/AlphaY.svg +3 -0
  590. package/client/static/icons/AlphaYBox.svg +3 -0
  591. package/client/static/icons/AlphaYBoxOutline.svg +3 -0
  592. package/client/static/icons/AlphaYCircle.svg +3 -0
  593. package/client/static/icons/AlphaYCircleOutline.svg +3 -0
  594. package/client/static/icons/AlphaZ.svg +3 -0
  595. package/client/static/icons/AlphaZBox.svg +3 -0
  596. package/client/static/icons/AlphaZBoxOutline.svg +3 -0
  597. package/client/static/icons/AlphaZCircle.svg +3 -0
  598. package/client/static/icons/AlphaZCircleOutline.svg +3 -0
  599. package/client/static/icons/AlphabetAurebesh.svg +3 -0
  600. package/client/static/icons/AlphabetCyrillic.svg +3 -0
  601. package/client/static/icons/AlphabetGreek.svg +3 -0
  602. package/client/static/icons/AlphabetLatin.svg +3 -0
  603. package/client/static/icons/AlphabetPiqad.svg +3 -0
  604. package/client/static/icons/AlphabetTengwar.svg +3 -0
  605. package/client/static/icons/Alphabetical.svg +3 -0
  606. package/client/static/icons/AlphabeticalOff.svg +3 -0
  607. package/client/static/icons/AlphabeticalVariant.svg +3 -0
  608. package/client/static/icons/AlphabeticalVariantOff.svg +3 -0
  609. package/client/static/icons/Altimeter.svg +3 -0
  610. package/client/static/icons/Ambulance.svg +3 -0
  611. package/client/static/icons/Ammunition.svg +3 -0
  612. package/client/static/icons/Ampersand.svg +3 -0
  613. package/client/static/icons/Amplifier.svg +3 -0
  614. package/client/static/icons/AmplifierOff.svg +3 -0
  615. package/client/static/icons/Anchor.svg +3 -0
  616. package/client/static/icons/Android.svg +3 -0
  617. package/client/static/icons/AndroidStudio.svg +3 -0
  618. package/client/static/icons/AngleAcute.svg +3 -0
  619. package/client/static/icons/AngleObtuse.svg +3 -0
  620. package/client/static/icons/AngleRight.svg +3 -0
  621. package/client/static/icons/Angular.svg +3 -0
  622. package/client/static/icons/Angularjs.svg +3 -0
  623. package/client/static/icons/Animation.svg +3 -0
  624. package/client/static/icons/AnimationOutline.svg +3 -0
  625. package/client/static/icons/AnimationPlay.svg +3 -0
  626. package/client/static/icons/AnimationPlayOutline.svg +3 -0
  627. package/client/static/icons/Ansible.svg +3 -0
  628. package/client/static/icons/Antenna.svg +3 -0
  629. package/client/static/icons/Anvil.svg +3 -0
  630. package/client/static/icons/ApacheKafka.svg +3 -0
  631. package/client/static/icons/Api.svg +3 -0
  632. package/client/static/icons/ApiOff.svg +3 -0
  633. package/client/static/icons/Apple.svg +3 -0
  634. package/client/static/icons/AppleFinder.svg +3 -0
  635. package/client/static/icons/AppleIcloud.svg +3 -0
  636. package/client/static/icons/AppleIos.svg +3 -0
  637. package/client/static/icons/AppleKeyboardCaps.svg +3 -0
  638. package/client/static/icons/AppleKeyboardCommand.svg +3 -0
  639. package/client/static/icons/AppleKeyboardControl.svg +3 -0
  640. package/client/static/icons/AppleKeyboardOption.svg +3 -0
  641. package/client/static/icons/AppleKeyboardShift.svg +3 -0
  642. package/client/static/icons/AppleSafari.svg +3 -0
  643. package/client/static/icons/Application.svg +3 -0
  644. package/client/static/icons/ApplicationArray.svg +3 -0
  645. package/client/static/icons/ApplicationArrayOutline.svg +3 -0
  646. package/client/static/icons/ApplicationBraces.svg +3 -0
  647. package/client/static/icons/ApplicationBracesOutline.svg +3 -0
  648. package/client/static/icons/ApplicationBrackets.svg +3 -0
  649. package/client/static/icons/ApplicationBracketsOutline.svg +3 -0
  650. package/client/static/icons/ApplicationCog.svg +3 -0
  651. package/client/static/icons/ApplicationCogOutline.svg +3 -0
  652. package/client/static/icons/ApplicationEdit.svg +3 -0
  653. package/client/static/icons/ApplicationEditOutline.svg +3 -0
  654. package/client/static/icons/ApplicationExport.svg +3 -0
  655. package/client/static/icons/ApplicationImport.svg +3 -0
  656. package/client/static/icons/ApplicationOutline.svg +3 -0
  657. package/client/static/icons/ApplicationParentheses.svg +3 -0
  658. package/client/static/icons/ApplicationParenthesesOutline.svg +3 -0
  659. package/client/static/icons/ApplicationSettings.svg +3 -0
  660. package/client/static/icons/ApplicationSettingsOutline.svg +3 -0
  661. package/client/static/icons/ApplicationVariable.svg +3 -0
  662. package/client/static/icons/ApplicationVariableOutline.svg +3 -0
  663. package/client/static/icons/ApproximatelyEqual.svg +3 -0
  664. package/client/static/icons/ApproximatelyEqualBox.svg +3 -0
  665. package/client/static/icons/Apps.svg +3 -0
  666. package/client/static/icons/AppsBox.svg +3 -0
  667. package/client/static/icons/Arch.svg +3 -0
  668. package/client/static/icons/Archive.svg +3 -0
  669. package/client/static/icons/ArchiveAlert.svg +3 -0
  670. package/client/static/icons/ArchiveAlertOutline.svg +3 -0
  671. package/client/static/icons/ArchiveArrowDown.svg +3 -0
  672. package/client/static/icons/ArchiveArrowDownOutline.svg +3 -0
  673. package/client/static/icons/ArchiveArrowUp.svg +3 -0
  674. package/client/static/icons/ArchiveArrowUpOutline.svg +3 -0
  675. package/client/static/icons/ArchiveCancel.svg +3 -0
  676. package/client/static/icons/ArchiveCancelOutline.svg +3 -0
  677. package/client/static/icons/ArchiveCheck.svg +3 -0
  678. package/client/static/icons/ArchiveCheckOutline.svg +3 -0
  679. package/client/static/icons/ArchiveClock.svg +3 -0
  680. package/client/static/icons/ArchiveClockOutline.svg +3 -0
  681. package/client/static/icons/ArchiveCog.svg +3 -0
  682. package/client/static/icons/ArchiveCogOutline.svg +3 -0
  683. package/client/static/icons/ArchiveEdit.svg +3 -0
  684. package/client/static/icons/ArchiveEditOutline.svg +3 -0
  685. package/client/static/icons/ArchiveEye.svg +3 -0
  686. package/client/static/icons/ArchiveEyeOutline.svg +3 -0
  687. package/client/static/icons/ArchiveLock.svg +3 -0
  688. package/client/static/icons/ArchiveLockOpen.svg +3 -0
  689. package/client/static/icons/ArchiveLockOpenOutline.svg +3 -0
  690. package/client/static/icons/ArchiveLockOutline.svg +3 -0
  691. package/client/static/icons/ArchiveMarker.svg +3 -0
  692. package/client/static/icons/ArchiveMarkerOutline.svg +3 -0
  693. package/client/static/icons/ArchiveMinus.svg +3 -0
  694. package/client/static/icons/ArchiveMinusOutline.svg +3 -0
  695. package/client/static/icons/ArchiveMusic.svg +3 -0
  696. package/client/static/icons/ArchiveMusicOutline.svg +3 -0
  697. package/client/static/icons/ArchiveOff.svg +3 -0
  698. package/client/static/icons/ArchiveOffOutline.svg +3 -0
  699. package/client/static/icons/ArchiveOutline.svg +3 -0
  700. package/client/static/icons/ArchivePlus.svg +3 -0
  701. package/client/static/icons/ArchivePlusOutline.svg +3 -0
  702. package/client/static/icons/ArchiveRefresh.svg +3 -0
  703. package/client/static/icons/ArchiveRefreshOutline.svg +3 -0
  704. package/client/static/icons/ArchiveRemove.svg +3 -0
  705. package/client/static/icons/ArchiveRemoveOutline.svg +3 -0
  706. package/client/static/icons/ArchiveSearch.svg +3 -0
  707. package/client/static/icons/ArchiveSearchOutline.svg +3 -0
  708. package/client/static/icons/ArchiveSettings.svg +3 -0
  709. package/client/static/icons/ArchiveSettingsOutline.svg +3 -0
  710. package/client/static/icons/ArchiveStar.svg +3 -0
  711. package/client/static/icons/ArchiveStarOutline.svg +3 -0
  712. package/client/static/icons/ArchiveSync.svg +3 -0
  713. package/client/static/icons/ArchiveSyncOutline.svg +3 -0
  714. package/client/static/icons/ArmFlex.svg +3 -0
  715. package/client/static/icons/ArmFlexOutline.svg +3 -0
  716. package/client/static/icons/ArrangeBringForward.svg +3 -0
  717. package/client/static/icons/ArrangeBringToFront.svg +3 -0
  718. package/client/static/icons/ArrangeSendBackward.svg +3 -0
  719. package/client/static/icons/ArrangeSendToBack.svg +3 -0
  720. package/client/static/icons/ArrowAll.svg +3 -0
  721. package/client/static/icons/ArrowBottomLeft.svg +3 -0
  722. package/client/static/icons/ArrowBottomLeftBoldBox.svg +3 -0
  723. package/client/static/icons/ArrowBottomLeftBoldBoxOutline.svg +3 -0
  724. package/client/static/icons/ArrowBottomLeftBoldOutline.svg +3 -0
  725. package/client/static/icons/ArrowBottomLeftThick.svg +3 -0
  726. package/client/static/icons/ArrowBottomLeftThin.svg +3 -0
  727. package/client/static/icons/ArrowBottomLeftThinCircleOutline.svg +3 -0
  728. package/client/static/icons/ArrowBottomRight.svg +3 -0
  729. package/client/static/icons/ArrowBottomRightBoldBox.svg +3 -0
  730. package/client/static/icons/ArrowBottomRightBoldBoxOutline.svg +3 -0
  731. package/client/static/icons/ArrowBottomRightBoldOutline.svg +3 -0
  732. package/client/static/icons/ArrowBottomRightThick.svg +3 -0
  733. package/client/static/icons/ArrowBottomRightThin.svg +3 -0
  734. package/client/static/icons/ArrowBottomRightThinCircleOutline.svg +3 -0
  735. package/client/static/icons/ArrowCollapse.svg +3 -0
  736. package/client/static/icons/ArrowCollapseAll.svg +3 -0
  737. package/client/static/icons/ArrowCollapseDown.svg +3 -0
  738. package/client/static/icons/ArrowCollapseHorizontal.svg +3 -0
  739. package/client/static/icons/ArrowCollapseLeft.svg +3 -0
  740. package/client/static/icons/ArrowCollapseRight.svg +3 -0
  741. package/client/static/icons/ArrowCollapseUp.svg +3 -0
  742. package/client/static/icons/ArrowCollapseVertical.svg +3 -0
  743. package/client/static/icons/ArrowDecision.svg +3 -0
  744. package/client/static/icons/ArrowDecisionAuto.svg +3 -0
  745. package/client/static/icons/ArrowDecisionAutoOutline.svg +3 -0
  746. package/client/static/icons/ArrowDecisionOutline.svg +3 -0
  747. package/client/static/icons/ArrowDown.svg +3 -0
  748. package/client/static/icons/ArrowDownBold.svg +3 -0
  749. package/client/static/icons/ArrowDownBoldBox.svg +3 -0
  750. package/client/static/icons/ArrowDownBoldBoxOutline.svg +3 -0
  751. package/client/static/icons/ArrowDownBoldCircle.svg +3 -0
  752. package/client/static/icons/ArrowDownBoldCircleOutline.svg +3 -0
  753. package/client/static/icons/ArrowDownBoldHexagonOutline.svg +3 -0
  754. package/client/static/icons/ArrowDownBoldOutline.svg +3 -0
  755. package/client/static/icons/ArrowDownBox.svg +3 -0
  756. package/client/static/icons/ArrowDownCircle.svg +3 -0
  757. package/client/static/icons/ArrowDownCircleOutline.svg +3 -0
  758. package/client/static/icons/ArrowDownDropCircle.svg +3 -0
  759. package/client/static/icons/ArrowDownDropCircleOutline.svg +3 -0
  760. package/client/static/icons/ArrowDownLeft.svg +3 -0
  761. package/client/static/icons/ArrowDownLeftBold.svg +3 -0
  762. package/client/static/icons/ArrowDownRight.svg +3 -0
  763. package/client/static/icons/ArrowDownRightBold.svg +3 -0
  764. package/client/static/icons/ArrowDownThick.svg +3 -0
  765. package/client/static/icons/ArrowDownThin.svg +3 -0
  766. package/client/static/icons/ArrowDownThinCircleOutline.svg +3 -0
  767. package/client/static/icons/ArrowExpand.svg +3 -0
  768. package/client/static/icons/ArrowExpandAll.svg +3 -0
  769. package/client/static/icons/ArrowExpandDown.svg +3 -0
  770. package/client/static/icons/ArrowExpandHorizontal.svg +3 -0
  771. package/client/static/icons/ArrowExpandLeft.svg +3 -0
  772. package/client/static/icons/ArrowExpandRight.svg +3 -0
  773. package/client/static/icons/ArrowExpandUp.svg +3 -0
  774. package/client/static/icons/ArrowExpandVertical.svg +3 -0
  775. package/client/static/icons/ArrowHorizontalLock.svg +3 -0
  776. package/client/static/icons/ArrowLeft.svg +3 -0
  777. package/client/static/icons/ArrowLeftBold.svg +3 -0
  778. package/client/static/icons/ArrowLeftBoldBox.svg +3 -0
  779. package/client/static/icons/ArrowLeftBoldBoxOutline.svg +3 -0
  780. package/client/static/icons/ArrowLeftBoldCircle.svg +3 -0
  781. package/client/static/icons/ArrowLeftBoldCircleOutline.svg +3 -0
  782. package/client/static/icons/ArrowLeftBoldHexagonOutline.svg +3 -0
  783. package/client/static/icons/ArrowLeftBoldOutline.svg +3 -0
  784. package/client/static/icons/ArrowLeftBottom.svg +3 -0
  785. package/client/static/icons/ArrowLeftBottomBold.svg +3 -0
  786. package/client/static/icons/ArrowLeftBox.svg +3 -0
  787. package/client/static/icons/ArrowLeftCircle.svg +3 -0
  788. package/client/static/icons/ArrowLeftCircleOutline.svg +3 -0
  789. package/client/static/icons/ArrowLeftDropCircle.svg +3 -0
  790. package/client/static/icons/ArrowLeftDropCircleOutline.svg +3 -0
  791. package/client/static/icons/ArrowLeftRight.svg +3 -0
  792. package/client/static/icons/ArrowLeftRightBold.svg +3 -0
  793. package/client/static/icons/ArrowLeftRightBoldOutline.svg +3 -0
  794. package/client/static/icons/ArrowLeftThick.svg +3 -0
  795. package/client/static/icons/ArrowLeftThin.svg +3 -0
  796. package/client/static/icons/ArrowLeftThinCircleOutline.svg +3 -0
  797. package/client/static/icons/ArrowLeftTop.svg +3 -0
  798. package/client/static/icons/ArrowLeftTopBold.svg +3 -0
  799. package/client/static/icons/ArrowOscillating.svg +3 -0
  800. package/client/static/icons/ArrowOscillatingOff.svg +3 -0
  801. package/client/static/icons/ArrowProjectile.svg +3 -0
  802. package/client/static/icons/ArrowProjectileMultiple.svg +3 -0
  803. package/client/static/icons/ArrowRight.svg +3 -0
  804. package/client/static/icons/ArrowRightBold.svg +3 -0
  805. package/client/static/icons/ArrowRightBoldBox.svg +3 -0
  806. package/client/static/icons/ArrowRightBoldBoxOutline.svg +3 -0
  807. package/client/static/icons/ArrowRightBoldCircle.svg +3 -0
  808. package/client/static/icons/ArrowRightBoldCircleOutline.svg +3 -0
  809. package/client/static/icons/ArrowRightBoldHexagonOutline.svg +3 -0
  810. package/client/static/icons/ArrowRightBoldOutline.svg +3 -0
  811. package/client/static/icons/ArrowRightBottom.svg +3 -0
  812. package/client/static/icons/ArrowRightBottomBold.svg +3 -0
  813. package/client/static/icons/ArrowRightBox.svg +3 -0
  814. package/client/static/icons/ArrowRightCircle.svg +3 -0
  815. package/client/static/icons/ArrowRightCircleOutline.svg +3 -0
  816. package/client/static/icons/ArrowRightDropCircle.svg +3 -0
  817. package/client/static/icons/ArrowRightDropCircleOutline.svg +3 -0
  818. package/client/static/icons/ArrowRightThick.svg +3 -0
  819. package/client/static/icons/ArrowRightThin.svg +3 -0
  820. package/client/static/icons/ArrowRightThinCircleOutline.svg +3 -0
  821. package/client/static/icons/ArrowRightTop.svg +3 -0
  822. package/client/static/icons/ArrowRightTopBold.svg +3 -0
  823. package/client/static/icons/ArrowSplitHorizontal.svg +3 -0
  824. package/client/static/icons/ArrowSplitVertical.svg +3 -0
  825. package/client/static/icons/ArrowTopLeft.svg +3 -0
  826. package/client/static/icons/ArrowTopLeftBoldBox.svg +3 -0
  827. package/client/static/icons/ArrowTopLeftBoldBoxOutline.svg +3 -0
  828. package/client/static/icons/ArrowTopLeftBoldOutline.svg +3 -0
  829. package/client/static/icons/ArrowTopLeftBottomRight.svg +3 -0
  830. package/client/static/icons/ArrowTopLeftBottomRightBold.svg +3 -0
  831. package/client/static/icons/ArrowTopLeftThick.svg +3 -0
  832. package/client/static/icons/ArrowTopLeftThin.svg +3 -0
  833. package/client/static/icons/ArrowTopLeftThinCircleOutline.svg +3 -0
  834. package/client/static/icons/ArrowTopRight.svg +3 -0
  835. package/client/static/icons/ArrowTopRightBoldBox.svg +3 -0
  836. package/client/static/icons/ArrowTopRightBoldBoxOutline.svg +3 -0
  837. package/client/static/icons/ArrowTopRightBoldOutline.svg +3 -0
  838. package/client/static/icons/ArrowTopRightBottomLeft.svg +3 -0
  839. package/client/static/icons/ArrowTopRightBottomLeftBold.svg +3 -0
  840. package/client/static/icons/ArrowTopRightThick.svg +3 -0
  841. package/client/static/icons/ArrowTopRightThin.svg +3 -0
  842. package/client/static/icons/ArrowTopRightThinCircleOutline.svg +3 -0
  843. package/client/static/icons/ArrowUDownLeft.svg +3 -0
  844. package/client/static/icons/ArrowUDownLeftBold.svg +3 -0
  845. package/client/static/icons/ArrowUDownRight.svg +3 -0
  846. package/client/static/icons/ArrowUDownRightBold.svg +3 -0
  847. package/client/static/icons/ArrowULeftBottom.svg +3 -0
  848. package/client/static/icons/ArrowULeftBottomBold.svg +3 -0
  849. package/client/static/icons/ArrowULeftTop.svg +3 -0
  850. package/client/static/icons/ArrowULeftTopBold.svg +3 -0
  851. package/client/static/icons/ArrowURightBottom.svg +3 -0
  852. package/client/static/icons/ArrowURightBottomBold.svg +3 -0
  853. package/client/static/icons/ArrowURightTop.svg +3 -0
  854. package/client/static/icons/ArrowURightTopBold.svg +3 -0
  855. package/client/static/icons/ArrowUUpLeft.svg +3 -0
  856. package/client/static/icons/ArrowUUpLeftBold.svg +3 -0
  857. package/client/static/icons/ArrowUUpRight.svg +3 -0
  858. package/client/static/icons/ArrowUUpRightBold.svg +3 -0
  859. package/client/static/icons/ArrowUp.svg +3 -0
  860. package/client/static/icons/ArrowUpBold.svg +3 -0
  861. package/client/static/icons/ArrowUpBoldBox.svg +3 -0
  862. package/client/static/icons/ArrowUpBoldBoxOutline.svg +3 -0
  863. package/client/static/icons/ArrowUpBoldCircle.svg +3 -0
  864. package/client/static/icons/ArrowUpBoldCircleOutline.svg +3 -0
  865. package/client/static/icons/ArrowUpBoldHexagonOutline.svg +3 -0
  866. package/client/static/icons/ArrowUpBoldOutline.svg +3 -0
  867. package/client/static/icons/ArrowUpBox.svg +3 -0
  868. package/client/static/icons/ArrowUpCircle.svg +3 -0
  869. package/client/static/icons/ArrowUpCircleOutline.svg +3 -0
  870. package/client/static/icons/ArrowUpDown.svg +3 -0
  871. package/client/static/icons/ArrowUpDownBold.svg +3 -0
  872. package/client/static/icons/ArrowUpDownBoldOutline.svg +3 -0
  873. package/client/static/icons/ArrowUpDropCircle.svg +3 -0
  874. package/client/static/icons/ArrowUpDropCircleOutline.svg +3 -0
  875. package/client/static/icons/ArrowUpLeft.svg +3 -0
  876. package/client/static/icons/ArrowUpLeftBold.svg +3 -0
  877. package/client/static/icons/ArrowUpRight.svg +3 -0
  878. package/client/static/icons/ArrowUpRightBold.svg +3 -0
  879. package/client/static/icons/ArrowUpThick.svg +3 -0
  880. package/client/static/icons/ArrowUpThin.svg +3 -0
  881. package/client/static/icons/ArrowUpThinCircleOutline.svg +3 -0
  882. package/client/static/icons/ArrowVerticalLock.svg +3 -0
  883. package/client/static/icons/Artboard.svg +3 -0
  884. package/client/static/icons/Artstation.svg +3 -0
  885. package/client/static/icons/AspectRatio.svg +3 -0
  886. package/client/static/icons/Assistant.svg +3 -0
  887. package/client/static/icons/Asterisk.svg +3 -0
  888. package/client/static/icons/AsteriskCircleOutline.svg +3 -0
  889. package/client/static/icons/At.svg +3 -0
  890. package/client/static/icons/Atlassian.svg +3 -0
  891. package/client/static/icons/Atm.svg +3 -0
  892. package/client/static/icons/Atom.svg +3 -0
  893. package/client/static/icons/AtomVariant.svg +3 -0
  894. package/client/static/icons/Attachment.svg +3 -0
  895. package/client/static/icons/AttachmentCheck.svg +3 -0
  896. package/client/static/icons/AttachmentLock.svg +3 -0
  897. package/client/static/icons/AttachmentMinus.svg +3 -0
  898. package/client/static/icons/AttachmentOff.svg +3 -0
  899. package/client/static/icons/AttachmentPlus.svg +3 -0
  900. package/client/static/icons/AttachmentRemove.svg +3 -0
  901. package/client/static/icons/Atv.svg +3 -0
  902. package/client/static/icons/AudioInputRca.svg +3 -0
  903. package/client/static/icons/AudioInputStereoMinijack.svg +3 -0
  904. package/client/static/icons/AudioInputXlr.svg +3 -0
  905. package/client/static/icons/AudioVideo.svg +3 -0
  906. package/client/static/icons/AudioVideoOff.svg +3 -0
  907. package/client/static/icons/AugmentedReality.svg +3 -0
  908. package/client/static/icons/Aurora.svg +3 -0
  909. package/client/static/icons/AutoDownload.svg +3 -0
  910. package/client/static/icons/AutoFix.svg +3 -0
  911. package/client/static/icons/AutoMode.svg +3 -0
  912. package/client/static/icons/AutoUpload.svg +3 -0
  913. package/client/static/icons/Autorenew.svg +3 -0
  914. package/client/static/icons/AutorenewOff.svg +3 -0
  915. package/client/static/icons/AvTimer.svg +3 -0
  916. package/client/static/icons/Awning.svg +3 -0
  917. package/client/static/icons/AwningOutline.svg +3 -0
  918. package/client/static/icons/Aws.svg +3 -0
  919. package/client/static/icons/Axe.svg +3 -0
  920. package/client/static/icons/AxeBattle.svg +3 -0
  921. package/client/static/icons/Axis.svg +3 -0
  922. package/client/static/icons/AxisArrow.svg +3 -0
  923. package/client/static/icons/AxisArrowInfo.svg +3 -0
  924. package/client/static/icons/AxisArrowLock.svg +3 -0
  925. package/client/static/icons/AxisLock.svg +3 -0
  926. package/client/static/icons/AxisXArrow.svg +3 -0
  927. package/client/static/icons/AxisXArrowLock.svg +3 -0
  928. package/client/static/icons/AxisXRotateClockwise.svg +3 -0
  929. package/client/static/icons/AxisXRotateCounterclockwise.svg +3 -0
  930. package/client/static/icons/AxisXYArrowLock.svg +3 -0
  931. package/client/static/icons/AxisYArrow.svg +3 -0
  932. package/client/static/icons/AxisYArrowLock.svg +3 -0
  933. package/client/static/icons/AxisYRotateClockwise.svg +3 -0
  934. package/client/static/icons/AxisYRotateCounterclockwise.svg +3 -0
  935. package/client/static/icons/AxisZArrow.svg +3 -0
  936. package/client/static/icons/AxisZArrowLock.svg +3 -0
  937. package/client/static/icons/AxisZRotateClockwise.svg +3 -0
  938. package/client/static/icons/AxisZRotateCounterclockwise.svg +3 -0
  939. package/client/static/icons/Babel.svg +3 -0
  940. package/client/static/icons/Baby.svg +3 -0
  941. package/client/static/icons/BabyBottle.svg +3 -0
  942. package/client/static/icons/BabyBottleOutline.svg +3 -0
  943. package/client/static/icons/BabyBuggy.svg +3 -0
  944. package/client/static/icons/BabyBuggyOff.svg +3 -0
  945. package/client/static/icons/BabyCarriage.svg +3 -0
  946. package/client/static/icons/BabyCarriageOff.svg +3 -0
  947. package/client/static/icons/BabyFace.svg +3 -0
  948. package/client/static/icons/BabyFaceOutline.svg +3 -0
  949. package/client/static/icons/Backburger.svg +3 -0
  950. package/client/static/icons/Backspace.svg +3 -0
  951. package/client/static/icons/BackspaceOutline.svg +3 -0
  952. package/client/static/icons/BackspaceReverse.svg +3 -0
  953. package/client/static/icons/BackspaceReverseOutline.svg +3 -0
  954. package/client/static/icons/BackupRestore.svg +3 -0
  955. package/client/static/icons/Bacteria.svg +3 -0
  956. package/client/static/icons/BacteriaOutline.svg +3 -0
  957. package/client/static/icons/BadgeAccount.svg +3 -0
  958. package/client/static/icons/BadgeAccountAlert.svg +3 -0
  959. package/client/static/icons/BadgeAccountAlertOutline.svg +3 -0
  960. package/client/static/icons/BadgeAccountHorizontal.svg +3 -0
  961. package/client/static/icons/BadgeAccountHorizontalOutline.svg +3 -0
  962. package/client/static/icons/BadgeAccountOutline.svg +3 -0
  963. package/client/static/icons/Badminton.svg +3 -0
  964. package/client/static/icons/BagCarryOn.svg +3 -0
  965. package/client/static/icons/BagCarryOnCheck.svg +3 -0
  966. package/client/static/icons/BagCarryOnOff.svg +3 -0
  967. package/client/static/icons/BagChecked.svg +3 -0
  968. package/client/static/icons/BagPersonal.svg +3 -0
  969. package/client/static/icons/BagPersonalOff.svg +3 -0
  970. package/client/static/icons/BagPersonalOffOutline.svg +3 -0
  971. package/client/static/icons/BagPersonalOutline.svg +3 -0
  972. package/client/static/icons/BagPersonalPlus.svg +3 -0
  973. package/client/static/icons/BagPersonalPlusOutline.svg +3 -0
  974. package/client/static/icons/BagPersonalTag.svg +3 -0
  975. package/client/static/icons/BagPersonalTagOutline.svg +3 -0
  976. package/client/static/icons/BagSuitcase.svg +3 -0
  977. package/client/static/icons/BagSuitcaseOff.svg +3 -0
  978. package/client/static/icons/BagSuitcaseOffOutline.svg +3 -0
  979. package/client/static/icons/BagSuitcaseOutline.svg +3 -0
  980. package/client/static/icons/Baguette.svg +3 -0
  981. package/client/static/icons/Balcony.svg +3 -0
  982. package/client/static/icons/Balloon.svg +3 -0
  983. package/client/static/icons/Ballot.svg +3 -0
  984. package/client/static/icons/BallotOutline.svg +3 -0
  985. package/client/static/icons/BallotRecount.svg +3 -0
  986. package/client/static/icons/BallotRecountOutline.svg +3 -0
  987. package/client/static/icons/Bandage.svg +3 -0
  988. package/client/static/icons/Bank.svg +3 -0
  989. package/client/static/icons/BankCheck.svg +3 -0
  990. package/client/static/icons/BankCircle.svg +3 -0
  991. package/client/static/icons/BankCircleOutline.svg +3 -0
  992. package/client/static/icons/BankMinus.svg +3 -0
  993. package/client/static/icons/BankOff.svg +3 -0
  994. package/client/static/icons/BankOffOutline.svg +3 -0
  995. package/client/static/icons/BankOutline.svg +3 -0
  996. package/client/static/icons/BankPlus.svg +3 -0
  997. package/client/static/icons/BankRemove.svg +3 -0
  998. package/client/static/icons/BankTransfer.svg +3 -0
  999. package/client/static/icons/BankTransferIn.svg +3 -0
  1000. package/client/static/icons/BankTransferOut.svg +3 -0
  1001. package/client/static/icons/Barcode.svg +3 -0
  1002. package/client/static/icons/BarcodeOff.svg +3 -0
  1003. package/client/static/icons/BarcodeScan.svg +3 -0
  1004. package/client/static/icons/Barley.svg +3 -0
  1005. package/client/static/icons/BarleyOff.svg +3 -0
  1006. package/client/static/icons/Barn.svg +3 -0
  1007. package/client/static/icons/Barrel.svg +3 -0
  1008. package/client/static/icons/BarrelOutline.svg +3 -0
  1009. package/client/static/icons/Baseball.svg +3 -0
  1010. package/client/static/icons/BaseballBat.svg +3 -0
  1011. package/client/static/icons/BaseballDiamond.svg +3 -0
  1012. package/client/static/icons/BaseballDiamondOutline.svg +3 -0
  1013. package/client/static/icons/BaseballOutline.svg +3 -0
  1014. package/client/static/icons/Bash.svg +3 -0
  1015. package/client/static/icons/Basket.svg +3 -0
  1016. package/client/static/icons/BasketCheck.svg +3 -0
  1017. package/client/static/icons/BasketCheckOutline.svg +3 -0
  1018. package/client/static/icons/BasketFill.svg +3 -0
  1019. package/client/static/icons/BasketMinus.svg +3 -0
  1020. package/client/static/icons/BasketMinusOutline.svg +3 -0
  1021. package/client/static/icons/BasketOff.svg +3 -0
  1022. package/client/static/icons/BasketOffOutline.svg +3 -0
  1023. package/client/static/icons/BasketOutline.svg +3 -0
  1024. package/client/static/icons/BasketPlus.svg +3 -0
  1025. package/client/static/icons/BasketPlusOutline.svg +3 -0
  1026. package/client/static/icons/BasketRemove.svg +3 -0
  1027. package/client/static/icons/BasketRemoveOutline.svg +3 -0
  1028. package/client/static/icons/BasketUnfill.svg +3 -0
  1029. package/client/static/icons/Basketball.svg +3 -0
  1030. package/client/static/icons/BasketballHoop.svg +3 -0
  1031. package/client/static/icons/BasketballHoopOutline.svg +3 -0
  1032. package/client/static/icons/Bat.svg +3 -0
  1033. package/client/static/icons/Bathtub.svg +3 -0
  1034. package/client/static/icons/BathtubOutline.svg +3 -0
  1035. package/client/static/icons/Battery.svg +3 -0
  1036. package/client/static/icons/Battery10.svg +3 -0
  1037. package/client/static/icons/Battery10Bluetooth.svg +3 -0
  1038. package/client/static/icons/Battery20.svg +3 -0
  1039. package/client/static/icons/Battery20Bluetooth.svg +3 -0
  1040. package/client/static/icons/Battery30.svg +3 -0
  1041. package/client/static/icons/Battery30Bluetooth.svg +3 -0
  1042. package/client/static/icons/Battery40.svg +3 -0
  1043. package/client/static/icons/Battery40Bluetooth.svg +3 -0
  1044. package/client/static/icons/Battery50.svg +3 -0
  1045. package/client/static/icons/Battery50Bluetooth.svg +3 -0
  1046. package/client/static/icons/Battery60.svg +3 -0
  1047. package/client/static/icons/Battery60Bluetooth.svg +3 -0
  1048. package/client/static/icons/Battery70.svg +3 -0
  1049. package/client/static/icons/Battery70Bluetooth.svg +3 -0
  1050. package/client/static/icons/Battery80.svg +3 -0
  1051. package/client/static/icons/Battery80Bluetooth.svg +3 -0
  1052. package/client/static/icons/Battery90.svg +3 -0
  1053. package/client/static/icons/Battery90Bluetooth.svg +3 -0
  1054. package/client/static/icons/BatteryAlert.svg +3 -0
  1055. package/client/static/icons/BatteryAlertBluetooth.svg +3 -0
  1056. package/client/static/icons/BatteryAlertVariant.svg +3 -0
  1057. package/client/static/icons/BatteryAlertVariantOutline.svg +3 -0
  1058. package/client/static/icons/BatteryArrowDown.svg +3 -0
  1059. package/client/static/icons/BatteryArrowDownOutline.svg +3 -0
  1060. package/client/static/icons/BatteryArrowUp.svg +3 -0
  1061. package/client/static/icons/BatteryArrowUpOutline.svg +3 -0
  1062. package/client/static/icons/BatteryBluetooth.svg +3 -0
  1063. package/client/static/icons/BatteryBluetoothVariant.svg +3 -0
  1064. package/client/static/icons/BatteryCharging.svg +3 -0
  1065. package/client/static/icons/BatteryCharging10.svg +3 -0
  1066. package/client/static/icons/BatteryCharging100.svg +3 -0
  1067. package/client/static/icons/BatteryCharging20.svg +3 -0
  1068. package/client/static/icons/BatteryCharging30.svg +3 -0
  1069. package/client/static/icons/BatteryCharging40.svg +3 -0
  1070. package/client/static/icons/BatteryCharging50.svg +3 -0
  1071. package/client/static/icons/BatteryCharging60.svg +3 -0
  1072. package/client/static/icons/BatteryCharging70.svg +3 -0
  1073. package/client/static/icons/BatteryCharging80.svg +3 -0
  1074. package/client/static/icons/BatteryCharging90.svg +3 -0
  1075. package/client/static/icons/BatteryChargingHigh.svg +3 -0
  1076. package/client/static/icons/BatteryChargingLow.svg +3 -0
  1077. package/client/static/icons/BatteryChargingMedium.svg +3 -0
  1078. package/client/static/icons/BatteryChargingOutline.svg +3 -0
  1079. package/client/static/icons/BatteryChargingWireless.svg +3 -0
  1080. package/client/static/icons/BatteryChargingWireless10.svg +3 -0
  1081. package/client/static/icons/BatteryChargingWireless20.svg +3 -0
  1082. package/client/static/icons/BatteryChargingWireless30.svg +3 -0
  1083. package/client/static/icons/BatteryChargingWireless40.svg +3 -0
  1084. package/client/static/icons/BatteryChargingWireless50.svg +3 -0
  1085. package/client/static/icons/BatteryChargingWireless60.svg +3 -0
  1086. package/client/static/icons/BatteryChargingWireless70.svg +3 -0
  1087. package/client/static/icons/BatteryChargingWireless80.svg +3 -0
  1088. package/client/static/icons/BatteryChargingWireless90.svg +3 -0
  1089. package/client/static/icons/BatteryChargingWirelessAlert.svg +3 -0
  1090. package/client/static/icons/BatteryChargingWirelessOutline.svg +3 -0
  1091. package/client/static/icons/BatteryCheck.svg +3 -0
  1092. package/client/static/icons/BatteryCheckOutline.svg +3 -0
  1093. package/client/static/icons/BatteryClock.svg +3 -0
  1094. package/client/static/icons/BatteryClockOutline.svg +3 -0
  1095. package/client/static/icons/BatteryHeart.svg +3 -0
  1096. package/client/static/icons/BatteryHeartOutline.svg +3 -0
  1097. package/client/static/icons/BatteryHeartVariant.svg +3 -0
  1098. package/client/static/icons/BatteryHigh.svg +3 -0
  1099. package/client/static/icons/BatteryLock.svg +3 -0
  1100. package/client/static/icons/BatteryLockOpen.svg +3 -0
  1101. package/client/static/icons/BatteryLow.svg +3 -0
  1102. package/client/static/icons/BatteryMedium.svg +3 -0
  1103. package/client/static/icons/BatteryMinus.svg +3 -0
  1104. package/client/static/icons/BatteryMinusOutline.svg +3 -0
  1105. package/client/static/icons/BatteryMinusVariant.svg +3 -0
  1106. package/client/static/icons/BatteryNegative.svg +3 -0
  1107. package/client/static/icons/BatteryOff.svg +3 -0
  1108. package/client/static/icons/BatteryOffOutline.svg +3 -0
  1109. package/client/static/icons/BatteryOutline.svg +3 -0
  1110. package/client/static/icons/BatteryPlus.svg +3 -0
  1111. package/client/static/icons/BatteryPlusOutline.svg +3 -0
  1112. package/client/static/icons/BatteryPlusVariant.svg +3 -0
  1113. package/client/static/icons/BatteryPositive.svg +3 -0
  1114. package/client/static/icons/BatteryRemove.svg +3 -0
  1115. package/client/static/icons/BatteryRemoveOutline.svg +3 -0
  1116. package/client/static/icons/BatterySync.svg +3 -0
  1117. package/client/static/icons/BatterySyncOutline.svg +3 -0
  1118. package/client/static/icons/BatteryUnknown.svg +3 -0
  1119. package/client/static/icons/BatteryUnknownBluetooth.svg +3 -0
  1120. package/client/static/icons/Beach.svg +3 -0
  1121. package/client/static/icons/Beaker.svg +3 -0
  1122. package/client/static/icons/BeakerAlert.svg +3 -0
  1123. package/client/static/icons/BeakerAlertOutline.svg +3 -0
  1124. package/client/static/icons/BeakerCheck.svg +3 -0
  1125. package/client/static/icons/BeakerCheckOutline.svg +3 -0
  1126. package/client/static/icons/BeakerMinus.svg +3 -0
  1127. package/client/static/icons/BeakerMinusOutline.svg +3 -0
  1128. package/client/static/icons/BeakerOutline.svg +3 -0
  1129. package/client/static/icons/BeakerPlus.svg +3 -0
  1130. package/client/static/icons/BeakerPlusOutline.svg +3 -0
  1131. package/client/static/icons/BeakerQuestion.svg +3 -0
  1132. package/client/static/icons/BeakerQuestionOutline.svg +3 -0
  1133. package/client/static/icons/BeakerRemove.svg +3 -0
  1134. package/client/static/icons/BeakerRemoveOutline.svg +3 -0
  1135. package/client/static/icons/Bed.svg +3 -0
  1136. package/client/static/icons/BedClock.svg +3 -0
  1137. package/client/static/icons/BedDouble.svg +3 -0
  1138. package/client/static/icons/BedDoubleOutline.svg +3 -0
  1139. package/client/static/icons/BedEmpty.svg +3 -0
  1140. package/client/static/icons/BedKing.svg +3 -0
  1141. package/client/static/icons/BedKingOutline.svg +3 -0
  1142. package/client/static/icons/BedOutline.svg +3 -0
  1143. package/client/static/icons/BedQueen.svg +3 -0
  1144. package/client/static/icons/BedQueenOutline.svg +3 -0
  1145. package/client/static/icons/BedSingle.svg +3 -0
  1146. package/client/static/icons/BedSingleOutline.svg +3 -0
  1147. package/client/static/icons/Bee.svg +3 -0
  1148. package/client/static/icons/BeeFlower.svg +3 -0
  1149. package/client/static/icons/BeehiveOffOutline.svg +3 -0
  1150. package/client/static/icons/BeehiveOutline.svg +3 -0
  1151. package/client/static/icons/Beekeeper.svg +3 -0
  1152. package/client/static/icons/Beer.svg +3 -0
  1153. package/client/static/icons/BeerOutline.svg +3 -0
  1154. package/client/static/icons/Bell.svg +3 -0
  1155. package/client/static/icons/BellAlert.svg +3 -0
  1156. package/client/static/icons/BellAlertOutline.svg +3 -0
  1157. package/client/static/icons/BellBadge.svg +3 -0
  1158. package/client/static/icons/BellBadgeOutline.svg +3 -0
  1159. package/client/static/icons/BellCancel.svg +3 -0
  1160. package/client/static/icons/BellCancelOutline.svg +3 -0
  1161. package/client/static/icons/BellCheck.svg +3 -0
  1162. package/client/static/icons/BellCheckOutline.svg +3 -0
  1163. package/client/static/icons/BellCircle.svg +3 -0
  1164. package/client/static/icons/BellCircleOutline.svg +3 -0
  1165. package/client/static/icons/BellCog.svg +3 -0
  1166. package/client/static/icons/BellCogOutline.svg +3 -0
  1167. package/client/static/icons/BellMinus.svg +3 -0
  1168. package/client/static/icons/BellMinusOutline.svg +3 -0
  1169. package/client/static/icons/BellOff.svg +3 -0
  1170. package/client/static/icons/BellOffOutline.svg +3 -0
  1171. package/client/static/icons/BellOutline.svg +3 -0
  1172. package/client/static/icons/BellPlus.svg +3 -0
  1173. package/client/static/icons/BellPlusOutline.svg +3 -0
  1174. package/client/static/icons/BellRemove.svg +3 -0
  1175. package/client/static/icons/BellRemoveOutline.svg +3 -0
  1176. package/client/static/icons/BellRing.svg +3 -0
  1177. package/client/static/icons/BellRingOutline.svg +3 -0
  1178. package/client/static/icons/BellSleep.svg +3 -0
  1179. package/client/static/icons/BellSleepOutline.svg +3 -0
  1180. package/client/static/icons/Bench.svg +3 -0
  1181. package/client/static/icons/BenchBack.svg +3 -0
  1182. package/client/static/icons/Beta.svg +3 -0
  1183. package/client/static/icons/Betamax.svg +3 -0
  1184. package/client/static/icons/Biathlon.svg +3 -0
  1185. package/client/static/icons/Bicycle.svg +3 -0
  1186. package/client/static/icons/BicycleBasket.svg +3 -0
  1187. package/client/static/icons/BicycleCargo.svg +3 -0
  1188. package/client/static/icons/BicycleElectric.svg +3 -0
  1189. package/client/static/icons/BicyclePennyFarthing.svg +3 -0
  1190. package/client/static/icons/Bike.svg +3 -0
  1191. package/client/static/icons/BikeFast.svg +3 -0
  1192. package/client/static/icons/BikePedal.svg +3 -0
  1193. package/client/static/icons/BikePedalClipless.svg +3 -0
  1194. package/client/static/icons/BikePedalMountain.svg +3 -0
  1195. package/client/static/icons/Billboard.svg +3 -0
  1196. package/client/static/icons/Billiards.svg +3 -0
  1197. package/client/static/icons/BilliardsRack.svg +3 -0
  1198. package/client/static/icons/Binoculars.svg +3 -0
  1199. package/client/static/icons/Bio.svg +3 -0
  1200. package/client/static/icons/Biohazard.svg +3 -0
  1201. package/client/static/icons/Bird.svg +3 -0
  1202. package/client/static/icons/Bitbucket.svg +3 -0
  1203. package/client/static/icons/Bitcoin.svg +3 -0
  1204. package/client/static/icons/BlackMesa.svg +3 -0
  1205. package/client/static/icons/Blender.svg +3 -0
  1206. package/client/static/icons/BlenderOutline.svg +3 -0
  1207. package/client/static/icons/BlenderSoftware.svg +3 -0
  1208. package/client/static/icons/Blinds.svg +3 -0
  1209. package/client/static/icons/BlindsHorizontal.svg +3 -0
  1210. package/client/static/icons/BlindsHorizontalClosed.svg +3 -0
  1211. package/client/static/icons/BlindsOpen.svg +3 -0
  1212. package/client/static/icons/BlindsVertical.svg +3 -0
  1213. package/client/static/icons/BlindsVerticalClosed.svg +3 -0
  1214. package/client/static/icons/BlockHelper.svg +3 -0
  1215. package/client/static/icons/BloodBag.svg +3 -0
  1216. package/client/static/icons/Bluetooth.svg +3 -0
  1217. package/client/static/icons/BluetoothAudio.svg +3 -0
  1218. package/client/static/icons/BluetoothConnect.svg +3 -0
  1219. package/client/static/icons/BluetoothOff.svg +3 -0
  1220. package/client/static/icons/BluetoothSettings.svg +3 -0
  1221. package/client/static/icons/BluetoothTransfer.svg +3 -0
  1222. package/client/static/icons/Blur.svg +3 -0
  1223. package/client/static/icons/BlurLinear.svg +3 -0
  1224. package/client/static/icons/BlurOff.svg +3 -0
  1225. package/client/static/icons/BlurRadial.svg +3 -0
  1226. package/client/static/icons/Bolt.svg +3 -0
  1227. package/client/static/icons/Bomb.svg +3 -0
  1228. package/client/static/icons/BombOff.svg +3 -0
  1229. package/client/static/icons/Bone.svg +3 -0
  1230. package/client/static/icons/BoneOff.svg +3 -0
  1231. package/client/static/icons/Book.svg +3 -0
  1232. package/client/static/icons/BookAccount.svg +3 -0
  1233. package/client/static/icons/BookAccountOutline.svg +3 -0
  1234. package/client/static/icons/BookAlert.svg +3 -0
  1235. package/client/static/icons/BookAlertOutline.svg +3 -0
  1236. package/client/static/icons/BookAlphabet.svg +3 -0
  1237. package/client/static/icons/BookArrowDown.svg +3 -0
  1238. package/client/static/icons/BookArrowDownOutline.svg +3 -0
  1239. package/client/static/icons/BookArrowLeft.svg +3 -0
  1240. package/client/static/icons/BookArrowLeftOutline.svg +3 -0
  1241. package/client/static/icons/BookArrowRight.svg +3 -0
  1242. package/client/static/icons/BookArrowRightOutline.svg +3 -0
  1243. package/client/static/icons/BookArrowUp.svg +3 -0
  1244. package/client/static/icons/BookArrowUpOutline.svg +3 -0
  1245. package/client/static/icons/BookCancel.svg +3 -0
  1246. package/client/static/icons/BookCancelOutline.svg +3 -0
  1247. package/client/static/icons/BookCheck.svg +3 -0
  1248. package/client/static/icons/BookCheckOutline.svg +3 -0
  1249. package/client/static/icons/BookClock.svg +3 -0
  1250. package/client/static/icons/BookClockOutline.svg +3 -0
  1251. package/client/static/icons/BookCog.svg +3 -0
  1252. package/client/static/icons/BookCogOutline.svg +3 -0
  1253. package/client/static/icons/BookCross.svg +3 -0
  1254. package/client/static/icons/BookEdit.svg +3 -0
  1255. package/client/static/icons/BookEditOutline.svg +3 -0
  1256. package/client/static/icons/BookEducation.svg +3 -0
  1257. package/client/static/icons/BookEducationOutline.svg +3 -0
  1258. package/client/static/icons/BookHeart.svg +3 -0
  1259. package/client/static/icons/BookHeartOutline.svg +3 -0
  1260. package/client/static/icons/BookInformationVariant.svg +3 -0
  1261. package/client/static/icons/BookLock.svg +3 -0
  1262. package/client/static/icons/BookLockOpen.svg +3 -0
  1263. package/client/static/icons/BookLockOpenOutline.svg +3 -0
  1264. package/client/static/icons/BookLockOutline.svg +3 -0
  1265. package/client/static/icons/BookMarker.svg +3 -0
  1266. package/client/static/icons/BookMarkerOutline.svg +3 -0
  1267. package/client/static/icons/BookMinus.svg +3 -0
  1268. package/client/static/icons/BookMinusMultiple.svg +3 -0
  1269. package/client/static/icons/BookMinusMultipleOutline.svg +3 -0
  1270. package/client/static/icons/BookMinusOutline.svg +3 -0
  1271. package/client/static/icons/BookMultiple.svg +3 -0
  1272. package/client/static/icons/BookMultipleOutline.svg +3 -0
  1273. package/client/static/icons/BookMusic.svg +3 -0
  1274. package/client/static/icons/BookMusicOutline.svg +3 -0
  1275. package/client/static/icons/BookOff.svg +3 -0
  1276. package/client/static/icons/BookOffOutline.svg +3 -0
  1277. package/client/static/icons/BookOpen.svg +3 -0
  1278. package/client/static/icons/BookOpenBlankVariant.svg +3 -0
  1279. package/client/static/icons/BookOpenBlankVariantOutline.svg +3 -0
  1280. package/client/static/icons/BookOpenOutline.svg +3 -0
  1281. package/client/static/icons/BookOpenPageVariant.svg +3 -0
  1282. package/client/static/icons/BookOpenPageVariantOutline.svg +3 -0
  1283. package/client/static/icons/BookOpenVariant.svg +3 -0
  1284. package/client/static/icons/BookOpenVariantOutline.svg +3 -0
  1285. package/client/static/icons/BookOutline.svg +3 -0
  1286. package/client/static/icons/BookPlay.svg +3 -0
  1287. package/client/static/icons/BookPlayOutline.svg +3 -0
  1288. package/client/static/icons/BookPlus.svg +3 -0
  1289. package/client/static/icons/BookPlusMultiple.svg +3 -0
  1290. package/client/static/icons/BookPlusMultipleOutline.svg +3 -0
  1291. package/client/static/icons/BookPlusOutline.svg +3 -0
  1292. package/client/static/icons/BookRefresh.svg +3 -0
  1293. package/client/static/icons/BookRefreshOutline.svg +3 -0
  1294. package/client/static/icons/BookRemove.svg +3 -0
  1295. package/client/static/icons/BookRemoveMultiple.svg +3 -0
  1296. package/client/static/icons/BookRemoveMultipleOutline.svg +3 -0
  1297. package/client/static/icons/BookRemoveOutline.svg +3 -0
  1298. package/client/static/icons/BookSearch.svg +3 -0
  1299. package/client/static/icons/BookSearchOutline.svg +3 -0
  1300. package/client/static/icons/BookSettings.svg +3 -0
  1301. package/client/static/icons/BookSettingsOutline.svg +3 -0
  1302. package/client/static/icons/BookSync.svg +3 -0
  1303. package/client/static/icons/BookSyncOutline.svg +3 -0
  1304. package/client/static/icons/BookVariant.svg +3 -0
  1305. package/client/static/icons/Bookmark.svg +3 -0
  1306. package/client/static/icons/BookmarkBox.svg +3 -0
  1307. package/client/static/icons/BookmarkBoxMultiple.svg +3 -0
  1308. package/client/static/icons/BookmarkBoxMultipleOutline.svg +3 -0
  1309. package/client/static/icons/BookmarkBoxOutline.svg +3 -0
  1310. package/client/static/icons/BookmarkCheck.svg +3 -0
  1311. package/client/static/icons/BookmarkCheckOutline.svg +3 -0
  1312. package/client/static/icons/BookmarkMinus.svg +3 -0
  1313. package/client/static/icons/BookmarkMinusOutline.svg +3 -0
  1314. package/client/static/icons/BookmarkMultiple.svg +3 -0
  1315. package/client/static/icons/BookmarkMultipleOutline.svg +3 -0
  1316. package/client/static/icons/BookmarkMusic.svg +3 -0
  1317. package/client/static/icons/BookmarkMusicOutline.svg +3 -0
  1318. package/client/static/icons/BookmarkOff.svg +3 -0
  1319. package/client/static/icons/BookmarkOffOutline.svg +3 -0
  1320. package/client/static/icons/BookmarkOutline.svg +3 -0
  1321. package/client/static/icons/BookmarkPlus.svg +3 -0
  1322. package/client/static/icons/BookmarkPlusOutline.svg +3 -0
  1323. package/client/static/icons/BookmarkRemove.svg +3 -0
  1324. package/client/static/icons/BookmarkRemoveOutline.svg +3 -0
  1325. package/client/static/icons/Bookshelf.svg +3 -0
  1326. package/client/static/icons/BoomGate.svg +3 -0
  1327. package/client/static/icons/BoomGateAlert.svg +3 -0
  1328. package/client/static/icons/BoomGateAlertOutline.svg +3 -0
  1329. package/client/static/icons/BoomGateArrowDown.svg +3 -0
  1330. package/client/static/icons/BoomGateArrowDownOutline.svg +3 -0
  1331. package/client/static/icons/BoomGateArrowUp.svg +3 -0
  1332. package/client/static/icons/BoomGateArrowUpOutline.svg +3 -0
  1333. package/client/static/icons/BoomGateOutline.svg +3 -0
  1334. package/client/static/icons/BoomGateUp.svg +3 -0
  1335. package/client/static/icons/BoomGateUpOutline.svg +3 -0
  1336. package/client/static/icons/Boombox.svg +3 -0
  1337. package/client/static/icons/Boomerang.svg +3 -0
  1338. package/client/static/icons/Bootstrap.svg +3 -0
  1339. package/client/static/icons/BorderAll.svg +3 -0
  1340. package/client/static/icons/BorderAllVariant.svg +3 -0
  1341. package/client/static/icons/BorderBottom.svg +3 -0
  1342. package/client/static/icons/BorderBottomVariant.svg +3 -0
  1343. package/client/static/icons/BorderColor.svg +3 -0
  1344. package/client/static/icons/BorderHorizontal.svg +3 -0
  1345. package/client/static/icons/BorderInside.svg +3 -0
  1346. package/client/static/icons/BorderLeft.svg +3 -0
  1347. package/client/static/icons/BorderLeftVariant.svg +3 -0
  1348. package/client/static/icons/BorderNone.svg +3 -0
  1349. package/client/static/icons/BorderNoneVariant.svg +3 -0
  1350. package/client/static/icons/BorderOutside.svg +3 -0
  1351. package/client/static/icons/BorderRadius.svg +3 -0
  1352. package/client/static/icons/BorderRight.svg +3 -0
  1353. package/client/static/icons/BorderRightVariant.svg +3 -0
  1354. package/client/static/icons/BorderStyle.svg +3 -0
  1355. package/client/static/icons/BorderTop.svg +3 -0
  1356. package/client/static/icons/BorderTopVariant.svg +3 -0
  1357. package/client/static/icons/BorderVertical.svg +3 -0
  1358. package/client/static/icons/BottleSoda.svg +3 -0
  1359. package/client/static/icons/BottleSodaClassic.svg +3 -0
  1360. package/client/static/icons/BottleSodaClassicOutline.svg +3 -0
  1361. package/client/static/icons/BottleSodaOutline.svg +3 -0
  1362. package/client/static/icons/BottleTonic.svg +3 -0
  1363. package/client/static/icons/BottleTonicOutline.svg +3 -0
  1364. package/client/static/icons/BottleTonicPlus.svg +3 -0
  1365. package/client/static/icons/BottleTonicPlusOutline.svg +3 -0
  1366. package/client/static/icons/BottleTonicSkull.svg +3 -0
  1367. package/client/static/icons/BottleTonicSkullOutline.svg +3 -0
  1368. package/client/static/icons/BottleWine.svg +3 -0
  1369. package/client/static/icons/BottleWineOutline.svg +3 -0
  1370. package/client/static/icons/BowArrow.svg +3 -0
  1371. package/client/static/icons/BowTie.svg +3 -0
  1372. package/client/static/icons/Bowl.svg +3 -0
  1373. package/client/static/icons/BowlMix.svg +3 -0
  1374. package/client/static/icons/BowlMixOutline.svg +3 -0
  1375. package/client/static/icons/BowlOutline.svg +3 -0
  1376. package/client/static/icons/Bowling.svg +3 -0
  1377. package/client/static/icons/Box.svg +3 -0
  1378. package/client/static/icons/BoxCutter.svg +3 -0
  1379. package/client/static/icons/BoxCutterOff.svg +3 -0
  1380. package/client/static/icons/BoxShadow.svg +3 -0
  1381. package/client/static/icons/BoxingGlove.svg +3 -0
  1382. package/client/static/icons/Braille.svg +3 -0
  1383. package/client/static/icons/Brain.svg +3 -0
  1384. package/client/static/icons/BreadSlice.svg +3 -0
  1385. package/client/static/icons/BreadSliceOutline.svg +3 -0
  1386. package/client/static/icons/Bridge.svg +3 -0
  1387. package/client/static/icons/Briefcase.svg +3 -0
  1388. package/client/static/icons/BriefcaseAccount.svg +3 -0
  1389. package/client/static/icons/BriefcaseAccountOutline.svg +3 -0
  1390. package/client/static/icons/BriefcaseArrowLeftRight.svg +3 -0
  1391. package/client/static/icons/BriefcaseArrowLeftRightOutline.svg +3 -0
  1392. package/client/static/icons/BriefcaseArrowUpDown.svg +3 -0
  1393. package/client/static/icons/BriefcaseArrowUpDownOutline.svg +3 -0
  1394. package/client/static/icons/BriefcaseCheck.svg +3 -0
  1395. package/client/static/icons/BriefcaseCheckOutline.svg +3 -0
  1396. package/client/static/icons/BriefcaseClock.svg +3 -0
  1397. package/client/static/icons/BriefcaseClockOutline.svg +3 -0
  1398. package/client/static/icons/BriefcaseDownload.svg +3 -0
  1399. package/client/static/icons/BriefcaseDownloadOutline.svg +3 -0
  1400. package/client/static/icons/BriefcaseEdit.svg +3 -0
  1401. package/client/static/icons/BriefcaseEditOutline.svg +3 -0
  1402. package/client/static/icons/BriefcaseEye.svg +3 -0
  1403. package/client/static/icons/BriefcaseEyeOutline.svg +3 -0
  1404. package/client/static/icons/BriefcaseMinus.svg +3 -0
  1405. package/client/static/icons/BriefcaseMinusOutline.svg +3 -0
  1406. package/client/static/icons/BriefcaseOff.svg +3 -0
  1407. package/client/static/icons/BriefcaseOffOutline.svg +3 -0
  1408. package/client/static/icons/BriefcaseOutline.svg +3 -0
  1409. package/client/static/icons/BriefcasePlus.svg +3 -0
  1410. package/client/static/icons/BriefcasePlusOutline.svg +3 -0
  1411. package/client/static/icons/BriefcaseRemove.svg +3 -0
  1412. package/client/static/icons/BriefcaseRemoveOutline.svg +3 -0
  1413. package/client/static/icons/BriefcaseSearch.svg +3 -0
  1414. package/client/static/icons/BriefcaseSearchOutline.svg +3 -0
  1415. package/client/static/icons/BriefcaseUpload.svg +3 -0
  1416. package/client/static/icons/BriefcaseUploadOutline.svg +3 -0
  1417. package/client/static/icons/BriefcaseVariant.svg +3 -0
  1418. package/client/static/icons/BriefcaseVariantOff.svg +3 -0
  1419. package/client/static/icons/BriefcaseVariantOffOutline.svg +3 -0
  1420. package/client/static/icons/BriefcaseVariantOutline.svg +3 -0
  1421. package/client/static/icons/Brightness1.svg +3 -0
  1422. package/client/static/icons/Brightness2.svg +3 -0
  1423. package/client/static/icons/Brightness3.svg +3 -0
  1424. package/client/static/icons/Brightness4.svg +3 -0
  1425. package/client/static/icons/Brightness5.svg +3 -0
  1426. package/client/static/icons/Brightness6.svg +3 -0
  1427. package/client/static/icons/Brightness7.svg +3 -0
  1428. package/client/static/icons/BrightnessAuto.svg +3 -0
  1429. package/client/static/icons/BrightnessPercent.svg +3 -0
  1430. package/client/static/icons/Broadcast.svg +3 -0
  1431. package/client/static/icons/BroadcastOff.svg +3 -0
  1432. package/client/static/icons/Broom.svg +3 -0
  1433. package/client/static/icons/Brush.svg +3 -0
  1434. package/client/static/icons/BrushOff.svg +3 -0
  1435. package/client/static/icons/BrushOutline.svg +3 -0
  1436. package/client/static/icons/BrushVariant.svg +3 -0
  1437. package/client/static/icons/Bucket.svg +3 -0
  1438. package/client/static/icons/BucketOutline.svg +3 -0
  1439. package/client/static/icons/Buffet.svg +3 -0
  1440. package/client/static/icons/Bug.svg +3 -0
  1441. package/client/static/icons/BugCheck.svg +3 -0
  1442. package/client/static/icons/BugCheckOutline.svg +3 -0
  1443. package/client/static/icons/BugOutline.svg +3 -0
  1444. package/client/static/icons/BugPause.svg +3 -0
  1445. package/client/static/icons/BugPauseOutline.svg +3 -0
  1446. package/client/static/icons/BugPlay.svg +3 -0
  1447. package/client/static/icons/BugPlayOutline.svg +3 -0
  1448. package/client/static/icons/BugStop.svg +3 -0
  1449. package/client/static/icons/BugStopOutline.svg +3 -0
  1450. package/client/static/icons/Bugle.svg +3 -0
  1451. package/client/static/icons/BulkheadLight.svg +3 -0
  1452. package/client/static/icons/Bulldozer.svg +3 -0
  1453. package/client/static/icons/Bullet.svg +3 -0
  1454. package/client/static/icons/BulletinBoard.svg +3 -0
  1455. package/client/static/icons/Bullhorn.svg +3 -0
  1456. package/client/static/icons/BullhornOutline.svg +3 -0
  1457. package/client/static/icons/BullhornVariant.svg +3 -0
  1458. package/client/static/icons/BullhornVariantOutline.svg +3 -0
  1459. package/client/static/icons/Bullseye.svg +3 -0
  1460. package/client/static/icons/BullseyeArrow.svg +3 -0
  1461. package/client/static/icons/Bulma.svg +3 -0
  1462. package/client/static/icons/BunkBed.svg +3 -0
  1463. package/client/static/icons/BunkBedOutline.svg +3 -0
  1464. package/client/static/icons/Bus.svg +3 -0
  1465. package/client/static/icons/BusAlert.svg +3 -0
  1466. package/client/static/icons/BusArticulatedEnd.svg +3 -0
  1467. package/client/static/icons/BusArticulatedFront.svg +3 -0
  1468. package/client/static/icons/BusClock.svg +3 -0
  1469. package/client/static/icons/BusDoubleDecker.svg +3 -0
  1470. package/client/static/icons/BusElectric.svg +3 -0
  1471. package/client/static/icons/BusMarker.svg +3 -0
  1472. package/client/static/icons/BusMultiple.svg +3 -0
  1473. package/client/static/icons/BusSchool.svg +3 -0
  1474. package/client/static/icons/BusSide.svg +3 -0
  1475. package/client/static/icons/BusSign.svg +3 -0
  1476. package/client/static/icons/BusStop.svg +3 -0
  1477. package/client/static/icons/BusStopCovered.svg +3 -0
  1478. package/client/static/icons/BusStopUncovered.svg +3 -0
  1479. package/client/static/icons/BusWrench.svg +3 -0
  1480. package/client/static/icons/Butterfly.svg +3 -0
  1481. package/client/static/icons/ButterflyOutline.svg +3 -0
  1482. package/client/static/icons/ButtonCursor.svg +3 -0
  1483. package/client/static/icons/ButtonPointer.svg +3 -0
  1484. package/client/static/icons/CabinAFrame.svg +3 -0
  1485. package/client/static/icons/CableData.svg +3 -0
  1486. package/client/static/icons/Cached.svg +3 -0
  1487. package/client/static/icons/Cactus.svg +3 -0
  1488. package/client/static/icons/Cake.svg +3 -0
  1489. package/client/static/icons/CakeLayered.svg +3 -0
  1490. package/client/static/icons/CakeVariant.svg +3 -0
  1491. package/client/static/icons/CakeVariantOutline.svg +3 -0
  1492. package/client/static/icons/Calculator.svg +3 -0
  1493. package/client/static/icons/CalculatorVariant.svg +3 -0
  1494. package/client/static/icons/CalculatorVariantOutline.svg +3 -0
  1495. package/client/static/icons/Calendar.svg +3 -0
  1496. package/client/static/icons/CalendarAccount.svg +3 -0
  1497. package/client/static/icons/CalendarAccountOutline.svg +3 -0
  1498. package/client/static/icons/CalendarAlert.svg +3 -0
  1499. package/client/static/icons/CalendarAlertOutline.svg +3 -0
  1500. package/client/static/icons/CalendarArrowLeft.svg +3 -0
  1501. package/client/static/icons/CalendarArrowRight.svg +3 -0
  1502. package/client/static/icons/CalendarBadge.svg +3 -0
  1503. package/client/static/icons/CalendarBadgeOutline.svg +3 -0
  1504. package/client/static/icons/CalendarBlank.svg +3 -0
  1505. package/client/static/icons/CalendarBlankMultiple.svg +3 -0
  1506. package/client/static/icons/CalendarBlankOutline.svg +3 -0
  1507. package/client/static/icons/CalendarCheck.svg +3 -0
  1508. package/client/static/icons/CalendarCheckOutline.svg +3 -0
  1509. package/client/static/icons/CalendarClock.svg +3 -0
  1510. package/client/static/icons/CalendarClockOutline.svg +3 -0
  1511. package/client/static/icons/CalendarCollapseHorizontal.svg +3 -0
  1512. package/client/static/icons/CalendarCollapseHorizontalOutline.svg +3 -0
  1513. package/client/static/icons/CalendarCursor.svg +3 -0
  1514. package/client/static/icons/CalendarCursorOutline.svg +3 -0
  1515. package/client/static/icons/CalendarEdit.svg +3 -0
  1516. package/client/static/icons/CalendarEditOutline.svg +3 -0
  1517. package/client/static/icons/CalendarEnd.svg +3 -0
  1518. package/client/static/icons/CalendarEndOutline.svg +3 -0
  1519. package/client/static/icons/CalendarExpandHorizontal.svg +3 -0
  1520. package/client/static/icons/CalendarExpandHorizontalOutline.svg +3 -0
  1521. package/client/static/icons/CalendarExport.svg +3 -0
  1522. package/client/static/icons/CalendarExportOutline.svg +3 -0
  1523. package/client/static/icons/CalendarFilter.svg +3 -0
  1524. package/client/static/icons/CalendarFilterOutline.svg +3 -0
  1525. package/client/static/icons/CalendarHeart.svg +3 -0
  1526. package/client/static/icons/CalendarHeartOutline.svg +3 -0
  1527. package/client/static/icons/CalendarImport.svg +3 -0
  1528. package/client/static/icons/CalendarImportOutline.svg +3 -0
  1529. package/client/static/icons/CalendarLock.svg +3 -0
  1530. package/client/static/icons/CalendarLockOpen.svg +3 -0
  1531. package/client/static/icons/CalendarLockOpenOutline.svg +3 -0
  1532. package/client/static/icons/CalendarLockOutline.svg +3 -0
  1533. package/client/static/icons/CalendarMinus.svg +3 -0
  1534. package/client/static/icons/CalendarMinusOutline.svg +3 -0
  1535. package/client/static/icons/CalendarMonth.svg +3 -0
  1536. package/client/static/icons/CalendarMonthOutline.svg +3 -0
  1537. package/client/static/icons/CalendarMultiple.svg +3 -0
  1538. package/client/static/icons/CalendarMultipleCheck.svg +3 -0
  1539. package/client/static/icons/CalendarMultiselect.svg +3 -0
  1540. package/client/static/icons/CalendarMultiselectOutline.svg +3 -0
  1541. package/client/static/icons/CalendarOutline.svg +3 -0
  1542. package/client/static/icons/CalendarPlus.svg +3 -0
  1543. package/client/static/icons/CalendarPlusOutline.svg +3 -0
  1544. package/client/static/icons/CalendarQuestion.svg +3 -0
  1545. package/client/static/icons/CalendarQuestionOutline.svg +3 -0
  1546. package/client/static/icons/CalendarRange.svg +3 -0
  1547. package/client/static/icons/CalendarRangeOutline.svg +3 -0
  1548. package/client/static/icons/CalendarRefresh.svg +3 -0
  1549. package/client/static/icons/CalendarRefreshOutline.svg +3 -0
  1550. package/client/static/icons/CalendarRemove.svg +3 -0
  1551. package/client/static/icons/CalendarRemoveOutline.svg +3 -0
  1552. package/client/static/icons/CalendarSearch.svg +3 -0
  1553. package/client/static/icons/CalendarSearchOutline.svg +3 -0
  1554. package/client/static/icons/CalendarStar.svg +3 -0
  1555. package/client/static/icons/CalendarStarFourPoints.svg +3 -0
  1556. package/client/static/icons/CalendarStarOutline.svg +3 -0
  1557. package/client/static/icons/CalendarStart.svg +3 -0
  1558. package/client/static/icons/CalendarStartOutline.svg +3 -0
  1559. package/client/static/icons/CalendarSync.svg +3 -0
  1560. package/client/static/icons/CalendarSyncOutline.svg +3 -0
  1561. package/client/static/icons/CalendarText.svg +3 -0
  1562. package/client/static/icons/CalendarTextOutline.svg +3 -0
  1563. package/client/static/icons/CalendarToday.svg +3 -0
  1564. package/client/static/icons/CalendarTodayOutline.svg +3 -0
  1565. package/client/static/icons/CalendarWeek.svg +3 -0
  1566. package/client/static/icons/CalendarWeekBegin.svg +3 -0
  1567. package/client/static/icons/CalendarWeekBeginOutline.svg +3 -0
  1568. package/client/static/icons/CalendarWeekOutline.svg +3 -0
  1569. package/client/static/icons/CalendarWeekend.svg +3 -0
  1570. package/client/static/icons/CalendarWeekendOutline.svg +3 -0
  1571. package/client/static/icons/CallMade.svg +3 -0
  1572. package/client/static/icons/CallMerge.svg +3 -0
  1573. package/client/static/icons/CallMissed.svg +3 -0
  1574. package/client/static/icons/CallReceived.svg +3 -0
  1575. package/client/static/icons/CallSplit.svg +3 -0
  1576. package/client/static/icons/Camcorder.svg +3 -0
  1577. package/client/static/icons/CamcorderOff.svg +3 -0
  1578. package/client/static/icons/Camera.svg +3 -0
  1579. package/client/static/icons/CameraAccount.svg +3 -0
  1580. package/client/static/icons/CameraBurst.svg +3 -0
  1581. package/client/static/icons/CameraControl.svg +3 -0
  1582. package/client/static/icons/CameraDocument.svg +3 -0
  1583. package/client/static/icons/CameraDocumentOff.svg +3 -0
  1584. package/client/static/icons/CameraEnhance.svg +3 -0
  1585. package/client/static/icons/CameraEnhanceOutline.svg +3 -0
  1586. package/client/static/icons/CameraFlip.svg +3 -0
  1587. package/client/static/icons/CameraFlipOutline.svg +3 -0
  1588. package/client/static/icons/CameraFront.svg +3 -0
  1589. package/client/static/icons/CameraFrontVariant.svg +3 -0
  1590. package/client/static/icons/CameraGopro.svg +3 -0
  1591. package/client/static/icons/CameraImage.svg +3 -0
  1592. package/client/static/icons/CameraIris.svg +3 -0
  1593. package/client/static/icons/CameraLock.svg +3 -0
  1594. package/client/static/icons/CameraLockOpen.svg +3 -0
  1595. package/client/static/icons/CameraLockOpenOutline.svg +3 -0
  1596. package/client/static/icons/CameraLockOutline.svg +3 -0
  1597. package/client/static/icons/CameraMarker.svg +3 -0
  1598. package/client/static/icons/CameraMarkerOutline.svg +3 -0
  1599. package/client/static/icons/CameraMeteringCenter.svg +3 -0
  1600. package/client/static/icons/CameraMeteringMatrix.svg +3 -0
  1601. package/client/static/icons/CameraMeteringPartial.svg +3 -0
  1602. package/client/static/icons/CameraMeteringSpot.svg +3 -0
  1603. package/client/static/icons/CameraOff.svg +3 -0
  1604. package/client/static/icons/CameraOffOutline.svg +3 -0
  1605. package/client/static/icons/CameraOutline.svg +3 -0
  1606. package/client/static/icons/CameraPartyMode.svg +3 -0
  1607. package/client/static/icons/CameraPlus.svg +3 -0
  1608. package/client/static/icons/CameraPlusOutline.svg +3 -0
  1609. package/client/static/icons/CameraRear.svg +3 -0
  1610. package/client/static/icons/CameraRearVariant.svg +3 -0
  1611. package/client/static/icons/CameraRetake.svg +3 -0
  1612. package/client/static/icons/CameraRetakeOutline.svg +3 -0
  1613. package/client/static/icons/CameraSwitch.svg +3 -0
  1614. package/client/static/icons/CameraSwitchOutline.svg +3 -0
  1615. package/client/static/icons/CameraTimer.svg +3 -0
  1616. package/client/static/icons/CameraWireless.svg +3 -0
  1617. package/client/static/icons/CameraWirelessOutline.svg +3 -0
  1618. package/client/static/icons/Campfire.svg +3 -0
  1619. package/client/static/icons/Cancel.svg +3 -0
  1620. package/client/static/icons/Candelabra.svg +3 -0
  1621. package/client/static/icons/CandelabraFire.svg +3 -0
  1622. package/client/static/icons/Candle.svg +3 -0
  1623. package/client/static/icons/Candy.svg +3 -0
  1624. package/client/static/icons/CandyOff.svg +3 -0
  1625. package/client/static/icons/CandyOffOutline.svg +3 -0
  1626. package/client/static/icons/CandyOutline.svg +3 -0
  1627. package/client/static/icons/Candycane.svg +3 -0
  1628. package/client/static/icons/Cannabis.svg +3 -0
  1629. package/client/static/icons/CannabisOff.svg +3 -0
  1630. package/client/static/icons/CapsLock.svg +3 -0
  1631. package/client/static/icons/Car.svg +3 -0
  1632. package/client/static/icons/Car2Plus.svg +3 -0
  1633. package/client/static/icons/Car3Plus.svg +3 -0
  1634. package/client/static/icons/CarArrowLeft.svg +3 -0
  1635. package/client/static/icons/CarArrowRight.svg +3 -0
  1636. package/client/static/icons/CarBack.svg +3 -0
  1637. package/client/static/icons/CarBattery.svg +3 -0
  1638. package/client/static/icons/CarBrakeAbs.svg +3 -0
  1639. package/client/static/icons/CarBrakeAlert.svg +3 -0
  1640. package/client/static/icons/CarBrakeFluidLevel.svg +3 -0
  1641. package/client/static/icons/CarBrakeHold.svg +3 -0
  1642. package/client/static/icons/CarBrakeLowPressure.svg +3 -0
  1643. package/client/static/icons/CarBrakeParking.svg +3 -0
  1644. package/client/static/icons/CarBrakeRetarder.svg +3 -0
  1645. package/client/static/icons/CarBrakeTemperature.svg +3 -0
  1646. package/client/static/icons/CarBrakeWornLinings.svg +3 -0
  1647. package/client/static/icons/CarChildSeat.svg +3 -0
  1648. package/client/static/icons/CarClock.svg +3 -0
  1649. package/client/static/icons/CarClutch.svg +3 -0
  1650. package/client/static/icons/CarCog.svg +3 -0
  1651. package/client/static/icons/CarConnected.svg +3 -0
  1652. package/client/static/icons/CarConvertible.svg +3 -0
  1653. package/client/static/icons/CarCoolantLevel.svg +3 -0
  1654. package/client/static/icons/CarCruiseControl.svg +3 -0
  1655. package/client/static/icons/CarDefrostFront.svg +3 -0
  1656. package/client/static/icons/CarDefrostRear.svg +3 -0
  1657. package/client/static/icons/CarDoor.svg +3 -0
  1658. package/client/static/icons/CarDoorLock.svg +3 -0
  1659. package/client/static/icons/CarDoorLockOpen.svg +3 -0
  1660. package/client/static/icons/CarElectric.svg +3 -0
  1661. package/client/static/icons/CarElectricOutline.svg +3 -0
  1662. package/client/static/icons/CarEmergency.svg +3 -0
  1663. package/client/static/icons/CarEsp.svg +3 -0
  1664. package/client/static/icons/CarEstate.svg +3 -0
  1665. package/client/static/icons/CarHatchback.svg +3 -0
  1666. package/client/static/icons/CarInfo.svg +3 -0
  1667. package/client/static/icons/CarKey.svg +3 -0
  1668. package/client/static/icons/CarLiftedPickup.svg +3 -0
  1669. package/client/static/icons/CarLightAlert.svg +3 -0
  1670. package/client/static/icons/CarLightDimmed.svg +3 -0
  1671. package/client/static/icons/CarLightFog.svg +3 -0
  1672. package/client/static/icons/CarLightHigh.svg +3 -0
  1673. package/client/static/icons/CarLimousine.svg +3 -0
  1674. package/client/static/icons/CarMultiple.svg +3 -0
  1675. package/client/static/icons/CarOff.svg +3 -0
  1676. package/client/static/icons/CarOutline.svg +3 -0
  1677. package/client/static/icons/CarParkingLights.svg +3 -0
  1678. package/client/static/icons/CarPickup.svg +3 -0
  1679. package/client/static/icons/CarSearch.svg +3 -0
  1680. package/client/static/icons/CarSearchOutline.svg +3 -0
  1681. package/client/static/icons/CarSeat.svg +3 -0
  1682. package/client/static/icons/CarSeatCooler.svg +3 -0
  1683. package/client/static/icons/CarSeatHeater.svg +3 -0
  1684. package/client/static/icons/CarSelect.svg +3 -0
  1685. package/client/static/icons/CarSettings.svg +3 -0
  1686. package/client/static/icons/CarShiftPattern.svg +3 -0
  1687. package/client/static/icons/CarSide.svg +3 -0
  1688. package/client/static/icons/CarSpeedLimiter.svg +3 -0
  1689. package/client/static/icons/CarSports.svg +3 -0
  1690. package/client/static/icons/CarTireAlert.svg +3 -0
  1691. package/client/static/icons/CarTractionControl.svg +3 -0
  1692. package/client/static/icons/CarTurbocharger.svg +3 -0
  1693. package/client/static/icons/CarWash.svg +3 -0
  1694. package/client/static/icons/CarWindshield.svg +3 -0
  1695. package/client/static/icons/CarWindshieldOutline.svg +3 -0
  1696. package/client/static/icons/CarWireless.svg +3 -0
  1697. package/client/static/icons/CarWrench.svg +3 -0
  1698. package/client/static/icons/Carabiner.svg +3 -0
  1699. package/client/static/icons/Caravan.svg +3 -0
  1700. package/client/static/icons/Card.svg +3 -0
  1701. package/client/static/icons/CardAccountDetails.svg +3 -0
  1702. package/client/static/icons/CardAccountDetailsOutline.svg +3 -0
  1703. package/client/static/icons/CardAccountDetailsStar.svg +3 -0
  1704. package/client/static/icons/CardAccountDetailsStarOutline.svg +3 -0
  1705. package/client/static/icons/CardAccountMail.svg +3 -0
  1706. package/client/static/icons/CardAccountMailOutline.svg +3 -0
  1707. package/client/static/icons/CardAccountPhone.svg +3 -0
  1708. package/client/static/icons/CardAccountPhoneOutline.svg +3 -0
  1709. package/client/static/icons/CardBulleted.svg +3 -0
  1710. package/client/static/icons/CardBulletedOff.svg +3 -0
  1711. package/client/static/icons/CardBulletedOffOutline.svg +3 -0
  1712. package/client/static/icons/CardBulletedOutline.svg +3 -0
  1713. package/client/static/icons/CardBulletedSettings.svg +3 -0
  1714. package/client/static/icons/CardBulletedSettingsOutline.svg +3 -0
  1715. package/client/static/icons/CardMinus.svg +3 -0
  1716. package/client/static/icons/CardMinusOutline.svg +3 -0
  1717. package/client/static/icons/CardMultiple.svg +3 -0
  1718. package/client/static/icons/CardMultipleOutline.svg +3 -0
  1719. package/client/static/icons/CardOff.svg +3 -0
  1720. package/client/static/icons/CardOffOutline.svg +3 -0
  1721. package/client/static/icons/CardOutline.svg +3 -0
  1722. package/client/static/icons/CardPlus.svg +3 -0
  1723. package/client/static/icons/CardPlusOutline.svg +3 -0
  1724. package/client/static/icons/CardRemove.svg +3 -0
  1725. package/client/static/icons/CardRemoveOutline.svg +3 -0
  1726. package/client/static/icons/CardSearch.svg +3 -0
  1727. package/client/static/icons/CardSearchOutline.svg +3 -0
  1728. package/client/static/icons/CardText.svg +3 -0
  1729. package/client/static/icons/CardTextOutline.svg +3 -0
  1730. package/client/static/icons/Cards.svg +3 -0
  1731. package/client/static/icons/CardsClub.svg +3 -0
  1732. package/client/static/icons/CardsClubOutline.svg +3 -0
  1733. package/client/static/icons/CardsDiamond.svg +3 -0
  1734. package/client/static/icons/CardsDiamondOutline.svg +3 -0
  1735. package/client/static/icons/CardsHeart.svg +3 -0
  1736. package/client/static/icons/CardsHeartOutline.svg +3 -0
  1737. package/client/static/icons/CardsOutline.svg +3 -0
  1738. package/client/static/icons/CardsPlaying.svg +3 -0
  1739. package/client/static/icons/CardsPlayingClub.svg +3 -0
  1740. package/client/static/icons/CardsPlayingClubMultiple.svg +3 -0
  1741. package/client/static/icons/CardsPlayingClubMultipleOutline.svg +3 -0
  1742. package/client/static/icons/CardsPlayingClubOutline.svg +3 -0
  1743. package/client/static/icons/CardsPlayingDiamond.svg +3 -0
  1744. package/client/static/icons/CardsPlayingDiamondMultiple.svg +3 -0
  1745. package/client/static/icons/CardsPlayingDiamondMultipleOutline.svg +3 -0
  1746. package/client/static/icons/CardsPlayingDiamondOutline.svg +3 -0
  1747. package/client/static/icons/CardsPlayingHeart.svg +3 -0
  1748. package/client/static/icons/CardsPlayingHeartMultiple.svg +3 -0
  1749. package/client/static/icons/CardsPlayingHeartMultipleOutline.svg +3 -0
  1750. package/client/static/icons/CardsPlayingHeartOutline.svg +3 -0
  1751. package/client/static/icons/CardsPlayingOutline.svg +3 -0
  1752. package/client/static/icons/CardsPlayingSpade.svg +3 -0
  1753. package/client/static/icons/CardsPlayingSpadeMultiple.svg +3 -0
  1754. package/client/static/icons/CardsPlayingSpadeMultipleOutline.svg +3 -0
  1755. package/client/static/icons/CardsPlayingSpadeOutline.svg +3 -0
  1756. package/client/static/icons/CardsSpade.svg +3 -0
  1757. package/client/static/icons/CardsSpadeOutline.svg +3 -0
  1758. package/client/static/icons/CardsVariant.svg +3 -0
  1759. package/client/static/icons/Carrot.svg +3 -0
  1760. package/client/static/icons/Cart.svg +3 -0
  1761. package/client/static/icons/CartArrowDown.svg +3 -0
  1762. package/client/static/icons/CartArrowRight.svg +3 -0
  1763. package/client/static/icons/CartArrowUp.svg +3 -0
  1764. package/client/static/icons/CartCheck.svg +3 -0
  1765. package/client/static/icons/CartHeart.svg +3 -0
  1766. package/client/static/icons/CartMinus.svg +3 -0
  1767. package/client/static/icons/CartOff.svg +3 -0
  1768. package/client/static/icons/CartOutline.svg +3 -0
  1769. package/client/static/icons/CartPercent.svg +3 -0
  1770. package/client/static/icons/CartPlus.svg +3 -0
  1771. package/client/static/icons/CartRemove.svg +3 -0
  1772. package/client/static/icons/CartVariant.svg +3 -0
  1773. package/client/static/icons/CaseSensitiveAlt.svg +3 -0
  1774. package/client/static/icons/Cash.svg +3 -0
  1775. package/client/static/icons/Cash100.svg +3 -0
  1776. package/client/static/icons/CashCheck.svg +3 -0
  1777. package/client/static/icons/CashClock.svg +3 -0
  1778. package/client/static/icons/CashEdit.svg +3 -0
  1779. package/client/static/icons/CashFast.svg +3 -0
  1780. package/client/static/icons/CashLock.svg +3 -0
  1781. package/client/static/icons/CashLockOpen.svg +3 -0
  1782. package/client/static/icons/CashMarker.svg +3 -0
  1783. package/client/static/icons/CashMinus.svg +3 -0
  1784. package/client/static/icons/CashMultiple.svg +3 -0
  1785. package/client/static/icons/CashOff.svg +3 -0
  1786. package/client/static/icons/CashPlus.svg +3 -0
  1787. package/client/static/icons/CashRefund.svg +3 -0
  1788. package/client/static/icons/CashRegister.svg +3 -0
  1789. package/client/static/icons/CashRemove.svg +3 -0
  1790. package/client/static/icons/CashSync.svg +3 -0
  1791. package/client/static/icons/Cassette.svg +3 -0
  1792. package/client/static/icons/Cast.svg +3 -0
  1793. package/client/static/icons/CastAudio.svg +3 -0
  1794. package/client/static/icons/CastAudioVariant.svg +3 -0
  1795. package/client/static/icons/CastConnected.svg +3 -0
  1796. package/client/static/icons/CastEducation.svg +3 -0
  1797. package/client/static/icons/CastOff.svg +3 -0
  1798. package/client/static/icons/CastVariant.svg +3 -0
  1799. package/client/static/icons/Castle.svg +3 -0
  1800. package/client/static/icons/Cat.svg +3 -0
  1801. package/client/static/icons/Cctv.svg +3 -0
  1802. package/client/static/icons/CctvOff.svg +3 -0
  1803. package/client/static/icons/CeilingFan.svg +3 -0
  1804. package/client/static/icons/CeilingFanLight.svg +3 -0
  1805. package/client/static/icons/CeilingLight.svg +3 -0
  1806. package/client/static/icons/CeilingLightMultiple.svg +3 -0
  1807. package/client/static/icons/CeilingLightMultipleOutline.svg +3 -0
  1808. package/client/static/icons/CeilingLightOutline.svg +3 -0
  1809. package/client/static/icons/Cellphone.svg +3 -0
  1810. package/client/static/icons/CellphoneArrowDown.svg +3 -0
  1811. package/client/static/icons/CellphoneArrowDownVariant.svg +3 -0
  1812. package/client/static/icons/CellphoneBasic.svg +3 -0
  1813. package/client/static/icons/CellphoneCharging.svg +3 -0
  1814. package/client/static/icons/CellphoneCheck.svg +3 -0
  1815. package/client/static/icons/CellphoneCog.svg +3 -0
  1816. package/client/static/icons/CellphoneDock.svg +3 -0
  1817. package/client/static/icons/CellphoneInformation.svg +3 -0
  1818. package/client/static/icons/CellphoneKey.svg +3 -0
  1819. package/client/static/icons/CellphoneLink.svg +3 -0
  1820. package/client/static/icons/CellphoneLinkOff.svg +3 -0
  1821. package/client/static/icons/CellphoneLock.svg +3 -0
  1822. package/client/static/icons/CellphoneMarker.svg +3 -0
  1823. package/client/static/icons/CellphoneMessage.svg +3 -0
  1824. package/client/static/icons/CellphoneMessageOff.svg +3 -0
  1825. package/client/static/icons/CellphoneNfc.svg +3 -0
  1826. package/client/static/icons/CellphoneNfcOff.svg +3 -0
  1827. package/client/static/icons/CellphoneOff.svg +3 -0
  1828. package/client/static/icons/CellphonePlay.svg +3 -0
  1829. package/client/static/icons/CellphoneRemove.svg +3 -0
  1830. package/client/static/icons/CellphoneScreenshot.svg +3 -0
  1831. package/client/static/icons/CellphoneSettings.svg +3 -0
  1832. package/client/static/icons/CellphoneSound.svg +3 -0
  1833. package/client/static/icons/CellphoneText.svg +3 -0
  1834. package/client/static/icons/CellphoneWireless.svg +3 -0
  1835. package/client/static/icons/Centos.svg +3 -0
  1836. package/client/static/icons/Certificate.svg +3 -0
  1837. package/client/static/icons/CertificateOutline.svg +3 -0
  1838. package/client/static/icons/ChairRolling.svg +3 -0
  1839. package/client/static/icons/ChairSchool.svg +3 -0
  1840. package/client/static/icons/Chandelier.svg +3 -0
  1841. package/client/static/icons/Charity.svg +3 -0
  1842. package/client/static/icons/CharitySearch.svg +3 -0
  1843. package/client/static/icons/ChartArc.svg +3 -0
  1844. package/client/static/icons/ChartAreaspline.svg +3 -0
  1845. package/client/static/icons/ChartAreasplineVariant.svg +3 -0
  1846. package/client/static/icons/ChartBar.svg +3 -0
  1847. package/client/static/icons/ChartBarStacked.svg +3 -0
  1848. package/client/static/icons/ChartBellCurve.svg +3 -0
  1849. package/client/static/icons/ChartBellCurveCumulative.svg +3 -0
  1850. package/client/static/icons/ChartBox.svg +3 -0
  1851. package/client/static/icons/ChartBoxMultiple.svg +3 -0
  1852. package/client/static/icons/ChartBoxMultipleOutline.svg +3 -0
  1853. package/client/static/icons/ChartBoxOutline.svg +3 -0
  1854. package/client/static/icons/ChartBoxPlusOutline.svg +3 -0
  1855. package/client/static/icons/ChartBubble.svg +3 -0
  1856. package/client/static/icons/ChartDonut.svg +3 -0
  1857. package/client/static/icons/ChartDonutVariant.svg +3 -0
  1858. package/client/static/icons/ChartGantt.svg +3 -0
  1859. package/client/static/icons/ChartHistogram.svg +3 -0
  1860. package/client/static/icons/ChartLine.svg +3 -0
  1861. package/client/static/icons/ChartLineStacked.svg +3 -0
  1862. package/client/static/icons/ChartLineVariant.svg +3 -0
  1863. package/client/static/icons/ChartMultiline.svg +3 -0
  1864. package/client/static/icons/ChartMultiple.svg +3 -0
  1865. package/client/static/icons/ChartPie.svg +3 -0
  1866. package/client/static/icons/ChartPieOutline.svg +3 -0
  1867. package/client/static/icons/ChartPpf.svg +3 -0
  1868. package/client/static/icons/ChartSankey.svg +3 -0
  1869. package/client/static/icons/ChartSankeyVariant.svg +3 -0
  1870. package/client/static/icons/ChartScatterPlot.svg +3 -0
  1871. package/client/static/icons/ChartScatterPlotHexbin.svg +3 -0
  1872. package/client/static/icons/ChartTimeline.svg +3 -0
  1873. package/client/static/icons/ChartTimelineVariant.svg +3 -0
  1874. package/client/static/icons/ChartTimelineVariantShimmer.svg +3 -0
  1875. package/client/static/icons/ChartTree.svg +3 -0
  1876. package/client/static/icons/ChartWaterfall.svg +3 -0
  1877. package/client/static/icons/Chat.svg +3 -0
  1878. package/client/static/icons/ChatAlert.svg +3 -0
  1879. package/client/static/icons/ChatAlertOutline.svg +3 -0
  1880. package/client/static/icons/ChatMinus.svg +3 -0
  1881. package/client/static/icons/ChatMinusOutline.svg +3 -0
  1882. package/client/static/icons/ChatOutline.svg +3 -0
  1883. package/client/static/icons/ChatPlus.svg +3 -0
  1884. package/client/static/icons/ChatPlusOutline.svg +3 -0
  1885. package/client/static/icons/ChatProcessing.svg +3 -0
  1886. package/client/static/icons/ChatProcessingOutline.svg +3 -0
  1887. package/client/static/icons/ChatQuestion.svg +3 -0
  1888. package/client/static/icons/ChatQuestionOutline.svg +3 -0
  1889. package/client/static/icons/ChatRemove.svg +3 -0
  1890. package/client/static/icons/ChatRemoveOutline.svg +3 -0
  1891. package/client/static/icons/ChatSleep.svg +3 -0
  1892. package/client/static/icons/ChatSleepOutline.svg +3 -0
  1893. package/client/static/icons/Check.svg +3 -0
  1894. package/client/static/icons/CheckAll.svg +3 -0
  1895. package/client/static/icons/CheckBold.svg +3 -0
  1896. package/client/static/icons/CheckCircle.svg +3 -0
  1897. package/client/static/icons/CheckCircleOutline.svg +3 -0
  1898. package/client/static/icons/CheckDecagram.svg +3 -0
  1899. package/client/static/icons/CheckDecagramOutline.svg +3 -0
  1900. package/client/static/icons/CheckNetwork.svg +3 -0
  1901. package/client/static/icons/CheckNetworkOutline.svg +3 -0
  1902. package/client/static/icons/CheckOutline.svg +3 -0
  1903. package/client/static/icons/CheckUnderline.svg +3 -0
  1904. package/client/static/icons/CheckUnderlineCircle.svg +3 -0
  1905. package/client/static/icons/CheckUnderlineCircleOutline.svg +3 -0
  1906. package/client/static/icons/Checkbook.svg +3 -0
  1907. package/client/static/icons/CheckbookArrowLeft.svg +3 -0
  1908. package/client/static/icons/CheckbookArrowRight.svg +3 -0
  1909. package/client/static/icons/CheckboxBlank.svg +3 -0
  1910. package/client/static/icons/CheckboxBlankBadge.svg +3 -0
  1911. package/client/static/icons/CheckboxBlankBadgeOutline.svg +3 -0
  1912. package/client/static/icons/CheckboxBlankCircle.svg +3 -0
  1913. package/client/static/icons/CheckboxBlankCircleOutline.svg +3 -0
  1914. package/client/static/icons/CheckboxBlankOff.svg +3 -0
  1915. package/client/static/icons/CheckboxBlankOffOutline.svg +3 -0
  1916. package/client/static/icons/CheckboxBlankOutline.svg +3 -0
  1917. package/client/static/icons/CheckboxIntermediate.svg +3 -0
  1918. package/client/static/icons/CheckboxIntermediateVariant.svg +3 -0
  1919. package/client/static/icons/CheckboxMarked.svg +3 -0
  1920. package/client/static/icons/CheckboxMarkedCircle.svg +3 -0
  1921. package/client/static/icons/CheckboxMarkedCircleAutoOutline.svg +3 -0
  1922. package/client/static/icons/CheckboxMarkedCircleMinusOutline.svg +3 -0
  1923. package/client/static/icons/CheckboxMarkedCircleOutline.svg +3 -0
  1924. package/client/static/icons/CheckboxMarkedCirclePlusOutline.svg +3 -0
  1925. package/client/static/icons/CheckboxMarkedOutline.svg +3 -0
  1926. package/client/static/icons/CheckboxMultipleBlank.svg +3 -0
  1927. package/client/static/icons/CheckboxMultipleBlankCircle.svg +3 -0
  1928. package/client/static/icons/CheckboxMultipleBlankCircleOutline.svg +3 -0
  1929. package/client/static/icons/CheckboxMultipleBlankOutline.svg +3 -0
  1930. package/client/static/icons/CheckboxMultipleMarked.svg +3 -0
  1931. package/client/static/icons/CheckboxMultipleMarkedCircle.svg +3 -0
  1932. package/client/static/icons/CheckboxMultipleMarkedCircleOutline.svg +3 -0
  1933. package/client/static/icons/CheckboxMultipleMarkedOutline.svg +3 -0
  1934. package/client/static/icons/CheckboxMultipleOutline.svg +3 -0
  1935. package/client/static/icons/CheckboxOutline.svg +3 -0
  1936. package/client/static/icons/Checkerboard.svg +3 -0
  1937. package/client/static/icons/CheckerboardMinus.svg +3 -0
  1938. package/client/static/icons/CheckerboardPlus.svg +3 -0
  1939. package/client/static/icons/CheckerboardRemove.svg +3 -0
  1940. package/client/static/icons/Cheese.svg +3 -0
  1941. package/client/static/icons/CheeseOff.svg +3 -0
  1942. package/client/static/icons/ChefHat.svg +3 -0
  1943. package/client/static/icons/ChemicalWeapon.svg +3 -0
  1944. package/client/static/icons/ChessBishop.svg +3 -0
  1945. package/client/static/icons/ChessKing.svg +3 -0
  1946. package/client/static/icons/ChessKnight.svg +3 -0
  1947. package/client/static/icons/ChessPawn.svg +3 -0
  1948. package/client/static/icons/ChessQueen.svg +3 -0
  1949. package/client/static/icons/ChessRook.svg +3 -0
  1950. package/client/static/icons/ChevronDoubleDown.svg +3 -0
  1951. package/client/static/icons/ChevronDoubleLeft.svg +3 -0
  1952. package/client/static/icons/ChevronDoubleRight.svg +3 -0
  1953. package/client/static/icons/ChevronDoubleUp.svg +3 -0
  1954. package/client/static/icons/ChevronDown.svg +3 -0
  1955. package/client/static/icons/ChevronDownBox.svg +3 -0
  1956. package/client/static/icons/ChevronDownBoxOutline.svg +3 -0
  1957. package/client/static/icons/ChevronDownCircle.svg +3 -0
  1958. package/client/static/icons/ChevronDownCircleOutline.svg +3 -0
  1959. package/client/static/icons/ChevronLeft.svg +3 -0
  1960. package/client/static/icons/ChevronLeftBox.svg +3 -0
  1961. package/client/static/icons/ChevronLeftBoxOutline.svg +3 -0
  1962. package/client/static/icons/ChevronLeftCircle.svg +3 -0
  1963. package/client/static/icons/ChevronLeftCircleOutline.svg +3 -0
  1964. package/client/static/icons/ChevronRight.svg +3 -0
  1965. package/client/static/icons/ChevronRightBox.svg +3 -0
  1966. package/client/static/icons/ChevronRightBoxOutline.svg +3 -0
  1967. package/client/static/icons/ChevronRightCircle.svg +3 -0
  1968. package/client/static/icons/ChevronRightCircleOutline.svg +3 -0
  1969. package/client/static/icons/ChevronTripleDown.svg +3 -0
  1970. package/client/static/icons/ChevronTripleLeft.svg +3 -0
  1971. package/client/static/icons/ChevronTripleRight.svg +3 -0
  1972. package/client/static/icons/ChevronTripleUp.svg +3 -0
  1973. package/client/static/icons/ChevronUp.svg +3 -0
  1974. package/client/static/icons/ChevronUpBox.svg +3 -0
  1975. package/client/static/icons/ChevronUpBoxOutline.svg +3 -0
  1976. package/client/static/icons/ChevronUpCircle.svg +3 -0
  1977. package/client/static/icons/ChevronUpCircleOutline.svg +3 -0
  1978. package/client/static/icons/ChiliAlert.svg +3 -0
  1979. package/client/static/icons/ChiliAlertOutline.svg +3 -0
  1980. package/client/static/icons/ChiliHot.svg +3 -0
  1981. package/client/static/icons/ChiliHotOutline.svg +3 -0
  1982. package/client/static/icons/ChiliMedium.svg +3 -0
  1983. package/client/static/icons/ChiliMediumOutline.svg +3 -0
  1984. package/client/static/icons/ChiliMild.svg +3 -0
  1985. package/client/static/icons/ChiliMildOutline.svg +3 -0
  1986. package/client/static/icons/ChiliOff.svg +3 -0
  1987. package/client/static/icons/ChiliOffOutline.svg +3 -0
  1988. package/client/static/icons/Chip.svg +3 -0
  1989. package/client/static/icons/Church.svg +3 -0
  1990. package/client/static/icons/ChurchOutline.svg +3 -0
  1991. package/client/static/icons/Cigar.svg +3 -0
  1992. package/client/static/icons/CigarOff.svg +3 -0
  1993. package/client/static/icons/Circle.svg +3 -0
  1994. package/client/static/icons/CircleBox.svg +3 -0
  1995. package/client/static/icons/CircleBoxOutline.svg +3 -0
  1996. package/client/static/icons/CircleDouble.svg +3 -0
  1997. package/client/static/icons/CircleEditOutline.svg +3 -0
  1998. package/client/static/icons/CircleExpand.svg +3 -0
  1999. package/client/static/icons/CircleHalf.svg +3 -0
  2000. package/client/static/icons/CircleHalfFull.svg +3 -0
  2001. package/client/static/icons/CircleMedium.svg +3 -0
  2002. package/client/static/icons/CircleMultiple.svg +3 -0
  2003. package/client/static/icons/CircleMultipleOutline.svg +3 -0
  2004. package/client/static/icons/CircleOffOutline.svg +3 -0
  2005. package/client/static/icons/CircleOpacity.svg +3 -0
  2006. package/client/static/icons/CircleOutline.svg +3 -0
  2007. package/client/static/icons/CircleSlice1.svg +3 -0
  2008. package/client/static/icons/CircleSlice2.svg +3 -0
  2009. package/client/static/icons/CircleSlice3.svg +3 -0
  2010. package/client/static/icons/CircleSlice4.svg +3 -0
  2011. package/client/static/icons/CircleSlice5.svg +3 -0
  2012. package/client/static/icons/CircleSlice6.svg +3 -0
  2013. package/client/static/icons/CircleSlice7.svg +3 -0
  2014. package/client/static/icons/CircleSlice8.svg +3 -0
  2015. package/client/static/icons/CircleSmall.svg +3 -0
  2016. package/client/static/icons/CircularSaw.svg +3 -0
  2017. package/client/static/icons/City.svg +3 -0
  2018. package/client/static/icons/CitySwitch.svg +3 -0
  2019. package/client/static/icons/CityVariant.svg +3 -0
  2020. package/client/static/icons/CityVariantOutline.svg +3 -0
  2021. package/client/static/icons/Clipboard.svg +3 -0
  2022. package/client/static/icons/ClipboardAccount.svg +3 -0
  2023. package/client/static/icons/ClipboardAccountOutline.svg +3 -0
  2024. package/client/static/icons/ClipboardAlert.svg +3 -0
  2025. package/client/static/icons/ClipboardAlertOutline.svg +3 -0
  2026. package/client/static/icons/ClipboardArrowDown.svg +3 -0
  2027. package/client/static/icons/ClipboardArrowDownOutline.svg +3 -0
  2028. package/client/static/icons/ClipboardArrowLeft.svg +3 -0
  2029. package/client/static/icons/ClipboardArrowLeftOutline.svg +3 -0
  2030. package/client/static/icons/ClipboardArrowRight.svg +3 -0
  2031. package/client/static/icons/ClipboardArrowRightOutline.svg +3 -0
  2032. package/client/static/icons/ClipboardArrowUp.svg +3 -0
  2033. package/client/static/icons/ClipboardArrowUpOutline.svg +3 -0
  2034. package/client/static/icons/ClipboardCheck.svg +3 -0
  2035. package/client/static/icons/ClipboardCheckMultiple.svg +3 -0
  2036. package/client/static/icons/ClipboardCheckMultipleOutline.svg +3 -0
  2037. package/client/static/icons/ClipboardCheckOutline.svg +3 -0
  2038. package/client/static/icons/ClipboardClock.svg +3 -0
  2039. package/client/static/icons/ClipboardClockOutline.svg +3 -0
  2040. package/client/static/icons/ClipboardEdit.svg +3 -0
  2041. package/client/static/icons/ClipboardEditOutline.svg +3 -0
  2042. package/client/static/icons/ClipboardFile.svg +3 -0
  2043. package/client/static/icons/ClipboardFileOutline.svg +3 -0
  2044. package/client/static/icons/ClipboardFlow.svg +3 -0
  2045. package/client/static/icons/ClipboardFlowOutline.svg +3 -0
  2046. package/client/static/icons/ClipboardList.svg +3 -0
  2047. package/client/static/icons/ClipboardListOutline.svg +3 -0
  2048. package/client/static/icons/ClipboardMinus.svg +3 -0
  2049. package/client/static/icons/ClipboardMinusOutline.svg +3 -0
  2050. package/client/static/icons/ClipboardMultiple.svg +3 -0
  2051. package/client/static/icons/ClipboardMultipleOutline.svg +3 -0
  2052. package/client/static/icons/ClipboardOff.svg +3 -0
  2053. package/client/static/icons/ClipboardOffOutline.svg +3 -0
  2054. package/client/static/icons/ClipboardOutline.svg +3 -0
  2055. package/client/static/icons/ClipboardPlay.svg +3 -0
  2056. package/client/static/icons/ClipboardPlayMultiple.svg +3 -0
  2057. package/client/static/icons/ClipboardPlayMultipleOutline.svg +3 -0
  2058. package/client/static/icons/ClipboardPlayOutline.svg +3 -0
  2059. package/client/static/icons/ClipboardPlus.svg +3 -0
  2060. package/client/static/icons/ClipboardPlusOutline.svg +3 -0
  2061. package/client/static/icons/ClipboardPulse.svg +3 -0
  2062. package/client/static/icons/ClipboardPulseOutline.svg +3 -0
  2063. package/client/static/icons/ClipboardRemove.svg +3 -0
  2064. package/client/static/icons/ClipboardRemoveOutline.svg +3 -0
  2065. package/client/static/icons/ClipboardSearch.svg +3 -0
  2066. package/client/static/icons/ClipboardSearchOutline.svg +3 -0
  2067. package/client/static/icons/ClipboardText.svg +3 -0
  2068. package/client/static/icons/ClipboardTextClock.svg +3 -0
  2069. package/client/static/icons/ClipboardTextClockOutline.svg +3 -0
  2070. package/client/static/icons/ClipboardTextMultiple.svg +3 -0
  2071. package/client/static/icons/ClipboardTextMultipleOutline.svg +3 -0
  2072. package/client/static/icons/ClipboardTextOff.svg +3 -0
  2073. package/client/static/icons/ClipboardTextOffOutline.svg +3 -0
  2074. package/client/static/icons/ClipboardTextOutline.svg +3 -0
  2075. package/client/static/icons/ClipboardTextPlay.svg +3 -0
  2076. package/client/static/icons/ClipboardTextPlayOutline.svg +3 -0
  2077. package/client/static/icons/ClipboardTextSearch.svg +3 -0
  2078. package/client/static/icons/ClipboardTextSearchOutline.svg +3 -0
  2079. package/client/static/icons/Clippy.svg +3 -0
  2080. package/client/static/icons/Clock.svg +3 -0
  2081. package/client/static/icons/ClockAlert.svg +3 -0
  2082. package/client/static/icons/ClockAlertOutline.svg +3 -0
  2083. package/client/static/icons/ClockCheck.svg +3 -0
  2084. package/client/static/icons/ClockCheckOutline.svg +3 -0
  2085. package/client/static/icons/ClockDigital.svg +3 -0
  2086. package/client/static/icons/ClockEdit.svg +3 -0
  2087. package/client/static/icons/ClockEditOutline.svg +3 -0
  2088. package/client/static/icons/ClockEnd.svg +3 -0
  2089. package/client/static/icons/ClockFast.svg +3 -0
  2090. package/client/static/icons/ClockIn.svg +3 -0
  2091. package/client/static/icons/ClockMinus.svg +3 -0
  2092. package/client/static/icons/ClockMinusOutline.svg +3 -0
  2093. package/client/static/icons/ClockOut.svg +3 -0
  2094. package/client/static/icons/ClockOutline.svg +3 -0
  2095. package/client/static/icons/ClockPlus.svg +3 -0
  2096. package/client/static/icons/ClockPlusOutline.svg +3 -0
  2097. package/client/static/icons/ClockRemove.svg +3 -0
  2098. package/client/static/icons/ClockRemoveOutline.svg +3 -0
  2099. package/client/static/icons/ClockStarFourPoints.svg +3 -0
  2100. package/client/static/icons/ClockStarFourPointsOutline.svg +3 -0
  2101. package/client/static/icons/ClockStart.svg +3 -0
  2102. package/client/static/icons/ClockTimeEight.svg +3 -0
  2103. package/client/static/icons/ClockTimeEightOutline.svg +3 -0
  2104. package/client/static/icons/ClockTimeEleven.svg +3 -0
  2105. package/client/static/icons/ClockTimeElevenOutline.svg +3 -0
  2106. package/client/static/icons/ClockTimeFive.svg +3 -0
  2107. package/client/static/icons/ClockTimeFiveOutline.svg +3 -0
  2108. package/client/static/icons/ClockTimeFour.svg +3 -0
  2109. package/client/static/icons/ClockTimeFourOutline.svg +3 -0
  2110. package/client/static/icons/ClockTimeNine.svg +3 -0
  2111. package/client/static/icons/ClockTimeNineOutline.svg +3 -0
  2112. package/client/static/icons/ClockTimeOne.svg +3 -0
  2113. package/client/static/icons/ClockTimeOneOutline.svg +3 -0
  2114. package/client/static/icons/ClockTimeSeven.svg +3 -0
  2115. package/client/static/icons/ClockTimeSevenOutline.svg +3 -0
  2116. package/client/static/icons/ClockTimeSix.svg +3 -0
  2117. package/client/static/icons/ClockTimeSixOutline.svg +3 -0
  2118. package/client/static/icons/ClockTimeTen.svg +3 -0
  2119. package/client/static/icons/ClockTimeTenOutline.svg +3 -0
  2120. package/client/static/icons/ClockTimeThree.svg +3 -0
  2121. package/client/static/icons/ClockTimeThreeOutline.svg +3 -0
  2122. package/client/static/icons/ClockTimeTwelve.svg +3 -0
  2123. package/client/static/icons/ClockTimeTwelveOutline.svg +3 -0
  2124. package/client/static/icons/ClockTimeTwo.svg +3 -0
  2125. package/client/static/icons/ClockTimeTwoOutline.svg +3 -0
  2126. package/client/static/icons/Close.svg +3 -0
  2127. package/client/static/icons/CloseBox.svg +3 -0
  2128. package/client/static/icons/CloseBoxMultiple.svg +3 -0
  2129. package/client/static/icons/CloseBoxMultipleOutline.svg +3 -0
  2130. package/client/static/icons/CloseBoxOutline.svg +3 -0
  2131. package/client/static/icons/CloseCircle.svg +3 -0
  2132. package/client/static/icons/CloseCircleMultiple.svg +3 -0
  2133. package/client/static/icons/CloseCircleMultipleOutline.svg +3 -0
  2134. package/client/static/icons/CloseCircleOutline.svg +3 -0
  2135. package/client/static/icons/CloseNetwork.svg +3 -0
  2136. package/client/static/icons/CloseNetworkOutline.svg +3 -0
  2137. package/client/static/icons/CloseOctagon.svg +3 -0
  2138. package/client/static/icons/CloseOctagonOutline.svg +3 -0
  2139. package/client/static/icons/CloseOutline.svg +3 -0
  2140. package/client/static/icons/CloseThick.svg +3 -0
  2141. package/client/static/icons/ClosedCaption.svg +3 -0
  2142. package/client/static/icons/ClosedCaptionOutline.svg +3 -0
  2143. package/client/static/icons/Cloud.svg +3 -0
  2144. package/client/static/icons/CloudAlert.svg +3 -0
  2145. package/client/static/icons/CloudAlertOutline.svg +3 -0
  2146. package/client/static/icons/CloudArrowDown.svg +3 -0
  2147. package/client/static/icons/CloudArrowDownOutline.svg +3 -0
  2148. package/client/static/icons/CloudArrowLeft.svg +3 -0
  2149. package/client/static/icons/CloudArrowLeftOutline.svg +3 -0
  2150. package/client/static/icons/CloudArrowRight.svg +3 -0
  2151. package/client/static/icons/CloudArrowRightOutline.svg +3 -0
  2152. package/client/static/icons/CloudArrowUp.svg +3 -0
  2153. package/client/static/icons/CloudArrowUpOutline.svg +3 -0
  2154. package/client/static/icons/CloudBraces.svg +3 -0
  2155. package/client/static/icons/CloudCancel.svg +3 -0
  2156. package/client/static/icons/CloudCancelOutline.svg +3 -0
  2157. package/client/static/icons/CloudCheck.svg +3 -0
  2158. package/client/static/icons/CloudCheckOutline.svg +3 -0
  2159. package/client/static/icons/CloudCheckVariant.svg +3 -0
  2160. package/client/static/icons/CloudCheckVariantOutline.svg +3 -0
  2161. package/client/static/icons/CloudCircle.svg +3 -0
  2162. package/client/static/icons/CloudCircleOutline.svg +3 -0
  2163. package/client/static/icons/CloudClock.svg +3 -0
  2164. package/client/static/icons/CloudClockOutline.svg +3 -0
  2165. package/client/static/icons/CloudCog.svg +3 -0
  2166. package/client/static/icons/CloudCogOutline.svg +3 -0
  2167. package/client/static/icons/CloudDownload.svg +3 -0
  2168. package/client/static/icons/CloudDownloadOutline.svg +3 -0
  2169. package/client/static/icons/CloudKey.svg +3 -0
  2170. package/client/static/icons/CloudKeyOutline.svg +3 -0
  2171. package/client/static/icons/CloudLock.svg +3 -0
  2172. package/client/static/icons/CloudLockOpen.svg +3 -0
  2173. package/client/static/icons/CloudLockOpenOutline.svg +3 -0
  2174. package/client/static/icons/CloudLockOutline.svg +3 -0
  2175. package/client/static/icons/CloudMinus.svg +3 -0
  2176. package/client/static/icons/CloudMinusOutline.svg +3 -0
  2177. package/client/static/icons/CloudOff.svg +3 -0
  2178. package/client/static/icons/CloudOffOutline.svg +3 -0
  2179. package/client/static/icons/CloudOutline.svg +3 -0
  2180. package/client/static/icons/CloudPercent.svg +3 -0
  2181. package/client/static/icons/CloudPercentOutline.svg +3 -0
  2182. package/client/static/icons/CloudPlus.svg +3 -0
  2183. package/client/static/icons/CloudPlusOutline.svg +3 -0
  2184. package/client/static/icons/CloudPrint.svg +3 -0
  2185. package/client/static/icons/CloudPrintOutline.svg +3 -0
  2186. package/client/static/icons/CloudQuestion.svg +3 -0
  2187. package/client/static/icons/CloudQuestionOutline.svg +3 -0
  2188. package/client/static/icons/CloudRefresh.svg +3 -0
  2189. package/client/static/icons/CloudRefreshOutline.svg +3 -0
  2190. package/client/static/icons/CloudRefreshVariant.svg +3 -0
  2191. package/client/static/icons/CloudRefreshVariantOutline.svg +3 -0
  2192. package/client/static/icons/CloudRemove.svg +3 -0
  2193. package/client/static/icons/CloudRemoveOutline.svg +3 -0
  2194. package/client/static/icons/CloudSearch.svg +3 -0
  2195. package/client/static/icons/CloudSearchOutline.svg +3 -0
  2196. package/client/static/icons/CloudSync.svg +3 -0
  2197. package/client/static/icons/CloudSyncOutline.svg +3 -0
  2198. package/client/static/icons/CloudTags.svg +3 -0
  2199. package/client/static/icons/CloudUpload.svg +3 -0
  2200. package/client/static/icons/CloudUploadOutline.svg +3 -0
  2201. package/client/static/icons/Clouds.svg +3 -0
  2202. package/client/static/icons/Clover.svg +3 -0
  2203. package/client/static/icons/CloverOutline.svg +3 -0
  2204. package/client/static/icons/CoachLamp.svg +3 -0
  2205. package/client/static/icons/CoachLampVariant.svg +3 -0
  2206. package/client/static/icons/CoatRack.svg +3 -0
  2207. package/client/static/icons/CodeArray.svg +3 -0
  2208. package/client/static/icons/CodeBlockBraces.svg +3 -0
  2209. package/client/static/icons/CodeBlockBrackets.svg +3 -0
  2210. package/client/static/icons/CodeBlockParentheses.svg +3 -0
  2211. package/client/static/icons/CodeBlockTags.svg +3 -0
  2212. package/client/static/icons/CodeBraces.svg +3 -0
  2213. package/client/static/icons/CodeBracesBox.svg +3 -0
  2214. package/client/static/icons/CodeBrackets.svg +3 -0
  2215. package/client/static/icons/CodeEqual.svg +3 -0
  2216. package/client/static/icons/CodeGreaterThan.svg +3 -0
  2217. package/client/static/icons/CodeGreaterThanOrEqual.svg +3 -0
  2218. package/client/static/icons/CodeJson.svg +3 -0
  2219. package/client/static/icons/CodeLessThan.svg +3 -0
  2220. package/client/static/icons/CodeLessThanOrEqual.svg +3 -0
  2221. package/client/static/icons/CodeNotEqual.svg +3 -0
  2222. package/client/static/icons/CodeNotEqualVariant.svg +3 -0
  2223. package/client/static/icons/CodeParentheses.svg +3 -0
  2224. package/client/static/icons/CodeParenthesesBox.svg +3 -0
  2225. package/client/static/icons/CodeString.svg +3 -0
  2226. package/client/static/icons/CodeTags.svg +3 -0
  2227. package/client/static/icons/CodeTagsCheck.svg +3 -0
  2228. package/client/static/icons/Codepen.svg +3 -0
  2229. package/client/static/icons/Coffee.svg +3 -0
  2230. package/client/static/icons/CoffeeMaker.svg +3 -0
  2231. package/client/static/icons/CoffeeMakerCheck.svg +3 -0
  2232. package/client/static/icons/CoffeeMakerCheckOutline.svg +3 -0
  2233. package/client/static/icons/CoffeeMakerOutline.svg +3 -0
  2234. package/client/static/icons/CoffeeOff.svg +3 -0
  2235. package/client/static/icons/CoffeeOffOutline.svg +3 -0
  2236. package/client/static/icons/CoffeeOutline.svg +3 -0
  2237. package/client/static/icons/CoffeeToGo.svg +3 -0
  2238. package/client/static/icons/CoffeeToGoOutline.svg +3 -0
  2239. package/client/static/icons/Coffin.svg +3 -0
  2240. package/client/static/icons/Cog.svg +3 -0
  2241. package/client/static/icons/CogBox.svg +3 -0
  2242. package/client/static/icons/CogClockwise.svg +3 -0
  2243. package/client/static/icons/CogCounterclockwise.svg +3 -0
  2244. package/client/static/icons/CogOff.svg +3 -0
  2245. package/client/static/icons/CogOffOutline.svg +3 -0
  2246. package/client/static/icons/CogOutline.svg +3 -0
  2247. package/client/static/icons/CogPause.svg +3 -0
  2248. package/client/static/icons/CogPauseOutline.svg +3 -0
  2249. package/client/static/icons/CogPlay.svg +3 -0
  2250. package/client/static/icons/CogPlayOutline.svg +3 -0
  2251. package/client/static/icons/CogRefresh.svg +3 -0
  2252. package/client/static/icons/CogRefreshOutline.svg +3 -0
  2253. package/client/static/icons/CogStop.svg +3 -0
  2254. package/client/static/icons/CogStopOutline.svg +3 -0
  2255. package/client/static/icons/CogSync.svg +3 -0
  2256. package/client/static/icons/CogSyncOutline.svg +3 -0
  2257. package/client/static/icons/CogTransfer.svg +3 -0
  2258. package/client/static/icons/CogTransferOutline.svg +3 -0
  2259. package/client/static/icons/Cogs.svg +3 -0
  2260. package/client/static/icons/Collage.svg +3 -0
  2261. package/client/static/icons/CollapseAll.svg +3 -0
  2262. package/client/static/icons/CollapseAllOutline.svg +3 -0
  2263. package/client/static/icons/ColorHelper.svg +3 -0
  2264. package/client/static/icons/Comma.svg +3 -0
  2265. package/client/static/icons/CommaBox.svg +3 -0
  2266. package/client/static/icons/CommaBoxOutline.svg +3 -0
  2267. package/client/static/icons/CommaCircle.svg +3 -0
  2268. package/client/static/icons/CommaCircleOutline.svg +3 -0
  2269. package/client/static/icons/Comment.svg +3 -0
  2270. package/client/static/icons/CommentAccount.svg +3 -0
  2271. package/client/static/icons/CommentAccountOutline.svg +3 -0
  2272. package/client/static/icons/CommentAlert.svg +3 -0
  2273. package/client/static/icons/CommentAlertOutline.svg +3 -0
  2274. package/client/static/icons/CommentArrowLeft.svg +3 -0
  2275. package/client/static/icons/CommentArrowLeftOutline.svg +3 -0
  2276. package/client/static/icons/CommentArrowRight.svg +3 -0
  2277. package/client/static/icons/CommentArrowRightOutline.svg +3 -0
  2278. package/client/static/icons/CommentBookmark.svg +3 -0
  2279. package/client/static/icons/CommentBookmarkOutline.svg +3 -0
  2280. package/client/static/icons/CommentCheck.svg +3 -0
  2281. package/client/static/icons/CommentCheckOutline.svg +3 -0
  2282. package/client/static/icons/CommentEdit.svg +3 -0
  2283. package/client/static/icons/CommentEditOutline.svg +3 -0
  2284. package/client/static/icons/CommentEye.svg +3 -0
  2285. package/client/static/icons/CommentEyeOutline.svg +3 -0
  2286. package/client/static/icons/CommentFlash.svg +3 -0
  2287. package/client/static/icons/CommentFlashOutline.svg +3 -0
  2288. package/client/static/icons/CommentMinus.svg +3 -0
  2289. package/client/static/icons/CommentMinusOutline.svg +3 -0
  2290. package/client/static/icons/CommentMultiple.svg +3 -0
  2291. package/client/static/icons/CommentMultipleOutline.svg +3 -0
  2292. package/client/static/icons/CommentOff.svg +3 -0
  2293. package/client/static/icons/CommentOffOutline.svg +3 -0
  2294. package/client/static/icons/CommentOutline.svg +3 -0
  2295. package/client/static/icons/CommentPlus.svg +3 -0
  2296. package/client/static/icons/CommentPlusOutline.svg +3 -0
  2297. package/client/static/icons/CommentProcessing.svg +3 -0
  2298. package/client/static/icons/CommentProcessingOutline.svg +3 -0
  2299. package/client/static/icons/CommentQuestion.svg +3 -0
  2300. package/client/static/icons/CommentQuestionOutline.svg +3 -0
  2301. package/client/static/icons/CommentQuote.svg +3 -0
  2302. package/client/static/icons/CommentQuoteOutline.svg +3 -0
  2303. package/client/static/icons/CommentRemove.svg +3 -0
  2304. package/client/static/icons/CommentRemoveOutline.svg +3 -0
  2305. package/client/static/icons/CommentSearch.svg +3 -0
  2306. package/client/static/icons/CommentSearchOutline.svg +3 -0
  2307. package/client/static/icons/CommentText.svg +3 -0
  2308. package/client/static/icons/CommentTextMultiple.svg +3 -0
  2309. package/client/static/icons/CommentTextMultipleOutline.svg +3 -0
  2310. package/client/static/icons/CommentTextOutline.svg +3 -0
  2311. package/client/static/icons/Compare.svg +3 -0
  2312. package/client/static/icons/CompareHorizontal.svg +3 -0
  2313. package/client/static/icons/CompareRemove.svg +3 -0
  2314. package/client/static/icons/CompareVertical.svg +3 -0
  2315. package/client/static/icons/Compass.svg +3 -0
  2316. package/client/static/icons/CompassOff.svg +3 -0
  2317. package/client/static/icons/CompassOffOutline.svg +3 -0
  2318. package/client/static/icons/CompassOutline.svg +3 -0
  2319. package/client/static/icons/CompassRose.svg +3 -0
  2320. package/client/static/icons/Compost.svg +3 -0
  2321. package/client/static/icons/Cone.svg +3 -0
  2322. package/client/static/icons/ConeOff.svg +3 -0
  2323. package/client/static/icons/Connection.svg +3 -0
  2324. package/client/static/icons/Console.svg +3 -0
  2325. package/client/static/icons/ConsoleLine.svg +3 -0
  2326. package/client/static/icons/ConsoleNetwork.svg +3 -0
  2327. package/client/static/icons/ConsoleNetworkOutline.svg +3 -0
  2328. package/client/static/icons/Consolidate.svg +3 -0
  2329. package/client/static/icons/ContactlessPayment.svg +3 -0
  2330. package/client/static/icons/ContactlessPaymentCircle.svg +3 -0
  2331. package/client/static/icons/ContactlessPaymentCircleOutline.svg +3 -0
  2332. package/client/static/icons/Contacts.svg +3 -0
  2333. package/client/static/icons/ContactsOutline.svg +3 -0
  2334. package/client/static/icons/Contain.svg +3 -0
  2335. package/client/static/icons/ContainEnd.svg +3 -0
  2336. package/client/static/icons/ContainStart.svg +3 -0
  2337. package/client/static/icons/ContentCopy.svg +3 -0
  2338. package/client/static/icons/ContentCut.svg +3 -0
  2339. package/client/static/icons/ContentDuplicate.svg +3 -0
  2340. package/client/static/icons/ContentPaste.svg +3 -0
  2341. package/client/static/icons/ContentSave.svg +3 -0
  2342. package/client/static/icons/ContentSaveAlert.svg +3 -0
  2343. package/client/static/icons/ContentSaveAlertOutline.svg +3 -0
  2344. package/client/static/icons/ContentSaveAll.svg +3 -0
  2345. package/client/static/icons/ContentSaveAllOutline.svg +3 -0
  2346. package/client/static/icons/ContentSaveCheck.svg +3 -0
  2347. package/client/static/icons/ContentSaveCheckOutline.svg +3 -0
  2348. package/client/static/icons/ContentSaveCog.svg +3 -0
  2349. package/client/static/icons/ContentSaveCogOutline.svg +3 -0
  2350. package/client/static/icons/ContentSaveEdit.svg +3 -0
  2351. package/client/static/icons/ContentSaveEditOutline.svg +3 -0
  2352. package/client/static/icons/ContentSaveMinus.svg +3 -0
  2353. package/client/static/icons/ContentSaveMinusOutline.svg +3 -0
  2354. package/client/static/icons/ContentSaveMove.svg +3 -0
  2355. package/client/static/icons/ContentSaveMoveOutline.svg +3 -0
  2356. package/client/static/icons/ContentSaveOff.svg +3 -0
  2357. package/client/static/icons/ContentSaveOffOutline.svg +3 -0
  2358. package/client/static/icons/ContentSaveOutline.svg +3 -0
  2359. package/client/static/icons/ContentSavePlus.svg +3 -0
  2360. package/client/static/icons/ContentSavePlusOutline.svg +3 -0
  2361. package/client/static/icons/ContentSaveSettings.svg +3 -0
  2362. package/client/static/icons/ContentSaveSettingsOutline.svg +3 -0
  2363. package/client/static/icons/Contrast.svg +3 -0
  2364. package/client/static/icons/ContrastBox.svg +3 -0
  2365. package/client/static/icons/ContrastCircle.svg +3 -0
  2366. package/client/static/icons/Controller.svg +3 -0
  2367. package/client/static/icons/ControllerClassic.svg +3 -0
  2368. package/client/static/icons/ControllerClassicOutline.svg +3 -0
  2369. package/client/static/icons/ControllerOff.svg +3 -0
  2370. package/client/static/icons/Cookie.svg +3 -0
  2371. package/client/static/icons/CookieAlert.svg +3 -0
  2372. package/client/static/icons/CookieAlertOutline.svg +3 -0
  2373. package/client/static/icons/CookieCheck.svg +3 -0
  2374. package/client/static/icons/CookieCheckOutline.svg +3 -0
  2375. package/client/static/icons/CookieClock.svg +3 -0
  2376. package/client/static/icons/CookieClockOutline.svg +3 -0
  2377. package/client/static/icons/CookieCog.svg +3 -0
  2378. package/client/static/icons/CookieCogOutline.svg +3 -0
  2379. package/client/static/icons/CookieEdit.svg +3 -0
  2380. package/client/static/icons/CookieEditOutline.svg +3 -0
  2381. package/client/static/icons/CookieLock.svg +3 -0
  2382. package/client/static/icons/CookieLockOutline.svg +3 -0
  2383. package/client/static/icons/CookieMinus.svg +3 -0
  2384. package/client/static/icons/CookieMinusOutline.svg +3 -0
  2385. package/client/static/icons/CookieOff.svg +3 -0
  2386. package/client/static/icons/CookieOffOutline.svg +3 -0
  2387. package/client/static/icons/CookieOutline.svg +3 -0
  2388. package/client/static/icons/CookiePlus.svg +3 -0
  2389. package/client/static/icons/CookiePlusOutline.svg +3 -0
  2390. package/client/static/icons/CookieRefresh.svg +3 -0
  2391. package/client/static/icons/CookieRefreshOutline.svg +3 -0
  2392. package/client/static/icons/CookieRemove.svg +3 -0
  2393. package/client/static/icons/CookieRemoveOutline.svg +3 -0
  2394. package/client/static/icons/CookieSettings.svg +3 -0
  2395. package/client/static/icons/CookieSettingsOutline.svg +3 -0
  2396. package/client/static/icons/CoolantTemperature.svg +3 -0
  2397. package/client/static/icons/Copyleft.svg +3 -0
  2398. package/client/static/icons/Copyright.svg +3 -0
  2399. package/client/static/icons/Cordova.svg +3 -0
  2400. package/client/static/icons/Corn.svg +3 -0
  2401. package/client/static/icons/CornOff.svg +3 -0
  2402. package/client/static/icons/CosineWave.svg +3 -0
  2403. package/client/static/icons/Counter.svg +3 -0
  2404. package/client/static/icons/Countertop.svg +3 -0
  2405. package/client/static/icons/CountertopOutline.svg +3 -0
  2406. package/client/static/icons/Cow.svg +3 -0
  2407. package/client/static/icons/CowOff.svg +3 -0
  2408. package/client/static/icons/Cpu32Bit.svg +3 -0
  2409. package/client/static/icons/Cpu64Bit.svg +3 -0
  2410. package/client/static/icons/Cradle.svg +3 -0
  2411. package/client/static/icons/CradleOutline.svg +3 -0
  2412. package/client/static/icons/Crane.svg +3 -0
  2413. package/client/static/icons/Creation.svg +3 -0
  2414. package/client/static/icons/CreationOutline.svg +3 -0
  2415. package/client/static/icons/CreativeCommons.svg +3 -0
  2416. package/client/static/icons/CreditCard.svg +3 -0
  2417. package/client/static/icons/CreditCardCheck.svg +3 -0
  2418. package/client/static/icons/CreditCardCheckOutline.svg +3 -0
  2419. package/client/static/icons/CreditCardChip.svg +3 -0
  2420. package/client/static/icons/CreditCardChipOutline.svg +3 -0
  2421. package/client/static/icons/CreditCardClock.svg +3 -0
  2422. package/client/static/icons/CreditCardClockOutline.svg +3 -0
  2423. package/client/static/icons/CreditCardEdit.svg +3 -0
  2424. package/client/static/icons/CreditCardEditOutline.svg +3 -0
  2425. package/client/static/icons/CreditCardFast.svg +3 -0
  2426. package/client/static/icons/CreditCardFastOutline.svg +3 -0
  2427. package/client/static/icons/CreditCardLock.svg +3 -0
  2428. package/client/static/icons/CreditCardLockOutline.svg +3 -0
  2429. package/client/static/icons/CreditCardMarker.svg +3 -0
  2430. package/client/static/icons/CreditCardMarkerOutline.svg +3 -0
  2431. package/client/static/icons/CreditCardMinus.svg +3 -0
  2432. package/client/static/icons/CreditCardMinusOutline.svg +3 -0
  2433. package/client/static/icons/CreditCardMultiple.svg +3 -0
  2434. package/client/static/icons/CreditCardMultipleOutline.svg +3 -0
  2435. package/client/static/icons/CreditCardOff.svg +3 -0
  2436. package/client/static/icons/CreditCardOffOutline.svg +3 -0
  2437. package/client/static/icons/CreditCardOutline.svg +3 -0
  2438. package/client/static/icons/CreditCardPlus.svg +3 -0
  2439. package/client/static/icons/CreditCardPlusOutline.svg +3 -0
  2440. package/client/static/icons/CreditCardRefresh.svg +3 -0
  2441. package/client/static/icons/CreditCardRefreshOutline.svg +3 -0
  2442. package/client/static/icons/CreditCardRefund.svg +3 -0
  2443. package/client/static/icons/CreditCardRefundOutline.svg +3 -0
  2444. package/client/static/icons/CreditCardRemove.svg +3 -0
  2445. package/client/static/icons/CreditCardRemoveOutline.svg +3 -0
  2446. package/client/static/icons/CreditCardScan.svg +3 -0
  2447. package/client/static/icons/CreditCardScanOutline.svg +3 -0
  2448. package/client/static/icons/CreditCardSearch.svg +3 -0
  2449. package/client/static/icons/CreditCardSearchOutline.svg +3 -0
  2450. package/client/static/icons/CreditCardSettings.svg +3 -0
  2451. package/client/static/icons/CreditCardSettingsOutline.svg +3 -0
  2452. package/client/static/icons/CreditCardSync.svg +3 -0
  2453. package/client/static/icons/CreditCardSyncOutline.svg +3 -0
  2454. package/client/static/icons/CreditCardWireless.svg +3 -0
  2455. package/client/static/icons/CreditCardWirelessOff.svg +3 -0
  2456. package/client/static/icons/CreditCardWirelessOffOutline.svg +3 -0
  2457. package/client/static/icons/CreditCardWirelessOutline.svg +3 -0
  2458. package/client/static/icons/Cricket.svg +3 -0
  2459. package/client/static/icons/Crop.svg +3 -0
  2460. package/client/static/icons/CropFree.svg +3 -0
  2461. package/client/static/icons/CropLandscape.svg +3 -0
  2462. package/client/static/icons/CropPortrait.svg +3 -0
  2463. package/client/static/icons/CropRotate.svg +3 -0
  2464. package/client/static/icons/CropSquare.svg +3 -0
  2465. package/client/static/icons/Cross.svg +3 -0
  2466. package/client/static/icons/CrossBolnisi.svg +3 -0
  2467. package/client/static/icons/CrossCeltic.svg +3 -0
  2468. package/client/static/icons/CrossOutline.svg +3 -0
  2469. package/client/static/icons/Crosshairs.svg +3 -0
  2470. package/client/static/icons/CrosshairsGps.svg +3 -0
  2471. package/client/static/icons/CrosshairsOff.svg +3 -0
  2472. package/client/static/icons/CrosshairsQuestion.svg +3 -0
  2473. package/client/static/icons/Crowd.svg +3 -0
  2474. package/client/static/icons/Crown.svg +3 -0
  2475. package/client/static/icons/CrownCircle.svg +3 -0
  2476. package/client/static/icons/CrownCircleOutline.svg +3 -0
  2477. package/client/static/icons/CrownOutline.svg +3 -0
  2478. package/client/static/icons/Cryengine.svg +3 -0
  2479. package/client/static/icons/CrystalBall.svg +3 -0
  2480. package/client/static/icons/Cube.svg +3 -0
  2481. package/client/static/icons/CubeOff.svg +3 -0
  2482. package/client/static/icons/CubeOffOutline.svg +3 -0
  2483. package/client/static/icons/CubeOutline.svg +3 -0
  2484. package/client/static/icons/CubeScan.svg +3 -0
  2485. package/client/static/icons/CubeSend.svg +3 -0
  2486. package/client/static/icons/CubeUnfolded.svg +3 -0
  2487. package/client/static/icons/Cup.svg +3 -0
  2488. package/client/static/icons/CupOff.svg +3 -0
  2489. package/client/static/icons/CupOffOutline.svg +3 -0
  2490. package/client/static/icons/CupOutline.svg +3 -0
  2491. package/client/static/icons/CupWater.svg +3 -0
  2492. package/client/static/icons/Cupboard.svg +3 -0
  2493. package/client/static/icons/CupboardOutline.svg +3 -0
  2494. package/client/static/icons/Cupcake.svg +3 -0
  2495. package/client/static/icons/Curling.svg +3 -0
  2496. package/client/static/icons/CurrencyBdt.svg +3 -0
  2497. package/client/static/icons/CurrencyBrl.svg +3 -0
  2498. package/client/static/icons/CurrencyBtc.svg +3 -0
  2499. package/client/static/icons/CurrencyCny.svg +3 -0
  2500. package/client/static/icons/CurrencyEth.svg +3 -0
  2501. package/client/static/icons/CurrencyEur.svg +3 -0
  2502. package/client/static/icons/CurrencyEurOff.svg +3 -0
  2503. package/client/static/icons/CurrencyFra.svg +3 -0
  2504. package/client/static/icons/CurrencyGbp.svg +3 -0
  2505. package/client/static/icons/CurrencyIls.svg +3 -0
  2506. package/client/static/icons/CurrencyInr.svg +3 -0
  2507. package/client/static/icons/CurrencyJpy.svg +3 -0
  2508. package/client/static/icons/CurrencyKrw.svg +3 -0
  2509. package/client/static/icons/CurrencyKzt.svg +3 -0
  2510. package/client/static/icons/CurrencyMnt.svg +3 -0
  2511. package/client/static/icons/CurrencyNgn.svg +3 -0
  2512. package/client/static/icons/CurrencyPhp.svg +3 -0
  2513. package/client/static/icons/CurrencyRial.svg +3 -0
  2514. package/client/static/icons/CurrencyRub.svg +3 -0
  2515. package/client/static/icons/CurrencyRupee.svg +3 -0
  2516. package/client/static/icons/CurrencySign.svg +3 -0
  2517. package/client/static/icons/CurrencyThb.svg +3 -0
  2518. package/client/static/icons/CurrencyTry.svg +3 -0
  2519. package/client/static/icons/CurrencyTwd.svg +3 -0
  2520. package/client/static/icons/CurrencyUah.svg +3 -0
  2521. package/client/static/icons/CurrencyUsd.svg +3 -0
  2522. package/client/static/icons/CurrencyUsdOff.svg +3 -0
  2523. package/client/static/icons/CurrentAc.svg +3 -0
  2524. package/client/static/icons/CurrentDc.svg +3 -0
  2525. package/client/static/icons/CursorDefault.svg +3 -0
  2526. package/client/static/icons/CursorDefaultClick.svg +3 -0
  2527. package/client/static/icons/CursorDefaultClickOutline.svg +3 -0
  2528. package/client/static/icons/CursorDefaultGesture.svg +3 -0
  2529. package/client/static/icons/CursorDefaultGestureOutline.svg +3 -0
  2530. package/client/static/icons/CursorDefaultOutline.svg +3 -0
  2531. package/client/static/icons/CursorMove.svg +3 -0
  2532. package/client/static/icons/CursorPointer.svg +3 -0
  2533. package/client/static/icons/CursorText.svg +3 -0
  2534. package/client/static/icons/Curtains.svg +3 -0
  2535. package/client/static/icons/CurtainsClosed.svg +3 -0
  2536. package/client/static/icons/Cylinder.svg +3 -0
  2537. package/client/static/icons/CylinderOff.svg +3 -0
  2538. package/client/static/icons/DanceBallroom.svg +3 -0
  2539. package/client/static/icons/DancePole.svg +3 -0
  2540. package/client/static/icons/DataMatrix.svg +3 -0
  2541. package/client/static/icons/DataMatrixEdit.svg +3 -0
  2542. package/client/static/icons/DataMatrixMinus.svg +3 -0
  2543. package/client/static/icons/DataMatrixPlus.svg +3 -0
  2544. package/client/static/icons/DataMatrixRemove.svg +3 -0
  2545. package/client/static/icons/DataMatrixScan.svg +3 -0
  2546. package/client/static/icons/Database.svg +3 -0
  2547. package/client/static/icons/DatabaseAlert.svg +3 -0
  2548. package/client/static/icons/DatabaseAlertOutline.svg +3 -0
  2549. package/client/static/icons/DatabaseArrowDown.svg +3 -0
  2550. package/client/static/icons/DatabaseArrowDownOutline.svg +3 -0
  2551. package/client/static/icons/DatabaseArrowLeft.svg +3 -0
  2552. package/client/static/icons/DatabaseArrowLeftOutline.svg +3 -0
  2553. package/client/static/icons/DatabaseArrowRight.svg +3 -0
  2554. package/client/static/icons/DatabaseArrowRightOutline.svg +3 -0
  2555. package/client/static/icons/DatabaseArrowUp.svg +3 -0
  2556. package/client/static/icons/DatabaseArrowUpOutline.svg +3 -0
  2557. package/client/static/icons/DatabaseCheck.svg +3 -0
  2558. package/client/static/icons/DatabaseCheckOutline.svg +3 -0
  2559. package/client/static/icons/DatabaseClock.svg +3 -0
  2560. package/client/static/icons/DatabaseClockOutline.svg +3 -0
  2561. package/client/static/icons/DatabaseCog.svg +3 -0
  2562. package/client/static/icons/DatabaseCogOutline.svg +3 -0
  2563. package/client/static/icons/DatabaseEdit.svg +3 -0
  2564. package/client/static/icons/DatabaseEditOutline.svg +3 -0
  2565. package/client/static/icons/DatabaseExport.svg +3 -0
  2566. package/client/static/icons/DatabaseExportOutline.svg +3 -0
  2567. package/client/static/icons/DatabaseEye.svg +3 -0
  2568. package/client/static/icons/DatabaseEyeOff.svg +3 -0
  2569. package/client/static/icons/DatabaseEyeOffOutline.svg +3 -0
  2570. package/client/static/icons/DatabaseEyeOutline.svg +3 -0
  2571. package/client/static/icons/DatabaseImport.svg +3 -0
  2572. package/client/static/icons/DatabaseImportOutline.svg +3 -0
  2573. package/client/static/icons/DatabaseLock.svg +3 -0
  2574. package/client/static/icons/DatabaseLockOutline.svg +3 -0
  2575. package/client/static/icons/DatabaseMarker.svg +3 -0
  2576. package/client/static/icons/DatabaseMarkerOutline.svg +3 -0
  2577. package/client/static/icons/DatabaseMinus.svg +3 -0
  2578. package/client/static/icons/DatabaseMinusOutline.svg +3 -0
  2579. package/client/static/icons/DatabaseOff.svg +3 -0
  2580. package/client/static/icons/DatabaseOffOutline.svg +3 -0
  2581. package/client/static/icons/DatabaseOutline.svg +3 -0
  2582. package/client/static/icons/DatabasePlus.svg +3 -0
  2583. package/client/static/icons/DatabasePlusOutline.svg +3 -0
  2584. package/client/static/icons/DatabaseRefresh.svg +3 -0
  2585. package/client/static/icons/DatabaseRefreshOutline.svg +3 -0
  2586. package/client/static/icons/DatabaseRemove.svg +3 -0
  2587. package/client/static/icons/DatabaseRemoveOutline.svg +3 -0
  2588. package/client/static/icons/DatabaseSearch.svg +3 -0
  2589. package/client/static/icons/DatabaseSearchOutline.svg +3 -0
  2590. package/client/static/icons/DatabaseSettings.svg +3 -0
  2591. package/client/static/icons/DatabaseSettingsOutline.svg +3 -0
  2592. package/client/static/icons/DatabaseSync.svg +3 -0
  2593. package/client/static/icons/DatabaseSyncOutline.svg +3 -0
  2594. package/client/static/icons/DeathStar.svg +3 -0
  2595. package/client/static/icons/DeathStarVariant.svg +3 -0
  2596. package/client/static/icons/DeathlyHallows.svg +3 -0
  2597. package/client/static/icons/Debian.svg +3 -0
  2598. package/client/static/icons/DebugStepInto.svg +3 -0
  2599. package/client/static/icons/DebugStepOut.svg +3 -0
  2600. package/client/static/icons/DebugStepOver.svg +3 -0
  2601. package/client/static/icons/Decagram.svg +3 -0
  2602. package/client/static/icons/DecagramOutline.svg +3 -0
  2603. package/client/static/icons/Decimal.svg +3 -0
  2604. package/client/static/icons/DecimalComma.svg +3 -0
  2605. package/client/static/icons/DecimalCommaDecrease.svg +3 -0
  2606. package/client/static/icons/DecimalCommaIncrease.svg +3 -0
  2607. package/client/static/icons/DecimalDecrease.svg +3 -0
  2608. package/client/static/icons/DecimalIncrease.svg +3 -0
  2609. package/client/static/icons/Delete.svg +3 -0
  2610. package/client/static/icons/DeleteAlert.svg +3 -0
  2611. package/client/static/icons/DeleteAlertOutline.svg +3 -0
  2612. package/client/static/icons/DeleteCircle.svg +3 -0
  2613. package/client/static/icons/DeleteCircleOutline.svg +3 -0
  2614. package/client/static/icons/DeleteClock.svg +3 -0
  2615. package/client/static/icons/DeleteClockOutline.svg +3 -0
  2616. package/client/static/icons/DeleteEmpty.svg +3 -0
  2617. package/client/static/icons/DeleteEmptyOutline.svg +3 -0
  2618. package/client/static/icons/DeleteForever.svg +3 -0
  2619. package/client/static/icons/DeleteForeverOutline.svg +3 -0
  2620. package/client/static/icons/DeleteOff.svg +3 -0
  2621. package/client/static/icons/DeleteOffOutline.svg +3 -0
  2622. package/client/static/icons/DeleteOutline.svg +3 -0
  2623. package/client/static/icons/DeleteRestore.svg +3 -0
  2624. package/client/static/icons/DeleteSweep.svg +3 -0
  2625. package/client/static/icons/DeleteSweepOutline.svg +3 -0
  2626. package/client/static/icons/DeleteVariant.svg +3 -0
  2627. package/client/static/icons/Delta.svg +3 -0
  2628. package/client/static/icons/Desk.svg +3 -0
  2629. package/client/static/icons/DeskLamp.svg +3 -0
  2630. package/client/static/icons/DeskLampOff.svg +3 -0
  2631. package/client/static/icons/DeskLampOn.svg +3 -0
  2632. package/client/static/icons/Deskphone.svg +3 -0
  2633. package/client/static/icons/DesktopClassic.svg +3 -0
  2634. package/client/static/icons/DesktopTower.svg +3 -0
  2635. package/client/static/icons/DesktopTowerMonitor.svg +3 -0
  2636. package/client/static/icons/Details.svg +3 -0
  2637. package/client/static/icons/DevTo.svg +3 -0
  2638. package/client/static/icons/DeveloperBoard.svg +3 -0
  2639. package/client/static/icons/Deviantart.svg +3 -0
  2640. package/client/static/icons/Devices.svg +3 -0
  2641. package/client/static/icons/Dharmachakra.svg +3 -0
  2642. package/client/static/icons/Diabetes.svg +3 -0
  2643. package/client/static/icons/Dialpad.svg +3 -0
  2644. package/client/static/icons/Diameter.svg +3 -0
  2645. package/client/static/icons/DiameterOutline.svg +3 -0
  2646. package/client/static/icons/DiameterVariant.svg +3 -0
  2647. package/client/static/icons/Diamond.svg +3 -0
  2648. package/client/static/icons/DiamondOutline.svg +3 -0
  2649. package/client/static/icons/DiamondStone.svg +3 -0
  2650. package/client/static/icons/DiaperOutline.svg +3 -0
  2651. package/client/static/icons/Dice1.svg +3 -0
  2652. package/client/static/icons/Dice1Outline.svg +3 -0
  2653. package/client/static/icons/Dice2.svg +3 -0
  2654. package/client/static/icons/Dice2Outline.svg +3 -0
  2655. package/client/static/icons/Dice3.svg +3 -0
  2656. package/client/static/icons/Dice3Outline.svg +3 -0
  2657. package/client/static/icons/Dice4.svg +3 -0
  2658. package/client/static/icons/Dice4Outline.svg +3 -0
  2659. package/client/static/icons/Dice5.svg +3 -0
  2660. package/client/static/icons/Dice5Outline.svg +3 -0
  2661. package/client/static/icons/Dice6.svg +3 -0
  2662. package/client/static/icons/Dice6Outline.svg +3 -0
  2663. package/client/static/icons/DiceD10.svg +3 -0
  2664. package/client/static/icons/DiceD10Outline.svg +3 -0
  2665. package/client/static/icons/DiceD12.svg +3 -0
  2666. package/client/static/icons/DiceD12Outline.svg +3 -0
  2667. package/client/static/icons/DiceD20.svg +3 -0
  2668. package/client/static/icons/DiceD20Outline.svg +3 -0
  2669. package/client/static/icons/DiceD4.svg +3 -0
  2670. package/client/static/icons/DiceD4Outline.svg +3 -0
  2671. package/client/static/icons/DiceD6.svg +3 -0
  2672. package/client/static/icons/DiceD6Outline.svg +3 -0
  2673. package/client/static/icons/DiceD8.svg +3 -0
  2674. package/client/static/icons/DiceD8Outline.svg +3 -0
  2675. package/client/static/icons/DiceMultiple.svg +3 -0
  2676. package/client/static/icons/DiceMultipleOutline.svg +3 -0
  2677. package/client/static/icons/DigitalOcean.svg +3 -0
  2678. package/client/static/icons/DipSwitch.svg +3 -0
  2679. package/client/static/icons/Directions.svg +3 -0
  2680. package/client/static/icons/DirectionsFork.svg +3 -0
  2681. package/client/static/icons/Disc.svg +3 -0
  2682. package/client/static/icons/DiscAlert.svg +3 -0
  2683. package/client/static/icons/DiscPlayer.svg +3 -0
  2684. package/client/static/icons/Dishwasher.svg +3 -0
  2685. package/client/static/icons/DishwasherAlert.svg +3 -0
  2686. package/client/static/icons/DishwasherOff.svg +3 -0
  2687. package/client/static/icons/Disqus.svg +3 -0
  2688. package/client/static/icons/DistributeHorizontalCenter.svg +3 -0
  2689. package/client/static/icons/DistributeHorizontalLeft.svg +3 -0
  2690. package/client/static/icons/DistributeHorizontalRight.svg +3 -0
  2691. package/client/static/icons/DistributeVerticalBottom.svg +3 -0
  2692. package/client/static/icons/DistributeVerticalCenter.svg +3 -0
  2693. package/client/static/icons/DistributeVerticalTop.svg +3 -0
  2694. package/client/static/icons/Diversify.svg +3 -0
  2695. package/client/static/icons/Diving.svg +3 -0
  2696. package/client/static/icons/DivingFlippers.svg +3 -0
  2697. package/client/static/icons/DivingHelmet.svg +3 -0
  2698. package/client/static/icons/DivingScuba.svg +3 -0
  2699. package/client/static/icons/DivingScubaFlag.svg +3 -0
  2700. package/client/static/icons/DivingScubaMask.svg +3 -0
  2701. package/client/static/icons/DivingScubaTank.svg +3 -0
  2702. package/client/static/icons/DivingScubaTankMultiple.svg +3 -0
  2703. package/client/static/icons/DivingSnorkel.svg +3 -0
  2704. package/client/static/icons/Division.svg +3 -0
  2705. package/client/static/icons/DivisionBox.svg +3 -0
  2706. package/client/static/icons/Dlna.svg +3 -0
  2707. package/client/static/icons/Dna.svg +3 -0
  2708. package/client/static/icons/Dns.svg +3 -0
  2709. package/client/static/icons/DnsOutline.svg +3 -0
  2710. package/client/static/icons/DockBottom.svg +3 -0
  2711. package/client/static/icons/DockLeft.svg +3 -0
  2712. package/client/static/icons/DockRight.svg +3 -0
  2713. package/client/static/icons/DockTop.svg +3 -0
  2714. package/client/static/icons/DockWindow.svg +3 -0
  2715. package/client/static/icons/Docker.svg +3 -0
  2716. package/client/static/icons/Doctor.svg +3 -0
  2717. package/client/static/icons/Dog.svg +3 -0
  2718. package/client/static/icons/DogService.svg +3 -0
  2719. package/client/static/icons/DogSide.svg +3 -0
  2720. package/client/static/icons/DogSideOff.svg +3 -0
  2721. package/client/static/icons/Dolby.svg +3 -0
  2722. package/client/static/icons/Dolly.svg +3 -0
  2723. package/client/static/icons/Dolphin.svg +3 -0
  2724. package/client/static/icons/Domain.svg +3 -0
  2725. package/client/static/icons/DomainOff.svg +3 -0
  2726. package/client/static/icons/DomainPlus.svg +3 -0
  2727. package/client/static/icons/DomainRemove.svg +3 -0
  2728. package/client/static/icons/DomainSwitch.svg +3 -0
  2729. package/client/static/icons/DomeLight.svg +3 -0
  2730. package/client/static/icons/DominoMask.svg +3 -0
  2731. package/client/static/icons/Donkey.svg +3 -0
  2732. package/client/static/icons/Door.svg +3 -0
  2733. package/client/static/icons/DoorClosed.svg +3 -0
  2734. package/client/static/icons/DoorClosedCancel.svg +3 -0
  2735. package/client/static/icons/DoorClosedLock.svg +3 -0
  2736. package/client/static/icons/DoorOpen.svg +3 -0
  2737. package/client/static/icons/DoorSliding.svg +3 -0
  2738. package/client/static/icons/DoorSlidingLock.svg +3 -0
  2739. package/client/static/icons/DoorSlidingOpen.svg +3 -0
  2740. package/client/static/icons/Doorbell.svg +3 -0
  2741. package/client/static/icons/DoorbellVideo.svg +3 -0
  2742. package/client/static/icons/DotNet.svg +3 -0
  2743. package/client/static/icons/DotsCircle.svg +3 -0
  2744. package/client/static/icons/DotsGrid.svg +3 -0
  2745. package/client/static/icons/DotsHexagon.svg +3 -0
  2746. package/client/static/icons/DotsHorizontal.svg +3 -0
  2747. package/client/static/icons/DotsHorizontalCircle.svg +3 -0
  2748. package/client/static/icons/DotsHorizontalCircleOutline.svg +3 -0
  2749. package/client/static/icons/DotsSquare.svg +3 -0
  2750. package/client/static/icons/DotsTriangle.svg +3 -0
  2751. package/client/static/icons/DotsVertical.svg +3 -0
  2752. package/client/static/icons/DotsVerticalCircle.svg +3 -0
  2753. package/client/static/icons/DotsVerticalCircleOutline.svg +3 -0
  2754. package/client/static/icons/Download.svg +3 -0
  2755. package/client/static/icons/DownloadBox.svg +3 -0
  2756. package/client/static/icons/DownloadBoxOutline.svg +3 -0
  2757. package/client/static/icons/DownloadCircle.svg +3 -0
  2758. package/client/static/icons/DownloadCircleOutline.svg +3 -0
  2759. package/client/static/icons/DownloadLock.svg +3 -0
  2760. package/client/static/icons/DownloadLockOutline.svg +3 -0
  2761. package/client/static/icons/DownloadMultiple.svg +3 -0
  2762. package/client/static/icons/DownloadMultipleOutline.svg +3 -0
  2763. package/client/static/icons/DownloadNetwork.svg +3 -0
  2764. package/client/static/icons/DownloadNetworkOutline.svg +3 -0
  2765. package/client/static/icons/DownloadOff.svg +3 -0
  2766. package/client/static/icons/DownloadOffOutline.svg +3 -0
  2767. package/client/static/icons/DownloadOutline.svg +3 -0
  2768. package/client/static/icons/Drag.svg +3 -0
  2769. package/client/static/icons/DragHorizontal.svg +3 -0
  2770. package/client/static/icons/DragHorizontalVariant.svg +3 -0
  2771. package/client/static/icons/DragVariant.svg +3 -0
  2772. package/client/static/icons/DragVertical.svg +3 -0
  2773. package/client/static/icons/DragVerticalVariant.svg +3 -0
  2774. package/client/static/icons/DramaMasks.svg +3 -0
  2775. package/client/static/icons/Draw.svg +3 -0
  2776. package/client/static/icons/DrawPen.svg +3 -0
  2777. package/client/static/icons/Drawing.svg +3 -0
  2778. package/client/static/icons/DrawingBox.svg +3 -0
  2779. package/client/static/icons/Dresser.svg +3 -0
  2780. package/client/static/icons/DresserOutline.svg +3 -0
  2781. package/client/static/icons/Drone.svg +3 -0
  2782. package/client/static/icons/Dropbox.svg +3 -0
  2783. package/client/static/icons/Drupal.svg +3 -0
  2784. package/client/static/icons/Duck.svg +3 -0
  2785. package/client/static/icons/Dumbbell.svg +3 -0
  2786. package/client/static/icons/DumpTruck.svg +3 -0
  2787. package/client/static/icons/EarHearing.svg +3 -0
  2788. package/client/static/icons/EarHearingLoop.svg +3 -0
  2789. package/client/static/icons/EarHearingOff.svg +3 -0
  2790. package/client/static/icons/Earbuds.svg +3 -0
  2791. package/client/static/icons/EarbudsOff.svg +3 -0
  2792. package/client/static/icons/EarbudsOffOutline.svg +3 -0
  2793. package/client/static/icons/EarbudsOutline.svg +3 -0
  2794. package/client/static/icons/Earth.svg +3 -0
  2795. package/client/static/icons/EarthArrowDown.svg +3 -0
  2796. package/client/static/icons/EarthArrowLeft.svg +3 -0
  2797. package/client/static/icons/EarthArrowRight.svg +3 -0
  2798. package/client/static/icons/EarthArrowUp.svg +3 -0
  2799. package/client/static/icons/EarthBox.svg +3 -0
  2800. package/client/static/icons/EarthBoxMinus.svg +3 -0
  2801. package/client/static/icons/EarthBoxOff.svg +3 -0
  2802. package/client/static/icons/EarthBoxPlus.svg +3 -0
  2803. package/client/static/icons/EarthBoxRemove.svg +3 -0
  2804. package/client/static/icons/EarthMinus.svg +3 -0
  2805. package/client/static/icons/EarthOff.svg +3 -0
  2806. package/client/static/icons/EarthPlus.svg +3 -0
  2807. package/client/static/icons/EarthRemove.svg +3 -0
  2808. package/client/static/icons/Egg.svg +3 -0
  2809. package/client/static/icons/EggEaster.svg +3 -0
  2810. package/client/static/icons/EggFried.svg +3 -0
  2811. package/client/static/icons/EggOff.svg +3 -0
  2812. package/client/static/icons/EggOffOutline.svg +3 -0
  2813. package/client/static/icons/EggOutline.svg +3 -0
  2814. package/client/static/icons/EiffelTower.svg +3 -0
  2815. package/client/static/icons/EightTrack.svg +3 -0
  2816. package/client/static/icons/Eject.svg +3 -0
  2817. package/client/static/icons/EjectCircle.svg +3 -0
  2818. package/client/static/icons/EjectCircleOutline.svg +3 -0
  2819. package/client/static/icons/EjectOutline.svg +3 -0
  2820. package/client/static/icons/ElectricSwitch.svg +3 -0
  2821. package/client/static/icons/ElectricSwitchClosed.svg +3 -0
  2822. package/client/static/icons/ElectronFramework.svg +3 -0
  2823. package/client/static/icons/Elephant.svg +3 -0
  2824. package/client/static/icons/ElevationDecline.svg +3 -0
  2825. package/client/static/icons/ElevationRise.svg +3 -0
  2826. package/client/static/icons/Elevator.svg +3 -0
  2827. package/client/static/icons/ElevatorDown.svg +3 -0
  2828. package/client/static/icons/ElevatorPassenger.svg +3 -0
  2829. package/client/static/icons/ElevatorPassengerOff.svg +3 -0
  2830. package/client/static/icons/ElevatorPassengerOffOutline.svg +3 -0
  2831. package/client/static/icons/ElevatorPassengerOutline.svg +3 -0
  2832. package/client/static/icons/ElevatorUp.svg +3 -0
  2833. package/client/static/icons/Ellipse.svg +3 -0
  2834. package/client/static/icons/EllipseOutline.svg +3 -0
  2835. package/client/static/icons/Email.svg +3 -0
  2836. package/client/static/icons/EmailAlert.svg +3 -0
  2837. package/client/static/icons/EmailAlertOutline.svg +3 -0
  2838. package/client/static/icons/EmailArrowLeft.svg +3 -0
  2839. package/client/static/icons/EmailArrowLeftOutline.svg +3 -0
  2840. package/client/static/icons/EmailArrowRight.svg +3 -0
  2841. package/client/static/icons/EmailArrowRightOutline.svg +3 -0
  2842. package/client/static/icons/EmailBox.svg +3 -0
  2843. package/client/static/icons/EmailCheck.svg +3 -0
  2844. package/client/static/icons/EmailCheckOutline.svg +3 -0
  2845. package/client/static/icons/EmailEdit.svg +3 -0
  2846. package/client/static/icons/EmailEditOutline.svg +3 -0
  2847. package/client/static/icons/EmailFast.svg +3 -0
  2848. package/client/static/icons/EmailFastOutline.svg +3 -0
  2849. package/client/static/icons/EmailHeartOutline.svg +3 -0
  2850. package/client/static/icons/EmailLock.svg +3 -0
  2851. package/client/static/icons/EmailLockOutline.svg +3 -0
  2852. package/client/static/icons/EmailMarkAsUnread.svg +3 -0
  2853. package/client/static/icons/EmailMinus.svg +3 -0
  2854. package/client/static/icons/EmailMinusOutline.svg +3 -0
  2855. package/client/static/icons/EmailMultiple.svg +3 -0
  2856. package/client/static/icons/EmailMultipleOutline.svg +3 -0
  2857. package/client/static/icons/EmailNewsletter.svg +3 -0
  2858. package/client/static/icons/EmailOff.svg +3 -0
  2859. package/client/static/icons/EmailOffOutline.svg +3 -0
  2860. package/client/static/icons/EmailOpen.svg +3 -0
  2861. package/client/static/icons/EmailOpenHeartOutline.svg +3 -0
  2862. package/client/static/icons/EmailOpenMultiple.svg +3 -0
  2863. package/client/static/icons/EmailOpenMultipleOutline.svg +3 -0
  2864. package/client/static/icons/EmailOpenOutline.svg +3 -0
  2865. package/client/static/icons/EmailOutline.svg +3 -0
  2866. package/client/static/icons/EmailPlus.svg +3 -0
  2867. package/client/static/icons/EmailPlusOutline.svg +3 -0
  2868. package/client/static/icons/EmailRemove.svg +3 -0
  2869. package/client/static/icons/EmailRemoveOutline.svg +3 -0
  2870. package/client/static/icons/EmailSeal.svg +3 -0
  2871. package/client/static/icons/EmailSealOutline.svg +3 -0
  2872. package/client/static/icons/EmailSearch.svg +3 -0
  2873. package/client/static/icons/EmailSearchOutline.svg +3 -0
  2874. package/client/static/icons/EmailSync.svg +3 -0
  2875. package/client/static/icons/EmailSyncOutline.svg +3 -0
  2876. package/client/static/icons/EmailVariant.svg +3 -0
  2877. package/client/static/icons/Ember.svg +3 -0
  2878. package/client/static/icons/Emby.svg +3 -0
  2879. package/client/static/icons/Emoticon.svg +3 -0
  2880. package/client/static/icons/EmoticonAngry.svg +3 -0
  2881. package/client/static/icons/EmoticonAngryOutline.svg +3 -0
  2882. package/client/static/icons/EmoticonConfused.svg +3 -0
  2883. package/client/static/icons/EmoticonConfusedOutline.svg +3 -0
  2884. package/client/static/icons/EmoticonCool.svg +3 -0
  2885. package/client/static/icons/EmoticonCoolOutline.svg +3 -0
  2886. package/client/static/icons/EmoticonCry.svg +3 -0
  2887. package/client/static/icons/EmoticonCryOutline.svg +3 -0
  2888. package/client/static/icons/EmoticonDead.svg +3 -0
  2889. package/client/static/icons/EmoticonDeadOutline.svg +3 -0
  2890. package/client/static/icons/EmoticonDevil.svg +3 -0
  2891. package/client/static/icons/EmoticonDevilOutline.svg +3 -0
  2892. package/client/static/icons/EmoticonExcited.svg +3 -0
  2893. package/client/static/icons/EmoticonExcitedOutline.svg +3 -0
  2894. package/client/static/icons/EmoticonFrown.svg +3 -0
  2895. package/client/static/icons/EmoticonFrownOutline.svg +3 -0
  2896. package/client/static/icons/EmoticonHappy.svg +3 -0
  2897. package/client/static/icons/EmoticonHappyOutline.svg +3 -0
  2898. package/client/static/icons/EmoticonKiss.svg +3 -0
  2899. package/client/static/icons/EmoticonKissOutline.svg +3 -0
  2900. package/client/static/icons/EmoticonLol.svg +3 -0
  2901. package/client/static/icons/EmoticonLolOutline.svg +3 -0
  2902. package/client/static/icons/EmoticonMinus.svg +3 -0
  2903. package/client/static/icons/EmoticonMinusOutline.svg +3 -0
  2904. package/client/static/icons/EmoticonNeutral.svg +3 -0
  2905. package/client/static/icons/EmoticonNeutralOutline.svg +3 -0
  2906. package/client/static/icons/EmoticonOutline.svg +3 -0
  2907. package/client/static/icons/EmoticonPlus.svg +3 -0
  2908. package/client/static/icons/EmoticonPlusOutline.svg +3 -0
  2909. package/client/static/icons/EmoticonPoop.svg +3 -0
  2910. package/client/static/icons/EmoticonPoopOutline.svg +3 -0
  2911. package/client/static/icons/EmoticonRemove.svg +3 -0
  2912. package/client/static/icons/EmoticonRemoveOutline.svg +3 -0
  2913. package/client/static/icons/EmoticonSad.svg +3 -0
  2914. package/client/static/icons/EmoticonSadOutline.svg +3 -0
  2915. package/client/static/icons/EmoticonSick.svg +3 -0
  2916. package/client/static/icons/EmoticonSickOutline.svg +3 -0
  2917. package/client/static/icons/EmoticonTongue.svg +3 -0
  2918. package/client/static/icons/EmoticonTongueOutline.svg +3 -0
  2919. package/client/static/icons/EmoticonWink.svg +3 -0
  2920. package/client/static/icons/EmoticonWinkOutline.svg +3 -0
  2921. package/client/static/icons/Engine.svg +3 -0
  2922. package/client/static/icons/EngineOff.svg +3 -0
  2923. package/client/static/icons/EngineOffOutline.svg +3 -0
  2924. package/client/static/icons/EngineOutline.svg +3 -0
  2925. package/client/static/icons/Epsilon.svg +3 -0
  2926. package/client/static/icons/Equal.svg +3 -0
  2927. package/client/static/icons/EqualBox.svg +3 -0
  2928. package/client/static/icons/Equalizer.svg +3 -0
  2929. package/client/static/icons/EqualizerOutline.svg +3 -0
  2930. package/client/static/icons/Eraser.svg +3 -0
  2931. package/client/static/icons/EraserVariant.svg +3 -0
  2932. package/client/static/icons/Escalator.svg +3 -0
  2933. package/client/static/icons/EscalatorBox.svg +3 -0
  2934. package/client/static/icons/EscalatorDown.svg +3 -0
  2935. package/client/static/icons/EscalatorUp.svg +3 -0
  2936. package/client/static/icons/Eslint.svg +3 -0
  2937. package/client/static/icons/Et.svg +3 -0
  2938. package/client/static/icons/Ethereum.svg +3 -0
  2939. package/client/static/icons/Ethernet.svg +3 -0
  2940. package/client/static/icons/EthernetCable.svg +3 -0
  2941. package/client/static/icons/EthernetCableOff.svg +3 -0
  2942. package/client/static/icons/EthernetOff.svg +3 -0
  2943. package/client/static/icons/EvPlugCcs1.svg +3 -0
  2944. package/client/static/icons/EvPlugCcs2.svg +3 -0
  2945. package/client/static/icons/EvPlugChademo.svg +3 -0
  2946. package/client/static/icons/EvPlugTesla.svg +3 -0
  2947. package/client/static/icons/EvPlugType1.svg +3 -0
  2948. package/client/static/icons/EvPlugType2.svg +3 -0
  2949. package/client/static/icons/EvStation.svg +3 -0
  2950. package/client/static/icons/Evernote.svg +3 -0
  2951. package/client/static/icons/Excavator.svg +3 -0
  2952. package/client/static/icons/Exclamation.svg +3 -0
  2953. package/client/static/icons/ExclamationThick.svg +3 -0
  2954. package/client/static/icons/ExitRun.svg +3 -0
  2955. package/client/static/icons/ExitToApp.svg +3 -0
  2956. package/client/static/icons/ExpandAll.svg +3 -0
  2957. package/client/static/icons/ExpandAllOutline.svg +3 -0
  2958. package/client/static/icons/ExpansionCard.svg +3 -0
  2959. package/client/static/icons/ExpansionCardVariant.svg +3 -0
  2960. package/client/static/icons/Exponent.svg +3 -0
  2961. package/client/static/icons/ExponentBox.svg +3 -0
  2962. package/client/static/icons/Export.svg +3 -0
  2963. package/client/static/icons/ExportVariant.svg +3 -0
  2964. package/client/static/icons/Eye.svg +3 -0
  2965. package/client/static/icons/EyeArrowLeft.svg +3 -0
  2966. package/client/static/icons/EyeArrowLeftOutline.svg +3 -0
  2967. package/client/static/icons/EyeArrowRight.svg +3 -0
  2968. package/client/static/icons/EyeArrowRightOutline.svg +3 -0
  2969. package/client/static/icons/EyeCheck.svg +3 -0
  2970. package/client/static/icons/EyeCheckOutline.svg +3 -0
  2971. package/client/static/icons/EyeCircle.svg +3 -0
  2972. package/client/static/icons/EyeCircleOutline.svg +3 -0
  2973. package/client/static/icons/EyeClosed.svg +3 -0
  2974. package/client/static/icons/EyeLock.svg +3 -0
  2975. package/client/static/icons/EyeLockOpen.svg +3 -0
  2976. package/client/static/icons/EyeLockOpenOutline.svg +3 -0
  2977. package/client/static/icons/EyeLockOutline.svg +3 -0
  2978. package/client/static/icons/EyeMinus.svg +3 -0
  2979. package/client/static/icons/EyeMinusOutline.svg +3 -0
  2980. package/client/static/icons/EyeOff.svg +3 -0
  2981. package/client/static/icons/EyeOffOutline.svg +3 -0
  2982. package/client/static/icons/EyeOutline.svg +3 -0
  2983. package/client/static/icons/EyePlus.svg +3 -0
  2984. package/client/static/icons/EyePlusOutline.svg +3 -0
  2985. package/client/static/icons/EyeRefresh.svg +3 -0
  2986. package/client/static/icons/EyeRefreshOutline.svg +3 -0
  2987. package/client/static/icons/EyeRemove.svg +3 -0
  2988. package/client/static/icons/EyeRemoveOutline.svg +3 -0
  2989. package/client/static/icons/EyeSettings.svg +3 -0
  2990. package/client/static/icons/EyeSettingsOutline.svg +3 -0
  2991. package/client/static/icons/Eyedropper.svg +3 -0
  2992. package/client/static/icons/EyedropperMinus.svg +3 -0
  2993. package/client/static/icons/EyedropperOff.svg +3 -0
  2994. package/client/static/icons/EyedropperPlus.svg +3 -0
  2995. package/client/static/icons/EyedropperRemove.svg +3 -0
  2996. package/client/static/icons/EyedropperVariant.svg +3 -0
  2997. package/client/static/icons/FaceAgent.svg +3 -0
  2998. package/client/static/icons/FaceMan.svg +3 -0
  2999. package/client/static/icons/FaceManOutline.svg +3 -0
  3000. package/client/static/icons/FaceManProfile.svg +3 -0
  3001. package/client/static/icons/FaceManShimmer.svg +3 -0
  3002. package/client/static/icons/FaceManShimmerOutline.svg +3 -0
  3003. package/client/static/icons/FaceMask.svg +3 -0
  3004. package/client/static/icons/FaceMaskOutline.svg +3 -0
  3005. package/client/static/icons/FaceRecognition.svg +3 -0
  3006. package/client/static/icons/FaceWoman.svg +3 -0
  3007. package/client/static/icons/FaceWomanOutline.svg +3 -0
  3008. package/client/static/icons/FaceWomanProfile.svg +3 -0
  3009. package/client/static/icons/FaceWomanShimmer.svg +3 -0
  3010. package/client/static/icons/FaceWomanShimmerOutline.svg +3 -0
  3011. package/client/static/icons/Facebook.svg +3 -0
  3012. package/client/static/icons/FacebookGaming.svg +3 -0
  3013. package/client/static/icons/FacebookMessenger.svg +3 -0
  3014. package/client/static/icons/FacebookWorkplace.svg +3 -0
  3015. package/client/static/icons/Factory.svg +3 -0
  3016. package/client/static/icons/FamilyTree.svg +3 -0
  3017. package/client/static/icons/Fan.svg +3 -0
  3018. package/client/static/icons/FanAlert.svg +3 -0
  3019. package/client/static/icons/FanAuto.svg +3 -0
  3020. package/client/static/icons/FanChevronDown.svg +3 -0
  3021. package/client/static/icons/FanChevronUp.svg +3 -0
  3022. package/client/static/icons/FanClock.svg +3 -0
  3023. package/client/static/icons/FanMinus.svg +3 -0
  3024. package/client/static/icons/FanOff.svg +3 -0
  3025. package/client/static/icons/FanPlus.svg +3 -0
  3026. package/client/static/icons/FanRemove.svg +3 -0
  3027. package/client/static/icons/FanSpeed1.svg +3 -0
  3028. package/client/static/icons/FanSpeed2.svg +3 -0
  3029. package/client/static/icons/FanSpeed3.svg +3 -0
  3030. package/client/static/icons/FastForward.svg +3 -0
  3031. package/client/static/icons/FastForward10.svg +3 -0
  3032. package/client/static/icons/FastForward15.svg +3 -0
  3033. package/client/static/icons/FastForward30.svg +3 -0
  3034. package/client/static/icons/FastForward45.svg +3 -0
  3035. package/client/static/icons/FastForward5.svg +3 -0
  3036. package/client/static/icons/FastForward60.svg +3 -0
  3037. package/client/static/icons/FastForwardOutline.svg +3 -0
  3038. package/client/static/icons/Faucet.svg +3 -0
  3039. package/client/static/icons/FaucetVariant.svg +3 -0
  3040. package/client/static/icons/Fax.svg +3 -0
  3041. package/client/static/icons/Feather.svg +3 -0
  3042. package/client/static/icons/FeatureSearch.svg +3 -0
  3043. package/client/static/icons/FeatureSearchOutline.svg +3 -0
  3044. package/client/static/icons/Fedora.svg +3 -0
  3045. package/client/static/icons/Fence.svg +3 -0
  3046. package/client/static/icons/FenceElectric.svg +3 -0
  3047. package/client/static/icons/Fencing.svg +3 -0
  3048. package/client/static/icons/FerrisWheel.svg +3 -0
  3049. package/client/static/icons/Ferry.svg +3 -0
  3050. package/client/static/icons/File.svg +3 -0
  3051. package/client/static/icons/FileAccount.svg +3 -0
  3052. package/client/static/icons/FileAccountOutline.svg +3 -0
  3053. package/client/static/icons/FileAlert.svg +3 -0
  3054. package/client/static/icons/FileAlertOutline.svg +3 -0
  3055. package/client/static/icons/FileArrowLeftRight.svg +3 -0
  3056. package/client/static/icons/FileArrowLeftRightOutline.svg +3 -0
  3057. package/client/static/icons/FileArrowUpDown.svg +3 -0
  3058. package/client/static/icons/FileArrowUpDownOutline.svg +3 -0
  3059. package/client/static/icons/FileCabinet.svg +3 -0
  3060. package/client/static/icons/FileCad.svg +3 -0
  3061. package/client/static/icons/FileCadBox.svg +3 -0
  3062. package/client/static/icons/FileCancel.svg +3 -0
  3063. package/client/static/icons/FileCancelOutline.svg +3 -0
  3064. package/client/static/icons/FileCertificate.svg +3 -0
  3065. package/client/static/icons/FileCertificateOutline.svg +3 -0
  3066. package/client/static/icons/FileChart.svg +3 -0
  3067. package/client/static/icons/FileChartCheck.svg +3 -0
  3068. package/client/static/icons/FileChartCheckOutline.svg +3 -0
  3069. package/client/static/icons/FileChartOutline.svg +3 -0
  3070. package/client/static/icons/FileCheck.svg +3 -0
  3071. package/client/static/icons/FileCheckOutline.svg +3 -0
  3072. package/client/static/icons/FileClock.svg +3 -0
  3073. package/client/static/icons/FileClockOutline.svg +3 -0
  3074. package/client/static/icons/FileCloud.svg +3 -0
  3075. package/client/static/icons/FileCloudOutline.svg +3 -0
  3076. package/client/static/icons/FileCode.svg +3 -0
  3077. package/client/static/icons/FileCodeOutline.svg +3 -0
  3078. package/client/static/icons/FileCog.svg +3 -0
  3079. package/client/static/icons/FileCogOutline.svg +3 -0
  3080. package/client/static/icons/FileCompare.svg +3 -0
  3081. package/client/static/icons/FileDelimited.svg +3 -0
  3082. package/client/static/icons/FileDelimitedOutline.svg +3 -0
  3083. package/client/static/icons/FileDocument.svg +3 -0
  3084. package/client/static/icons/FileDocumentAlert.svg +3 -0
  3085. package/client/static/icons/FileDocumentAlertOutline.svg +3 -0
  3086. package/client/static/icons/FileDocumentArrowRight.svg +3 -0
  3087. package/client/static/icons/FileDocumentArrowRightOutline.svg +3 -0
  3088. package/client/static/icons/FileDocumentCheck.svg +3 -0
  3089. package/client/static/icons/FileDocumentCheckOutline.svg +3 -0
  3090. package/client/static/icons/FileDocumentEdit.svg +3 -0
  3091. package/client/static/icons/FileDocumentEditOutline.svg +3 -0
  3092. package/client/static/icons/FileDocumentMinus.svg +3 -0
  3093. package/client/static/icons/FileDocumentMinusOutline.svg +3 -0
  3094. package/client/static/icons/FileDocumentMultiple.svg +3 -0
  3095. package/client/static/icons/FileDocumentMultipleOutline.svg +3 -0
  3096. package/client/static/icons/FileDocumentOutline.svg +3 -0
  3097. package/client/static/icons/FileDocumentPlus.svg +3 -0
  3098. package/client/static/icons/FileDocumentPlusOutline.svg +3 -0
  3099. package/client/static/icons/FileDocumentRefresh.svg +3 -0
  3100. package/client/static/icons/FileDocumentRefreshOutline.svg +3 -0
  3101. package/client/static/icons/FileDocumentRemove.svg +3 -0
  3102. package/client/static/icons/FileDocumentRemoveOutline.svg +3 -0
  3103. package/client/static/icons/FileDownload.svg +3 -0
  3104. package/client/static/icons/FileDownloadOutline.svg +3 -0
  3105. package/client/static/icons/FileEdit.svg +3 -0
  3106. package/client/static/icons/FileEditOutline.svg +3 -0
  3107. package/client/static/icons/FileExcel.svg +3 -0
  3108. package/client/static/icons/FileExcelBox.svg +3 -0
  3109. package/client/static/icons/FileExcelBoxOutline.svg +3 -0
  3110. package/client/static/icons/FileExcelOutline.svg +3 -0
  3111. package/client/static/icons/FileExport.svg +3 -0
  3112. package/client/static/icons/FileExportOutline.svg +3 -0
  3113. package/client/static/icons/FileEye.svg +3 -0
  3114. package/client/static/icons/FileEyeOutline.svg +3 -0
  3115. package/client/static/icons/FileFind.svg +3 -0
  3116. package/client/static/icons/FileFindOutline.svg +3 -0
  3117. package/client/static/icons/FileGifBox.svg +3 -0
  3118. package/client/static/icons/FileHidden.svg +3 -0
  3119. package/client/static/icons/FileImage.svg +3 -0
  3120. package/client/static/icons/FileImageMarker.svg +3 -0
  3121. package/client/static/icons/FileImageMarkerOutline.svg +3 -0
  3122. package/client/static/icons/FileImageMinus.svg +3 -0
  3123. package/client/static/icons/FileImageMinusOutline.svg +3 -0
  3124. package/client/static/icons/FileImageOutline.svg +3 -0
  3125. package/client/static/icons/FileImagePlus.svg +3 -0
  3126. package/client/static/icons/FileImagePlusOutline.svg +3 -0
  3127. package/client/static/icons/FileImageRemove.svg +3 -0
  3128. package/client/static/icons/FileImageRemoveOutline.svg +3 -0
  3129. package/client/static/icons/FileImport.svg +3 -0
  3130. package/client/static/icons/FileImportOutline.svg +3 -0
  3131. package/client/static/icons/FileJpgBox.svg +3 -0
  3132. package/client/static/icons/FileKey.svg +3 -0
  3133. package/client/static/icons/FileKeyOutline.svg +3 -0
  3134. package/client/static/icons/FileLink.svg +3 -0
  3135. package/client/static/icons/FileLinkOutline.svg +3 -0
  3136. package/client/static/icons/FileLock.svg +3 -0
  3137. package/client/static/icons/FileLockOpen.svg +3 -0
  3138. package/client/static/icons/FileLockOpenOutline.svg +3 -0
  3139. package/client/static/icons/FileLockOutline.svg +3 -0
  3140. package/client/static/icons/FileMarker.svg +3 -0
  3141. package/client/static/icons/FileMarkerOutline.svg +3 -0
  3142. package/client/static/icons/FileMinus.svg +3 -0
  3143. package/client/static/icons/FileMinusOutline.svg +3 -0
  3144. package/client/static/icons/FileMove.svg +3 -0
  3145. package/client/static/icons/FileMoveOutline.svg +3 -0
  3146. package/client/static/icons/FileMultiple.svg +3 -0
  3147. package/client/static/icons/FileMultipleOutline.svg +3 -0
  3148. package/client/static/icons/FileMusic.svg +3 -0
  3149. package/client/static/icons/FileMusicOutline.svg +3 -0
  3150. package/client/static/icons/FileOutline.svg +3 -0
  3151. package/client/static/icons/FilePdfBox.svg +3 -0
  3152. package/client/static/icons/FilePercent.svg +3 -0
  3153. package/client/static/icons/FilePercentOutline.svg +3 -0
  3154. package/client/static/icons/FilePhone.svg +3 -0
  3155. package/client/static/icons/FilePhoneOutline.svg +3 -0
  3156. package/client/static/icons/FilePlus.svg +3 -0
  3157. package/client/static/icons/FilePlusOutline.svg +3 -0
  3158. package/client/static/icons/FilePngBox.svg +3 -0
  3159. package/client/static/icons/FilePowerpoint.svg +3 -0
  3160. package/client/static/icons/FilePowerpointBox.svg +3 -0
  3161. package/client/static/icons/FilePowerpointBoxOutline.svg +3 -0
  3162. package/client/static/icons/FilePowerpointOutline.svg +3 -0
  3163. package/client/static/icons/FilePresentationBox.svg +3 -0
  3164. package/client/static/icons/FileQuestion.svg +3 -0
  3165. package/client/static/icons/FileQuestionOutline.svg +3 -0
  3166. package/client/static/icons/FileRefresh.svg +3 -0
  3167. package/client/static/icons/FileRefreshOutline.svg +3 -0
  3168. package/client/static/icons/FileRemove.svg +3 -0
  3169. package/client/static/icons/FileRemoveOutline.svg +3 -0
  3170. package/client/static/icons/FileReplace.svg +3 -0
  3171. package/client/static/icons/FileReplaceOutline.svg +3 -0
  3172. package/client/static/icons/FileRestore.svg +3 -0
  3173. package/client/static/icons/FileRestoreOutline.svg +3 -0
  3174. package/client/static/icons/FileRotateLeft.svg +3 -0
  3175. package/client/static/icons/FileRotateLeftOutline.svg +3 -0
  3176. package/client/static/icons/FileRotateRight.svg +3 -0
  3177. package/client/static/icons/FileRotateRightOutline.svg +3 -0
  3178. package/client/static/icons/FileSearch.svg +3 -0
  3179. package/client/static/icons/FileSearchOutline.svg +3 -0
  3180. package/client/static/icons/FileSend.svg +3 -0
  3181. package/client/static/icons/FileSendOutline.svg +3 -0
  3182. package/client/static/icons/FileSettings.svg +3 -0
  3183. package/client/static/icons/FileSettingsOutline.svg +3 -0
  3184. package/client/static/icons/FileSign.svg +3 -0
  3185. package/client/static/icons/FileStar.svg +3 -0
  3186. package/client/static/icons/FileStarFourPoints.svg +3 -0
  3187. package/client/static/icons/FileStarFourPointsOutline.svg +3 -0
  3188. package/client/static/icons/FileStarOutline.svg +3 -0
  3189. package/client/static/icons/FileSwap.svg +3 -0
  3190. package/client/static/icons/FileSwapOutline.svg +3 -0
  3191. package/client/static/icons/FileSync.svg +3 -0
  3192. package/client/static/icons/FileSyncOutline.svg +3 -0
  3193. package/client/static/icons/FileTable.svg +3 -0
  3194. package/client/static/icons/FileTableBox.svg +3 -0
  3195. package/client/static/icons/FileTableBoxMultiple.svg +3 -0
  3196. package/client/static/icons/FileTableBoxMultipleOutline.svg +3 -0
  3197. package/client/static/icons/FileTableBoxOutline.svg +3 -0
  3198. package/client/static/icons/FileTableOutline.svg +3 -0
  3199. package/client/static/icons/FileTree.svg +3 -0
  3200. package/client/static/icons/FileTreeOutline.svg +3 -0
  3201. package/client/static/icons/FileUndo.svg +3 -0
  3202. package/client/static/icons/FileUndoOutline.svg +3 -0
  3203. package/client/static/icons/FileUpload.svg +3 -0
  3204. package/client/static/icons/FileUploadOutline.svg +3 -0
  3205. package/client/static/icons/FileVideo.svg +3 -0
  3206. package/client/static/icons/FileVideoOutline.svg +3 -0
  3207. package/client/static/icons/FileWord.svg +3 -0
  3208. package/client/static/icons/FileWordBox.svg +3 -0
  3209. package/client/static/icons/FileWordBoxOutline.svg +3 -0
  3210. package/client/static/icons/FileWordOutline.svg +3 -0
  3211. package/client/static/icons/FileXmlBox.svg +3 -0
  3212. package/client/static/icons/Film.svg +3 -0
  3213. package/client/static/icons/Filmstrip.svg +3 -0
  3214. package/client/static/icons/FilmstripBox.svg +3 -0
  3215. package/client/static/icons/FilmstripBoxMultiple.svg +3 -0
  3216. package/client/static/icons/FilmstripOff.svg +3 -0
  3217. package/client/static/icons/Filter.svg +3 -0
  3218. package/client/static/icons/FilterCheck.svg +3 -0
  3219. package/client/static/icons/FilterCheckOutline.svg +3 -0
  3220. package/client/static/icons/FilterCog.svg +3 -0
  3221. package/client/static/icons/FilterCogOutline.svg +3 -0
  3222. package/client/static/icons/FilterMenu.svg +3 -0
  3223. package/client/static/icons/FilterMenuOutline.svg +3 -0
  3224. package/client/static/icons/FilterMinus.svg +3 -0
  3225. package/client/static/icons/FilterMinusOutline.svg +3 -0
  3226. package/client/static/icons/FilterMultiple.svg +3 -0
  3227. package/client/static/icons/FilterMultipleOutline.svg +3 -0
  3228. package/client/static/icons/FilterOff.svg +3 -0
  3229. package/client/static/icons/FilterOffOutline.svg +3 -0
  3230. package/client/static/icons/FilterOutline.svg +3 -0
  3231. package/client/static/icons/FilterPlus.svg +3 -0
  3232. package/client/static/icons/FilterPlusOutline.svg +3 -0
  3233. package/client/static/icons/FilterRemove.svg +3 -0
  3234. package/client/static/icons/FilterRemoveOutline.svg +3 -0
  3235. package/client/static/icons/FilterSettings.svg +3 -0
  3236. package/client/static/icons/FilterSettingsOutline.svg +3 -0
  3237. package/client/static/icons/FilterVariant.svg +3 -0
  3238. package/client/static/icons/FilterVariantMinus.svg +3 -0
  3239. package/client/static/icons/FilterVariantPlus.svg +3 -0
  3240. package/client/static/icons/FilterVariantRemove.svg +3 -0
  3241. package/client/static/icons/Finance.svg +3 -0
  3242. package/client/static/icons/FindReplace.svg +3 -0
  3243. package/client/static/icons/Fingerprint.svg +3 -0
  3244. package/client/static/icons/FingerprintOff.svg +3 -0
  3245. package/client/static/icons/Fire.svg +3 -0
  3246. package/client/static/icons/FireAlert.svg +3 -0
  3247. package/client/static/icons/FireCircle.svg +3 -0
  3248. package/client/static/icons/FireExtinguisher.svg +3 -0
  3249. package/client/static/icons/FireHydrant.svg +3 -0
  3250. package/client/static/icons/FireHydrantAlert.svg +3 -0
  3251. package/client/static/icons/FireHydrantOff.svg +3 -0
  3252. package/client/static/icons/FireOff.svg +3 -0
  3253. package/client/static/icons/FireStation.svg +3 -0
  3254. package/client/static/icons/FireTruck.svg +3 -0
  3255. package/client/static/icons/Firebase.svg +3 -0
  3256. package/client/static/icons/Firefox.svg +3 -0
  3257. package/client/static/icons/Fireplace.svg +3 -0
  3258. package/client/static/icons/FireplaceOff.svg +3 -0
  3259. package/client/static/icons/Firewire.svg +3 -0
  3260. package/client/static/icons/Firework.svg +3 -0
  3261. package/client/static/icons/FireworkOff.svg +3 -0
  3262. package/client/static/icons/Fish.svg +3 -0
  3263. package/client/static/icons/FishOff.svg +3 -0
  3264. package/client/static/icons/Fishbowl.svg +3 -0
  3265. package/client/static/icons/FishbowlOutline.svg +3 -0
  3266. package/client/static/icons/FitToPage.svg +3 -0
  3267. package/client/static/icons/FitToPageOutline.svg +3 -0
  3268. package/client/static/icons/FitToScreen.svg +3 -0
  3269. package/client/static/icons/FitToScreenOutline.svg +3 -0
  3270. package/client/static/icons/Flag.svg +3 -0
  3271. package/client/static/icons/FlagCheckered.svg +3 -0
  3272. package/client/static/icons/FlagMinus.svg +3 -0
  3273. package/client/static/icons/FlagMinusOutline.svg +3 -0
  3274. package/client/static/icons/FlagOff.svg +3 -0
  3275. package/client/static/icons/FlagOffOutline.svg +3 -0
  3276. package/client/static/icons/FlagOutline.svg +3 -0
  3277. package/client/static/icons/FlagPlus.svg +3 -0
  3278. package/client/static/icons/FlagPlusOutline.svg +3 -0
  3279. package/client/static/icons/FlagRemove.svg +3 -0
  3280. package/client/static/icons/FlagRemoveOutline.svg +3 -0
  3281. package/client/static/icons/FlagTriangle.svg +3 -0
  3282. package/client/static/icons/FlagVariant.svg +3 -0
  3283. package/client/static/icons/FlagVariantMinus.svg +3 -0
  3284. package/client/static/icons/FlagVariantMinusOutline.svg +3 -0
  3285. package/client/static/icons/FlagVariantOff.svg +3 -0
  3286. package/client/static/icons/FlagVariantOffOutline.svg +3 -0
  3287. package/client/static/icons/FlagVariantOutline.svg +3 -0
  3288. package/client/static/icons/FlagVariantPlus.svg +3 -0
  3289. package/client/static/icons/FlagVariantPlusOutline.svg +3 -0
  3290. package/client/static/icons/FlagVariantRemove.svg +3 -0
  3291. package/client/static/icons/FlagVariantRemoveOutline.svg +3 -0
  3292. package/client/static/icons/Flare.svg +3 -0
  3293. package/client/static/icons/Flash.svg +3 -0
  3294. package/client/static/icons/FlashAlert.svg +3 -0
  3295. package/client/static/icons/FlashAlertOutline.svg +3 -0
  3296. package/client/static/icons/FlashAuto.svg +3 -0
  3297. package/client/static/icons/FlashOff.svg +3 -0
  3298. package/client/static/icons/FlashOffOutline.svg +3 -0
  3299. package/client/static/icons/FlashOutline.svg +3 -0
  3300. package/client/static/icons/FlashRedEye.svg +3 -0
  3301. package/client/static/icons/FlashTriangle.svg +3 -0
  3302. package/client/static/icons/FlashTriangleOutline.svg +3 -0
  3303. package/client/static/icons/Flashlight.svg +3 -0
  3304. package/client/static/icons/FlashlightOff.svg +3 -0
  3305. package/client/static/icons/Flask.svg +3 -0
  3306. package/client/static/icons/FlaskEmpty.svg +3 -0
  3307. package/client/static/icons/FlaskEmptyMinus.svg +3 -0
  3308. package/client/static/icons/FlaskEmptyMinusOutline.svg +3 -0
  3309. package/client/static/icons/FlaskEmptyOff.svg +3 -0
  3310. package/client/static/icons/FlaskEmptyOffOutline.svg +3 -0
  3311. package/client/static/icons/FlaskEmptyOutline.svg +3 -0
  3312. package/client/static/icons/FlaskEmptyPlus.svg +3 -0
  3313. package/client/static/icons/FlaskEmptyPlusOutline.svg +3 -0
  3314. package/client/static/icons/FlaskEmptyRemove.svg +3 -0
  3315. package/client/static/icons/FlaskEmptyRemoveOutline.svg +3 -0
  3316. package/client/static/icons/FlaskMinus.svg +3 -0
  3317. package/client/static/icons/FlaskMinusOutline.svg +3 -0
  3318. package/client/static/icons/FlaskOff.svg +3 -0
  3319. package/client/static/icons/FlaskOffOutline.svg +3 -0
  3320. package/client/static/icons/FlaskOutline.svg +3 -0
  3321. package/client/static/icons/FlaskPlus.svg +3 -0
  3322. package/client/static/icons/FlaskPlusOutline.svg +3 -0
  3323. package/client/static/icons/FlaskRemove.svg +3 -0
  3324. package/client/static/icons/FlaskRemoveOutline.svg +3 -0
  3325. package/client/static/icons/FlaskRoundBottom.svg +3 -0
  3326. package/client/static/icons/FlaskRoundBottomEmpty.svg +3 -0
  3327. package/client/static/icons/FlaskRoundBottomEmptyOutline.svg +3 -0
  3328. package/client/static/icons/FlaskRoundBottomOutline.svg +3 -0
  3329. package/client/static/icons/FleurDeLis.svg +3 -0
  3330. package/client/static/icons/FlipHorizontal.svg +3 -0
  3331. package/client/static/icons/FlipToBack.svg +3 -0
  3332. package/client/static/icons/FlipToFront.svg +3 -0
  3333. package/client/static/icons/FlipVertical.svg +3 -0
  3334. package/client/static/icons/FloorLamp.svg +3 -0
  3335. package/client/static/icons/FloorLampDual.svg +3 -0
  3336. package/client/static/icons/FloorLampDualOutline.svg +3 -0
  3337. package/client/static/icons/FloorLampOutline.svg +3 -0
  3338. package/client/static/icons/FloorLampTorchiere.svg +3 -0
  3339. package/client/static/icons/FloorLampTorchiereOutline.svg +3 -0
  3340. package/client/static/icons/FloorLampTorchiereVariant.svg +3 -0
  3341. package/client/static/icons/FloorLampTorchiereVariantOutline.svg +3 -0
  3342. package/client/static/icons/FloorPlan.svg +3 -0
  3343. package/client/static/icons/Floppy.svg +3 -0
  3344. package/client/static/icons/FloppyVariant.svg +3 -0
  3345. package/client/static/icons/Flower.svg +3 -0
  3346. package/client/static/icons/FlowerOutline.svg +3 -0
  3347. package/client/static/icons/FlowerPollen.svg +3 -0
  3348. package/client/static/icons/FlowerPollenOutline.svg +3 -0
  3349. package/client/static/icons/FlowerPoppy.svg +3 -0
  3350. package/client/static/icons/FlowerTulip.svg +3 -0
  3351. package/client/static/icons/FlowerTulipOutline.svg +3 -0
  3352. package/client/static/icons/FocusAuto.svg +3 -0
  3353. package/client/static/icons/FocusField.svg +3 -0
  3354. package/client/static/icons/FocusFieldHorizontal.svg +3 -0
  3355. package/client/static/icons/FocusFieldVertical.svg +3 -0
  3356. package/client/static/icons/Folder.svg +3 -0
  3357. package/client/static/icons/FolderAccount.svg +3 -0
  3358. package/client/static/icons/FolderAccountOutline.svg +3 -0
  3359. package/client/static/icons/FolderAlert.svg +3 -0
  3360. package/client/static/icons/FolderAlertOutline.svg +3 -0
  3361. package/client/static/icons/FolderArrowDown.svg +3 -0
  3362. package/client/static/icons/FolderArrowDownOutline.svg +3 -0
  3363. package/client/static/icons/FolderArrowLeft.svg +3 -0
  3364. package/client/static/icons/FolderArrowLeftOutline.svg +3 -0
  3365. package/client/static/icons/FolderArrowLeftRight.svg +3 -0
  3366. package/client/static/icons/FolderArrowLeftRightOutline.svg +3 -0
  3367. package/client/static/icons/FolderArrowRight.svg +3 -0
  3368. package/client/static/icons/FolderArrowRightOutline.svg +3 -0
  3369. package/client/static/icons/FolderArrowUp.svg +3 -0
  3370. package/client/static/icons/FolderArrowUpDown.svg +3 -0
  3371. package/client/static/icons/FolderArrowUpDownOutline.svg +3 -0
  3372. package/client/static/icons/FolderArrowUpOutline.svg +3 -0
  3373. package/client/static/icons/FolderCancel.svg +3 -0
  3374. package/client/static/icons/FolderCancelOutline.svg +3 -0
  3375. package/client/static/icons/FolderCheck.svg +3 -0
  3376. package/client/static/icons/FolderCheckOutline.svg +3 -0
  3377. package/client/static/icons/FolderClock.svg +3 -0
  3378. package/client/static/icons/FolderClockOutline.svg +3 -0
  3379. package/client/static/icons/FolderCog.svg +3 -0
  3380. package/client/static/icons/FolderCogOutline.svg +3 -0
  3381. package/client/static/icons/FolderDownload.svg +3 -0
  3382. package/client/static/icons/FolderDownloadOutline.svg +3 -0
  3383. package/client/static/icons/FolderEdit.svg +3 -0
  3384. package/client/static/icons/FolderEditOutline.svg +3 -0
  3385. package/client/static/icons/FolderEye.svg +3 -0
  3386. package/client/static/icons/FolderEyeOutline.svg +3 -0
  3387. package/client/static/icons/FolderFile.svg +3 -0
  3388. package/client/static/icons/FolderFileOutline.svg +3 -0
  3389. package/client/static/icons/FolderGoogleDrive.svg +3 -0
  3390. package/client/static/icons/FolderHeart.svg +3 -0
  3391. package/client/static/icons/FolderHeartOutline.svg +3 -0
  3392. package/client/static/icons/FolderHidden.svg +3 -0
  3393. package/client/static/icons/FolderHome.svg +3 -0
  3394. package/client/static/icons/FolderHomeOutline.svg +3 -0
  3395. package/client/static/icons/FolderImage.svg +3 -0
  3396. package/client/static/icons/FolderInformation.svg +3 -0
  3397. package/client/static/icons/FolderInformationOutline.svg +3 -0
  3398. package/client/static/icons/FolderKey.svg +3 -0
  3399. package/client/static/icons/FolderKeyNetwork.svg +3 -0
  3400. package/client/static/icons/FolderKeyNetworkOutline.svg +3 -0
  3401. package/client/static/icons/FolderKeyOutline.svg +3 -0
  3402. package/client/static/icons/FolderLock.svg +3 -0
  3403. package/client/static/icons/FolderLockOpen.svg +3 -0
  3404. package/client/static/icons/FolderLockOpenOutline.svg +3 -0
  3405. package/client/static/icons/FolderLockOutline.svg +3 -0
  3406. package/client/static/icons/FolderMarker.svg +3 -0
  3407. package/client/static/icons/FolderMarkerOutline.svg +3 -0
  3408. package/client/static/icons/FolderMinus.svg +3 -0
  3409. package/client/static/icons/FolderMinusOutline.svg +3 -0
  3410. package/client/static/icons/FolderMove.svg +3 -0
  3411. package/client/static/icons/FolderMoveOutline.svg +3 -0
  3412. package/client/static/icons/FolderMultiple.svg +3 -0
  3413. package/client/static/icons/FolderMultipleImage.svg +3 -0
  3414. package/client/static/icons/FolderMultipleOutline.svg +3 -0
  3415. package/client/static/icons/FolderMultiplePlus.svg +3 -0
  3416. package/client/static/icons/FolderMultiplePlusOutline.svg +3 -0
  3417. package/client/static/icons/FolderMusic.svg +3 -0
  3418. package/client/static/icons/FolderMusicOutline.svg +3 -0
  3419. package/client/static/icons/FolderNetwork.svg +3 -0
  3420. package/client/static/icons/FolderNetworkOutline.svg +3 -0
  3421. package/client/static/icons/FolderOff.svg +3 -0
  3422. package/client/static/icons/FolderOffOutline.svg +3 -0
  3423. package/client/static/icons/FolderOpen.svg +3 -0
  3424. package/client/static/icons/FolderOpenOutline.svg +3 -0
  3425. package/client/static/icons/FolderOutline.svg +3 -0
  3426. package/client/static/icons/FolderPlay.svg +3 -0
  3427. package/client/static/icons/FolderPlayOutline.svg +3 -0
  3428. package/client/static/icons/FolderPlus.svg +3 -0
  3429. package/client/static/icons/FolderPlusOutline.svg +3 -0
  3430. package/client/static/icons/FolderPound.svg +3 -0
  3431. package/client/static/icons/FolderPoundOutline.svg +3 -0
  3432. package/client/static/icons/FolderQuestion.svg +3 -0
  3433. package/client/static/icons/FolderQuestionOutline.svg +3 -0
  3434. package/client/static/icons/FolderRefresh.svg +3 -0
  3435. package/client/static/icons/FolderRefreshOutline.svg +3 -0
  3436. package/client/static/icons/FolderRemove.svg +3 -0
  3437. package/client/static/icons/FolderRemoveOutline.svg +3 -0
  3438. package/client/static/icons/FolderSearch.svg +3 -0
  3439. package/client/static/icons/FolderSearchOutline.svg +3 -0
  3440. package/client/static/icons/FolderSettings.svg +3 -0
  3441. package/client/static/icons/FolderSettingsOutline.svg +3 -0
  3442. package/client/static/icons/FolderStar.svg +3 -0
  3443. package/client/static/icons/FolderStarMultiple.svg +3 -0
  3444. package/client/static/icons/FolderStarMultipleOutline.svg +3 -0
  3445. package/client/static/icons/FolderStarOutline.svg +3 -0
  3446. package/client/static/icons/FolderSwap.svg +3 -0
  3447. package/client/static/icons/FolderSwapOutline.svg +3 -0
  3448. package/client/static/icons/FolderSync.svg +3 -0
  3449. package/client/static/icons/FolderSyncOutline.svg +3 -0
  3450. package/client/static/icons/FolderTable.svg +3 -0
  3451. package/client/static/icons/FolderTableOutline.svg +3 -0
  3452. package/client/static/icons/FolderText.svg +3 -0
  3453. package/client/static/icons/FolderTextOutline.svg +3 -0
  3454. package/client/static/icons/FolderUpload.svg +3 -0
  3455. package/client/static/icons/FolderUploadOutline.svg +3 -0
  3456. package/client/static/icons/FolderWrench.svg +3 -0
  3457. package/client/static/icons/FolderWrenchOutline.svg +3 -0
  3458. package/client/static/icons/FolderZip.svg +3 -0
  3459. package/client/static/icons/FolderZipOutline.svg +3 -0
  3460. package/client/static/icons/FontAwesome.svg +3 -0
  3461. package/client/static/icons/Food.svg +3 -0
  3462. package/client/static/icons/FoodApple.svg +3 -0
  3463. package/client/static/icons/FoodAppleOutline.svg +3 -0
  3464. package/client/static/icons/FoodCroissant.svg +3 -0
  3465. package/client/static/icons/FoodDrumstick.svg +3 -0
  3466. package/client/static/icons/FoodDrumstickOff.svg +3 -0
  3467. package/client/static/icons/FoodDrumstickOffOutline.svg +3 -0
  3468. package/client/static/icons/FoodDrumstickOutline.svg +3 -0
  3469. package/client/static/icons/FoodForkDrink.svg +3 -0
  3470. package/client/static/icons/FoodHalal.svg +3 -0
  3471. package/client/static/icons/FoodHotDog.svg +3 -0
  3472. package/client/static/icons/FoodKosher.svg +3 -0
  3473. package/client/static/icons/FoodOff.svg +3 -0
  3474. package/client/static/icons/FoodOffOutline.svg +3 -0
  3475. package/client/static/icons/FoodOutline.svg +3 -0
  3476. package/client/static/icons/FoodSteak.svg +3 -0
  3477. package/client/static/icons/FoodSteakOff.svg +3 -0
  3478. package/client/static/icons/FoodTakeoutBox.svg +3 -0
  3479. package/client/static/icons/FoodTakeoutBoxOutline.svg +3 -0
  3480. package/client/static/icons/FoodTurkey.svg +3 -0
  3481. package/client/static/icons/FoodVariant.svg +3 -0
  3482. package/client/static/icons/FoodVariantOff.svg +3 -0
  3483. package/client/static/icons/FootPrint.svg +3 -0
  3484. package/client/static/icons/Football.svg +3 -0
  3485. package/client/static/icons/FootballAustralian.svg +3 -0
  3486. package/client/static/icons/FootballHelmet.svg +3 -0
  3487. package/client/static/icons/Forest.svg +3 -0
  3488. package/client/static/icons/ForestOutline.svg +3 -0
  3489. package/client/static/icons/Forklift.svg +3 -0
  3490. package/client/static/icons/FormDropdown.svg +3 -0
  3491. package/client/static/icons/FormSelect.svg +3 -0
  3492. package/client/static/icons/FormTextarea.svg +3 -0
  3493. package/client/static/icons/FormTextbox.svg +3 -0
  3494. package/client/static/icons/FormTextboxLock.svg +3 -0
  3495. package/client/static/icons/FormTextboxPassword.svg +3 -0
  3496. package/client/static/icons/FormatAlignBottom.svg +3 -0
  3497. package/client/static/icons/FormatAlignCenter.svg +3 -0
  3498. package/client/static/icons/FormatAlignJustify.svg +3 -0
  3499. package/client/static/icons/FormatAlignLeft.svg +3 -0
  3500. package/client/static/icons/FormatAlignMiddle.svg +3 -0
  3501. package/client/static/icons/FormatAlignRight.svg +3 -0
  3502. package/client/static/icons/FormatAlignTop.svg +3 -0
  3503. package/client/static/icons/FormatAnnotationMinus.svg +3 -0
  3504. package/client/static/icons/FormatAnnotationPlus.svg +3 -0
  3505. package/client/static/icons/FormatBold.svg +3 -0
  3506. package/client/static/icons/FormatClear.svg +3 -0
  3507. package/client/static/icons/FormatColorFill.svg +3 -0
  3508. package/client/static/icons/FormatColorHighlight.svg +3 -0
  3509. package/client/static/icons/FormatColorMarkerCancel.svg +3 -0
  3510. package/client/static/icons/FormatColorText.svg +3 -0
  3511. package/client/static/icons/FormatColumns.svg +3 -0
  3512. package/client/static/icons/FormatFloatCenter.svg +3 -0
  3513. package/client/static/icons/FormatFloatLeft.svg +3 -0
  3514. package/client/static/icons/FormatFloatNone.svg +3 -0
  3515. package/client/static/icons/FormatFloatRight.svg +3 -0
  3516. package/client/static/icons/FormatFont.svg +3 -0
  3517. package/client/static/icons/FormatFontSizeDecrease.svg +3 -0
  3518. package/client/static/icons/FormatFontSizeIncrease.svg +3 -0
  3519. package/client/static/icons/FormatHeader1.svg +3 -0
  3520. package/client/static/icons/FormatHeader2.svg +3 -0
  3521. package/client/static/icons/FormatHeader3.svg +3 -0
  3522. package/client/static/icons/FormatHeader4.svg +3 -0
  3523. package/client/static/icons/FormatHeader5.svg +3 -0
  3524. package/client/static/icons/FormatHeader6.svg +3 -0
  3525. package/client/static/icons/FormatHeaderDecrease.svg +3 -0
  3526. package/client/static/icons/FormatHeaderEqual.svg +3 -0
  3527. package/client/static/icons/FormatHeaderIncrease.svg +3 -0
  3528. package/client/static/icons/FormatHeaderPound.svg +3 -0
  3529. package/client/static/icons/FormatHorizontalAlignCenter.svg +3 -0
  3530. package/client/static/icons/FormatHorizontalAlignLeft.svg +3 -0
  3531. package/client/static/icons/FormatHorizontalAlignRight.svg +3 -0
  3532. package/client/static/icons/FormatIndentDecrease.svg +3 -0
  3533. package/client/static/icons/FormatIndentIncrease.svg +3 -0
  3534. package/client/static/icons/FormatItalic.svg +3 -0
  3535. package/client/static/icons/FormatLetterCase.svg +3 -0
  3536. package/client/static/icons/FormatLetterCaseLower.svg +3 -0
  3537. package/client/static/icons/FormatLetterCaseUpper.svg +3 -0
  3538. package/client/static/icons/FormatLetterEndsWith.svg +3 -0
  3539. package/client/static/icons/FormatLetterMatches.svg +3 -0
  3540. package/client/static/icons/FormatLetterSpacing.svg +3 -0
  3541. package/client/static/icons/FormatLetterSpacingVariant.svg +3 -0
  3542. package/client/static/icons/FormatLetterStartsWith.svg +3 -0
  3543. package/client/static/icons/FormatLineHeight.svg +3 -0
  3544. package/client/static/icons/FormatLineSpacing.svg +3 -0
  3545. package/client/static/icons/FormatLineStyle.svg +3 -0
  3546. package/client/static/icons/FormatLineWeight.svg +3 -0
  3547. package/client/static/icons/FormatListBulleted.svg +3 -0
  3548. package/client/static/icons/FormatListBulletedSquare.svg +3 -0
  3549. package/client/static/icons/FormatListBulletedTriangle.svg +3 -0
  3550. package/client/static/icons/FormatListBulletedType.svg +3 -0
  3551. package/client/static/icons/FormatListCheckbox.svg +3 -0
  3552. package/client/static/icons/FormatListChecks.svg +3 -0
  3553. package/client/static/icons/FormatListGroup.svg +3 -0
  3554. package/client/static/icons/FormatListGroupPlus.svg +3 -0
  3555. package/client/static/icons/FormatListNumbered.svg +3 -0
  3556. package/client/static/icons/FormatListNumberedRtl.svg +3 -0
  3557. package/client/static/icons/FormatListText.svg +3 -0
  3558. package/client/static/icons/FormatOverline.svg +3 -0
  3559. package/client/static/icons/FormatPageBreak.svg +3 -0
  3560. package/client/static/icons/FormatPageSplit.svg +3 -0
  3561. package/client/static/icons/FormatPaint.svg +3 -0
  3562. package/client/static/icons/FormatParagraph.svg +3 -0
  3563. package/client/static/icons/FormatParagraphSpacing.svg +3 -0
  3564. package/client/static/icons/FormatPilcrow.svg +3 -0
  3565. package/client/static/icons/FormatPilcrowArrowLeft.svg +3 -0
  3566. package/client/static/icons/FormatPilcrowArrowRight.svg +3 -0
  3567. package/client/static/icons/FormatQuoteClose.svg +3 -0
  3568. package/client/static/icons/FormatQuoteCloseOutline.svg +3 -0
  3569. package/client/static/icons/FormatQuoteOpen.svg +3 -0
  3570. package/client/static/icons/FormatQuoteOpenOutline.svg +3 -0
  3571. package/client/static/icons/FormatRotate90.svg +3 -0
  3572. package/client/static/icons/FormatSection.svg +3 -0
  3573. package/client/static/icons/FormatSize.svg +3 -0
  3574. package/client/static/icons/FormatStrikethrough.svg +3 -0
  3575. package/client/static/icons/FormatStrikethroughVariant.svg +3 -0
  3576. package/client/static/icons/FormatSubscript.svg +3 -0
  3577. package/client/static/icons/FormatSuperscript.svg +3 -0
  3578. package/client/static/icons/FormatText.svg +3 -0
  3579. package/client/static/icons/FormatTextRotationAngleDown.svg +3 -0
  3580. package/client/static/icons/FormatTextRotationAngleUp.svg +3 -0
  3581. package/client/static/icons/FormatTextRotationDown.svg +3 -0
  3582. package/client/static/icons/FormatTextRotationDownVertical.svg +3 -0
  3583. package/client/static/icons/FormatTextRotationNone.svg +3 -0
  3584. package/client/static/icons/FormatTextRotationUp.svg +3 -0
  3585. package/client/static/icons/FormatTextRotationVertical.svg +3 -0
  3586. package/client/static/icons/FormatTextVariant.svg +3 -0
  3587. package/client/static/icons/FormatTextVariantOutline.svg +3 -0
  3588. package/client/static/icons/FormatTextWrappingClip.svg +3 -0
  3589. package/client/static/icons/FormatTextWrappingOverflow.svg +3 -0
  3590. package/client/static/icons/FormatTextWrappingWrap.svg +3 -0
  3591. package/client/static/icons/FormatTextbox.svg +3 -0
  3592. package/client/static/icons/FormatTitle.svg +3 -0
  3593. package/client/static/icons/FormatUnderline.svg +3 -0
  3594. package/client/static/icons/FormatUnderlineWavy.svg +3 -0
  3595. package/client/static/icons/FormatVerticalAlignBottom.svg +3 -0
  3596. package/client/static/icons/FormatVerticalAlignCenter.svg +3 -0
  3597. package/client/static/icons/FormatVerticalAlignTop.svg +3 -0
  3598. package/client/static/icons/FormatWrapInline.svg +3 -0
  3599. package/client/static/icons/FormatWrapSquare.svg +3 -0
  3600. package/client/static/icons/FormatWrapTight.svg +3 -0
  3601. package/client/static/icons/FormatWrapTopBottom.svg +3 -0
  3602. package/client/static/icons/Forum.svg +3 -0
  3603. package/client/static/icons/ForumMinus.svg +3 -0
  3604. package/client/static/icons/ForumMinusOutline.svg +3 -0
  3605. package/client/static/icons/ForumOutline.svg +3 -0
  3606. package/client/static/icons/ForumPlus.svg +3 -0
  3607. package/client/static/icons/ForumPlusOutline.svg +3 -0
  3608. package/client/static/icons/ForumRemove.svg +3 -0
  3609. package/client/static/icons/ForumRemoveOutline.svg +3 -0
  3610. package/client/static/icons/Forward.svg +3 -0
  3611. package/client/static/icons/Forwardburger.svg +3 -0
  3612. package/client/static/icons/Fountain.svg +3 -0
  3613. package/client/static/icons/FountainPen.svg +3 -0
  3614. package/client/static/icons/FountainPenTip.svg +3 -0
  3615. package/client/static/icons/FractionOneHalf.svg +3 -0
  3616. package/client/static/icons/Freebsd.svg +3 -0
  3617. package/client/static/icons/FrenchFries.svg +3 -0
  3618. package/client/static/icons/FrequentlyAskedQuestions.svg +3 -0
  3619. package/client/static/icons/Fridge.svg +3 -0
  3620. package/client/static/icons/FridgeAlert.svg +3 -0
  3621. package/client/static/icons/FridgeAlertOutline.svg +3 -0
  3622. package/client/static/icons/FridgeBottom.svg +3 -0
  3623. package/client/static/icons/FridgeIndustrial.svg +3 -0
  3624. package/client/static/icons/FridgeIndustrialAlert.svg +3 -0
  3625. package/client/static/icons/FridgeIndustrialAlertOutline.svg +3 -0
  3626. package/client/static/icons/FridgeIndustrialOff.svg +3 -0
  3627. package/client/static/icons/FridgeIndustrialOffOutline.svg +3 -0
  3628. package/client/static/icons/FridgeIndustrialOutline.svg +3 -0
  3629. package/client/static/icons/FridgeOff.svg +3 -0
  3630. package/client/static/icons/FridgeOffOutline.svg +3 -0
  3631. package/client/static/icons/FridgeOutline.svg +3 -0
  3632. package/client/static/icons/FridgeTop.svg +3 -0
  3633. package/client/static/icons/FridgeVariant.svg +3 -0
  3634. package/client/static/icons/FridgeVariantAlert.svg +3 -0
  3635. package/client/static/icons/FridgeVariantAlertOutline.svg +3 -0
  3636. package/client/static/icons/FridgeVariantOff.svg +3 -0
  3637. package/client/static/icons/FridgeVariantOffOutline.svg +3 -0
  3638. package/client/static/icons/FridgeVariantOutline.svg +3 -0
  3639. package/client/static/icons/FruitCherries.svg +3 -0
  3640. package/client/static/icons/FruitCherriesOff.svg +3 -0
  3641. package/client/static/icons/FruitCitrus.svg +3 -0
  3642. package/client/static/icons/FruitCitrusOff.svg +3 -0
  3643. package/client/static/icons/FruitGrapes.svg +3 -0
  3644. package/client/static/icons/FruitGrapesOutline.svg +3 -0
  3645. package/client/static/icons/FruitPear.svg +3 -0
  3646. package/client/static/icons/FruitPineapple.svg +3 -0
  3647. package/client/static/icons/FruitWatermelon.svg +3 -0
  3648. package/client/static/icons/Fuel.svg +3 -0
  3649. package/client/static/icons/FuelCell.svg +3 -0
  3650. package/client/static/icons/Fullscreen.svg +3 -0
  3651. package/client/static/icons/FullscreenExit.svg +3 -0
  3652. package/client/static/icons/Function.svg +3 -0
  3653. package/client/static/icons/FunctionVariant.svg +3 -0
  3654. package/client/static/icons/FuriganaHorizontal.svg +3 -0
  3655. package/client/static/icons/FuriganaVertical.svg +3 -0
  3656. package/client/static/icons/Fuse.svg +3 -0
  3657. package/client/static/icons/FuseAlert.svg +3 -0
  3658. package/client/static/icons/FuseBlade.svg +3 -0
  3659. package/client/static/icons/FuseOff.svg +3 -0
  3660. package/client/static/icons/Gamepad.svg +3 -0
  3661. package/client/static/icons/GamepadCircle.svg +3 -0
  3662. package/client/static/icons/GamepadCircleDown.svg +3 -0
  3663. package/client/static/icons/GamepadCircleLeft.svg +3 -0
  3664. package/client/static/icons/GamepadCircleOutline.svg +3 -0
  3665. package/client/static/icons/GamepadCircleRight.svg +3 -0
  3666. package/client/static/icons/GamepadCircleUp.svg +3 -0
  3667. package/client/static/icons/GamepadDown.svg +3 -0
  3668. package/client/static/icons/GamepadLeft.svg +3 -0
  3669. package/client/static/icons/GamepadOutline.svg +3 -0
  3670. package/client/static/icons/GamepadRight.svg +3 -0
  3671. package/client/static/icons/GamepadRound.svg +3 -0
  3672. package/client/static/icons/GamepadRoundDown.svg +3 -0
  3673. package/client/static/icons/GamepadRoundLeft.svg +3 -0
  3674. package/client/static/icons/GamepadRoundOutline.svg +3 -0
  3675. package/client/static/icons/GamepadRoundRight.svg +3 -0
  3676. package/client/static/icons/GamepadRoundUp.svg +3 -0
  3677. package/client/static/icons/GamepadSquare.svg +3 -0
  3678. package/client/static/icons/GamepadSquareOutline.svg +3 -0
  3679. package/client/static/icons/GamepadUp.svg +3 -0
  3680. package/client/static/icons/GamepadVariant.svg +3 -0
  3681. package/client/static/icons/GamepadVariantOutline.svg +3 -0
  3682. package/client/static/icons/Gamma.svg +3 -0
  3683. package/client/static/icons/GantryCrane.svg +3 -0
  3684. package/client/static/icons/Garage.svg +3 -0
  3685. package/client/static/icons/GarageAlert.svg +3 -0
  3686. package/client/static/icons/GarageAlertVariant.svg +3 -0
  3687. package/client/static/icons/GarageLock.svg +3 -0
  3688. package/client/static/icons/GarageOpen.svg +3 -0
  3689. package/client/static/icons/GarageOpenVariant.svg +3 -0
  3690. package/client/static/icons/GarageVariant.svg +3 -0
  3691. package/client/static/icons/GarageVariantLock.svg +3 -0
  3692. package/client/static/icons/GasBurner.svg +3 -0
  3693. package/client/static/icons/GasCylinder.svg +3 -0
  3694. package/client/static/icons/GasStation.svg +3 -0
  3695. package/client/static/icons/GasStationInUse.svg +3 -0
  3696. package/client/static/icons/GasStationInUseOutline.svg +3 -0
  3697. package/client/static/icons/GasStationOff.svg +3 -0
  3698. package/client/static/icons/GasStationOffOutline.svg +3 -0
  3699. package/client/static/icons/GasStationOutline.svg +3 -0
  3700. package/client/static/icons/Gate.svg +3 -0
  3701. package/client/static/icons/GateAlert.svg +3 -0
  3702. package/client/static/icons/GateAnd.svg +3 -0
  3703. package/client/static/icons/GateArrowLeft.svg +3 -0
  3704. package/client/static/icons/GateArrowRight.svg +3 -0
  3705. package/client/static/icons/GateBuffer.svg +3 -0
  3706. package/client/static/icons/GateNand.svg +3 -0
  3707. package/client/static/icons/GateNor.svg +3 -0
  3708. package/client/static/icons/GateNot.svg +3 -0
  3709. package/client/static/icons/GateOpen.svg +3 -0
  3710. package/client/static/icons/GateOr.svg +3 -0
  3711. package/client/static/icons/GateXnor.svg +3 -0
  3712. package/client/static/icons/GateXor.svg +3 -0
  3713. package/client/static/icons/Gatsby.svg +3 -0
  3714. package/client/static/icons/Gauge.svg +3 -0
  3715. package/client/static/icons/GaugeEmpty.svg +3 -0
  3716. package/client/static/icons/GaugeFull.svg +3 -0
  3717. package/client/static/icons/GaugeLow.svg +3 -0
  3718. package/client/static/icons/Gavel.svg +3 -0
  3719. package/client/static/icons/GenderFemale.svg +3 -0
  3720. package/client/static/icons/GenderMale.svg +3 -0
  3721. package/client/static/icons/GenderMaleFemale.svg +3 -0
  3722. package/client/static/icons/GenderMaleFemaleVariant.svg +3 -0
  3723. package/client/static/icons/GenderNonBinary.svg +3 -0
  3724. package/client/static/icons/GenderTransgender.svg +3 -0
  3725. package/client/static/icons/GeneratorMobile.svg +3 -0
  3726. package/client/static/icons/GeneratorPortable.svg +3 -0
  3727. package/client/static/icons/GeneratorStationary.svg +3 -0
  3728. package/client/static/icons/Gentoo.svg +3 -0
  3729. package/client/static/icons/Gesture.svg +3 -0
  3730. package/client/static/icons/GestureDoubleTap.svg +3 -0
  3731. package/client/static/icons/GesturePinch.svg +3 -0
  3732. package/client/static/icons/GestureSpread.svg +3 -0
  3733. package/client/static/icons/GestureSwipe.svg +3 -0
  3734. package/client/static/icons/GestureSwipeDown.svg +3 -0
  3735. package/client/static/icons/GestureSwipeHorizontal.svg +3 -0
  3736. package/client/static/icons/GestureSwipeLeft.svg +3 -0
  3737. package/client/static/icons/GestureSwipeRight.svg +3 -0
  3738. package/client/static/icons/GestureSwipeUp.svg +3 -0
  3739. package/client/static/icons/GestureSwipeVertical.svg +3 -0
  3740. package/client/static/icons/GestureTap.svg +3 -0
  3741. package/client/static/icons/GestureTapBox.svg +3 -0
  3742. package/client/static/icons/GestureTapButton.svg +3 -0
  3743. package/client/static/icons/GestureTapHold.svg +3 -0
  3744. package/client/static/icons/GestureTwoDoubleTap.svg +3 -0
  3745. package/client/static/icons/GestureTwoTap.svg +3 -0
  3746. package/client/static/icons/Ghost.svg +3 -0
  3747. package/client/static/icons/GhostOff.svg +3 -0
  3748. package/client/static/icons/GhostOffOutline.svg +3 -0
  3749. package/client/static/icons/GhostOutline.svg +3 -0
  3750. package/client/static/icons/Gift.svg +3 -0
  3751. package/client/static/icons/GiftOff.svg +3 -0
  3752. package/client/static/icons/GiftOffOutline.svg +3 -0
  3753. package/client/static/icons/GiftOpen.svg +3 -0
  3754. package/client/static/icons/GiftOpenOutline.svg +3 -0
  3755. package/client/static/icons/GiftOutline.svg +3 -0
  3756. package/client/static/icons/Git.svg +3 -0
  3757. package/client/static/icons/Github.svg +3 -0
  3758. package/client/static/icons/Gitlab.svg +3 -0
  3759. package/client/static/icons/GlassCocktail.svg +3 -0
  3760. package/client/static/icons/GlassCocktailOff.svg +3 -0
  3761. package/client/static/icons/GlassFlute.svg +3 -0
  3762. package/client/static/icons/GlassFragile.svg +3 -0
  3763. package/client/static/icons/GlassMug.svg +3 -0
  3764. package/client/static/icons/GlassMugOff.svg +3 -0
  3765. package/client/static/icons/GlassMugVariant.svg +3 -0
  3766. package/client/static/icons/GlassMugVariantOff.svg +3 -0
  3767. package/client/static/icons/GlassPintOutline.svg +3 -0
  3768. package/client/static/icons/GlassStange.svg +3 -0
  3769. package/client/static/icons/GlassTulip.svg +3 -0
  3770. package/client/static/icons/GlassWine.svg +3 -0
  3771. package/client/static/icons/Glasses.svg +3 -0
  3772. package/client/static/icons/GlobeLight.svg +3 -0
  3773. package/client/static/icons/GlobeLightOutline.svg +3 -0
  3774. package/client/static/icons/GlobeModel.svg +3 -0
  3775. package/client/static/icons/Gmail.svg +3 -0
  3776. package/client/static/icons/Gnome.svg +3 -0
  3777. package/client/static/icons/GoKart.svg +3 -0
  3778. package/client/static/icons/GoKartTrack.svg +3 -0
  3779. package/client/static/icons/Gog.svg +3 -0
  3780. package/client/static/icons/Gold.svg +3 -0
  3781. package/client/static/icons/Golf.svg +3 -0
  3782. package/client/static/icons/GolfCart.svg +3 -0
  3783. package/client/static/icons/GolfTee.svg +3 -0
  3784. package/client/static/icons/Gondola.svg +3 -0
  3785. package/client/static/icons/Goodreads.svg +3 -0
  3786. package/client/static/icons/Google.svg +3 -0
  3787. package/client/static/icons/GoogleAds.svg +3 -0
  3788. package/client/static/icons/GoogleAnalytics.svg +3 -0
  3789. package/client/static/icons/GoogleAssistant.svg +3 -0
  3790. package/client/static/icons/GoogleCardboard.svg +3 -0
  3791. package/client/static/icons/GoogleChrome.svg +3 -0
  3792. package/client/static/icons/GoogleCircles.svg +3 -0
  3793. package/client/static/icons/GoogleCirclesCommunities.svg +3 -0
  3794. package/client/static/icons/GoogleCirclesExtended.svg +3 -0
  3795. package/client/static/icons/GoogleCirclesGroup.svg +3 -0
  3796. package/client/static/icons/GoogleClassroom.svg +3 -0
  3797. package/client/static/icons/GoogleCloud.svg +3 -0
  3798. package/client/static/icons/GoogleDownasaur.svg +3 -0
  3799. package/client/static/icons/GoogleDrive.svg +3 -0
  3800. package/client/static/icons/GoogleEarth.svg +3 -0
  3801. package/client/static/icons/GoogleFit.svg +3 -0
  3802. package/client/static/icons/GoogleGlass.svg +3 -0
  3803. package/client/static/icons/GoogleHangouts.svg +3 -0
  3804. package/client/static/icons/GoogleKeep.svg +3 -0
  3805. package/client/static/icons/GoogleLens.svg +3 -0
  3806. package/client/static/icons/GoogleMaps.svg +3 -0
  3807. package/client/static/icons/GoogleMyBusiness.svg +3 -0
  3808. package/client/static/icons/GoogleNearby.svg +3 -0
  3809. package/client/static/icons/GooglePlay.svg +3 -0
  3810. package/client/static/icons/GooglePlus.svg +3 -0
  3811. package/client/static/icons/GooglePodcast.svg +3 -0
  3812. package/client/static/icons/GoogleSpreadsheet.svg +3 -0
  3813. package/client/static/icons/GoogleStreetView.svg +3 -0
  3814. package/client/static/icons/GoogleTranslate.svg +3 -0
  3815. package/client/static/icons/GradientHorizontal.svg +3 -0
  3816. package/client/static/icons/GradientVertical.svg +3 -0
  3817. package/client/static/icons/Grain.svg +3 -0
  3818. package/client/static/icons/Graph.svg +3 -0
  3819. package/client/static/icons/GraphOutline.svg +3 -0
  3820. package/client/static/icons/Graphql.svg +3 -0
  3821. package/client/static/icons/Grass.svg +3 -0
  3822. package/client/static/icons/GraveStone.svg +3 -0
  3823. package/client/static/icons/GreasePencil.svg +3 -0
  3824. package/client/static/icons/GreaterThan.svg +3 -0
  3825. package/client/static/icons/GreaterThanOrEqual.svg +3 -0
  3826. package/client/static/icons/Greenhouse.svg +3 -0
  3827. package/client/static/icons/Grid.svg +3 -0
  3828. package/client/static/icons/GridLarge.svg +3 -0
  3829. package/client/static/icons/GridOff.svg +3 -0
  3830. package/client/static/icons/Grill.svg +3 -0
  3831. package/client/static/icons/GrillOutline.svg +3 -0
  3832. package/client/static/icons/Group.svg +3 -0
  3833. package/client/static/icons/GuitarAcoustic.svg +3 -0
  3834. package/client/static/icons/GuitarElectric.svg +3 -0
  3835. package/client/static/icons/GuitarPick.svg +3 -0
  3836. package/client/static/icons/GuitarPickOutline.svg +3 -0
  3837. package/client/static/icons/GuyFawkesMask.svg +3 -0
  3838. package/client/static/icons/Gymnastics.svg +3 -0
  3839. package/client/static/icons/Hail.svg +3 -0
  3840. package/client/static/icons/HairDryer.svg +3 -0
  3841. package/client/static/icons/HairDryerOutline.svg +3 -0
  3842. package/client/static/icons/Halloween.svg +3 -0
  3843. package/client/static/icons/Hamburger.svg +3 -0
  3844. package/client/static/icons/HamburgerCheck.svg +3 -0
  3845. package/client/static/icons/HamburgerMinus.svg +3 -0
  3846. package/client/static/icons/HamburgerOff.svg +3 -0
  3847. package/client/static/icons/HamburgerPlus.svg +3 -0
  3848. package/client/static/icons/HamburgerRemove.svg +3 -0
  3849. package/client/static/icons/Hammer.svg +3 -0
  3850. package/client/static/icons/HammerScrewdriver.svg +3 -0
  3851. package/client/static/icons/HammerSickle.svg +3 -0
  3852. package/client/static/icons/HammerWrench.svg +3 -0
  3853. package/client/static/icons/HandBackLeft.svg +3 -0
  3854. package/client/static/icons/HandBackLeftOff.svg +3 -0
  3855. package/client/static/icons/HandBackLeftOffOutline.svg +3 -0
  3856. package/client/static/icons/HandBackLeftOutline.svg +3 -0
  3857. package/client/static/icons/HandBackRight.svg +3 -0
  3858. package/client/static/icons/HandBackRightOff.svg +3 -0
  3859. package/client/static/icons/HandBackRightOffOutline.svg +3 -0
  3860. package/client/static/icons/HandBackRightOutline.svg +3 -0
  3861. package/client/static/icons/HandClap.svg +3 -0
  3862. package/client/static/icons/HandClapOff.svg +3 -0
  3863. package/client/static/icons/HandCoin.svg +3 -0
  3864. package/client/static/icons/HandCoinOutline.svg +3 -0
  3865. package/client/static/icons/HandCycle.svg +3 -0
  3866. package/client/static/icons/HandExtended.svg +3 -0
  3867. package/client/static/icons/HandExtendedOutline.svg +3 -0
  3868. package/client/static/icons/HandFrontLeft.svg +3 -0
  3869. package/client/static/icons/HandFrontLeftOutline.svg +3 -0
  3870. package/client/static/icons/HandFrontRight.svg +3 -0
  3871. package/client/static/icons/HandFrontRightOutline.svg +3 -0
  3872. package/client/static/icons/HandHeart.svg +3 -0
  3873. package/client/static/icons/HandHeartOutline.svg +3 -0
  3874. package/client/static/icons/HandOkay.svg +3 -0
  3875. package/client/static/icons/HandPeace.svg +3 -0
  3876. package/client/static/icons/HandPeaceVariant.svg +3 -0
  3877. package/client/static/icons/HandPointingDown.svg +3 -0
  3878. package/client/static/icons/HandPointingLeft.svg +3 -0
  3879. package/client/static/icons/HandPointingRight.svg +3 -0
  3880. package/client/static/icons/HandPointingUp.svg +3 -0
  3881. package/client/static/icons/HandSaw.svg +3 -0
  3882. package/client/static/icons/HandWash.svg +3 -0
  3883. package/client/static/icons/HandWashOutline.svg +3 -0
  3884. package/client/static/icons/HandWater.svg +3 -0
  3885. package/client/static/icons/HandWave.svg +3 -0
  3886. package/client/static/icons/HandWaveOutline.svg +3 -0
  3887. package/client/static/icons/Handball.svg +3 -0
  3888. package/client/static/icons/Handcuffs.svg +3 -0
  3889. package/client/static/icons/HandsPray.svg +3 -0
  3890. package/client/static/icons/Handshake.svg +3 -0
  3891. package/client/static/icons/HandshakeOutline.svg +3 -0
  3892. package/client/static/icons/Hanger.svg +3 -0
  3893. package/client/static/icons/HardHat.svg +3 -0
  3894. package/client/static/icons/Harddisk.svg +3 -0
  3895. package/client/static/icons/HarddiskPlus.svg +3 -0
  3896. package/client/static/icons/HarddiskRemove.svg +3 -0
  3897. package/client/static/icons/HatFedora.svg +3 -0
  3898. package/client/static/icons/HazardLights.svg +3 -0
  3899. package/client/static/icons/HdmiPort.svg +3 -0
  3900. package/client/static/icons/Hdr.svg +3 -0
  3901. package/client/static/icons/HdrOff.svg +3 -0
  3902. package/client/static/icons/Head.svg +3 -0
  3903. package/client/static/icons/HeadAlert.svg +3 -0
  3904. package/client/static/icons/HeadAlertOutline.svg +3 -0
  3905. package/client/static/icons/HeadCheck.svg +3 -0
  3906. package/client/static/icons/HeadCheckOutline.svg +3 -0
  3907. package/client/static/icons/HeadCog.svg +3 -0
  3908. package/client/static/icons/HeadCogOutline.svg +3 -0
  3909. package/client/static/icons/HeadDotsHorizontal.svg +3 -0
  3910. package/client/static/icons/HeadDotsHorizontalOutline.svg +3 -0
  3911. package/client/static/icons/HeadFlash.svg +3 -0
  3912. package/client/static/icons/HeadFlashOutline.svg +3 -0
  3913. package/client/static/icons/HeadHeart.svg +3 -0
  3914. package/client/static/icons/HeadHeartOutline.svg +3 -0
  3915. package/client/static/icons/HeadLightbulb.svg +3 -0
  3916. package/client/static/icons/HeadLightbulbOutline.svg +3 -0
  3917. package/client/static/icons/HeadMinus.svg +3 -0
  3918. package/client/static/icons/HeadMinusOutline.svg +3 -0
  3919. package/client/static/icons/HeadOutline.svg +3 -0
  3920. package/client/static/icons/HeadPlus.svg +3 -0
  3921. package/client/static/icons/HeadPlusOutline.svg +3 -0
  3922. package/client/static/icons/HeadQuestion.svg +3 -0
  3923. package/client/static/icons/HeadQuestionOutline.svg +3 -0
  3924. package/client/static/icons/HeadRemove.svg +3 -0
  3925. package/client/static/icons/HeadRemoveOutline.svg +3 -0
  3926. package/client/static/icons/HeadSnowflake.svg +3 -0
  3927. package/client/static/icons/HeadSnowflakeOutline.svg +3 -0
  3928. package/client/static/icons/HeadSync.svg +3 -0
  3929. package/client/static/icons/HeadSyncOutline.svg +3 -0
  3930. package/client/static/icons/Headphones.svg +3 -0
  3931. package/client/static/icons/HeadphonesBluetooth.svg +3 -0
  3932. package/client/static/icons/HeadphonesBox.svg +3 -0
  3933. package/client/static/icons/HeadphonesOff.svg +3 -0
  3934. package/client/static/icons/HeadphonesSettings.svg +3 -0
  3935. package/client/static/icons/Headset.svg +3 -0
  3936. package/client/static/icons/HeadsetDock.svg +3 -0
  3937. package/client/static/icons/HeadsetOff.svg +3 -0
  3938. package/client/static/icons/Heart.svg +3 -0
  3939. package/client/static/icons/HeartBox.svg +3 -0
  3940. package/client/static/icons/HeartBoxOutline.svg +3 -0
  3941. package/client/static/icons/HeartBroken.svg +3 -0
  3942. package/client/static/icons/HeartBrokenOutline.svg +3 -0
  3943. package/client/static/icons/HeartCircle.svg +3 -0
  3944. package/client/static/icons/HeartCircleOutline.svg +3 -0
  3945. package/client/static/icons/HeartCog.svg +3 -0
  3946. package/client/static/icons/HeartCogOutline.svg +3 -0
  3947. package/client/static/icons/HeartFlash.svg +3 -0
  3948. package/client/static/icons/HeartHalf.svg +3 -0
  3949. package/client/static/icons/HeartHalfFull.svg +3 -0
  3950. package/client/static/icons/HeartHalfOutline.svg +3 -0
  3951. package/client/static/icons/HeartMinus.svg +3 -0
  3952. package/client/static/icons/HeartMinusOutline.svg +3 -0
  3953. package/client/static/icons/HeartMultiple.svg +3 -0
  3954. package/client/static/icons/HeartMultipleOutline.svg +3 -0
  3955. package/client/static/icons/HeartOff.svg +3 -0
  3956. package/client/static/icons/HeartOffOutline.svg +3 -0
  3957. package/client/static/icons/HeartOutline.svg +3 -0
  3958. package/client/static/icons/HeartPlus.svg +3 -0
  3959. package/client/static/icons/HeartPlusOutline.svg +3 -0
  3960. package/client/static/icons/HeartPulse.svg +3 -0
  3961. package/client/static/icons/HeartRemove.svg +3 -0
  3962. package/client/static/icons/HeartRemoveOutline.svg +3 -0
  3963. package/client/static/icons/HeartSearch.svg +3 -0
  3964. package/client/static/icons/HeartSettings.svg +3 -0
  3965. package/client/static/icons/HeartSettingsOutline.svg +3 -0
  3966. package/client/static/icons/HeatPump.svg +3 -0
  3967. package/client/static/icons/HeatPumpOutline.svg +3 -0
  3968. package/client/static/icons/HeatWave.svg +3 -0
  3969. package/client/static/icons/HeatingCoil.svg +3 -0
  3970. package/client/static/icons/Helicopter.svg +3 -0
  3971. package/client/static/icons/Help.svg +3 -0
  3972. package/client/static/icons/HelpBox.svg +3 -0
  3973. package/client/static/icons/HelpBoxMultiple.svg +3 -0
  3974. package/client/static/icons/HelpBoxMultipleOutline.svg +3 -0
  3975. package/client/static/icons/HelpBoxOutline.svg +3 -0
  3976. package/client/static/icons/HelpCircle.svg +3 -0
  3977. package/client/static/icons/HelpCircleOutline.svg +3 -0
  3978. package/client/static/icons/HelpNetwork.svg +3 -0
  3979. package/client/static/icons/HelpNetworkOutline.svg +3 -0
  3980. package/client/static/icons/HelpRhombus.svg +3 -0
  3981. package/client/static/icons/HelpRhombusOutline.svg +3 -0
  3982. package/client/static/icons/Hexadecimal.svg +3 -0
  3983. package/client/static/icons/Hexagon.svg +3 -0
  3984. package/client/static/icons/HexagonMultiple.svg +3 -0
  3985. package/client/static/icons/HexagonMultipleOutline.svg +3 -0
  3986. package/client/static/icons/HexagonOutline.svg +3 -0
  3987. package/client/static/icons/HexagonSlice1.svg +3 -0
  3988. package/client/static/icons/HexagonSlice2.svg +3 -0
  3989. package/client/static/icons/HexagonSlice3.svg +3 -0
  3990. package/client/static/icons/HexagonSlice4.svg +3 -0
  3991. package/client/static/icons/HexagonSlice5.svg +3 -0
  3992. package/client/static/icons/HexagonSlice6.svg +3 -0
  3993. package/client/static/icons/Hexagram.svg +3 -0
  3994. package/client/static/icons/HexagramOutline.svg +3 -0
  3995. package/client/static/icons/HighDefinition.svg +3 -0
  3996. package/client/static/icons/HighDefinitionBox.svg +3 -0
  3997. package/client/static/icons/Highway.svg +3 -0
  3998. package/client/static/icons/Hiking.svg +3 -0
  3999. package/client/static/icons/History.svg +3 -0
  4000. package/client/static/icons/HockeyPuck.svg +3 -0
  4001. package/client/static/icons/HockeySticks.svg +3 -0
  4002. package/client/static/icons/Hololens.svg +3 -0
  4003. package/client/static/icons/Home.svg +3 -0
  4004. package/client/static/icons/HomeAccount.svg +3 -0
  4005. package/client/static/icons/HomeAlert.svg +3 -0
  4006. package/client/static/icons/HomeAlertOutline.svg +3 -0
  4007. package/client/static/icons/HomeAnalytics.svg +3 -0
  4008. package/client/static/icons/HomeAssistant.svg +3 -0
  4009. package/client/static/icons/HomeAutomation.svg +3 -0
  4010. package/client/static/icons/HomeBattery.svg +3 -0
  4011. package/client/static/icons/HomeBatteryOutline.svg +3 -0
  4012. package/client/static/icons/HomeCircle.svg +3 -0
  4013. package/client/static/icons/HomeCircleOutline.svg +3 -0
  4014. package/client/static/icons/HomeCity.svg +3 -0
  4015. package/client/static/icons/HomeCityOutline.svg +3 -0
  4016. package/client/static/icons/HomeClock.svg +3 -0
  4017. package/client/static/icons/HomeClockOutline.svg +3 -0
  4018. package/client/static/icons/HomeEdit.svg +3 -0
  4019. package/client/static/icons/HomeEditOutline.svg +3 -0
  4020. package/client/static/icons/HomeExportOutline.svg +3 -0
  4021. package/client/static/icons/HomeFlood.svg +3 -0
  4022. package/client/static/icons/HomeFloor0.svg +3 -0
  4023. package/client/static/icons/HomeFloor1.svg +3 -0
  4024. package/client/static/icons/HomeFloor2.svg +3 -0
  4025. package/client/static/icons/HomeFloor3.svg +3 -0
  4026. package/client/static/icons/HomeFloorA.svg +3 -0
  4027. package/client/static/icons/HomeFloorB.svg +3 -0
  4028. package/client/static/icons/HomeFloorG.svg +3 -0
  4029. package/client/static/icons/HomeFloorL.svg +3 -0
  4030. package/client/static/icons/HomeFloorNegative1.svg +3 -0
  4031. package/client/static/icons/HomeGroup.svg +3 -0
  4032. package/client/static/icons/HomeGroupMinus.svg +3 -0
  4033. package/client/static/icons/HomeGroupPlus.svg +3 -0
  4034. package/client/static/icons/HomeGroupRemove.svg +3 -0
  4035. package/client/static/icons/HomeHeart.svg +3 -0
  4036. package/client/static/icons/HomeImportOutline.svg +3 -0
  4037. package/client/static/icons/HomeLightbulb.svg +3 -0
  4038. package/client/static/icons/HomeLightbulbOutline.svg +3 -0
  4039. package/client/static/icons/HomeLightningBolt.svg +3 -0
  4040. package/client/static/icons/HomeLightningBoltOutline.svg +3 -0
  4041. package/client/static/icons/HomeLock.svg +3 -0
  4042. package/client/static/icons/HomeLockOpen.svg +3 -0
  4043. package/client/static/icons/HomeMapMarker.svg +3 -0
  4044. package/client/static/icons/HomeMinus.svg +3 -0
  4045. package/client/static/icons/HomeMinusOutline.svg +3 -0
  4046. package/client/static/icons/HomeModern.svg +3 -0
  4047. package/client/static/icons/HomeOff.svg +3 -0
  4048. package/client/static/icons/HomeOffOutline.svg +3 -0
  4049. package/client/static/icons/HomeOutline.svg +3 -0
  4050. package/client/static/icons/HomePercent.svg +3 -0
  4051. package/client/static/icons/HomePercentOutline.svg +3 -0
  4052. package/client/static/icons/HomePlus.svg +3 -0
  4053. package/client/static/icons/HomePlusOutline.svg +3 -0
  4054. package/client/static/icons/HomeRemove.svg +3 -0
  4055. package/client/static/icons/HomeRemoveOutline.svg +3 -0
  4056. package/client/static/icons/HomeRoof.svg +3 -0
  4057. package/client/static/icons/HomeSearch.svg +3 -0
  4058. package/client/static/icons/HomeSearchOutline.svg +3 -0
  4059. package/client/static/icons/HomeSilo.svg +3 -0
  4060. package/client/static/icons/HomeSiloOutline.svg +3 -0
  4061. package/client/static/icons/HomeSoundIn.svg +3 -0
  4062. package/client/static/icons/HomeSoundInOutline.svg +3 -0
  4063. package/client/static/icons/HomeSoundOut.svg +3 -0
  4064. package/client/static/icons/HomeSoundOutOutline.svg +3 -0
  4065. package/client/static/icons/HomeSwitch.svg +3 -0
  4066. package/client/static/icons/HomeSwitchOutline.svg +3 -0
  4067. package/client/static/icons/HomeThermometer.svg +3 -0
  4068. package/client/static/icons/HomeThermometerOutline.svg +3 -0
  4069. package/client/static/icons/HomeVariant.svg +3 -0
  4070. package/client/static/icons/HomeVariantOutline.svg +3 -0
  4071. package/client/static/icons/Hook.svg +3 -0
  4072. package/client/static/icons/HookOff.svg +3 -0
  4073. package/client/static/icons/HoopHouse.svg +3 -0
  4074. package/client/static/icons/Hops.svg +3 -0
  4075. package/client/static/icons/HorizontalRotateClockwise.svg +3 -0
  4076. package/client/static/icons/HorizontalRotateCounterclockwise.svg +3 -0
  4077. package/client/static/icons/Horse.svg +3 -0
  4078. package/client/static/icons/HorseHuman.svg +3 -0
  4079. package/client/static/icons/HorseVariant.svg +3 -0
  4080. package/client/static/icons/HorseVariantFast.svg +3 -0
  4081. package/client/static/icons/Horseshoe.svg +3 -0
  4082. package/client/static/icons/Hospital.svg +3 -0
  4083. package/client/static/icons/HospitalBox.svg +3 -0
  4084. package/client/static/icons/HospitalBoxOutline.svg +3 -0
  4085. package/client/static/icons/HospitalBuilding.svg +3 -0
  4086. package/client/static/icons/HospitalMarker.svg +3 -0
  4087. package/client/static/icons/HotTub.svg +3 -0
  4088. package/client/static/icons/Hours12.svg +3 -0
  4089. package/client/static/icons/Hours24.svg +3 -0
  4090. package/client/static/icons/Hub.svg +3 -0
  4091. package/client/static/icons/HubOutline.svg +3 -0
  4092. package/client/static/icons/Hubspot.svg +3 -0
  4093. package/client/static/icons/Hulu.svg +3 -0
  4094. package/client/static/icons/Human.svg +3 -0
  4095. package/client/static/icons/HumanBabyChangingTable.svg +3 -0
  4096. package/client/static/icons/HumanCane.svg +3 -0
  4097. package/client/static/icons/HumanCapacityDecrease.svg +3 -0
  4098. package/client/static/icons/HumanCapacityIncrease.svg +3 -0
  4099. package/client/static/icons/HumanChild.svg +3 -0
  4100. package/client/static/icons/HumanDolly.svg +3 -0
  4101. package/client/static/icons/HumanEdit.svg +3 -0
  4102. package/client/static/icons/HumanFemale.svg +3 -0
  4103. package/client/static/icons/HumanFemaleBoy.svg +3 -0
  4104. package/client/static/icons/HumanFemaleDance.svg +3 -0
  4105. package/client/static/icons/HumanFemaleFemale.svg +3 -0
  4106. package/client/static/icons/HumanFemaleFemaleChild.svg +3 -0
  4107. package/client/static/icons/HumanFemaleGirl.svg +3 -0
  4108. package/client/static/icons/HumanGreeting.svg +3 -0
  4109. package/client/static/icons/HumanGreetingProximity.svg +3 -0
  4110. package/client/static/icons/HumanGreetingVariant.svg +3 -0
  4111. package/client/static/icons/HumanHandsdown.svg +3 -0
  4112. package/client/static/icons/HumanHandsup.svg +3 -0
  4113. package/client/static/icons/HumanMale.svg +3 -0
  4114. package/client/static/icons/HumanMaleBoard.svg +3 -0
  4115. package/client/static/icons/HumanMaleBoardPoll.svg +3 -0
  4116. package/client/static/icons/HumanMaleBoy.svg +3 -0
  4117. package/client/static/icons/HumanMaleChild.svg +3 -0
  4118. package/client/static/icons/HumanMaleFemale.svg +3 -0
  4119. package/client/static/icons/HumanMaleFemaleChild.svg +3 -0
  4120. package/client/static/icons/HumanMaleGirl.svg +3 -0
  4121. package/client/static/icons/HumanMaleHeight.svg +3 -0
  4122. package/client/static/icons/HumanMaleHeightVariant.svg +3 -0
  4123. package/client/static/icons/HumanMaleMale.svg +3 -0
  4124. package/client/static/icons/HumanMaleMaleChild.svg +3 -0
  4125. package/client/static/icons/HumanNonBinary.svg +3 -0
  4126. package/client/static/icons/HumanPregnant.svg +3 -0
  4127. package/client/static/icons/HumanQueue.svg +3 -0
  4128. package/client/static/icons/HumanScooter.svg +3 -0
  4129. package/client/static/icons/HumanWalker.svg +3 -0
  4130. package/client/static/icons/HumanWheelchair.svg +3 -0
  4131. package/client/static/icons/HumanWhiteCane.svg +3 -0
  4132. package/client/static/icons/HumbleBundle.svg +3 -0
  4133. package/client/static/icons/Hvac.svg +3 -0
  4134. package/client/static/icons/HvacOff.svg +3 -0
  4135. package/client/static/icons/HydraulicOilLevel.svg +3 -0
  4136. package/client/static/icons/HydraulicOilTemperature.svg +3 -0
  4137. package/client/static/icons/HydroPower.svg +3 -0
  4138. package/client/static/icons/HydrogenStation.svg +3 -0
  4139. package/client/static/icons/IceCream.svg +3 -0
  4140. package/client/static/icons/IceCreamOff.svg +3 -0
  4141. package/client/static/icons/IcePop.svg +3 -0
  4142. package/client/static/icons/IdCard.svg +3 -0
  4143. package/client/static/icons/Identifier.svg +3 -0
  4144. package/client/static/icons/IdeogramCjk.svg +3 -0
  4145. package/client/static/icons/IdeogramCjkVariant.svg +3 -0
  4146. package/client/static/icons/Image.svg +3 -0
  4147. package/client/static/icons/ImageAlbum.svg +3 -0
  4148. package/client/static/icons/ImageArea.svg +3 -0
  4149. package/client/static/icons/ImageAreaClose.svg +3 -0
  4150. package/client/static/icons/ImageAutoAdjust.svg +3 -0
  4151. package/client/static/icons/ImageBroken.svg +3 -0
  4152. package/client/static/icons/ImageBrokenVariant.svg +3 -0
  4153. package/client/static/icons/ImageCheck.svg +3 -0
  4154. package/client/static/icons/ImageCheckOutline.svg +3 -0
  4155. package/client/static/icons/ImageEdit.svg +3 -0
  4156. package/client/static/icons/ImageEditOutline.svg +3 -0
  4157. package/client/static/icons/ImageFilterBlackWhite.svg +3 -0
  4158. package/client/static/icons/ImageFilterCenterFocus.svg +3 -0
  4159. package/client/static/icons/ImageFilterCenterFocusStrong.svg +3 -0
  4160. package/client/static/icons/ImageFilterCenterFocusStrongOutline.svg +3 -0
  4161. package/client/static/icons/ImageFilterCenterFocusWeak.svg +3 -0
  4162. package/client/static/icons/ImageFilterDrama.svg +3 -0
  4163. package/client/static/icons/ImageFilterDramaOutline.svg +3 -0
  4164. package/client/static/icons/ImageFilterFrames.svg +3 -0
  4165. package/client/static/icons/ImageFilterHdr.svg +3 -0
  4166. package/client/static/icons/ImageFilterHdrOutline.svg +3 -0
  4167. package/client/static/icons/ImageFilterNone.svg +3 -0
  4168. package/client/static/icons/ImageFilterTiltShift.svg +3 -0
  4169. package/client/static/icons/ImageFilterVintage.svg +3 -0
  4170. package/client/static/icons/ImageFrame.svg +3 -0
  4171. package/client/static/icons/ImageLock.svg +3 -0
  4172. package/client/static/icons/ImageLockOutline.svg +3 -0
  4173. package/client/static/icons/ImageMarker.svg +3 -0
  4174. package/client/static/icons/ImageMarkerOutline.svg +3 -0
  4175. package/client/static/icons/ImageMinus.svg +3 -0
  4176. package/client/static/icons/ImageMinusOutline.svg +3 -0
  4177. package/client/static/icons/ImageMove.svg +3 -0
  4178. package/client/static/icons/ImageMultiple.svg +3 -0
  4179. package/client/static/icons/ImageMultipleOutline.svg +3 -0
  4180. package/client/static/icons/ImageOff.svg +3 -0
  4181. package/client/static/icons/ImageOffOutline.svg +3 -0
  4182. package/client/static/icons/ImageOutline.svg +3 -0
  4183. package/client/static/icons/ImagePlus.svg +3 -0
  4184. package/client/static/icons/ImagePlusOutline.svg +3 -0
  4185. package/client/static/icons/ImageRefresh.svg +3 -0
  4186. package/client/static/icons/ImageRefreshOutline.svg +3 -0
  4187. package/client/static/icons/ImageRemove.svg +3 -0
  4188. package/client/static/icons/ImageRemoveOutline.svg +3 -0
  4189. package/client/static/icons/ImageSearch.svg +3 -0
  4190. package/client/static/icons/ImageSearchOutline.svg +3 -0
  4191. package/client/static/icons/ImageSizeSelectActual.svg +3 -0
  4192. package/client/static/icons/ImageSizeSelectLarge.svg +3 -0
  4193. package/client/static/icons/ImageSizeSelectSmall.svg +3 -0
  4194. package/client/static/icons/ImageSync.svg +3 -0
  4195. package/client/static/icons/ImageSyncOutline.svg +3 -0
  4196. package/client/static/icons/ImageText.svg +3 -0
  4197. package/client/static/icons/Import.svg +3 -0
  4198. package/client/static/icons/Inbox.svg +3 -0
  4199. package/client/static/icons/InboxArrowDown.svg +3 -0
  4200. package/client/static/icons/InboxArrowDownOutline.svg +3 -0
  4201. package/client/static/icons/InboxArrowUp.svg +3 -0
  4202. package/client/static/icons/InboxArrowUpOutline.svg +3 -0
  4203. package/client/static/icons/InboxFull.svg +3 -0
  4204. package/client/static/icons/InboxFullOutline.svg +3 -0
  4205. package/client/static/icons/InboxMultiple.svg +3 -0
  4206. package/client/static/icons/InboxMultipleOutline.svg +3 -0
  4207. package/client/static/icons/InboxOutline.svg +3 -0
  4208. package/client/static/icons/InboxRemove.svg +3 -0
  4209. package/client/static/icons/InboxRemoveOutline.svg +3 -0
  4210. package/client/static/icons/Incognito.svg +3 -0
  4211. package/client/static/icons/IncognitoCircle.svg +3 -0
  4212. package/client/static/icons/IncognitoCircleOff.svg +3 -0
  4213. package/client/static/icons/IncognitoOff.svg +3 -0
  4214. package/client/static/icons/Induction.svg +3 -0
  4215. package/client/static/icons/Infinity.svg +3 -0
  4216. package/client/static/icons/Information.svg +3 -0
  4217. package/client/static/icons/InformationBox.svg +3 -0
  4218. package/client/static/icons/InformationBoxOutline.svg +3 -0
  4219. package/client/static/icons/InformationOff.svg +3 -0
  4220. package/client/static/icons/InformationOffOutline.svg +3 -0
  4221. package/client/static/icons/InformationOutline.svg +3 -0
  4222. package/client/static/icons/InformationSlabBox.svg +3 -0
  4223. package/client/static/icons/InformationSlabBoxOutline.svg +3 -0
  4224. package/client/static/icons/InformationSlabCircle.svg +3 -0
  4225. package/client/static/icons/InformationSlabCircleOutline.svg +3 -0
  4226. package/client/static/icons/InformationSlabSymbol.svg +3 -0
  4227. package/client/static/icons/InformationSymbol.svg +3 -0
  4228. package/client/static/icons/InformationVariant.svg +3 -0
  4229. package/client/static/icons/InformationVariantBox.svg +3 -0
  4230. package/client/static/icons/InformationVariantBoxOutline.svg +3 -0
  4231. package/client/static/icons/InformationVariantCircle.svg +3 -0
  4232. package/client/static/icons/InformationVariantCircleOutline.svg +3 -0
  4233. package/client/static/icons/Instagram.svg +3 -0
  4234. package/client/static/icons/InstrumentTriangle.svg +3 -0
  4235. package/client/static/icons/IntegratedCircuitChip.svg +3 -0
  4236. package/client/static/icons/InvertColors.svg +3 -0
  4237. package/client/static/icons/InvertColorsOff.svg +3 -0
  4238. package/client/static/icons/Invoice.svg +3 -0
  4239. package/client/static/icons/InvoiceArrowLeft.svg +3 -0
  4240. package/client/static/icons/InvoiceArrowLeftOutline.svg +3 -0
  4241. package/client/static/icons/InvoiceArrowRight.svg +3 -0
  4242. package/client/static/icons/InvoiceArrowRightOutline.svg +3 -0
  4243. package/client/static/icons/InvoiceCheck.svg +3 -0
  4244. package/client/static/icons/InvoiceCheckOutline.svg +3 -0
  4245. package/client/static/icons/InvoiceClock.svg +3 -0
  4246. package/client/static/icons/InvoiceClockOutline.svg +3 -0
  4247. package/client/static/icons/InvoiceEdit.svg +3 -0
  4248. package/client/static/icons/InvoiceEditOutline.svg +3 -0
  4249. package/client/static/icons/InvoiceExportOutline.svg +3 -0
  4250. package/client/static/icons/InvoiceFast.svg +3 -0
  4251. package/client/static/icons/InvoiceFastOutline.svg +3 -0
  4252. package/client/static/icons/InvoiceImport.svg +3 -0
  4253. package/client/static/icons/InvoiceImportOutline.svg +3 -0
  4254. package/client/static/icons/InvoiceList.svg +3 -0
  4255. package/client/static/icons/InvoiceListOutline.svg +3 -0
  4256. package/client/static/icons/InvoiceMinus.svg +3 -0
  4257. package/client/static/icons/InvoiceMinusOutline.svg +3 -0
  4258. package/client/static/icons/InvoiceMultiple.svg +3 -0
  4259. package/client/static/icons/InvoiceMultipleOutline.svg +3 -0
  4260. package/client/static/icons/InvoiceOutline.svg +3 -0
  4261. package/client/static/icons/InvoicePlus.svg +3 -0
  4262. package/client/static/icons/InvoicePlusOutline.svg +3 -0
  4263. package/client/static/icons/InvoiceRemove.svg +3 -0
  4264. package/client/static/icons/InvoiceRemoveOutline.svg +3 -0
  4265. package/client/static/icons/InvoiceSend.svg +3 -0
  4266. package/client/static/icons/InvoiceSendOutline.svg +3 -0
  4267. package/client/static/icons/InvoiceText.svg +3 -0
  4268. package/client/static/icons/InvoiceTextArrowLeft.svg +3 -0
  4269. package/client/static/icons/InvoiceTextArrowLeftOutline.svg +3 -0
  4270. package/client/static/icons/InvoiceTextArrowRight.svg +3 -0
  4271. package/client/static/icons/InvoiceTextArrowRightOutline.svg +3 -0
  4272. package/client/static/icons/InvoiceTextCheck.svg +3 -0
  4273. package/client/static/icons/InvoiceTextCheckOutline.svg +3 -0
  4274. package/client/static/icons/InvoiceTextClock.svg +3 -0
  4275. package/client/static/icons/InvoiceTextClockOutline.svg +3 -0
  4276. package/client/static/icons/InvoiceTextEdit.svg +3 -0
  4277. package/client/static/icons/InvoiceTextEditOutline.svg +3 -0
  4278. package/client/static/icons/InvoiceTextFast.svg +3 -0
  4279. package/client/static/icons/InvoiceTextFastOutline.svg +3 -0
  4280. package/client/static/icons/InvoiceTextMinus.svg +3 -0
  4281. package/client/static/icons/InvoiceTextMinusOutline.svg +3 -0
  4282. package/client/static/icons/InvoiceTextMultiple.svg +3 -0
  4283. package/client/static/icons/InvoiceTextMultipleOutline.svg +3 -0
  4284. package/client/static/icons/InvoiceTextOutline.svg +3 -0
  4285. package/client/static/icons/InvoiceTextPlus.svg +3 -0
  4286. package/client/static/icons/InvoiceTextPlusOutline.svg +3 -0
  4287. package/client/static/icons/InvoiceTextRemove.svg +3 -0
  4288. package/client/static/icons/InvoiceTextRemoveOutline.svg +3 -0
  4289. package/client/static/icons/InvoiceTextSend.svg +3 -0
  4290. package/client/static/icons/InvoiceTextSendOutline.svg +3 -0
  4291. package/client/static/icons/Iobroker.svg +3 -0
  4292. package/client/static/icons/Ip.svg +3 -0
  4293. package/client/static/icons/IpNetwork.svg +3 -0
  4294. package/client/static/icons/IpNetworkOutline.svg +3 -0
  4295. package/client/static/icons/IpOutline.svg +3 -0
  4296. package/client/static/icons/Ipod.svg +3 -0
  4297. package/client/static/icons/Iron.svg +3 -0
  4298. package/client/static/icons/IronBoard.svg +3 -0
  4299. package/client/static/icons/IronOutline.svg +3 -0
  4300. package/client/static/icons/Island.svg +3 -0
  4301. package/client/static/icons/IslandVariant.svg +3 -0
  4302. package/client/static/icons/IvBag.svg +3 -0
  4303. package/client/static/icons/Jabber.svg +3 -0
  4304. package/client/static/icons/Jeepney.svg +3 -0
  4305. package/client/static/icons/Jellyfish.svg +3 -0
  4306. package/client/static/icons/JellyfishOutline.svg +3 -0
  4307. package/client/static/icons/Jira.svg +3 -0
  4308. package/client/static/icons/Jquery.svg +3 -0
  4309. package/client/static/icons/Jsfiddle.svg +3 -0
  4310. package/client/static/icons/JumpRope.svg +3 -0
  4311. package/client/static/icons/Kabaddi.svg +3 -0
  4312. package/client/static/icons/Kangaroo.svg +3 -0
  4313. package/client/static/icons/Karate.svg +3 -0
  4314. package/client/static/icons/Kayaking.svg +3 -0
  4315. package/client/static/icons/Keg.svg +3 -0
  4316. package/client/static/icons/Kettle.svg +3 -0
  4317. package/client/static/icons/KettleAlert.svg +3 -0
  4318. package/client/static/icons/KettleAlertOutline.svg +3 -0
  4319. package/client/static/icons/KettleOff.svg +3 -0
  4320. package/client/static/icons/KettleOffOutline.svg +3 -0
  4321. package/client/static/icons/KettleOutline.svg +3 -0
  4322. package/client/static/icons/KettlePourOver.svg +3 -0
  4323. package/client/static/icons/KettleSteam.svg +3 -0
  4324. package/client/static/icons/KettleSteamOutline.svg +3 -0
  4325. package/client/static/icons/Kettlebell.svg +3 -0
  4326. package/client/static/icons/Key.svg +3 -0
  4327. package/client/static/icons/KeyAlert.svg +3 -0
  4328. package/client/static/icons/KeyAlertOutline.svg +3 -0
  4329. package/client/static/icons/KeyArrowRight.svg +3 -0
  4330. package/client/static/icons/KeyChain.svg +3 -0
  4331. package/client/static/icons/KeyChainVariant.svg +3 -0
  4332. package/client/static/icons/KeyChange.svg +3 -0
  4333. package/client/static/icons/KeyLink.svg +3 -0
  4334. package/client/static/icons/KeyMinus.svg +3 -0
  4335. package/client/static/icons/KeyOutline.svg +3 -0
  4336. package/client/static/icons/KeyPlus.svg +3 -0
  4337. package/client/static/icons/KeyRemove.svg +3 -0
  4338. package/client/static/icons/KeyStar.svg +3 -0
  4339. package/client/static/icons/KeyVariant.svg +3 -0
  4340. package/client/static/icons/KeyWireless.svg +3 -0
  4341. package/client/static/icons/Keyboard.svg +3 -0
  4342. package/client/static/icons/KeyboardBackspace.svg +3 -0
  4343. package/client/static/icons/KeyboardCaps.svg +3 -0
  4344. package/client/static/icons/KeyboardClose.svg +3 -0
  4345. package/client/static/icons/KeyboardCloseOutline.svg +3 -0
  4346. package/client/static/icons/KeyboardEsc.svg +3 -0
  4347. package/client/static/icons/KeyboardF1.svg +3 -0
  4348. package/client/static/icons/KeyboardF10.svg +3 -0
  4349. package/client/static/icons/KeyboardF11.svg +3 -0
  4350. package/client/static/icons/KeyboardF12.svg +3 -0
  4351. package/client/static/icons/KeyboardF2.svg +3 -0
  4352. package/client/static/icons/KeyboardF3.svg +3 -0
  4353. package/client/static/icons/KeyboardF4.svg +3 -0
  4354. package/client/static/icons/KeyboardF5.svg +3 -0
  4355. package/client/static/icons/KeyboardF6.svg +3 -0
  4356. package/client/static/icons/KeyboardF7.svg +3 -0
  4357. package/client/static/icons/KeyboardF8.svg +3 -0
  4358. package/client/static/icons/KeyboardF9.svg +3 -0
  4359. package/client/static/icons/KeyboardOff.svg +3 -0
  4360. package/client/static/icons/KeyboardOffOutline.svg +3 -0
  4361. package/client/static/icons/KeyboardOutline.svg +3 -0
  4362. package/client/static/icons/KeyboardReturn.svg +3 -0
  4363. package/client/static/icons/KeyboardSettings.svg +3 -0
  4364. package/client/static/icons/KeyboardSettingsOutline.svg +3 -0
  4365. package/client/static/icons/KeyboardSpace.svg +3 -0
  4366. package/client/static/icons/KeyboardTab.svg +3 -0
  4367. package/client/static/icons/KeyboardTabReverse.svg +3 -0
  4368. package/client/static/icons/KeyboardVariant.svg +3 -0
  4369. package/client/static/icons/Khanda.svg +3 -0
  4370. package/client/static/icons/Kickstarter.svg +3 -0
  4371. package/client/static/icons/Kite.svg +3 -0
  4372. package/client/static/icons/KiteOutline.svg +3 -0
  4373. package/client/static/icons/Kitesurfing.svg +3 -0
  4374. package/client/static/icons/Klingon.svg +3 -0
  4375. package/client/static/icons/Knife.svg +3 -0
  4376. package/client/static/icons/KnifeMilitary.svg +3 -0
  4377. package/client/static/icons/Knob.svg +3 -0
  4378. package/client/static/icons/Koala.svg +3 -0
  4379. package/client/static/icons/Kodi.svg +3 -0
  4380. package/client/static/icons/Kubernetes.svg +3 -0
  4381. package/client/static/icons/Label.svg +3 -0
  4382. package/client/static/icons/LabelMultiple.svg +3 -0
  4383. package/client/static/icons/LabelMultipleOutline.svg +3 -0
  4384. package/client/static/icons/LabelOff.svg +3 -0
  4385. package/client/static/icons/LabelOffOutline.svg +3 -0
  4386. package/client/static/icons/LabelOutline.svg +3 -0
  4387. package/client/static/icons/LabelPercent.svg +3 -0
  4388. package/client/static/icons/LabelPercentOutline.svg +3 -0
  4389. package/client/static/icons/LabelVariant.svg +3 -0
  4390. package/client/static/icons/LabelVariantOutline.svg +3 -0
  4391. package/client/static/icons/Ladder.svg +3 -0
  4392. package/client/static/icons/Ladybug.svg +3 -0
  4393. package/client/static/icons/Lambda.svg +3 -0
  4394. package/client/static/icons/Lamp.svg +3 -0
  4395. package/client/static/icons/LampOutline.svg +3 -0
  4396. package/client/static/icons/Lamps.svg +3 -0
  4397. package/client/static/icons/LampsOutline.svg +3 -0
  4398. package/client/static/icons/Lan.svg +3 -0
  4399. package/client/static/icons/LanCheck.svg +3 -0
  4400. package/client/static/icons/LanConnect.svg +3 -0
  4401. package/client/static/icons/LanDisconnect.svg +3 -0
  4402. package/client/static/icons/LanPending.svg +3 -0
  4403. package/client/static/icons/LandFields.svg +3 -0
  4404. package/client/static/icons/LandPlots.svg +3 -0
  4405. package/client/static/icons/LandPlotsCircle.svg +3 -0
  4406. package/client/static/icons/LandPlotsCircleVariant.svg +3 -0
  4407. package/client/static/icons/LandPlotsMarker.svg +3 -0
  4408. package/client/static/icons/LandRowsHorizontal.svg +3 -0
  4409. package/client/static/icons/LandRowsVertical.svg +3 -0
  4410. package/client/static/icons/Landslide.svg +3 -0
  4411. package/client/static/icons/LandslideOutline.svg +3 -0
  4412. package/client/static/icons/LanguageC.svg +3 -0
  4413. package/client/static/icons/LanguageCpp.svg +3 -0
  4414. package/client/static/icons/LanguageCsharp.svg +3 -0
  4415. package/client/static/icons/LanguageCss3.svg +3 -0
  4416. package/client/static/icons/LanguageFortran.svg +3 -0
  4417. package/client/static/icons/LanguageGo.svg +3 -0
  4418. package/client/static/icons/LanguageHaskell.svg +3 -0
  4419. package/client/static/icons/LanguageHtml5.svg +3 -0
  4420. package/client/static/icons/LanguageJava.svg +3 -0
  4421. package/client/static/icons/LanguageJavascript.svg +3 -0
  4422. package/client/static/icons/LanguageKotlin.svg +3 -0
  4423. package/client/static/icons/LanguageLua.svg +3 -0
  4424. package/client/static/icons/LanguageMarkdown.svg +3 -0
  4425. package/client/static/icons/LanguageMarkdownOutline.svg +3 -0
  4426. package/client/static/icons/LanguagePhp.svg +3 -0
  4427. package/client/static/icons/LanguagePython.svg +3 -0
  4428. package/client/static/icons/LanguageR.svg +3 -0
  4429. package/client/static/icons/LanguageRuby.svg +3 -0
  4430. package/client/static/icons/LanguageRubyOnRails.svg +3 -0
  4431. package/client/static/icons/LanguageRust.svg +3 -0
  4432. package/client/static/icons/LanguageSwift.svg +3 -0
  4433. package/client/static/icons/LanguageTypescript.svg +3 -0
  4434. package/client/static/icons/LanguageXaml.svg +3 -0
  4435. package/client/static/icons/Laptop.svg +3 -0
  4436. package/client/static/icons/LaptopAccount.svg +3 -0
  4437. package/client/static/icons/LaptopOff.svg +3 -0
  4438. package/client/static/icons/Laravel.svg +3 -0
  4439. package/client/static/icons/LaserPointer.svg +3 -0
  4440. package/client/static/icons/Lasso.svg +3 -0
  4441. package/client/static/icons/Lastpass.svg +3 -0
  4442. package/client/static/icons/Latitude.svg +3 -0
  4443. package/client/static/icons/Launch.svg +3 -0
  4444. package/client/static/icons/LavaLamp.svg +3 -0
  4445. package/client/static/icons/Layers.svg +3 -0
  4446. package/client/static/icons/LayersEdit.svg +3 -0
  4447. package/client/static/icons/LayersMinus.svg +3 -0
  4448. package/client/static/icons/LayersOff.svg +3 -0
  4449. package/client/static/icons/LayersOffOutline.svg +3 -0
  4450. package/client/static/icons/LayersOutline.svg +3 -0
  4451. package/client/static/icons/LayersPlus.svg +3 -0
  4452. package/client/static/icons/LayersRemove.svg +3 -0
  4453. package/client/static/icons/LayersSearch.svg +3 -0
  4454. package/client/static/icons/LayersSearchOutline.svg +3 -0
  4455. package/client/static/icons/LayersTriple.svg +3 -0
  4456. package/client/static/icons/LayersTripleOutline.svg +3 -0
  4457. package/client/static/icons/LeadPencil.svg +3 -0
  4458. package/client/static/icons/Leaf.svg +3 -0
  4459. package/client/static/icons/LeafCircle.svg +3 -0
  4460. package/client/static/icons/LeafCircleOutline.svg +3 -0
  4461. package/client/static/icons/LeafMaple.svg +3 -0
  4462. package/client/static/icons/LeafMapleOff.svg +3 -0
  4463. package/client/static/icons/LeafOff.svg +3 -0
  4464. package/client/static/icons/Leak.svg +3 -0
  4465. package/client/static/icons/LeakOff.svg +3 -0
  4466. package/client/static/icons/Lectern.svg +3 -0
  4467. package/client/static/icons/LedOff.svg +3 -0
  4468. package/client/static/icons/LedOn.svg +3 -0
  4469. package/client/static/icons/LedOutline.svg +3 -0
  4470. package/client/static/icons/LedStrip.svg +3 -0
  4471. package/client/static/icons/LedStripVariant.svg +3 -0
  4472. package/client/static/icons/LedStripVariantOff.svg +3 -0
  4473. package/client/static/icons/LedVariantOff.svg +3 -0
  4474. package/client/static/icons/LedVariantOn.svg +3 -0
  4475. package/client/static/icons/LedVariantOutline.svg +3 -0
  4476. package/client/static/icons/Leek.svg +3 -0
  4477. package/client/static/icons/LessThan.svg +3 -0
  4478. package/client/static/icons/LessThanOrEqual.svg +3 -0
  4479. package/client/static/icons/Library.svg +3 -0
  4480. package/client/static/icons/LibraryOutline.svg +3 -0
  4481. package/client/static/icons/LibraryShelves.svg +3 -0
  4482. package/client/static/icons/License.svg +3 -0
  4483. package/client/static/icons/Lifebuoy.svg +3 -0
  4484. package/client/static/icons/LightFloodDown.svg +3 -0
  4485. package/client/static/icons/LightFloodUp.svg +3 -0
  4486. package/client/static/icons/LightRecessed.svg +3 -0
  4487. package/client/static/icons/LightSwitch.svg +3 -0
  4488. package/client/static/icons/LightSwitchOff.svg +3 -0
  4489. package/client/static/icons/Lightbulb.svg +3 -0
  4490. package/client/static/icons/LightbulbAlert.svg +3 -0
  4491. package/client/static/icons/LightbulbAlertOutline.svg +3 -0
  4492. package/client/static/icons/LightbulbAuto.svg +3 -0
  4493. package/client/static/icons/LightbulbAutoOutline.svg +3 -0
  4494. package/client/static/icons/LightbulbCfl.svg +3 -0
  4495. package/client/static/icons/LightbulbCflOff.svg +3 -0
  4496. package/client/static/icons/LightbulbCflSpiral.svg +3 -0
  4497. package/client/static/icons/LightbulbCflSpiralOff.svg +3 -0
  4498. package/client/static/icons/LightbulbFluorescentTube.svg +3 -0
  4499. package/client/static/icons/LightbulbFluorescentTubeOutline.svg +3 -0
  4500. package/client/static/icons/LightbulbGroup.svg +3 -0
  4501. package/client/static/icons/LightbulbGroupOff.svg +3 -0
  4502. package/client/static/icons/LightbulbGroupOffOutline.svg +3 -0
  4503. package/client/static/icons/LightbulbGroupOutline.svg +3 -0
  4504. package/client/static/icons/LightbulbMultiple.svg +3 -0
  4505. package/client/static/icons/LightbulbMultipleOff.svg +3 -0
  4506. package/client/static/icons/LightbulbMultipleOffOutline.svg +3 -0
  4507. package/client/static/icons/LightbulbMultipleOutline.svg +3 -0
  4508. package/client/static/icons/LightbulbNight.svg +3 -0
  4509. package/client/static/icons/LightbulbNightOutline.svg +3 -0
  4510. package/client/static/icons/LightbulbOff.svg +3 -0
  4511. package/client/static/icons/LightbulbOffOutline.svg +3 -0
  4512. package/client/static/icons/LightbulbOn.svg +3 -0
  4513. package/client/static/icons/LightbulbOn10.svg +3 -0
  4514. package/client/static/icons/LightbulbOn20.svg +3 -0
  4515. package/client/static/icons/LightbulbOn30.svg +3 -0
  4516. package/client/static/icons/LightbulbOn40.svg +3 -0
  4517. package/client/static/icons/LightbulbOn50.svg +3 -0
  4518. package/client/static/icons/LightbulbOn60.svg +3 -0
  4519. package/client/static/icons/LightbulbOn70.svg +3 -0
  4520. package/client/static/icons/LightbulbOn80.svg +3 -0
  4521. package/client/static/icons/LightbulbOn90.svg +3 -0
  4522. package/client/static/icons/LightbulbOnOutline.svg +3 -0
  4523. package/client/static/icons/LightbulbOutline.svg +3 -0
  4524. package/client/static/icons/LightbulbQuestion.svg +3 -0
  4525. package/client/static/icons/LightbulbQuestionOutline.svg +3 -0
  4526. package/client/static/icons/LightbulbSpot.svg +3 -0
  4527. package/client/static/icons/LightbulbSpotOff.svg +3 -0
  4528. package/client/static/icons/LightbulbVariant.svg +3 -0
  4529. package/client/static/icons/LightbulbVariantOutline.svg +3 -0
  4530. package/client/static/icons/Lighthouse.svg +3 -0
  4531. package/client/static/icons/LighthouseOn.svg +3 -0
  4532. package/client/static/icons/LightningBolt.svg +3 -0
  4533. package/client/static/icons/LightningBoltCircle.svg +3 -0
  4534. package/client/static/icons/LightningBoltOutline.svg +3 -0
  4535. package/client/static/icons/LineScan.svg +3 -0
  4536. package/client/static/icons/Lingerie.svg +3 -0
  4537. package/client/static/icons/Link.svg +3 -0
  4538. package/client/static/icons/LinkBox.svg +3 -0
  4539. package/client/static/icons/LinkBoxOutline.svg +3 -0
  4540. package/client/static/icons/LinkBoxVariant.svg +3 -0
  4541. package/client/static/icons/LinkBoxVariantOutline.svg +3 -0
  4542. package/client/static/icons/LinkCircle.svg +3 -0
  4543. package/client/static/icons/LinkCircleOutline.svg +3 -0
  4544. package/client/static/icons/LinkEdit.svg +3 -0
  4545. package/client/static/icons/LinkLock.svg +3 -0
  4546. package/client/static/icons/LinkOff.svg +3 -0
  4547. package/client/static/icons/LinkPlus.svg +3 -0
  4548. package/client/static/icons/LinkVariant.svg +3 -0
  4549. package/client/static/icons/LinkVariantMinus.svg +3 -0
  4550. package/client/static/icons/LinkVariantOff.svg +3 -0
  4551. package/client/static/icons/LinkVariantPlus.svg +3 -0
  4552. package/client/static/icons/LinkVariantRemove.svg +3 -0
  4553. package/client/static/icons/Linkedin.svg +3 -0
  4554. package/client/static/icons/Linux.svg +3 -0
  4555. package/client/static/icons/LinuxMint.svg +3 -0
  4556. package/client/static/icons/Lipstick.svg +3 -0
  4557. package/client/static/icons/LiquidSpot.svg +3 -0
  4558. package/client/static/icons/Liquor.svg +3 -0
  4559. package/client/static/icons/ListBox.svg +3 -0
  4560. package/client/static/icons/ListBoxOutline.svg +3 -0
  4561. package/client/static/icons/ListStatus.svg +3 -0
  4562. package/client/static/icons/Litecoin.svg +3 -0
  4563. package/client/static/icons/Loading.svg +3 -0
  4564. package/client/static/icons/LocationEnter.svg +3 -0
  4565. package/client/static/icons/LocationExit.svg +3 -0
  4566. package/client/static/icons/Lock.svg +3 -0
  4567. package/client/static/icons/LockAlert.svg +3 -0
  4568. package/client/static/icons/LockAlertOutline.svg +3 -0
  4569. package/client/static/icons/LockCheck.svg +3 -0
  4570. package/client/static/icons/LockCheckOutline.svg +3 -0
  4571. package/client/static/icons/LockClock.svg +3 -0
  4572. package/client/static/icons/LockMinus.svg +3 -0
  4573. package/client/static/icons/LockMinusOutline.svg +3 -0
  4574. package/client/static/icons/LockOff.svg +3 -0
  4575. package/client/static/icons/LockOffOutline.svg +3 -0
  4576. package/client/static/icons/LockOpen.svg +3 -0
  4577. package/client/static/icons/LockOpenAlert.svg +3 -0
  4578. package/client/static/icons/LockOpenAlertOutline.svg +3 -0
  4579. package/client/static/icons/LockOpenCheck.svg +3 -0
  4580. package/client/static/icons/LockOpenCheckOutline.svg +3 -0
  4581. package/client/static/icons/LockOpenMinus.svg +3 -0
  4582. package/client/static/icons/LockOpenMinusOutline.svg +3 -0
  4583. package/client/static/icons/LockOpenOutline.svg +3 -0
  4584. package/client/static/icons/LockOpenPlus.svg +3 -0
  4585. package/client/static/icons/LockOpenPlusOutline.svg +3 -0
  4586. package/client/static/icons/LockOpenRemove.svg +3 -0
  4587. package/client/static/icons/LockOpenRemoveOutline.svg +3 -0
  4588. package/client/static/icons/LockOpenVariant.svg +3 -0
  4589. package/client/static/icons/LockOpenVariantOutline.svg +3 -0
  4590. package/client/static/icons/LockOutline.svg +3 -0
  4591. package/client/static/icons/LockPattern.svg +3 -0
  4592. package/client/static/icons/LockPercent.svg +3 -0
  4593. package/client/static/icons/LockPercentOpen.svg +3 -0
  4594. package/client/static/icons/LockPercentOpenOutline.svg +3 -0
  4595. package/client/static/icons/LockPercentOpenVariant.svg +3 -0
  4596. package/client/static/icons/LockPercentOpenVariantOutline.svg +3 -0
  4597. package/client/static/icons/LockPercentOutline.svg +3 -0
  4598. package/client/static/icons/LockPlus.svg +3 -0
  4599. package/client/static/icons/LockPlusOutline.svg +3 -0
  4600. package/client/static/icons/LockQuestion.svg +3 -0
  4601. package/client/static/icons/LockRemove.svg +3 -0
  4602. package/client/static/icons/LockRemoveOutline.svg +3 -0
  4603. package/client/static/icons/LockReset.svg +3 -0
  4604. package/client/static/icons/LockSmart.svg +3 -0
  4605. package/client/static/icons/Locker.svg +3 -0
  4606. package/client/static/icons/LockerMultiple.svg +3 -0
  4607. package/client/static/icons/Login.svg +3 -0
  4608. package/client/static/icons/LoginVariant.svg +3 -0
  4609. package/client/static/icons/Logout.svg +3 -0
  4610. package/client/static/icons/LogoutVariant.svg +3 -0
  4611. package/client/static/icons/Longitude.svg +3 -0
  4612. package/client/static/icons/Looks.svg +3 -0
  4613. package/client/static/icons/Lotion.svg +3 -0
  4614. package/client/static/icons/LotionOutline.svg +3 -0
  4615. package/client/static/icons/LotionPlus.svg +3 -0
  4616. package/client/static/icons/LotionPlusOutline.svg +3 -0
  4617. package/client/static/icons/Loupe.svg +3 -0
  4618. package/client/static/icons/Lumx.svg +3 -0
  4619. package/client/static/icons/Lungs.svg +3 -0
  4620. package/client/static/icons/Mace.svg +3 -0
  4621. package/client/static/icons/MagazinePistol.svg +3 -0
  4622. package/client/static/icons/MagazineRifle.svg +3 -0
  4623. package/client/static/icons/MagicStaff.svg +3 -0
  4624. package/client/static/icons/Magnet.svg +3 -0
  4625. package/client/static/icons/MagnetOn.svg +3 -0
  4626. package/client/static/icons/Magnify.svg +3 -0
  4627. package/client/static/icons/MagnifyClose.svg +3 -0
  4628. package/client/static/icons/MagnifyExpand.svg +3 -0
  4629. package/client/static/icons/MagnifyMinus.svg +3 -0
  4630. package/client/static/icons/MagnifyMinusCursor.svg +3 -0
  4631. package/client/static/icons/MagnifyMinusOutline.svg +3 -0
  4632. package/client/static/icons/MagnifyPlus.svg +3 -0
  4633. package/client/static/icons/MagnifyPlusCursor.svg +3 -0
  4634. package/client/static/icons/MagnifyPlusOutline.svg +3 -0
  4635. package/client/static/icons/MagnifyRemoveCursor.svg +3 -0
  4636. package/client/static/icons/MagnifyRemoveOutline.svg +3 -0
  4637. package/client/static/icons/MagnifyScan.svg +3 -0
  4638. package/client/static/icons/Mail.svg +3 -0
  4639. package/client/static/icons/Mailbox.svg +3 -0
  4640. package/client/static/icons/MailboxOpen.svg +3 -0
  4641. package/client/static/icons/MailboxOpenOutline.svg +3 -0
  4642. package/client/static/icons/MailboxOpenUp.svg +3 -0
  4643. package/client/static/icons/MailboxOpenUpOutline.svg +3 -0
  4644. package/client/static/icons/MailboxOutline.svg +3 -0
  4645. package/client/static/icons/MailboxUp.svg +3 -0
  4646. package/client/static/icons/MailboxUpOutline.svg +3 -0
  4647. package/client/static/icons/Manjaro.svg +3 -0
  4648. package/client/static/icons/Map.svg +3 -0
  4649. package/client/static/icons/MapCheck.svg +3 -0
  4650. package/client/static/icons/MapCheckOutline.svg +3 -0
  4651. package/client/static/icons/MapClock.svg +3 -0
  4652. package/client/static/icons/MapClockOutline.svg +3 -0
  4653. package/client/static/icons/MapLegend.svg +3 -0
  4654. package/client/static/icons/MapMarker.svg +3 -0
  4655. package/client/static/icons/MapMarkerAccount.svg +3 -0
  4656. package/client/static/icons/MapMarkerAccountOutline.svg +3 -0
  4657. package/client/static/icons/MapMarkerAlert.svg +3 -0
  4658. package/client/static/icons/MapMarkerAlertOutline.svg +3 -0
  4659. package/client/static/icons/MapMarkerCheck.svg +3 -0
  4660. package/client/static/icons/MapMarkerCheckOutline.svg +3 -0
  4661. package/client/static/icons/MapMarkerCircle.svg +3 -0
  4662. package/client/static/icons/MapMarkerDistance.svg +3 -0
  4663. package/client/static/icons/MapMarkerDown.svg +3 -0
  4664. package/client/static/icons/MapMarkerLeft.svg +3 -0
  4665. package/client/static/icons/MapMarkerLeftOutline.svg +3 -0
  4666. package/client/static/icons/MapMarkerMinus.svg +3 -0
  4667. package/client/static/icons/MapMarkerMinusOutline.svg +3 -0
  4668. package/client/static/icons/MapMarkerMultiple.svg +3 -0
  4669. package/client/static/icons/MapMarkerMultipleOutline.svg +3 -0
  4670. package/client/static/icons/MapMarkerOff.svg +3 -0
  4671. package/client/static/icons/MapMarkerOffOutline.svg +3 -0
  4672. package/client/static/icons/MapMarkerOutline.svg +3 -0
  4673. package/client/static/icons/MapMarkerPath.svg +3 -0
  4674. package/client/static/icons/MapMarkerPlus.svg +3 -0
  4675. package/client/static/icons/MapMarkerPlusOutline.svg +3 -0
  4676. package/client/static/icons/MapMarkerQuestion.svg +3 -0
  4677. package/client/static/icons/MapMarkerQuestionOutline.svg +3 -0
  4678. package/client/static/icons/MapMarkerRadius.svg +3 -0
  4679. package/client/static/icons/MapMarkerRadiusOutline.svg +3 -0
  4680. package/client/static/icons/MapMarkerRemove.svg +3 -0
  4681. package/client/static/icons/MapMarkerRemoveOutline.svg +3 -0
  4682. package/client/static/icons/MapMarkerRemoveVariant.svg +3 -0
  4683. package/client/static/icons/MapMarkerRight.svg +3 -0
  4684. package/client/static/icons/MapMarkerRightOutline.svg +3 -0
  4685. package/client/static/icons/MapMarkerStar.svg +3 -0
  4686. package/client/static/icons/MapMarkerStarOutline.svg +3 -0
  4687. package/client/static/icons/MapMarkerUp.svg +3 -0
  4688. package/client/static/icons/MapMinus.svg +3 -0
  4689. package/client/static/icons/MapOutline.svg +3 -0
  4690. package/client/static/icons/MapPlus.svg +3 -0
  4691. package/client/static/icons/MapSearch.svg +3 -0
  4692. package/client/static/icons/MapSearchOutline.svg +3 -0
  4693. package/client/static/icons/Mapbox.svg +3 -0
  4694. package/client/static/icons/Margin.svg +3 -0
  4695. package/client/static/icons/Marker.svg +3 -0
  4696. package/client/static/icons/MarkerCancel.svg +3 -0
  4697. package/client/static/icons/MarkerCheck.svg +3 -0
  4698. package/client/static/icons/Mastodon.svg +3 -0
  4699. package/client/static/icons/MaterialDesign.svg +3 -0
  4700. package/client/static/icons/MaterialUi.svg +3 -0
  4701. package/client/static/icons/MathCompass.svg +3 -0
  4702. package/client/static/icons/MathCos.svg +3 -0
  4703. package/client/static/icons/MathIntegral.svg +3 -0
  4704. package/client/static/icons/MathIntegralBox.svg +3 -0
  4705. package/client/static/icons/MathLog.svg +3 -0
  4706. package/client/static/icons/MathNorm.svg +3 -0
  4707. package/client/static/icons/MathNormBox.svg +3 -0
  4708. package/client/static/icons/MathSin.svg +3 -0
  4709. package/client/static/icons/MathTan.svg +3 -0
  4710. package/client/static/icons/Matrix.svg +3 -0
  4711. package/client/static/icons/Medal.svg +3 -0
  4712. package/client/static/icons/MedalOutline.svg +3 -0
  4713. package/client/static/icons/MedicalBag.svg +3 -0
  4714. package/client/static/icons/MedicalCottonSwab.svg +3 -0
  4715. package/client/static/icons/Medication.svg +3 -0
  4716. package/client/static/icons/MedicationOutline.svg +3 -0
  4717. package/client/static/icons/Meditation.svg +3 -0
  4718. package/client/static/icons/Memory.svg +3 -0
  4719. package/client/static/icons/MemoryArrowDown.svg +3 -0
  4720. package/client/static/icons/Menorah.svg +3 -0
  4721. package/client/static/icons/MenorahFire.svg +3 -0
  4722. package/client/static/icons/Menu.svg +3 -0
  4723. package/client/static/icons/MenuClose.svg +3 -0
  4724. package/client/static/icons/MenuDown.svg +3 -0
  4725. package/client/static/icons/MenuDownOutline.svg +3 -0
  4726. package/client/static/icons/MenuLeft.svg +3 -0
  4727. package/client/static/icons/MenuLeftOutline.svg +3 -0
  4728. package/client/static/icons/MenuOpen.svg +3 -0
  4729. package/client/static/icons/MenuRight.svg +3 -0
  4730. package/client/static/icons/MenuRightOutline.svg +3 -0
  4731. package/client/static/icons/MenuSwap.svg +3 -0
  4732. package/client/static/icons/MenuSwapOutline.svg +3 -0
  4733. package/client/static/icons/MenuUp.svg +3 -0
  4734. package/client/static/icons/MenuUpOutline.svg +3 -0
  4735. package/client/static/icons/Merge.svg +3 -0
  4736. package/client/static/icons/Message.svg +3 -0
  4737. package/client/static/icons/MessageAlert.svg +3 -0
  4738. package/client/static/icons/MessageAlertOutline.svg +3 -0
  4739. package/client/static/icons/MessageArrowLeft.svg +3 -0
  4740. package/client/static/icons/MessageArrowLeftOutline.svg +3 -0
  4741. package/client/static/icons/MessageArrowRight.svg +3 -0
  4742. package/client/static/icons/MessageArrowRightOutline.svg +3 -0
  4743. package/client/static/icons/MessageBadge.svg +3 -0
  4744. package/client/static/icons/MessageBadgeOutline.svg +3 -0
  4745. package/client/static/icons/MessageBookmark.svg +3 -0
  4746. package/client/static/icons/MessageBookmarkOutline.svg +3 -0
  4747. package/client/static/icons/MessageBulleted.svg +3 -0
  4748. package/client/static/icons/MessageBulletedOff.svg +3 -0
  4749. package/client/static/icons/MessageCheck.svg +3 -0
  4750. package/client/static/icons/MessageCheckOutline.svg +3 -0
  4751. package/client/static/icons/MessageCog.svg +3 -0
  4752. package/client/static/icons/MessageCogOutline.svg +3 -0
  4753. package/client/static/icons/MessageDraw.svg +3 -0
  4754. package/client/static/icons/MessageFast.svg +3 -0
  4755. package/client/static/icons/MessageFastOutline.svg +3 -0
  4756. package/client/static/icons/MessageFlash.svg +3 -0
  4757. package/client/static/icons/MessageFlashOutline.svg +3 -0
  4758. package/client/static/icons/MessageImage.svg +3 -0
  4759. package/client/static/icons/MessageImageOutline.svg +3 -0
  4760. package/client/static/icons/MessageLock.svg +3 -0
  4761. package/client/static/icons/MessageLockOutline.svg +3 -0
  4762. package/client/static/icons/MessageMinus.svg +3 -0
  4763. package/client/static/icons/MessageMinusOutline.svg +3 -0
  4764. package/client/static/icons/MessageOff.svg +3 -0
  4765. package/client/static/icons/MessageOffOutline.svg +3 -0
  4766. package/client/static/icons/MessageOutline.svg +3 -0
  4767. package/client/static/icons/MessagePlus.svg +3 -0
  4768. package/client/static/icons/MessagePlusOutline.svg +3 -0
  4769. package/client/static/icons/MessageProcessing.svg +3 -0
  4770. package/client/static/icons/MessageProcessingOutline.svg +3 -0
  4771. package/client/static/icons/MessageQuestion.svg +3 -0
  4772. package/client/static/icons/MessageQuestionOutline.svg +3 -0
  4773. package/client/static/icons/MessageReply.svg +3 -0
  4774. package/client/static/icons/MessageReplyOutline.svg +3 -0
  4775. package/client/static/icons/MessageReplyText.svg +3 -0
  4776. package/client/static/icons/MessageReplyTextOutline.svg +3 -0
  4777. package/client/static/icons/MessageSettings.svg +3 -0
  4778. package/client/static/icons/MessageSettingsOutline.svg +3 -0
  4779. package/client/static/icons/MessageStar.svg +3 -0
  4780. package/client/static/icons/MessageStarOutline.svg +3 -0
  4781. package/client/static/icons/MessageText.svg +3 -0
  4782. package/client/static/icons/MessageTextClock.svg +3 -0
  4783. package/client/static/icons/MessageTextClockOutline.svg +3 -0
  4784. package/client/static/icons/MessageTextFast.svg +3 -0
  4785. package/client/static/icons/MessageTextFastOutline.svg +3 -0
  4786. package/client/static/icons/MessageTextLock.svg +3 -0
  4787. package/client/static/icons/MessageTextLockOutline.svg +3 -0
  4788. package/client/static/icons/MessageTextOutline.svg +3 -0
  4789. package/client/static/icons/MessageVideo.svg +3 -0
  4790. package/client/static/icons/Meteor.svg +3 -0
  4791. package/client/static/icons/MeterElectric.svg +3 -0
  4792. package/client/static/icons/MeterElectricOutline.svg +3 -0
  4793. package/client/static/icons/MeterGas.svg +3 -0
  4794. package/client/static/icons/MeterGasOutline.svg +3 -0
  4795. package/client/static/icons/Metronome.svg +3 -0
  4796. package/client/static/icons/MetronomeTick.svg +3 -0
  4797. package/client/static/icons/MicroSd.svg +3 -0
  4798. package/client/static/icons/Microphone.svg +3 -0
  4799. package/client/static/icons/MicrophoneMessage.svg +3 -0
  4800. package/client/static/icons/MicrophoneMessageOff.svg +3 -0
  4801. package/client/static/icons/MicrophoneMinus.svg +3 -0
  4802. package/client/static/icons/MicrophoneOff.svg +3 -0
  4803. package/client/static/icons/MicrophoneOutline.svg +3 -0
  4804. package/client/static/icons/MicrophonePlus.svg +3 -0
  4805. package/client/static/icons/MicrophoneQuestion.svg +3 -0
  4806. package/client/static/icons/MicrophoneQuestionOutline.svg +3 -0
  4807. package/client/static/icons/MicrophoneSettings.svg +3 -0
  4808. package/client/static/icons/MicrophoneVariant.svg +3 -0
  4809. package/client/static/icons/MicrophoneVariantOff.svg +3 -0
  4810. package/client/static/icons/Microscope.svg +3 -0
  4811. package/client/static/icons/Microsoft.svg +3 -0
  4812. package/client/static/icons/MicrosoftAccess.svg +3 -0
  4813. package/client/static/icons/MicrosoftAzure.svg +3 -0
  4814. package/client/static/icons/MicrosoftAzureDevops.svg +3 -0
  4815. package/client/static/icons/MicrosoftBing.svg +3 -0
  4816. package/client/static/icons/MicrosoftDynamics365.svg +3 -0
  4817. package/client/static/icons/MicrosoftEdge.svg +3 -0
  4818. package/client/static/icons/MicrosoftExcel.svg +3 -0
  4819. package/client/static/icons/MicrosoftInternetExplorer.svg +3 -0
  4820. package/client/static/icons/MicrosoftOffice.svg +3 -0
  4821. package/client/static/icons/MicrosoftOnedrive.svg +3 -0
  4822. package/client/static/icons/MicrosoftOnenote.svg +3 -0
  4823. package/client/static/icons/MicrosoftOutlook.svg +3 -0
  4824. package/client/static/icons/MicrosoftPowerpoint.svg +3 -0
  4825. package/client/static/icons/MicrosoftSharepoint.svg +3 -0
  4826. package/client/static/icons/MicrosoftTeams.svg +3 -0
  4827. package/client/static/icons/MicrosoftVisualStudio.svg +3 -0
  4828. package/client/static/icons/MicrosoftVisualStudioCode.svg +3 -0
  4829. package/client/static/icons/MicrosoftWindows.svg +3 -0
  4830. package/client/static/icons/MicrosoftWindowsClassic.svg +3 -0
  4831. package/client/static/icons/MicrosoftWord.svg +3 -0
  4832. package/client/static/icons/MicrosoftXbox.svg +3 -0
  4833. package/client/static/icons/MicrosoftXboxController.svg +3 -0
  4834. package/client/static/icons/MicrosoftXboxControllerBatteryAlert.svg +3 -0
  4835. package/client/static/icons/MicrosoftXboxControllerBatteryCharging.svg +3 -0
  4836. package/client/static/icons/MicrosoftXboxControllerBatteryEmpty.svg +3 -0
  4837. package/client/static/icons/MicrosoftXboxControllerBatteryFull.svg +3 -0
  4838. package/client/static/icons/MicrosoftXboxControllerBatteryLow.svg +3 -0
  4839. package/client/static/icons/MicrosoftXboxControllerBatteryMedium.svg +3 -0
  4840. package/client/static/icons/MicrosoftXboxControllerBatteryUnknown.svg +3 -0
  4841. package/client/static/icons/MicrosoftXboxControllerMenu.svg +3 -0
  4842. package/client/static/icons/MicrosoftXboxControllerOff.svg +3 -0
  4843. package/client/static/icons/MicrosoftXboxControllerView.svg +3 -0
  4844. package/client/static/icons/Microwave.svg +3 -0
  4845. package/client/static/icons/MicrowaveOff.svg +3 -0
  4846. package/client/static/icons/Middleware.svg +3 -0
  4847. package/client/static/icons/MiddlewareOutline.svg +3 -0
  4848. package/client/static/icons/Midi.svg +3 -0
  4849. package/client/static/icons/MidiPort.svg +3 -0
  4850. package/client/static/icons/Mine.svg +3 -0
  4851. package/client/static/icons/Minecraft.svg +3 -0
  4852. package/client/static/icons/MiniSd.svg +3 -0
  4853. package/client/static/icons/Minidisc.svg +3 -0
  4854. package/client/static/icons/Minus.svg +3 -0
  4855. package/client/static/icons/MinusBox.svg +3 -0
  4856. package/client/static/icons/MinusBoxMultiple.svg +3 -0
  4857. package/client/static/icons/MinusBoxMultipleOutline.svg +3 -0
  4858. package/client/static/icons/MinusBoxOutline.svg +3 -0
  4859. package/client/static/icons/MinusCircle.svg +3 -0
  4860. package/client/static/icons/MinusCircleMultiple.svg +3 -0
  4861. package/client/static/icons/MinusCircleMultipleOutline.svg +3 -0
  4862. package/client/static/icons/MinusCircleOff.svg +3 -0
  4863. package/client/static/icons/MinusCircleOffOutline.svg +3 -0
  4864. package/client/static/icons/MinusCircleOutline.svg +3 -0
  4865. package/client/static/icons/MinusNetwork.svg +3 -0
  4866. package/client/static/icons/MinusNetworkOutline.svg +3 -0
  4867. package/client/static/icons/MinusThick.svg +3 -0
  4868. package/client/static/icons/Mirror.svg +3 -0
  4869. package/client/static/icons/MirrorRectangle.svg +3 -0
  4870. package/client/static/icons/MirrorVariant.svg +3 -0
  4871. package/client/static/icons/MixedMartialArts.svg +3 -0
  4872. package/client/static/icons/MixedReality.svg +3 -0
  4873. package/client/static/icons/Molecule.svg +3 -0
  4874. package/client/static/icons/MoleculeCo.svg +3 -0
  4875. package/client/static/icons/MoleculeCo2.svg +3 -0
  4876. package/client/static/icons/Monitor.svg +3 -0
  4877. package/client/static/icons/MonitorAccount.svg +3 -0
  4878. package/client/static/icons/MonitorArrowDown.svg +3 -0
  4879. package/client/static/icons/MonitorArrowDownVariant.svg +3 -0
  4880. package/client/static/icons/MonitorCellphone.svg +3 -0
  4881. package/client/static/icons/MonitorCellphoneStar.svg +3 -0
  4882. package/client/static/icons/MonitorDashboard.svg +3 -0
  4883. package/client/static/icons/MonitorEdit.svg +3 -0
  4884. package/client/static/icons/MonitorEye.svg +3 -0
  4885. package/client/static/icons/MonitorLock.svg +3 -0
  4886. package/client/static/icons/MonitorMultiple.svg +3 -0
  4887. package/client/static/icons/MonitorOff.svg +3 -0
  4888. package/client/static/icons/MonitorScreenshot.svg +3 -0
  4889. package/client/static/icons/MonitorShare.svg +3 -0
  4890. package/client/static/icons/MonitorShimmer.svg +3 -0
  4891. package/client/static/icons/MonitorSmall.svg +3 -0
  4892. package/client/static/icons/MonitorSpeaker.svg +3 -0
  4893. package/client/static/icons/MonitorSpeakerOff.svg +3 -0
  4894. package/client/static/icons/MonitorStar.svg +3 -0
  4895. package/client/static/icons/MonitorVertical.svg +3 -0
  4896. package/client/static/icons/MoonFirstQuarter.svg +3 -0
  4897. package/client/static/icons/MoonFull.svg +3 -0
  4898. package/client/static/icons/MoonLastQuarter.svg +3 -0
  4899. package/client/static/icons/MoonNew.svg +3 -0
  4900. package/client/static/icons/MoonWaningCrescent.svg +3 -0
  4901. package/client/static/icons/MoonWaningGibbous.svg +3 -0
  4902. package/client/static/icons/MoonWaxingCrescent.svg +3 -0
  4903. package/client/static/icons/MoonWaxingGibbous.svg +3 -0
  4904. package/client/static/icons/Moped.svg +3 -0
  4905. package/client/static/icons/MopedElectric.svg +3 -0
  4906. package/client/static/icons/MopedElectricOutline.svg +3 -0
  4907. package/client/static/icons/MopedOutline.svg +3 -0
  4908. package/client/static/icons/More.svg +3 -0
  4909. package/client/static/icons/MortarPestle.svg +3 -0
  4910. package/client/static/icons/MortarPestlePlus.svg +3 -0
  4911. package/client/static/icons/Mosque.svg +3 -0
  4912. package/client/static/icons/MosqueOutline.svg +3 -0
  4913. package/client/static/icons/MotherHeart.svg +3 -0
  4914. package/client/static/icons/MotherNurse.svg +3 -0
  4915. package/client/static/icons/Motion.svg +3 -0
  4916. package/client/static/icons/MotionOutline.svg +3 -0
  4917. package/client/static/icons/MotionPause.svg +3 -0
  4918. package/client/static/icons/MotionPauseOutline.svg +3 -0
  4919. package/client/static/icons/MotionPlay.svg +3 -0
  4920. package/client/static/icons/MotionPlayOutline.svg +3 -0
  4921. package/client/static/icons/MotionSensor.svg +3 -0
  4922. package/client/static/icons/MotionSensorOff.svg +3 -0
  4923. package/client/static/icons/Motorbike.svg +3 -0
  4924. package/client/static/icons/MotorbikeElectric.svg +3 -0
  4925. package/client/static/icons/MotorbikeOff.svg +3 -0
  4926. package/client/static/icons/Mouse.svg +3 -0
  4927. package/client/static/icons/MouseBluetooth.svg +3 -0
  4928. package/client/static/icons/MouseLeftClick.svg +3 -0
  4929. package/client/static/icons/MouseLeftClickOutline.svg +3 -0
  4930. package/client/static/icons/MouseMoveDown.svg +3 -0
  4931. package/client/static/icons/MouseMoveUp.svg +3 -0
  4932. package/client/static/icons/MouseMoveVertical.svg +3 -0
  4933. package/client/static/icons/MouseOff.svg +3 -0
  4934. package/client/static/icons/MouseOutline.svg +3 -0
  4935. package/client/static/icons/MouseRightClick.svg +3 -0
  4936. package/client/static/icons/MouseRightClickOutline.svg +3 -0
  4937. package/client/static/icons/MouseScrollWheel.svg +3 -0
  4938. package/client/static/icons/MouseVariant.svg +3 -0
  4939. package/client/static/icons/MouseVariantOff.svg +3 -0
  4940. package/client/static/icons/MoveResize.svg +3 -0
  4941. package/client/static/icons/MoveResizeVariant.svg +3 -0
  4942. package/client/static/icons/Movie.svg +3 -0
  4943. package/client/static/icons/MovieCheck.svg +3 -0
  4944. package/client/static/icons/MovieCheckOutline.svg +3 -0
  4945. package/client/static/icons/MovieCog.svg +3 -0
  4946. package/client/static/icons/MovieCogOutline.svg +3 -0
  4947. package/client/static/icons/MovieEdit.svg +3 -0
  4948. package/client/static/icons/MovieEditOutline.svg +3 -0
  4949. package/client/static/icons/MovieFilter.svg +3 -0
  4950. package/client/static/icons/MovieFilterOutline.svg +3 -0
  4951. package/client/static/icons/MovieMinus.svg +3 -0
  4952. package/client/static/icons/MovieMinusOutline.svg +3 -0
  4953. package/client/static/icons/MovieOff.svg +3 -0
  4954. package/client/static/icons/MovieOffOutline.svg +3 -0
  4955. package/client/static/icons/MovieOpen.svg +3 -0
  4956. package/client/static/icons/MovieOpenCheck.svg +3 -0
  4957. package/client/static/icons/MovieOpenCheckOutline.svg +3 -0
  4958. package/client/static/icons/MovieOpenCog.svg +3 -0
  4959. package/client/static/icons/MovieOpenCogOutline.svg +3 -0
  4960. package/client/static/icons/MovieOpenEdit.svg +3 -0
  4961. package/client/static/icons/MovieOpenEditOutline.svg +3 -0
  4962. package/client/static/icons/MovieOpenMinus.svg +3 -0
  4963. package/client/static/icons/MovieOpenMinusOutline.svg +3 -0
  4964. package/client/static/icons/MovieOpenOff.svg +3 -0
  4965. package/client/static/icons/MovieOpenOffOutline.svg +3 -0
  4966. package/client/static/icons/MovieOpenOutline.svg +3 -0
  4967. package/client/static/icons/MovieOpenPlay.svg +3 -0
  4968. package/client/static/icons/MovieOpenPlayOutline.svg +3 -0
  4969. package/client/static/icons/MovieOpenPlus.svg +3 -0
  4970. package/client/static/icons/MovieOpenPlusOutline.svg +3 -0
  4971. package/client/static/icons/MovieOpenRemove.svg +3 -0
  4972. package/client/static/icons/MovieOpenRemoveOutline.svg +3 -0
  4973. package/client/static/icons/MovieOpenSettings.svg +3 -0
  4974. package/client/static/icons/MovieOpenSettingsOutline.svg +3 -0
  4975. package/client/static/icons/MovieOpenStar.svg +3 -0
  4976. package/client/static/icons/MovieOpenStarOutline.svg +3 -0
  4977. package/client/static/icons/MovieOutline.svg +3 -0
  4978. package/client/static/icons/MoviePlay.svg +3 -0
  4979. package/client/static/icons/MoviePlayOutline.svg +3 -0
  4980. package/client/static/icons/MoviePlus.svg +3 -0
  4981. package/client/static/icons/MoviePlusOutline.svg +3 -0
  4982. package/client/static/icons/MovieRemove.svg +3 -0
  4983. package/client/static/icons/MovieRemoveOutline.svg +3 -0
  4984. package/client/static/icons/MovieRoll.svg +3 -0
  4985. package/client/static/icons/MovieSearch.svg +3 -0
  4986. package/client/static/icons/MovieSearchOutline.svg +3 -0
  4987. package/client/static/icons/MovieSettings.svg +3 -0
  4988. package/client/static/icons/MovieSettingsOutline.svg +3 -0
  4989. package/client/static/icons/MovieStar.svg +3 -0
  4990. package/client/static/icons/MovieStarOutline.svg +3 -0
  4991. package/client/static/icons/Mower.svg +3 -0
  4992. package/client/static/icons/MowerBag.svg +3 -0
  4993. package/client/static/icons/MowerBagOn.svg +3 -0
  4994. package/client/static/icons/MowerOn.svg +3 -0
  4995. package/client/static/icons/Muffin.svg +3 -0
  4996. package/client/static/icons/Multicast.svg +3 -0
  4997. package/client/static/icons/Multimedia.svg +3 -0
  4998. package/client/static/icons/Multiplication.svg +3 -0
  4999. package/client/static/icons/MultiplicationBox.svg +3 -0
  5000. package/client/static/icons/Mushroom.svg +3 -0
  5001. package/client/static/icons/MushroomOff.svg +3 -0
  5002. package/client/static/icons/MushroomOffOutline.svg +3 -0
  5003. package/client/static/icons/MushroomOutline.svg +3 -0
  5004. package/client/static/icons/Music.svg +3 -0
  5005. package/client/static/icons/MusicAccidentalDoubleFlat.svg +3 -0
  5006. package/client/static/icons/MusicAccidentalDoubleSharp.svg +3 -0
  5007. package/client/static/icons/MusicAccidentalFlat.svg +3 -0
  5008. package/client/static/icons/MusicAccidentalNatural.svg +3 -0
  5009. package/client/static/icons/MusicAccidentalSharp.svg +3 -0
  5010. package/client/static/icons/MusicBox.svg +3 -0
  5011. package/client/static/icons/MusicBoxMultiple.svg +3 -0
  5012. package/client/static/icons/MusicBoxMultipleOutline.svg +3 -0
  5013. package/client/static/icons/MusicBoxOutline.svg +3 -0
  5014. package/client/static/icons/MusicCircle.svg +3 -0
  5015. package/client/static/icons/MusicCircleOutline.svg +3 -0
  5016. package/client/static/icons/MusicClefAlto.svg +3 -0
  5017. package/client/static/icons/MusicClefBass.svg +3 -0
  5018. package/client/static/icons/MusicClefTreble.svg +3 -0
  5019. package/client/static/icons/MusicNote.svg +3 -0
  5020. package/client/static/icons/MusicNoteBluetooth.svg +3 -0
  5021. package/client/static/icons/MusicNoteBluetoothOff.svg +3 -0
  5022. package/client/static/icons/MusicNoteEighth.svg +3 -0
  5023. package/client/static/icons/MusicNoteEighthDotted.svg +3 -0
  5024. package/client/static/icons/MusicNoteHalf.svg +3 -0
  5025. package/client/static/icons/MusicNoteHalfDotted.svg +3 -0
  5026. package/client/static/icons/MusicNoteMinus.svg +3 -0
  5027. package/client/static/icons/MusicNoteOff.svg +3 -0
  5028. package/client/static/icons/MusicNoteOffOutline.svg +3 -0
  5029. package/client/static/icons/MusicNoteOutline.svg +3 -0
  5030. package/client/static/icons/MusicNotePlus.svg +3 -0
  5031. package/client/static/icons/MusicNoteQuarter.svg +3 -0
  5032. package/client/static/icons/MusicNoteQuarterDotted.svg +3 -0
  5033. package/client/static/icons/MusicNoteSixteenth.svg +3 -0
  5034. package/client/static/icons/MusicNoteSixteenthDotted.svg +3 -0
  5035. package/client/static/icons/MusicNoteWhole.svg +3 -0
  5036. package/client/static/icons/MusicNoteWholeDotted.svg +3 -0
  5037. package/client/static/icons/MusicOff.svg +3 -0
  5038. package/client/static/icons/MusicRestEighth.svg +3 -0
  5039. package/client/static/icons/MusicRestHalf.svg +3 -0
  5040. package/client/static/icons/MusicRestQuarter.svg +3 -0
  5041. package/client/static/icons/MusicRestSixteenth.svg +3 -0
  5042. package/client/static/icons/MusicRestWhole.svg +3 -0
  5043. package/client/static/icons/Mustache.svg +3 -0
  5044. package/client/static/icons/Nail.svg +3 -0
  5045. package/client/static/icons/Nas.svg +3 -0
  5046. package/client/static/icons/Nativescript.svg +3 -0
  5047. package/client/static/icons/Nature.svg +3 -0
  5048. package/client/static/icons/NatureOutline.svg +3 -0
  5049. package/client/static/icons/NaturePeople.svg +3 -0
  5050. package/client/static/icons/NaturePeopleOutline.svg +3 -0
  5051. package/client/static/icons/Navigation.svg +3 -0
  5052. package/client/static/icons/NavigationOutline.svg +3 -0
  5053. package/client/static/icons/NavigationVariant.svg +3 -0
  5054. package/client/static/icons/NavigationVariantOutline.svg +3 -0
  5055. package/client/static/icons/NearMe.svg +3 -0
  5056. package/client/static/icons/Necklace.svg +3 -0
  5057. package/client/static/icons/Needle.svg +3 -0
  5058. package/client/static/icons/NeedleOff.svg +3 -0
  5059. package/client/static/icons/Netflix.svg +3 -0
  5060. package/client/static/icons/Network.svg +3 -0
  5061. package/client/static/icons/NetworkOff.svg +3 -0
  5062. package/client/static/icons/NetworkOffOutline.svg +3 -0
  5063. package/client/static/icons/NetworkOutline.svg +3 -0
  5064. package/client/static/icons/NetworkPos.svg +3 -0
  5065. package/client/static/icons/NetworkStrength1.svg +3 -0
  5066. package/client/static/icons/NetworkStrength1Alert.svg +3 -0
  5067. package/client/static/icons/NetworkStrength2.svg +3 -0
  5068. package/client/static/icons/NetworkStrength2Alert.svg +3 -0
  5069. package/client/static/icons/NetworkStrength3.svg +3 -0
  5070. package/client/static/icons/NetworkStrength3Alert.svg +3 -0
  5071. package/client/static/icons/NetworkStrength4.svg +3 -0
  5072. package/client/static/icons/NetworkStrength4Alert.svg +3 -0
  5073. package/client/static/icons/NetworkStrength4Cog.svg +3 -0
  5074. package/client/static/icons/NetworkStrengthOff.svg +3 -0
  5075. package/client/static/icons/NetworkStrengthOffOutline.svg +3 -0
  5076. package/client/static/icons/NetworkStrengthOutline.svg +3 -0
  5077. package/client/static/icons/NewBox.svg +3 -0
  5078. package/client/static/icons/Newspaper.svg +3 -0
  5079. package/client/static/icons/NewspaperCheck.svg +3 -0
  5080. package/client/static/icons/NewspaperMinus.svg +3 -0
  5081. package/client/static/icons/NewspaperPlus.svg +3 -0
  5082. package/client/static/icons/NewspaperRemove.svg +3 -0
  5083. package/client/static/icons/NewspaperVariant.svg +3 -0
  5084. package/client/static/icons/NewspaperVariantMultiple.svg +3 -0
  5085. package/client/static/icons/NewspaperVariantMultipleOutline.svg +3 -0
  5086. package/client/static/icons/NewspaperVariantOutline.svg +3 -0
  5087. package/client/static/icons/Nfc.svg +3 -0
  5088. package/client/static/icons/NfcSearchVariant.svg +3 -0
  5089. package/client/static/icons/NfcTap.svg +3 -0
  5090. package/client/static/icons/NfcVariant.svg +3 -0
  5091. package/client/static/icons/NfcVariantOff.svg +3 -0
  5092. package/client/static/icons/Ninja.svg +3 -0
  5093. package/client/static/icons/NintendoGameBoy.svg +3 -0
  5094. package/client/static/icons/NintendoSwitch.svg +3 -0
  5095. package/client/static/icons/NintendoWii.svg +3 -0
  5096. package/client/static/icons/NintendoWiiu.svg +3 -0
  5097. package/client/static/icons/Nix.svg +3 -0
  5098. package/client/static/icons/Nodejs.svg +3 -0
  5099. package/client/static/icons/Noodles.svg +3 -0
  5100. package/client/static/icons/NotEqual.svg +3 -0
  5101. package/client/static/icons/NotEqualVariant.svg +3 -0
  5102. package/client/static/icons/Note.svg +3 -0
  5103. package/client/static/icons/NoteAlert.svg +3 -0
  5104. package/client/static/icons/NoteAlertOutline.svg +3 -0
  5105. package/client/static/icons/NoteCheck.svg +3 -0
  5106. package/client/static/icons/NoteCheckOutline.svg +3 -0
  5107. package/client/static/icons/NoteEdit.svg +3 -0
  5108. package/client/static/icons/NoteEditOutline.svg +3 -0
  5109. package/client/static/icons/NoteMinus.svg +3 -0
  5110. package/client/static/icons/NoteMinusOutline.svg +3 -0
  5111. package/client/static/icons/NoteMultiple.svg +3 -0
  5112. package/client/static/icons/NoteMultipleOutline.svg +3 -0
  5113. package/client/static/icons/NoteOff.svg +3 -0
  5114. package/client/static/icons/NoteOffOutline.svg +3 -0
  5115. package/client/static/icons/NoteOutline.svg +3 -0
  5116. package/client/static/icons/NotePlus.svg +3 -0
  5117. package/client/static/icons/NotePlusOutline.svg +3 -0
  5118. package/client/static/icons/NoteRemove.svg +3 -0
  5119. package/client/static/icons/NoteRemoveOutline.svg +3 -0
  5120. package/client/static/icons/NoteSearch.svg +3 -0
  5121. package/client/static/icons/NoteSearchOutline.svg +3 -0
  5122. package/client/static/icons/NoteText.svg +3 -0
  5123. package/client/static/icons/NoteTextOutline.svg +3 -0
  5124. package/client/static/icons/Notebook.svg +3 -0
  5125. package/client/static/icons/NotebookCheck.svg +3 -0
  5126. package/client/static/icons/NotebookCheckOutline.svg +3 -0
  5127. package/client/static/icons/NotebookEdit.svg +3 -0
  5128. package/client/static/icons/NotebookEditOutline.svg +3 -0
  5129. package/client/static/icons/NotebookHeart.svg +3 -0
  5130. package/client/static/icons/NotebookHeartOutline.svg +3 -0
  5131. package/client/static/icons/NotebookMinus.svg +3 -0
  5132. package/client/static/icons/NotebookMinusOutline.svg +3 -0
  5133. package/client/static/icons/NotebookMultiple.svg +3 -0
  5134. package/client/static/icons/NotebookOutline.svg +3 -0
  5135. package/client/static/icons/NotebookPlus.svg +3 -0
  5136. package/client/static/icons/NotebookPlusOutline.svg +3 -0
  5137. package/client/static/icons/NotebookRemove.svg +3 -0
  5138. package/client/static/icons/NotebookRemoveOutline.svg +3 -0
  5139. package/client/static/icons/NotificationClearAll.svg +3 -0
  5140. package/client/static/icons/Npm.svg +3 -0
  5141. package/client/static/icons/Nuke.svg +3 -0
  5142. package/client/static/icons/Null.svg +3 -0
  5143. package/client/static/icons/Numeric.svg +3 -0
  5144. package/client/static/icons/Numeric0.svg +3 -0
  5145. package/client/static/icons/Numeric0Box.svg +3 -0
  5146. package/client/static/icons/Numeric0BoxMultiple.svg +3 -0
  5147. package/client/static/icons/Numeric0BoxMultipleOutline.svg +3 -0
  5148. package/client/static/icons/Numeric0BoxOutline.svg +3 -0
  5149. package/client/static/icons/Numeric0Circle.svg +3 -0
  5150. package/client/static/icons/Numeric0CircleOutline.svg +3 -0
  5151. package/client/static/icons/Numeric1.svg +3 -0
  5152. package/client/static/icons/Numeric10.svg +3 -0
  5153. package/client/static/icons/Numeric10Box.svg +3 -0
  5154. package/client/static/icons/Numeric10BoxMultiple.svg +3 -0
  5155. package/client/static/icons/Numeric10BoxMultipleOutline.svg +3 -0
  5156. package/client/static/icons/Numeric10BoxOutline.svg +3 -0
  5157. package/client/static/icons/Numeric10Circle.svg +3 -0
  5158. package/client/static/icons/Numeric10CircleOutline.svg +3 -0
  5159. package/client/static/icons/Numeric1Box.svg +3 -0
  5160. package/client/static/icons/Numeric1BoxMultiple.svg +3 -0
  5161. package/client/static/icons/Numeric1BoxMultipleOutline.svg +3 -0
  5162. package/client/static/icons/Numeric1BoxOutline.svg +3 -0
  5163. package/client/static/icons/Numeric1Circle.svg +3 -0
  5164. package/client/static/icons/Numeric1CircleOutline.svg +3 -0
  5165. package/client/static/icons/Numeric2.svg +3 -0
  5166. package/client/static/icons/Numeric2Box.svg +3 -0
  5167. package/client/static/icons/Numeric2BoxMultiple.svg +3 -0
  5168. package/client/static/icons/Numeric2BoxMultipleOutline.svg +3 -0
  5169. package/client/static/icons/Numeric2BoxOutline.svg +3 -0
  5170. package/client/static/icons/Numeric2Circle.svg +3 -0
  5171. package/client/static/icons/Numeric2CircleOutline.svg +3 -0
  5172. package/client/static/icons/Numeric3.svg +3 -0
  5173. package/client/static/icons/Numeric3Box.svg +3 -0
  5174. package/client/static/icons/Numeric3BoxMultiple.svg +3 -0
  5175. package/client/static/icons/Numeric3BoxMultipleOutline.svg +3 -0
  5176. package/client/static/icons/Numeric3BoxOutline.svg +3 -0
  5177. package/client/static/icons/Numeric3Circle.svg +3 -0
  5178. package/client/static/icons/Numeric3CircleOutline.svg +3 -0
  5179. package/client/static/icons/Numeric4.svg +3 -0
  5180. package/client/static/icons/Numeric4Box.svg +3 -0
  5181. package/client/static/icons/Numeric4BoxMultiple.svg +3 -0
  5182. package/client/static/icons/Numeric4BoxMultipleOutline.svg +3 -0
  5183. package/client/static/icons/Numeric4BoxOutline.svg +3 -0
  5184. package/client/static/icons/Numeric4Circle.svg +3 -0
  5185. package/client/static/icons/Numeric4CircleOutline.svg +3 -0
  5186. package/client/static/icons/Numeric5.svg +3 -0
  5187. package/client/static/icons/Numeric5Box.svg +3 -0
  5188. package/client/static/icons/Numeric5BoxMultiple.svg +3 -0
  5189. package/client/static/icons/Numeric5BoxMultipleOutline.svg +3 -0
  5190. package/client/static/icons/Numeric5BoxOutline.svg +3 -0
  5191. package/client/static/icons/Numeric5Circle.svg +3 -0
  5192. package/client/static/icons/Numeric5CircleOutline.svg +3 -0
  5193. package/client/static/icons/Numeric6.svg +3 -0
  5194. package/client/static/icons/Numeric6Box.svg +3 -0
  5195. package/client/static/icons/Numeric6BoxMultiple.svg +3 -0
  5196. package/client/static/icons/Numeric6BoxMultipleOutline.svg +3 -0
  5197. package/client/static/icons/Numeric6BoxOutline.svg +3 -0
  5198. package/client/static/icons/Numeric6Circle.svg +3 -0
  5199. package/client/static/icons/Numeric6CircleOutline.svg +3 -0
  5200. package/client/static/icons/Numeric7.svg +3 -0
  5201. package/client/static/icons/Numeric7Box.svg +3 -0
  5202. package/client/static/icons/Numeric7BoxMultiple.svg +3 -0
  5203. package/client/static/icons/Numeric7BoxMultipleOutline.svg +3 -0
  5204. package/client/static/icons/Numeric7BoxOutline.svg +3 -0
  5205. package/client/static/icons/Numeric7Circle.svg +3 -0
  5206. package/client/static/icons/Numeric7CircleOutline.svg +3 -0
  5207. package/client/static/icons/Numeric8.svg +3 -0
  5208. package/client/static/icons/Numeric8Box.svg +3 -0
  5209. package/client/static/icons/Numeric8BoxMultiple.svg +3 -0
  5210. package/client/static/icons/Numeric8BoxMultipleOutline.svg +3 -0
  5211. package/client/static/icons/Numeric8BoxOutline.svg +3 -0
  5212. package/client/static/icons/Numeric8Circle.svg +3 -0
  5213. package/client/static/icons/Numeric8CircleOutline.svg +3 -0
  5214. package/client/static/icons/Numeric9.svg +3 -0
  5215. package/client/static/icons/Numeric9Box.svg +3 -0
  5216. package/client/static/icons/Numeric9BoxMultiple.svg +3 -0
  5217. package/client/static/icons/Numeric9BoxMultipleOutline.svg +3 -0
  5218. package/client/static/icons/Numeric9BoxOutline.svg +3 -0
  5219. package/client/static/icons/Numeric9Circle.svg +3 -0
  5220. package/client/static/icons/Numeric9CircleOutline.svg +3 -0
  5221. package/client/static/icons/Numeric9Plus.svg +3 -0
  5222. package/client/static/icons/Numeric9PlusBox.svg +3 -0
  5223. package/client/static/icons/Numeric9PlusBoxMultiple.svg +3 -0
  5224. package/client/static/icons/Numeric9PlusBoxMultipleOutline.svg +3 -0
  5225. package/client/static/icons/Numeric9PlusBoxOutline.svg +3 -0
  5226. package/client/static/icons/Numeric9PlusCircle.svg +3 -0
  5227. package/client/static/icons/Numeric9PlusCircleOutline.svg +3 -0
  5228. package/client/static/icons/NumericNegative1.svg +3 -0
  5229. package/client/static/icons/NumericOff.svg +3 -0
  5230. package/client/static/icons/NumericPositive1.svg +3 -0
  5231. package/client/static/icons/Nut.svg +3 -0
  5232. package/client/static/icons/Nutrition.svg +3 -0
  5233. package/client/static/icons/Nuxt.svg +3 -0
  5234. package/client/static/icons/Oar.svg +3 -0
  5235. package/client/static/icons/Ocarina.svg +3 -0
  5236. package/client/static/icons/Oci.svg +3 -0
  5237. package/client/static/icons/Ocr.svg +3 -0
  5238. package/client/static/icons/Octagon.svg +3 -0
  5239. package/client/static/icons/OctagonOutline.svg +3 -0
  5240. package/client/static/icons/Octagram.svg +3 -0
  5241. package/client/static/icons/OctagramEdit.svg +3 -0
  5242. package/client/static/icons/OctagramEditOutline.svg +3 -0
  5243. package/client/static/icons/OctagramMinus.svg +3 -0
  5244. package/client/static/icons/OctagramMinusOutline.svg +3 -0
  5245. package/client/static/icons/OctagramOutline.svg +3 -0
  5246. package/client/static/icons/OctagramPlus.svg +3 -0
  5247. package/client/static/icons/OctagramPlusOutline.svg +3 -0
  5248. package/client/static/icons/Octahedron.svg +3 -0
  5249. package/client/static/icons/OctahedronOff.svg +3 -0
  5250. package/client/static/icons/Odnoklassniki.svg +3 -0
  5251. package/client/static/icons/Offer.svg +3 -0
  5252. package/client/static/icons/OfficeBuilding.svg +3 -0
  5253. package/client/static/icons/OfficeBuildingCog.svg +3 -0
  5254. package/client/static/icons/OfficeBuildingCogOutline.svg +3 -0
  5255. package/client/static/icons/OfficeBuildingMarker.svg +3 -0
  5256. package/client/static/icons/OfficeBuildingMarkerOutline.svg +3 -0
  5257. package/client/static/icons/OfficeBuildingMinus.svg +3 -0
  5258. package/client/static/icons/OfficeBuildingMinusOutline.svg +3 -0
  5259. package/client/static/icons/OfficeBuildingOutline.svg +3 -0
  5260. package/client/static/icons/OfficeBuildingPlus.svg +3 -0
  5261. package/client/static/icons/OfficeBuildingPlusOutline.svg +3 -0
  5262. package/client/static/icons/OfficeBuildingRemove.svg +3 -0
  5263. package/client/static/icons/OfficeBuildingRemoveOutline.svg +3 -0
  5264. package/client/static/icons/Oil.svg +3 -0
  5265. package/client/static/icons/OilLamp.svg +3 -0
  5266. package/client/static/icons/OilLevel.svg +3 -0
  5267. package/client/static/icons/OilTemperature.svg +3 -0
  5268. package/client/static/icons/Om.svg +3 -0
  5269. package/client/static/icons/Omega.svg +3 -0
  5270. package/client/static/icons/OneUp.svg +3 -0
  5271. package/client/static/icons/Onepassword.svg +3 -0
  5272. package/client/static/icons/Opacity.svg +3 -0
  5273. package/client/static/icons/OpenInApp.svg +3 -0
  5274. package/client/static/icons/OpenInNew.svg +3 -0
  5275. package/client/static/icons/OpenSourceInitiative.svg +3 -0
  5276. package/client/static/icons/Openid.svg +3 -0
  5277. package/client/static/icons/Opera.svg +3 -0
  5278. package/client/static/icons/Orbit.svg +3 -0
  5279. package/client/static/icons/OrbitVariant.svg +3 -0
  5280. package/client/static/icons/OrderAlphabeticalAscending.svg +3 -0
  5281. package/client/static/icons/OrderAlphabeticalDescending.svg +3 -0
  5282. package/client/static/icons/OrderBoolAscending.svg +3 -0
  5283. package/client/static/icons/OrderBoolAscendingVariant.svg +3 -0
  5284. package/client/static/icons/OrderBoolDescending.svg +3 -0
  5285. package/client/static/icons/OrderBoolDescendingVariant.svg +3 -0
  5286. package/client/static/icons/OrderNumericAscending.svg +3 -0
  5287. package/client/static/icons/OrderNumericDescending.svg +3 -0
  5288. package/client/static/icons/Origin.svg +3 -0
  5289. package/client/static/icons/Ornament.svg +3 -0
  5290. package/client/static/icons/OrnamentVariant.svg +3 -0
  5291. package/client/static/icons/OutdoorLamp.svg +3 -0
  5292. package/client/static/icons/Overscan.svg +3 -0
  5293. package/client/static/icons/Owl.svg +3 -0
  5294. package/client/static/icons/PacMan.svg +3 -0
  5295. package/client/static/icons/Package.svg +3 -0
  5296. package/client/static/icons/PackageCheck.svg +3 -0
  5297. package/client/static/icons/PackageDown.svg +3 -0
  5298. package/client/static/icons/PackageUp.svg +3 -0
  5299. package/client/static/icons/PackageVariant.svg +3 -0
  5300. package/client/static/icons/PackageVariantClosed.svg +3 -0
  5301. package/client/static/icons/PackageVariantClosedCheck.svg +3 -0
  5302. package/client/static/icons/PackageVariantClosedMinus.svg +3 -0
  5303. package/client/static/icons/PackageVariantClosedPlus.svg +3 -0
  5304. package/client/static/icons/PackageVariantClosedRemove.svg +3 -0
  5305. package/client/static/icons/PackageVariantMinus.svg +3 -0
  5306. package/client/static/icons/PackageVariantPlus.svg +3 -0
  5307. package/client/static/icons/PackageVariantRemove.svg +3 -0
  5308. package/client/static/icons/PageFirst.svg +3 -0
  5309. package/client/static/icons/PageLast.svg +3 -0
  5310. package/client/static/icons/PageLayoutBody.svg +3 -0
  5311. package/client/static/icons/PageLayoutFooter.svg +3 -0
  5312. package/client/static/icons/PageLayoutHeader.svg +3 -0
  5313. package/client/static/icons/PageLayoutHeaderFooter.svg +3 -0
  5314. package/client/static/icons/PageLayoutSidebarLeft.svg +3 -0
  5315. package/client/static/icons/PageLayoutSidebarRight.svg +3 -0
  5316. package/client/static/icons/PageNext.svg +3 -0
  5317. package/client/static/icons/PageNextOutline.svg +3 -0
  5318. package/client/static/icons/PagePrevious.svg +3 -0
  5319. package/client/static/icons/PagePreviousOutline.svg +3 -0
  5320. package/client/static/icons/Pail.svg +3 -0
  5321. package/client/static/icons/PailMinus.svg +3 -0
  5322. package/client/static/icons/PailMinusOutline.svg +3 -0
  5323. package/client/static/icons/PailOff.svg +3 -0
  5324. package/client/static/icons/PailOffOutline.svg +3 -0
  5325. package/client/static/icons/PailOutline.svg +3 -0
  5326. package/client/static/icons/PailPlus.svg +3 -0
  5327. package/client/static/icons/PailPlusOutline.svg +3 -0
  5328. package/client/static/icons/PailRemove.svg +3 -0
  5329. package/client/static/icons/PailRemoveOutline.svg +3 -0
  5330. package/client/static/icons/Palette.svg +3 -0
  5331. package/client/static/icons/PaletteAdvanced.svg +3 -0
  5332. package/client/static/icons/PaletteOutline.svg +3 -0
  5333. package/client/static/icons/PaletteSwatch.svg +3 -0
  5334. package/client/static/icons/PaletteSwatchOutline.svg +3 -0
  5335. package/client/static/icons/PaletteSwatchVariant.svg +3 -0
  5336. package/client/static/icons/PalmTree.svg +3 -0
  5337. package/client/static/icons/Pan.svg +3 -0
  5338. package/client/static/icons/PanBottomLeft.svg +3 -0
  5339. package/client/static/icons/PanBottomRight.svg +3 -0
  5340. package/client/static/icons/PanDown.svg +3 -0
  5341. package/client/static/icons/PanHorizontal.svg +3 -0
  5342. package/client/static/icons/PanLeft.svg +3 -0
  5343. package/client/static/icons/PanRight.svg +3 -0
  5344. package/client/static/icons/PanTopLeft.svg +3 -0
  5345. package/client/static/icons/PanTopRight.svg +3 -0
  5346. package/client/static/icons/PanUp.svg +3 -0
  5347. package/client/static/icons/PanVertical.svg +3 -0
  5348. package/client/static/icons/Panda.svg +3 -0
  5349. package/client/static/icons/Pandora.svg +3 -0
  5350. package/client/static/icons/Panorama.svg +3 -0
  5351. package/client/static/icons/PanoramaFisheye.svg +3 -0
  5352. package/client/static/icons/PanoramaHorizontal.svg +3 -0
  5353. package/client/static/icons/PanoramaHorizontalOutline.svg +3 -0
  5354. package/client/static/icons/PanoramaOutline.svg +3 -0
  5355. package/client/static/icons/PanoramaSphere.svg +3 -0
  5356. package/client/static/icons/PanoramaSphereOutline.svg +3 -0
  5357. package/client/static/icons/PanoramaVariant.svg +3 -0
  5358. package/client/static/icons/PanoramaVariantOutline.svg +3 -0
  5359. package/client/static/icons/PanoramaVertical.svg +3 -0
  5360. package/client/static/icons/PanoramaVerticalOutline.svg +3 -0
  5361. package/client/static/icons/PanoramaWideAngle.svg +3 -0
  5362. package/client/static/icons/PanoramaWideAngleOutline.svg +3 -0
  5363. package/client/static/icons/PaperCutVertical.svg +3 -0
  5364. package/client/static/icons/PaperRoll.svg +3 -0
  5365. package/client/static/icons/PaperRollOutline.svg +3 -0
  5366. package/client/static/icons/Paperclip.svg +3 -0
  5367. package/client/static/icons/PaperclipCheck.svg +3 -0
  5368. package/client/static/icons/PaperclipLock.svg +3 -0
  5369. package/client/static/icons/PaperclipMinus.svg +3 -0
  5370. package/client/static/icons/PaperclipOff.svg +3 -0
  5371. package/client/static/icons/PaperclipPlus.svg +3 -0
  5372. package/client/static/icons/PaperclipRemove.svg +3 -0
  5373. package/client/static/icons/Parachute.svg +3 -0
  5374. package/client/static/icons/ParachuteOutline.svg +3 -0
  5375. package/client/static/icons/Paragliding.svg +3 -0
  5376. package/client/static/icons/Parking.svg +3 -0
  5377. package/client/static/icons/PartyPopper.svg +3 -0
  5378. package/client/static/icons/Passport.svg +3 -0
  5379. package/client/static/icons/PassportAlert.svg +3 -0
  5380. package/client/static/icons/PassportBiometric.svg +3 -0
  5381. package/client/static/icons/PassportCancel.svg +3 -0
  5382. package/client/static/icons/PassportCheck.svg +3 -0
  5383. package/client/static/icons/PassportMinus.svg +3 -0
  5384. package/client/static/icons/PassportPlus.svg +3 -0
  5385. package/client/static/icons/PassportRemove.svg +3 -0
  5386. package/client/static/icons/Pasta.svg +3 -0
  5387. package/client/static/icons/PatioHeater.svg +3 -0
  5388. package/client/static/icons/Patreon.svg +3 -0
  5389. package/client/static/icons/Pause.svg +3 -0
  5390. package/client/static/icons/PauseBox.svg +3 -0
  5391. package/client/static/icons/PauseBoxOutline.svg +3 -0
  5392. package/client/static/icons/PauseCircle.svg +3 -0
  5393. package/client/static/icons/PauseCircleOutline.svg +3 -0
  5394. package/client/static/icons/PauseOctagon.svg +3 -0
  5395. package/client/static/icons/PauseOctagonOutline.svg +3 -0
  5396. package/client/static/icons/Paw.svg +3 -0
  5397. package/client/static/icons/PawOff.svg +3 -0
  5398. package/client/static/icons/PawOffOutline.svg +3 -0
  5399. package/client/static/icons/PawOutline.svg +3 -0
  5400. package/client/static/icons/Peace.svg +3 -0
  5401. package/client/static/icons/Peanut.svg +3 -0
  5402. package/client/static/icons/PeanutOff.svg +3 -0
  5403. package/client/static/icons/PeanutOffOutline.svg +3 -0
  5404. package/client/static/icons/PeanutOutline.svg +3 -0
  5405. package/client/static/icons/Pen.svg +3 -0
  5406. package/client/static/icons/PenLock.svg +3 -0
  5407. package/client/static/icons/PenMinus.svg +3 -0
  5408. package/client/static/icons/PenOff.svg +3 -0
  5409. package/client/static/icons/PenPlus.svg +3 -0
  5410. package/client/static/icons/PenRemove.svg +3 -0
  5411. package/client/static/icons/Pencil.svg +3 -0
  5412. package/client/static/icons/PencilBox.svg +3 -0
  5413. package/client/static/icons/PencilBoxMultiple.svg +3 -0
  5414. package/client/static/icons/PencilBoxMultipleOutline.svg +3 -0
  5415. package/client/static/icons/PencilBoxOutline.svg +3 -0
  5416. package/client/static/icons/PencilCircle.svg +3 -0
  5417. package/client/static/icons/PencilCircleOutline.svg +3 -0
  5418. package/client/static/icons/PencilLock.svg +3 -0
  5419. package/client/static/icons/PencilLockOutline.svg +3 -0
  5420. package/client/static/icons/PencilMinus.svg +3 -0
  5421. package/client/static/icons/PencilMinusOutline.svg +3 -0
  5422. package/client/static/icons/PencilOff.svg +3 -0
  5423. package/client/static/icons/PencilOffOutline.svg +3 -0
  5424. package/client/static/icons/PencilOutline.svg +3 -0
  5425. package/client/static/icons/PencilPlus.svg +3 -0
  5426. package/client/static/icons/PencilPlusOutline.svg +3 -0
  5427. package/client/static/icons/PencilRemove.svg +3 -0
  5428. package/client/static/icons/PencilRemoveOutline.svg +3 -0
  5429. package/client/static/icons/PencilRuler.svg +3 -0
  5430. package/client/static/icons/PencilRulerOutline.svg +3 -0
  5431. package/client/static/icons/Penguin.svg +3 -0
  5432. package/client/static/icons/Pentagon.svg +3 -0
  5433. package/client/static/icons/PentagonOutline.svg +3 -0
  5434. package/client/static/icons/Pentagram.svg +3 -0
  5435. package/client/static/icons/Percent.svg +3 -0
  5436. package/client/static/icons/PercentBox.svg +3 -0
  5437. package/client/static/icons/PercentBoxOutline.svg +3 -0
  5438. package/client/static/icons/PercentCircle.svg +3 -0
  5439. package/client/static/icons/PercentCircleOutline.svg +3 -0
  5440. package/client/static/icons/PercentOutline.svg +3 -0
  5441. package/client/static/icons/PeriodicTable.svg +3 -0
  5442. package/client/static/icons/PerspectiveLess.svg +3 -0
  5443. package/client/static/icons/PerspectiveMore.svg +3 -0
  5444. package/client/static/icons/Ph.svg +3 -0
  5445. package/client/static/icons/Phone.svg +3 -0
  5446. package/client/static/icons/PhoneAlert.svg +3 -0
  5447. package/client/static/icons/PhoneAlertOutline.svg +3 -0
  5448. package/client/static/icons/PhoneBluetooth.svg +3 -0
  5449. package/client/static/icons/PhoneBluetoothOutline.svg +3 -0
  5450. package/client/static/icons/PhoneCancel.svg +3 -0
  5451. package/client/static/icons/PhoneCancelOutline.svg +3 -0
  5452. package/client/static/icons/PhoneCheck.svg +3 -0
  5453. package/client/static/icons/PhoneCheckOutline.svg +3 -0
  5454. package/client/static/icons/PhoneClassic.svg +3 -0
  5455. package/client/static/icons/PhoneClassicOff.svg +3 -0
  5456. package/client/static/icons/PhoneClock.svg +3 -0
  5457. package/client/static/icons/PhoneDial.svg +3 -0
  5458. package/client/static/icons/PhoneDialOutline.svg +3 -0
  5459. package/client/static/icons/PhoneForward.svg +3 -0
  5460. package/client/static/icons/PhoneForwardOutline.svg +3 -0
  5461. package/client/static/icons/PhoneHangup.svg +3 -0
  5462. package/client/static/icons/PhoneHangupOutline.svg +3 -0
  5463. package/client/static/icons/PhoneInTalk.svg +3 -0
  5464. package/client/static/icons/PhoneInTalkOutline.svg +3 -0
  5465. package/client/static/icons/PhoneIncoming.svg +3 -0
  5466. package/client/static/icons/PhoneIncomingOutgoing.svg +3 -0
  5467. package/client/static/icons/PhoneIncomingOutgoingOutline.svg +3 -0
  5468. package/client/static/icons/PhoneIncomingOutline.svg +3 -0
  5469. package/client/static/icons/PhoneLock.svg +3 -0
  5470. package/client/static/icons/PhoneLockOutline.svg +3 -0
  5471. package/client/static/icons/PhoneLog.svg +3 -0
  5472. package/client/static/icons/PhoneLogOutline.svg +3 -0
  5473. package/client/static/icons/PhoneMessage.svg +3 -0
  5474. package/client/static/icons/PhoneMessageOutline.svg +3 -0
  5475. package/client/static/icons/PhoneMinus.svg +3 -0
  5476. package/client/static/icons/PhoneMinusOutline.svg +3 -0
  5477. package/client/static/icons/PhoneMissed.svg +3 -0
  5478. package/client/static/icons/PhoneMissedOutline.svg +3 -0
  5479. package/client/static/icons/PhoneOff.svg +3 -0
  5480. package/client/static/icons/PhoneOffOutline.svg +3 -0
  5481. package/client/static/icons/PhoneOutgoing.svg +3 -0
  5482. package/client/static/icons/PhoneOutgoingOutline.svg +3 -0
  5483. package/client/static/icons/PhoneOutline.svg +3 -0
  5484. package/client/static/icons/PhonePaused.svg +3 -0
  5485. package/client/static/icons/PhonePausedOutline.svg +3 -0
  5486. package/client/static/icons/PhonePlus.svg +3 -0
  5487. package/client/static/icons/PhonePlusOutline.svg +3 -0
  5488. package/client/static/icons/PhoneRefresh.svg +3 -0
  5489. package/client/static/icons/PhoneRefreshOutline.svg +3 -0
  5490. package/client/static/icons/PhoneRemove.svg +3 -0
  5491. package/client/static/icons/PhoneRemoveOutline.svg +3 -0
  5492. package/client/static/icons/PhoneReturn.svg +3 -0
  5493. package/client/static/icons/PhoneReturnOutline.svg +3 -0
  5494. package/client/static/icons/PhoneRing.svg +3 -0
  5495. package/client/static/icons/PhoneRingOutline.svg +3 -0
  5496. package/client/static/icons/PhoneRotateLandscape.svg +3 -0
  5497. package/client/static/icons/PhoneRotatePortrait.svg +3 -0
  5498. package/client/static/icons/PhoneSettings.svg +3 -0
  5499. package/client/static/icons/PhoneSettingsOutline.svg +3 -0
  5500. package/client/static/icons/PhoneSync.svg +3 -0
  5501. package/client/static/icons/PhoneSyncOutline.svg +3 -0
  5502. package/client/static/icons/PhoneVoip.svg +3 -0
  5503. package/client/static/icons/Pi.svg +3 -0
  5504. package/client/static/icons/PiBox.svg +3 -0
  5505. package/client/static/icons/PiHole.svg +3 -0
  5506. package/client/static/icons/Piano.svg +3 -0
  5507. package/client/static/icons/PianoOff.svg +3 -0
  5508. package/client/static/icons/Pickaxe.svg +3 -0
  5509. package/client/static/icons/PictureInPictureBottomRight.svg +3 -0
  5510. package/client/static/icons/PictureInPictureBottomRightOutline.svg +3 -0
  5511. package/client/static/icons/PictureInPictureTopRight.svg +3 -0
  5512. package/client/static/icons/PictureInPictureTopRightOutline.svg +3 -0
  5513. package/client/static/icons/Pier.svg +3 -0
  5514. package/client/static/icons/PierCrane.svg +3 -0
  5515. package/client/static/icons/Pig.svg +3 -0
  5516. package/client/static/icons/PigVariant.svg +3 -0
  5517. package/client/static/icons/PigVariantOutline.svg +3 -0
  5518. package/client/static/icons/PiggyBank.svg +3 -0
  5519. package/client/static/icons/PiggyBankOutline.svg +3 -0
  5520. package/client/static/icons/Pill.svg +3 -0
  5521. package/client/static/icons/PillMultiple.svg +3 -0
  5522. package/client/static/icons/PillOff.svg +3 -0
  5523. package/client/static/icons/Pillar.svg +3 -0
  5524. package/client/static/icons/Pin.svg +3 -0
  5525. package/client/static/icons/PinOff.svg +3 -0
  5526. package/client/static/icons/PinOffOutline.svg +3 -0
  5527. package/client/static/icons/PinOutline.svg +3 -0
  5528. package/client/static/icons/PineTree.svg +3 -0
  5529. package/client/static/icons/PineTreeBox.svg +3 -0
  5530. package/client/static/icons/PineTreeFire.svg +3 -0
  5531. package/client/static/icons/PineTreeVariant.svg +3 -0
  5532. package/client/static/icons/PineTreeVariantOutline.svg +3 -0
  5533. package/client/static/icons/Pinterest.svg +3 -0
  5534. package/client/static/icons/Pinwheel.svg +3 -0
  5535. package/client/static/icons/PinwheelOutline.svg +3 -0
  5536. package/client/static/icons/Pipe.svg +3 -0
  5537. package/client/static/icons/PipeDisconnected.svg +3 -0
  5538. package/client/static/icons/PipeLeak.svg +3 -0
  5539. package/client/static/icons/PipeValve.svg +3 -0
  5540. package/client/static/icons/PipeWrench.svg +3 -0
  5541. package/client/static/icons/Pirate.svg +3 -0
  5542. package/client/static/icons/Pistol.svg +3 -0
  5543. package/client/static/icons/Piston.svg +3 -0
  5544. package/client/static/icons/Pitchfork.svg +3 -0
  5545. package/client/static/icons/Pizza.svg +3 -0
  5546. package/client/static/icons/PlaneCar.svg +3 -0
  5547. package/client/static/icons/PlaneTrain.svg +3 -0
  5548. package/client/static/icons/Play.svg +3 -0
  5549. package/client/static/icons/PlayBox.svg +3 -0
  5550. package/client/static/icons/PlayBoxEditOutline.svg +3 -0
  5551. package/client/static/icons/PlayBoxLock.svg +3 -0
  5552. package/client/static/icons/PlayBoxLockOpen.svg +3 -0
  5553. package/client/static/icons/PlayBoxLockOpenOutline.svg +3 -0
  5554. package/client/static/icons/PlayBoxLockOutline.svg +3 -0
  5555. package/client/static/icons/PlayBoxMultiple.svg +3 -0
  5556. package/client/static/icons/PlayBoxMultipleOutline.svg +3 -0
  5557. package/client/static/icons/PlayBoxOutline.svg +3 -0
  5558. package/client/static/icons/PlayCircle.svg +3 -0
  5559. package/client/static/icons/PlayCircleOutline.svg +3 -0
  5560. package/client/static/icons/PlayNetwork.svg +3 -0
  5561. package/client/static/icons/PlayNetworkOutline.svg +3 -0
  5562. package/client/static/icons/PlayOutline.svg +3 -0
  5563. package/client/static/icons/PlayPause.svg +3 -0
  5564. package/client/static/icons/PlayProtectedContent.svg +3 -0
  5565. package/client/static/icons/PlaySpeed.svg +3 -0
  5566. package/client/static/icons/PlaylistCheck.svg +3 -0
  5567. package/client/static/icons/PlaylistEdit.svg +3 -0
  5568. package/client/static/icons/PlaylistMinus.svg +3 -0
  5569. package/client/static/icons/PlaylistMusic.svg +3 -0
  5570. package/client/static/icons/PlaylistMusicOutline.svg +3 -0
  5571. package/client/static/icons/PlaylistPlay.svg +3 -0
  5572. package/client/static/icons/PlaylistPlus.svg +3 -0
  5573. package/client/static/icons/PlaylistRemove.svg +3 -0
  5574. package/client/static/icons/PlaylistStar.svg +3 -0
  5575. package/client/static/icons/Plex.svg +3 -0
  5576. package/client/static/icons/Pliers.svg +3 -0
  5577. package/client/static/icons/Plus.svg +3 -0
  5578. package/client/static/icons/PlusBox.svg +3 -0
  5579. package/client/static/icons/PlusBoxMultiple.svg +3 -0
  5580. package/client/static/icons/PlusBoxMultipleOutline.svg +3 -0
  5581. package/client/static/icons/PlusBoxOutline.svg +3 -0
  5582. package/client/static/icons/PlusCircle.svg +3 -0
  5583. package/client/static/icons/PlusCircleMultiple.svg +3 -0
  5584. package/client/static/icons/PlusCircleMultipleOutline.svg +3 -0
  5585. package/client/static/icons/PlusCircleOutline.svg +3 -0
  5586. package/client/static/icons/PlusLock.svg +3 -0
  5587. package/client/static/icons/PlusLockOpen.svg +3 -0
  5588. package/client/static/icons/PlusMinus.svg +3 -0
  5589. package/client/static/icons/PlusMinusBox.svg +3 -0
  5590. package/client/static/icons/PlusMinusVariant.svg +3 -0
  5591. package/client/static/icons/PlusNetwork.svg +3 -0
  5592. package/client/static/icons/PlusNetworkOutline.svg +3 -0
  5593. package/client/static/icons/PlusOutline.svg +3 -0
  5594. package/client/static/icons/PlusThick.svg +3 -0
  5595. package/client/static/icons/Pocket.svg +3 -0
  5596. package/client/static/icons/Podcast.svg +3 -0
  5597. package/client/static/icons/Podium.svg +3 -0
  5598. package/client/static/icons/PodiumBronze.svg +3 -0
  5599. package/client/static/icons/PodiumGold.svg +3 -0
  5600. package/client/static/icons/PodiumSilver.svg +3 -0
  5601. package/client/static/icons/PointOfSale.svg +3 -0
  5602. package/client/static/icons/Pokeball.svg +3 -0
  5603. package/client/static/icons/PokemonGo.svg +3 -0
  5604. package/client/static/icons/PokerChip.svg +3 -0
  5605. package/client/static/icons/Polaroid.svg +3 -0
  5606. package/client/static/icons/PoliceBadge.svg +3 -0
  5607. package/client/static/icons/PoliceBadgeOutline.svg +3 -0
  5608. package/client/static/icons/PoliceStation.svg +3 -0
  5609. package/client/static/icons/Poll.svg +3 -0
  5610. package/client/static/icons/Polo.svg +3 -0
  5611. package/client/static/icons/Polymer.svg +3 -0
  5612. package/client/static/icons/Pool.svg +3 -0
  5613. package/client/static/icons/PoolThermometer.svg +3 -0
  5614. package/client/static/icons/Popcorn.svg +3 -0
  5615. package/client/static/icons/Post.svg +3 -0
  5616. package/client/static/icons/PostLamp.svg +3 -0
  5617. package/client/static/icons/PostOutline.svg +3 -0
  5618. package/client/static/icons/PostageStamp.svg +3 -0
  5619. package/client/static/icons/Pot.svg +3 -0
  5620. package/client/static/icons/PotMix.svg +3 -0
  5621. package/client/static/icons/PotMixOutline.svg +3 -0
  5622. package/client/static/icons/PotOutline.svg +3 -0
  5623. package/client/static/icons/PotSteam.svg +3 -0
  5624. package/client/static/icons/PotSteamOutline.svg +3 -0
  5625. package/client/static/icons/Pound.svg +3 -0
  5626. package/client/static/icons/PoundBox.svg +3 -0
  5627. package/client/static/icons/PoundBoxOutline.svg +3 -0
  5628. package/client/static/icons/Power.svg +3 -0
  5629. package/client/static/icons/PowerCycle.svg +3 -0
  5630. package/client/static/icons/PowerOff.svg +3 -0
  5631. package/client/static/icons/PowerOn.svg +3 -0
  5632. package/client/static/icons/PowerPlug.svg +3 -0
  5633. package/client/static/icons/PowerPlugBattery.svg +3 -0
  5634. package/client/static/icons/PowerPlugBatteryOutline.svg +3 -0
  5635. package/client/static/icons/PowerPlugOff.svg +3 -0
  5636. package/client/static/icons/PowerPlugOffOutline.svg +3 -0
  5637. package/client/static/icons/PowerPlugOutline.svg +3 -0
  5638. package/client/static/icons/PowerSettings.svg +3 -0
  5639. package/client/static/icons/PowerSleep.svg +3 -0
  5640. package/client/static/icons/PowerSocket.svg +3 -0
  5641. package/client/static/icons/PowerSocketAu.svg +3 -0
  5642. package/client/static/icons/PowerSocketCh.svg +3 -0
  5643. package/client/static/icons/PowerSocketDe.svg +3 -0
  5644. package/client/static/icons/PowerSocketEu.svg +3 -0
  5645. package/client/static/icons/PowerSocketFr.svg +3 -0
  5646. package/client/static/icons/PowerSocketIt.svg +3 -0
  5647. package/client/static/icons/PowerSocketJp.svg +3 -0
  5648. package/client/static/icons/PowerSocketUk.svg +3 -0
  5649. package/client/static/icons/PowerSocketUs.svg +3 -0
  5650. package/client/static/icons/PowerStandby.svg +3 -0
  5651. package/client/static/icons/Powershell.svg +3 -0
  5652. package/client/static/icons/Prescription.svg +3 -0
  5653. package/client/static/icons/Presentation.svg +3 -0
  5654. package/client/static/icons/PresentationPlay.svg +3 -0
  5655. package/client/static/icons/Pretzel.svg +3 -0
  5656. package/client/static/icons/Printer.svg +3 -0
  5657. package/client/static/icons/Printer3d.svg +3 -0
  5658. package/client/static/icons/Printer3dNozzle.svg +3 -0
  5659. package/client/static/icons/Printer3dNozzleAlert.svg +3 -0
  5660. package/client/static/icons/Printer3dNozzleAlertOutline.svg +3 -0
  5661. package/client/static/icons/Printer3dNozzleHeat.svg +3 -0
  5662. package/client/static/icons/Printer3dNozzleHeatOutline.svg +3 -0
  5663. package/client/static/icons/Printer3dNozzleOff.svg +3 -0
  5664. package/client/static/icons/Printer3dNozzleOffOutline.svg +3 -0
  5665. package/client/static/icons/Printer3dNozzleOutline.svg +3 -0
  5666. package/client/static/icons/Printer3dOff.svg +3 -0
  5667. package/client/static/icons/PrinterAlert.svg +3 -0
  5668. package/client/static/icons/PrinterCheck.svg +3 -0
  5669. package/client/static/icons/PrinterEye.svg +3 -0
  5670. package/client/static/icons/PrinterOff.svg +3 -0
  5671. package/client/static/icons/PrinterOffOutline.svg +3 -0
  5672. package/client/static/icons/PrinterOutline.svg +3 -0
  5673. package/client/static/icons/PrinterPos.svg +3 -0
  5674. package/client/static/icons/PrinterPosAlert.svg +3 -0
  5675. package/client/static/icons/PrinterPosAlertOutline.svg +3 -0
  5676. package/client/static/icons/PrinterPosCancel.svg +3 -0
  5677. package/client/static/icons/PrinterPosCancelOutline.svg +3 -0
  5678. package/client/static/icons/PrinterPosCheck.svg +3 -0
  5679. package/client/static/icons/PrinterPosCheckOutline.svg +3 -0
  5680. package/client/static/icons/PrinterPosCog.svg +3 -0
  5681. package/client/static/icons/PrinterPosCogOutline.svg +3 -0
  5682. package/client/static/icons/PrinterPosEdit.svg +3 -0
  5683. package/client/static/icons/PrinterPosEditOutline.svg +3 -0
  5684. package/client/static/icons/PrinterPosMinus.svg +3 -0
  5685. package/client/static/icons/PrinterPosMinusOutline.svg +3 -0
  5686. package/client/static/icons/PrinterPosNetwork.svg +3 -0
  5687. package/client/static/icons/PrinterPosNetworkOutline.svg +3 -0
  5688. package/client/static/icons/PrinterPosOff.svg +3 -0
  5689. package/client/static/icons/PrinterPosOffOutline.svg +3 -0
  5690. package/client/static/icons/PrinterPosOutline.svg +3 -0
  5691. package/client/static/icons/PrinterPosPause.svg +3 -0
  5692. package/client/static/icons/PrinterPosPauseOutline.svg +3 -0
  5693. package/client/static/icons/PrinterPosPlay.svg +3 -0
  5694. package/client/static/icons/PrinterPosPlayOutline.svg +3 -0
  5695. package/client/static/icons/PrinterPosPlus.svg +3 -0
  5696. package/client/static/icons/PrinterPosPlusOutline.svg +3 -0
  5697. package/client/static/icons/PrinterPosRefresh.svg +3 -0
  5698. package/client/static/icons/PrinterPosRefreshOutline.svg +3 -0
  5699. package/client/static/icons/PrinterPosRemove.svg +3 -0
  5700. package/client/static/icons/PrinterPosRemoveOutline.svg +3 -0
  5701. package/client/static/icons/PrinterPosStar.svg +3 -0
  5702. package/client/static/icons/PrinterPosStarOutline.svg +3 -0
  5703. package/client/static/icons/PrinterPosStop.svg +3 -0
  5704. package/client/static/icons/PrinterPosStopOutline.svg +3 -0
  5705. package/client/static/icons/PrinterPosSync.svg +3 -0
  5706. package/client/static/icons/PrinterPosSyncOutline.svg +3 -0
  5707. package/client/static/icons/PrinterPosWrench.svg +3 -0
  5708. package/client/static/icons/PrinterPosWrenchOutline.svg +3 -0
  5709. package/client/static/icons/PrinterSearch.svg +3 -0
  5710. package/client/static/icons/PrinterSettings.svg +3 -0
  5711. package/client/static/icons/PrinterWireless.svg +3 -0
  5712. package/client/static/icons/PriorityHigh.svg +3 -0
  5713. package/client/static/icons/PriorityLow.svg +3 -0
  5714. package/client/static/icons/ProfessionalHexagon.svg +3 -0
  5715. package/client/static/icons/ProgressAlert.svg +3 -0
  5716. package/client/static/icons/ProgressCheck.svg +3 -0
  5717. package/client/static/icons/ProgressClock.svg +3 -0
  5718. package/client/static/icons/ProgressClose.svg +3 -0
  5719. package/client/static/icons/ProgressDownload.svg +3 -0
  5720. package/client/static/icons/ProgressHelper.svg +3 -0
  5721. package/client/static/icons/ProgressPencil.svg +3 -0
  5722. package/client/static/icons/ProgressQuestion.svg +3 -0
  5723. package/client/static/icons/ProgressStar.svg +3 -0
  5724. package/client/static/icons/ProgressStarFourPoints.svg +3 -0
  5725. package/client/static/icons/ProgressTag.svg +3 -0
  5726. package/client/static/icons/ProgressUpload.svg +3 -0
  5727. package/client/static/icons/ProgressWrench.svg +3 -0
  5728. package/client/static/icons/Projector.svg +3 -0
  5729. package/client/static/icons/ProjectorOff.svg +3 -0
  5730. package/client/static/icons/ProjectorScreen.svg +3 -0
  5731. package/client/static/icons/ProjectorScreenOff.svg +3 -0
  5732. package/client/static/icons/ProjectorScreenOffOutline.svg +3 -0
  5733. package/client/static/icons/ProjectorScreenOutline.svg +3 -0
  5734. package/client/static/icons/ProjectorScreenVariant.svg +3 -0
  5735. package/client/static/icons/ProjectorScreenVariantOff.svg +3 -0
  5736. package/client/static/icons/ProjectorScreenVariantOffOutline.svg +3 -0
  5737. package/client/static/icons/ProjectorScreenVariantOutline.svg +3 -0
  5738. package/client/static/icons/PropaneTank.svg +3 -0
  5739. package/client/static/icons/PropaneTankOutline.svg +3 -0
  5740. package/client/static/icons/Protocol.svg +3 -0
  5741. package/client/static/icons/Publish.svg +3 -0
  5742. package/client/static/icons/PublishOff.svg +3 -0
  5743. package/client/static/icons/Pulse.svg +3 -0
  5744. package/client/static/icons/Pump.svg +3 -0
  5745. package/client/static/icons/PumpOff.svg +3 -0
  5746. package/client/static/icons/Pumpkin.svg +3 -0
  5747. package/client/static/icons/Purse.svg +3 -0
  5748. package/client/static/icons/PurseOutline.svg +3 -0
  5749. package/client/static/icons/Puzzle.svg +3 -0
  5750. package/client/static/icons/PuzzleCheck.svg +3 -0
  5751. package/client/static/icons/PuzzleCheckOutline.svg +3 -0
  5752. package/client/static/icons/PuzzleEdit.svg +3 -0
  5753. package/client/static/icons/PuzzleEditOutline.svg +3 -0
  5754. package/client/static/icons/PuzzleHeart.svg +3 -0
  5755. package/client/static/icons/PuzzleHeartOutline.svg +3 -0
  5756. package/client/static/icons/PuzzleMinus.svg +3 -0
  5757. package/client/static/icons/PuzzleMinusOutline.svg +3 -0
  5758. package/client/static/icons/PuzzleOutline.svg +3 -0
  5759. package/client/static/icons/PuzzlePlus.svg +3 -0
  5760. package/client/static/icons/PuzzlePlusOutline.svg +3 -0
  5761. package/client/static/icons/PuzzleRemove.svg +3 -0
  5762. package/client/static/icons/PuzzleRemoveOutline.svg +3 -0
  5763. package/client/static/icons/PuzzleStar.svg +3 -0
  5764. package/client/static/icons/PuzzleStarOutline.svg +3 -0
  5765. package/client/static/icons/Pyramid.svg +3 -0
  5766. package/client/static/icons/PyramidOff.svg +3 -0
  5767. package/client/static/icons/Qi.svg +3 -0
  5768. package/client/static/icons/Qqchat.svg +3 -0
  5769. package/client/static/icons/Qrcode.svg +3 -0
  5770. package/client/static/icons/QrcodeEdit.svg +3 -0
  5771. package/client/static/icons/QrcodeMinus.svg +3 -0
  5772. package/client/static/icons/QrcodePlus.svg +3 -0
  5773. package/client/static/icons/QrcodeRemove.svg +3 -0
  5774. package/client/static/icons/QrcodeScan.svg +3 -0
  5775. package/client/static/icons/Quadcopter.svg +3 -0
  5776. package/client/static/icons/QualityHigh.svg +3 -0
  5777. package/client/static/icons/QualityLow.svg +3 -0
  5778. package/client/static/icons/QualityMedium.svg +3 -0
  5779. package/client/static/icons/QueueFirstInLastOut.svg +3 -0
  5780. package/client/static/icons/Quora.svg +3 -0
  5781. package/client/static/icons/Rabbit.svg +3 -0
  5782. package/client/static/icons/RabbitVariant.svg +3 -0
  5783. package/client/static/icons/RabbitVariantOutline.svg +3 -0
  5784. package/client/static/icons/RacingHelmet.svg +3 -0
  5785. package/client/static/icons/Racquetball.svg +3 -0
  5786. package/client/static/icons/Radar.svg +3 -0
  5787. package/client/static/icons/Radiator.svg +3 -0
  5788. package/client/static/icons/RadiatorDisabled.svg +3 -0
  5789. package/client/static/icons/RadiatorOff.svg +3 -0
  5790. package/client/static/icons/Radio.svg +3 -0
  5791. package/client/static/icons/RadioAm.svg +3 -0
  5792. package/client/static/icons/RadioFm.svg +3 -0
  5793. package/client/static/icons/RadioHandheld.svg +3 -0
  5794. package/client/static/icons/RadioOff.svg +3 -0
  5795. package/client/static/icons/RadioTower.svg +3 -0
  5796. package/client/static/icons/Radioactive.svg +3 -0
  5797. package/client/static/icons/RadioactiveCircle.svg +3 -0
  5798. package/client/static/icons/RadioactiveCircleOutline.svg +3 -0
  5799. package/client/static/icons/RadioactiveOff.svg +3 -0
  5800. package/client/static/icons/RadioboxBlank.svg +3 -0
  5801. package/client/static/icons/RadioboxIndeterminateVariant.svg +3 -0
  5802. package/client/static/icons/RadioboxMarked.svg +3 -0
  5803. package/client/static/icons/RadiologyBox.svg +3 -0
  5804. package/client/static/icons/RadiologyBoxOutline.svg +3 -0
  5805. package/client/static/icons/Radius.svg +3 -0
  5806. package/client/static/icons/RadiusOutline.svg +3 -0
  5807. package/client/static/icons/RailroadLight.svg +3 -0
  5808. package/client/static/icons/Rake.svg +3 -0
  5809. package/client/static/icons/RaspberryPi.svg +3 -0
  5810. package/client/static/icons/Raw.svg +3 -0
  5811. package/client/static/icons/RawOff.svg +3 -0
  5812. package/client/static/icons/RayEnd.svg +3 -0
  5813. package/client/static/icons/RayEndArrow.svg +3 -0
  5814. package/client/static/icons/RayStart.svg +3 -0
  5815. package/client/static/icons/RayStartArrow.svg +3 -0
  5816. package/client/static/icons/RayStartEnd.svg +3 -0
  5817. package/client/static/icons/RayStartVertexEnd.svg +3 -0
  5818. package/client/static/icons/RayVertex.svg +3 -0
  5819. package/client/static/icons/RazorDoubleEdge.svg +3 -0
  5820. package/client/static/icons/RazorSingleEdge.svg +3 -0
  5821. package/client/static/icons/React.svg +3 -0
  5822. package/client/static/icons/Read.svg +3 -0
  5823. package/client/static/icons/Receipt.svg +3 -0
  5824. package/client/static/icons/ReceiptClock.svg +3 -0
  5825. package/client/static/icons/ReceiptClockOutline.svg +3 -0
  5826. package/client/static/icons/ReceiptOutline.svg +3 -0
  5827. package/client/static/icons/ReceiptSend.svg +3 -0
  5828. package/client/static/icons/ReceiptSendOutline.svg +3 -0
  5829. package/client/static/icons/ReceiptText.svg +3 -0
  5830. package/client/static/icons/ReceiptTextArrowLeft.svg +3 -0
  5831. package/client/static/icons/ReceiptTextArrowLeftOutline.svg +3 -0
  5832. package/client/static/icons/ReceiptTextArrowRight.svg +3 -0
  5833. package/client/static/icons/ReceiptTextArrowRightOutline.svg +3 -0
  5834. package/client/static/icons/ReceiptTextCheck.svg +3 -0
  5835. package/client/static/icons/ReceiptTextCheckOutline.svg +3 -0
  5836. package/client/static/icons/ReceiptTextClock.svg +3 -0
  5837. package/client/static/icons/ReceiptTextClockOutline.svg +3 -0
  5838. package/client/static/icons/ReceiptTextEdit.svg +3 -0
  5839. package/client/static/icons/ReceiptTextEditOutline.svg +3 -0
  5840. package/client/static/icons/ReceiptTextMinus.svg +3 -0
  5841. package/client/static/icons/ReceiptTextMinusOutline.svg +3 -0
  5842. package/client/static/icons/ReceiptTextOutline.svg +3 -0
  5843. package/client/static/icons/ReceiptTextPlus.svg +3 -0
  5844. package/client/static/icons/ReceiptTextPlusOutline.svg +3 -0
  5845. package/client/static/icons/ReceiptTextRemove.svg +3 -0
  5846. package/client/static/icons/ReceiptTextRemoveOutline.svg +3 -0
  5847. package/client/static/icons/ReceiptTextSend.svg +3 -0
  5848. package/client/static/icons/ReceiptTextSendOutline.svg +3 -0
  5849. package/client/static/icons/Record.svg +3 -0
  5850. package/client/static/icons/RecordCircle.svg +3 -0
  5851. package/client/static/icons/RecordCircleOutline.svg +3 -0
  5852. package/client/static/icons/RecordPlayer.svg +3 -0
  5853. package/client/static/icons/RecordRec.svg +3 -0
  5854. package/client/static/icons/Rectangle.svg +3 -0
  5855. package/client/static/icons/RectangleOutline.svg +3 -0
  5856. package/client/static/icons/Recycle.svg +3 -0
  5857. package/client/static/icons/RecycleVariant.svg +3 -0
  5858. package/client/static/icons/Reddit.svg +3 -0
  5859. package/client/static/icons/Redhat.svg +3 -0
  5860. package/client/static/icons/Redo.svg +3 -0
  5861. package/client/static/icons/RedoVariant.svg +3 -0
  5862. package/client/static/icons/ReflectHorizontal.svg +3 -0
  5863. package/client/static/icons/ReflectVertical.svg +3 -0
  5864. package/client/static/icons/Refresh.svg +3 -0
  5865. package/client/static/icons/RefreshAuto.svg +3 -0
  5866. package/client/static/icons/RefreshCircle.svg +3 -0
  5867. package/client/static/icons/Regex.svg +3 -0
  5868. package/client/static/icons/RegisteredTrademark.svg +3 -0
  5869. package/client/static/icons/Reiterate.svg +3 -0
  5870. package/client/static/icons/RelationManyToMany.svg +3 -0
  5871. package/client/static/icons/RelationManyToOne.svg +3 -0
  5872. package/client/static/icons/RelationManyToOneOrMany.svg +3 -0
  5873. package/client/static/icons/RelationManyToOnlyOne.svg +3 -0
  5874. package/client/static/icons/RelationManyToZeroOrMany.svg +3 -0
  5875. package/client/static/icons/RelationManyToZeroOrOne.svg +3 -0
  5876. package/client/static/icons/RelationOneOrManyToMany.svg +3 -0
  5877. package/client/static/icons/RelationOneOrManyToOne.svg +3 -0
  5878. package/client/static/icons/RelationOneOrManyToOneOrMany.svg +3 -0
  5879. package/client/static/icons/RelationOneOrManyToOnlyOne.svg +3 -0
  5880. package/client/static/icons/RelationOneOrManyToZeroOrMany.svg +3 -0
  5881. package/client/static/icons/RelationOneOrManyToZeroOrOne.svg +3 -0
  5882. package/client/static/icons/RelationOneToMany.svg +3 -0
  5883. package/client/static/icons/RelationOneToOne.svg +3 -0
  5884. package/client/static/icons/RelationOneToOneOrMany.svg +3 -0
  5885. package/client/static/icons/RelationOneToOnlyOne.svg +3 -0
  5886. package/client/static/icons/RelationOneToZeroOrMany.svg +3 -0
  5887. package/client/static/icons/RelationOneToZeroOrOne.svg +3 -0
  5888. package/client/static/icons/RelationOnlyOneToMany.svg +3 -0
  5889. package/client/static/icons/RelationOnlyOneToOne.svg +3 -0
  5890. package/client/static/icons/RelationOnlyOneToOneOrMany.svg +3 -0
  5891. package/client/static/icons/RelationOnlyOneToOnlyOne.svg +3 -0
  5892. package/client/static/icons/RelationOnlyOneToZeroOrMany.svg +3 -0
  5893. package/client/static/icons/RelationOnlyOneToZeroOrOne.svg +3 -0
  5894. package/client/static/icons/RelationZeroOrManyToMany.svg +3 -0
  5895. package/client/static/icons/RelationZeroOrManyToOne.svg +3 -0
  5896. package/client/static/icons/RelationZeroOrManyToOneOrMany.svg +3 -0
  5897. package/client/static/icons/RelationZeroOrManyToOnlyOne.svg +3 -0
  5898. package/client/static/icons/RelationZeroOrManyToZeroOrMany.svg +3 -0
  5899. package/client/static/icons/RelationZeroOrManyToZeroOrOne.svg +3 -0
  5900. package/client/static/icons/RelationZeroOrOneToMany.svg +3 -0
  5901. package/client/static/icons/RelationZeroOrOneToOne.svg +3 -0
  5902. package/client/static/icons/RelationZeroOrOneToOneOrMany.svg +3 -0
  5903. package/client/static/icons/RelationZeroOrOneToOnlyOne.svg +3 -0
  5904. package/client/static/icons/RelationZeroOrOneToZeroOrMany.svg +3 -0
  5905. package/client/static/icons/RelationZeroOrOneToZeroOrOne.svg +3 -0
  5906. package/client/static/icons/RelativeScale.svg +3 -0
  5907. package/client/static/icons/Reload.svg +3 -0
  5908. package/client/static/icons/ReloadAlert.svg +3 -0
  5909. package/client/static/icons/Reminder.svg +3 -0
  5910. package/client/static/icons/Remote.svg +3 -0
  5911. package/client/static/icons/RemoteDesktop.svg +3 -0
  5912. package/client/static/icons/RemoteOff.svg +3 -0
  5913. package/client/static/icons/RemoteTv.svg +3 -0
  5914. package/client/static/icons/RemoteTvOff.svg +3 -0
  5915. package/client/static/icons/Rename.svg +3 -0
  5916. package/client/static/icons/RenameBox.svg +3 -0
  5917. package/client/static/icons/RenameBoxOutline.svg +3 -0
  5918. package/client/static/icons/RenameOutline.svg +3 -0
  5919. package/client/static/icons/ReorderHorizontal.svg +3 -0
  5920. package/client/static/icons/ReorderVertical.svg +3 -0
  5921. package/client/static/icons/Repeat.svg +3 -0
  5922. package/client/static/icons/RepeatOff.svg +3 -0
  5923. package/client/static/icons/RepeatOnce.svg +3 -0
  5924. package/client/static/icons/RepeatVariant.svg +3 -0
  5925. package/client/static/icons/Replay.svg +3 -0
  5926. package/client/static/icons/Reply.svg +3 -0
  5927. package/client/static/icons/ReplyAll.svg +3 -0
  5928. package/client/static/icons/ReplyAllOutline.svg +3 -0
  5929. package/client/static/icons/ReplyCircle.svg +3 -0
  5930. package/client/static/icons/ReplyOutline.svg +3 -0
  5931. package/client/static/icons/Reproduction.svg +3 -0
  5932. package/client/static/icons/Resistor.svg +3 -0
  5933. package/client/static/icons/ResistorNodes.svg +3 -0
  5934. package/client/static/icons/Resize.svg +3 -0
  5935. package/client/static/icons/ResizeBottomRight.svg +3 -0
  5936. package/client/static/icons/Responsive.svg +3 -0
  5937. package/client/static/icons/Restart.svg +3 -0
  5938. package/client/static/icons/RestartAlert.svg +3 -0
  5939. package/client/static/icons/RestartOff.svg +3 -0
  5940. package/client/static/icons/Restore.svg +3 -0
  5941. package/client/static/icons/RestoreAlert.svg +3 -0
  5942. package/client/static/icons/Rewind.svg +3 -0
  5943. package/client/static/icons/Rewind10.svg +3 -0
  5944. package/client/static/icons/Rewind15.svg +3 -0
  5945. package/client/static/icons/Rewind30.svg +3 -0
  5946. package/client/static/icons/Rewind45.svg +3 -0
  5947. package/client/static/icons/Rewind5.svg +3 -0
  5948. package/client/static/icons/Rewind60.svg +3 -0
  5949. package/client/static/icons/RewindOutline.svg +3 -0
  5950. package/client/static/icons/Rhombus.svg +3 -0
  5951. package/client/static/icons/RhombusMedium.svg +3 -0
  5952. package/client/static/icons/RhombusMediumOutline.svg +3 -0
  5953. package/client/static/icons/RhombusOutline.svg +3 -0
  5954. package/client/static/icons/RhombusSplit.svg +3 -0
  5955. package/client/static/icons/RhombusSplitOutline.svg +3 -0
  5956. package/client/static/icons/Ribbon.svg +3 -0
  5957. package/client/static/icons/Rice.svg +3 -0
  5958. package/client/static/icons/Rickshaw.svg +3 -0
  5959. package/client/static/icons/RickshawElectric.svg +3 -0
  5960. package/client/static/icons/Ring.svg +3 -0
  5961. package/client/static/icons/Rivet.svg +3 -0
  5962. package/client/static/icons/Road.svg +3 -0
  5963. package/client/static/icons/RoadVariant.svg +3 -0
  5964. package/client/static/icons/Robber.svg +3 -0
  5965. package/client/static/icons/Robot.svg +3 -0
  5966. package/client/static/icons/RobotAngry.svg +3 -0
  5967. package/client/static/icons/RobotAngryOutline.svg +3 -0
  5968. package/client/static/icons/RobotConfused.svg +3 -0
  5969. package/client/static/icons/RobotConfusedOutline.svg +3 -0
  5970. package/client/static/icons/RobotDead.svg +3 -0
  5971. package/client/static/icons/RobotDeadOutline.svg +3 -0
  5972. package/client/static/icons/RobotExcited.svg +3 -0
  5973. package/client/static/icons/RobotExcitedOutline.svg +3 -0
  5974. package/client/static/icons/RobotHappy.svg +3 -0
  5975. package/client/static/icons/RobotHappyOutline.svg +3 -0
  5976. package/client/static/icons/RobotIndustrial.svg +3 -0
  5977. package/client/static/icons/RobotIndustrialOutline.svg +3 -0
  5978. package/client/static/icons/RobotLove.svg +3 -0
  5979. package/client/static/icons/RobotLoveOutline.svg +3 -0
  5980. package/client/static/icons/RobotMower.svg +3 -0
  5981. package/client/static/icons/RobotMowerOutline.svg +3 -0
  5982. package/client/static/icons/RobotOff.svg +3 -0
  5983. package/client/static/icons/RobotOffOutline.svg +3 -0
  5984. package/client/static/icons/RobotOutline.svg +3 -0
  5985. package/client/static/icons/RobotVacuum.svg +3 -0
  5986. package/client/static/icons/RobotVacuumAlert.svg +3 -0
  5987. package/client/static/icons/RobotVacuumOff.svg +3 -0
  5988. package/client/static/icons/RobotVacuumVariant.svg +3 -0
  5989. package/client/static/icons/RobotVacuumVariantAlert.svg +3 -0
  5990. package/client/static/icons/RobotVacuumVariantOff.svg +3 -0
  5991. package/client/static/icons/Rocket.svg +3 -0
  5992. package/client/static/icons/RocketLaunch.svg +3 -0
  5993. package/client/static/icons/RocketLaunchOutline.svg +3 -0
  5994. package/client/static/icons/RocketOutline.svg +3 -0
  5995. package/client/static/icons/Rodent.svg +3 -0
  5996. package/client/static/icons/RollerShade.svg +3 -0
  5997. package/client/static/icons/RollerShadeClosed.svg +3 -0
  5998. package/client/static/icons/RollerSkate.svg +3 -0
  5999. package/client/static/icons/RollerSkateOff.svg +3 -0
  6000. package/client/static/icons/Rollerblade.svg +3 -0
  6001. package/client/static/icons/RollerbladeOff.svg +3 -0
  6002. package/client/static/icons/Rollupjs.svg +3 -0
  6003. package/client/static/icons/Rolodex.svg +3 -0
  6004. package/client/static/icons/RolodexOutline.svg +3 -0
  6005. package/client/static/icons/RomanNumeral1.svg +3 -0
  6006. package/client/static/icons/RomanNumeral10.svg +3 -0
  6007. package/client/static/icons/RomanNumeral2.svg +3 -0
  6008. package/client/static/icons/RomanNumeral3.svg +3 -0
  6009. package/client/static/icons/RomanNumeral4.svg +3 -0
  6010. package/client/static/icons/RomanNumeral5.svg +3 -0
  6011. package/client/static/icons/RomanNumeral6.svg +3 -0
  6012. package/client/static/icons/RomanNumeral7.svg +3 -0
  6013. package/client/static/icons/RomanNumeral8.svg +3 -0
  6014. package/client/static/icons/RomanNumeral9.svg +3 -0
  6015. package/client/static/icons/RoomService.svg +3 -0
  6016. package/client/static/icons/RoomServiceOutline.svg +3 -0
  6017. package/client/static/icons/Rotate360.svg +3 -0
  6018. package/client/static/icons/Rotate3d.svg +3 -0
  6019. package/client/static/icons/Rotate3dVariant.svg +3 -0
  6020. package/client/static/icons/RotateLeft.svg +3 -0
  6021. package/client/static/icons/RotateLeftVariant.svg +3 -0
  6022. package/client/static/icons/RotateOrbit.svg +3 -0
  6023. package/client/static/icons/RotateRight.svg +3 -0
  6024. package/client/static/icons/RotateRightVariant.svg +3 -0
  6025. package/client/static/icons/RoundedCorner.svg +3 -0
  6026. package/client/static/icons/Router.svg +3 -0
  6027. package/client/static/icons/RouterNetwork.svg +3 -0
  6028. package/client/static/icons/RouterNetworkWireless.svg +3 -0
  6029. package/client/static/icons/RouterWireless.svg +3 -0
  6030. package/client/static/icons/RouterWirelessOff.svg +3 -0
  6031. package/client/static/icons/RouterWirelessSettings.svg +3 -0
  6032. package/client/static/icons/Routes.svg +3 -0
  6033. package/client/static/icons/RoutesClock.svg +3 -0
  6034. package/client/static/icons/Rowing.svg +3 -0
  6035. package/client/static/icons/Rss.svg +3 -0
  6036. package/client/static/icons/RssBox.svg +3 -0
  6037. package/client/static/icons/RssOff.svg +3 -0
  6038. package/client/static/icons/Rug.svg +3 -0
  6039. package/client/static/icons/Rugby.svg +3 -0
  6040. package/client/static/icons/Ruler.svg +3 -0
  6041. package/client/static/icons/RulerSquare.svg +3 -0
  6042. package/client/static/icons/RulerSquareCompass.svg +3 -0
  6043. package/client/static/icons/Run.svg +3 -0
  6044. package/client/static/icons/RunFast.svg +3 -0
  6045. package/client/static/icons/RvTruck.svg +3 -0
  6046. package/client/static/icons/Sack.svg +3 -0
  6047. package/client/static/icons/SackOutline.svg +3 -0
  6048. package/client/static/icons/SackPercent.svg +3 -0
  6049. package/client/static/icons/Safe.svg +3 -0
  6050. package/client/static/icons/SafeSquare.svg +3 -0
  6051. package/client/static/icons/SafeSquareOutline.svg +3 -0
  6052. package/client/static/icons/SafetyGoggles.svg +3 -0
  6053. package/client/static/icons/SailBoat.svg +3 -0
  6054. package/client/static/icons/SailBoatSink.svg +3 -0
  6055. package/client/static/icons/Sale.svg +3 -0
  6056. package/client/static/icons/SaleOutline.svg +3 -0
  6057. package/client/static/icons/Salesforce.svg +3 -0
  6058. package/client/static/icons/Sass.svg +3 -0
  6059. package/client/static/icons/Satellite.svg +3 -0
  6060. package/client/static/icons/SatelliteUplink.svg +3 -0
  6061. package/client/static/icons/SatelliteVariant.svg +3 -0
  6062. package/client/static/icons/Sausage.svg +3 -0
  6063. package/client/static/icons/SausageOff.svg +3 -0
  6064. package/client/static/icons/SawBlade.svg +3 -0
  6065. package/client/static/icons/SawtoothWave.svg +3 -0
  6066. package/client/static/icons/Saxophone.svg +3 -0
  6067. package/client/static/icons/Scale.svg +3 -0
  6068. package/client/static/icons/ScaleBalance.svg +3 -0
  6069. package/client/static/icons/ScaleBathroom.svg +3 -0
  6070. package/client/static/icons/ScaleOff.svg +3 -0
  6071. package/client/static/icons/ScaleUnbalanced.svg +3 -0
  6072. package/client/static/icons/ScanHelper.svg +3 -0
  6073. package/client/static/icons/Scanner.svg +3 -0
  6074. package/client/static/icons/ScannerOff.svg +3 -0
  6075. package/client/static/icons/ScatterPlot.svg +3 -0
  6076. package/client/static/icons/ScatterPlotOutline.svg +3 -0
  6077. package/client/static/icons/Scent.svg +3 -0
  6078. package/client/static/icons/ScentOff.svg +3 -0
  6079. package/client/static/icons/School.svg +3 -0
  6080. package/client/static/icons/SchoolOutline.svg +3 -0
  6081. package/client/static/icons/ScissorsCutting.svg +3 -0
  6082. package/client/static/icons/Scooter.svg +3 -0
  6083. package/client/static/icons/ScooterElectric.svg +3 -0
  6084. package/client/static/icons/Scoreboard.svg +3 -0
  6085. package/client/static/icons/ScoreboardOutline.svg +3 -0
  6086. package/client/static/icons/ScreenRotation.svg +3 -0
  6087. package/client/static/icons/ScreenRotationLock.svg +3 -0
  6088. package/client/static/icons/ScrewFlatTop.svg +3 -0
  6089. package/client/static/icons/ScrewLag.svg +3 -0
  6090. package/client/static/icons/ScrewMachineFlatTop.svg +3 -0
  6091. package/client/static/icons/ScrewMachineRoundTop.svg +3 -0
  6092. package/client/static/icons/ScrewRoundTop.svg +3 -0
  6093. package/client/static/icons/Screwdriver.svg +3 -0
  6094. package/client/static/icons/Script.svg +3 -0
  6095. package/client/static/icons/ScriptOutline.svg +3 -0
  6096. package/client/static/icons/ScriptText.svg +3 -0
  6097. package/client/static/icons/ScriptTextKey.svg +3 -0
  6098. package/client/static/icons/ScriptTextKeyOutline.svg +3 -0
  6099. package/client/static/icons/ScriptTextOutline.svg +3 -0
  6100. package/client/static/icons/ScriptTextPlay.svg +3 -0
  6101. package/client/static/icons/ScriptTextPlayOutline.svg +3 -0
  6102. package/client/static/icons/Sd.svg +3 -0
  6103. package/client/static/icons/Seal.svg +3 -0
  6104. package/client/static/icons/SealVariant.svg +3 -0
  6105. package/client/static/icons/SearchWeb.svg +3 -0
  6106. package/client/static/icons/Seat.svg +3 -0
  6107. package/client/static/icons/SeatFlat.svg +3 -0
  6108. package/client/static/icons/SeatFlatAngled.svg +3 -0
  6109. package/client/static/icons/SeatIndividualSuite.svg +3 -0
  6110. package/client/static/icons/SeatLegroomExtra.svg +3 -0
  6111. package/client/static/icons/SeatLegroomNormal.svg +3 -0
  6112. package/client/static/icons/SeatLegroomReduced.svg +3 -0
  6113. package/client/static/icons/SeatOutline.svg +3 -0
  6114. package/client/static/icons/SeatPassenger.svg +3 -0
  6115. package/client/static/icons/SeatReclineExtra.svg +3 -0
  6116. package/client/static/icons/SeatReclineNormal.svg +3 -0
  6117. package/client/static/icons/Seatbelt.svg +3 -0
  6118. package/client/static/icons/Security.svg +3 -0
  6119. package/client/static/icons/SecurityNetwork.svg +3 -0
  6120. package/client/static/icons/Seed.svg +3 -0
  6121. package/client/static/icons/SeedOff.svg +3 -0
  6122. package/client/static/icons/SeedOffOutline.svg +3 -0
  6123. package/client/static/icons/SeedOutline.svg +3 -0
  6124. package/client/static/icons/SeedPlus.svg +3 -0
  6125. package/client/static/icons/SeedPlusOutline.svg +3 -0
  6126. package/client/static/icons/Seesaw.svg +3 -0
  6127. package/client/static/icons/Segment.svg +3 -0
  6128. package/client/static/icons/Select.svg +3 -0
  6129. package/client/static/icons/SelectAll.svg +3 -0
  6130. package/client/static/icons/SelectArrowDown.svg +3 -0
  6131. package/client/static/icons/SelectArrowUp.svg +3 -0
  6132. package/client/static/icons/SelectColor.svg +3 -0
  6133. package/client/static/icons/SelectCompare.svg +3 -0
  6134. package/client/static/icons/SelectDrag.svg +3 -0
  6135. package/client/static/icons/SelectGroup.svg +3 -0
  6136. package/client/static/icons/SelectInverse.svg +3 -0
  6137. package/client/static/icons/SelectMarker.svg +3 -0
  6138. package/client/static/icons/SelectMultiple.svg +3 -0
  6139. package/client/static/icons/SelectMultipleMarker.svg +3 -0
  6140. package/client/static/icons/SelectOff.svg +3 -0
  6141. package/client/static/icons/SelectPlace.svg +3 -0
  6142. package/client/static/icons/SelectRemove.svg +3 -0
  6143. package/client/static/icons/SelectSearch.svg +3 -0
  6144. package/client/static/icons/Selection.svg +3 -0
  6145. package/client/static/icons/SelectionDrag.svg +3 -0
  6146. package/client/static/icons/SelectionEllipse.svg +3 -0
  6147. package/client/static/icons/SelectionEllipseArrowInside.svg +3 -0
  6148. package/client/static/icons/SelectionEllipseRemove.svg +3 -0
  6149. package/client/static/icons/SelectionMarker.svg +3 -0
  6150. package/client/static/icons/SelectionMultiple.svg +3 -0
  6151. package/client/static/icons/SelectionMultipleMarker.svg +3 -0
  6152. package/client/static/icons/SelectionOff.svg +3 -0
  6153. package/client/static/icons/SelectionRemove.svg +3 -0
  6154. package/client/static/icons/SelectionSearch.svg +3 -0
  6155. package/client/static/icons/SemanticWeb.svg +3 -0
  6156. package/client/static/icons/Send.svg +3 -0
  6157. package/client/static/icons/SendCheck.svg +3 -0
  6158. package/client/static/icons/SendCheckOutline.svg +3 -0
  6159. package/client/static/icons/SendCircle.svg +3 -0
  6160. package/client/static/icons/SendCircleOutline.svg +3 -0
  6161. package/client/static/icons/SendClock.svg +3 -0
  6162. package/client/static/icons/SendClockOutline.svg +3 -0
  6163. package/client/static/icons/SendLock.svg +3 -0
  6164. package/client/static/icons/SendLockOutline.svg +3 -0
  6165. package/client/static/icons/SendOutline.svg +3 -0
  6166. package/client/static/icons/SendVariant.svg +3 -0
  6167. package/client/static/icons/SendVariantClock.svg +3 -0
  6168. package/client/static/icons/SendVariantClockOutline.svg +3 -0
  6169. package/client/static/icons/SendVariantOutline.svg +3 -0
  6170. package/client/static/icons/SerialPort.svg +3 -0
  6171. package/client/static/icons/Server.svg +3 -0
  6172. package/client/static/icons/ServerMinus.svg +3 -0
  6173. package/client/static/icons/ServerMinusOutline.svg +3 -0
  6174. package/client/static/icons/ServerNetwork.svg +3 -0
  6175. package/client/static/icons/ServerNetworkOff.svg +3 -0
  6176. package/client/static/icons/ServerNetworkOutline.svg +3 -0
  6177. package/client/static/icons/ServerOff.svg +3 -0
  6178. package/client/static/icons/ServerOutline.svg +3 -0
  6179. package/client/static/icons/ServerPlus.svg +3 -0
  6180. package/client/static/icons/ServerPlusOutline.svg +3 -0
  6181. package/client/static/icons/ServerRemove.svg +3 -0
  6182. package/client/static/icons/ServerSecurity.svg +3 -0
  6183. package/client/static/icons/SetAll.svg +3 -0
  6184. package/client/static/icons/SetCenter.svg +3 -0
  6185. package/client/static/icons/SetCenterRight.svg +3 -0
  6186. package/client/static/icons/SetLeft.svg +3 -0
  6187. package/client/static/icons/SetLeftCenter.svg +3 -0
  6188. package/client/static/icons/SetLeftRight.svg +3 -0
  6189. package/client/static/icons/SetMerge.svg +3 -0
  6190. package/client/static/icons/SetNone.svg +3 -0
  6191. package/client/static/icons/SetRight.svg +3 -0
  6192. package/client/static/icons/SetSplit.svg +3 -0
  6193. package/client/static/icons/SetSquare.svg +3 -0
  6194. package/client/static/icons/SetTopBox.svg +3 -0
  6195. package/client/static/icons/SettingsHelper.svg +3 -0
  6196. package/client/static/icons/Shaker.svg +3 -0
  6197. package/client/static/icons/ShakerOutline.svg +3 -0
  6198. package/client/static/icons/Shape.svg +3 -0
  6199. package/client/static/icons/ShapeCirclePlus.svg +3 -0
  6200. package/client/static/icons/ShapeOutline.svg +3 -0
  6201. package/client/static/icons/ShapeOvalPlus.svg +3 -0
  6202. package/client/static/icons/ShapePlus.svg +3 -0
  6203. package/client/static/icons/ShapePlusOutline.svg +3 -0
  6204. package/client/static/icons/ShapePolygonPlus.svg +3 -0
  6205. package/client/static/icons/ShapeRectanglePlus.svg +3 -0
  6206. package/client/static/icons/ShapeSquarePlus.svg +3 -0
  6207. package/client/static/icons/ShapeSquareRoundedPlus.svg +3 -0
  6208. package/client/static/icons/Share.svg +3 -0
  6209. package/client/static/icons/ShareAll.svg +3 -0
  6210. package/client/static/icons/ShareAllOutline.svg +3 -0
  6211. package/client/static/icons/ShareCircle.svg +3 -0
  6212. package/client/static/icons/ShareOff.svg +3 -0
  6213. package/client/static/icons/ShareOffOutline.svg +3 -0
  6214. package/client/static/icons/ShareOutline.svg +3 -0
  6215. package/client/static/icons/ShareVariant.svg +3 -0
  6216. package/client/static/icons/ShareVariantOutline.svg +3 -0
  6217. package/client/static/icons/Shark.svg +3 -0
  6218. package/client/static/icons/SharkFin.svg +3 -0
  6219. package/client/static/icons/SharkFinOutline.svg +3 -0
  6220. package/client/static/icons/SharkOff.svg +3 -0
  6221. package/client/static/icons/Sheep.svg +3 -0
  6222. package/client/static/icons/Shield.svg +3 -0
  6223. package/client/static/icons/ShieldAccount.svg +3 -0
  6224. package/client/static/icons/ShieldAccountOutline.svg +3 -0
  6225. package/client/static/icons/ShieldAccountVariant.svg +3 -0
  6226. package/client/static/icons/ShieldAccountVariantOutline.svg +3 -0
  6227. package/client/static/icons/ShieldAirplane.svg +3 -0
  6228. package/client/static/icons/ShieldAirplaneOutline.svg +3 -0
  6229. package/client/static/icons/ShieldAlert.svg +3 -0
  6230. package/client/static/icons/ShieldAlertOutline.svg +3 -0
  6231. package/client/static/icons/ShieldBug.svg +3 -0
  6232. package/client/static/icons/ShieldBugOutline.svg +3 -0
  6233. package/client/static/icons/ShieldCar.svg +3 -0
  6234. package/client/static/icons/ShieldCheck.svg +3 -0
  6235. package/client/static/icons/ShieldCheckOutline.svg +3 -0
  6236. package/client/static/icons/ShieldCross.svg +3 -0
  6237. package/client/static/icons/ShieldCrossOutline.svg +3 -0
  6238. package/client/static/icons/ShieldCrown.svg +3 -0
  6239. package/client/static/icons/ShieldCrownOutline.svg +3 -0
  6240. package/client/static/icons/ShieldEdit.svg +3 -0
  6241. package/client/static/icons/ShieldEditOutline.svg +3 -0
  6242. package/client/static/icons/ShieldHalf.svg +3 -0
  6243. package/client/static/icons/ShieldHalfFull.svg +3 -0
  6244. package/client/static/icons/ShieldHome.svg +3 -0
  6245. package/client/static/icons/ShieldHomeOutline.svg +3 -0
  6246. package/client/static/icons/ShieldKey.svg +3 -0
  6247. package/client/static/icons/ShieldKeyOutline.svg +3 -0
  6248. package/client/static/icons/ShieldLinkVariant.svg +3 -0
  6249. package/client/static/icons/ShieldLinkVariantOutline.svg +3 -0
  6250. package/client/static/icons/ShieldLock.svg +3 -0
  6251. package/client/static/icons/ShieldLockOpen.svg +3 -0
  6252. package/client/static/icons/ShieldLockOpenOutline.svg +3 -0
  6253. package/client/static/icons/ShieldLockOutline.svg +3 -0
  6254. package/client/static/icons/ShieldMoon.svg +3 -0
  6255. package/client/static/icons/ShieldMoonOutline.svg +3 -0
  6256. package/client/static/icons/ShieldOff.svg +3 -0
  6257. package/client/static/icons/ShieldOffOutline.svg +3 -0
  6258. package/client/static/icons/ShieldOutline.svg +3 -0
  6259. package/client/static/icons/ShieldPlus.svg +3 -0
  6260. package/client/static/icons/ShieldPlusOutline.svg +3 -0
  6261. package/client/static/icons/ShieldRefresh.svg +3 -0
  6262. package/client/static/icons/ShieldRefreshOutline.svg +3 -0
  6263. package/client/static/icons/ShieldRemove.svg +3 -0
  6264. package/client/static/icons/ShieldRemoveOutline.svg +3 -0
  6265. package/client/static/icons/ShieldSearch.svg +3 -0
  6266. package/client/static/icons/ShieldStar.svg +3 -0
  6267. package/client/static/icons/ShieldStarOutline.svg +3 -0
  6268. package/client/static/icons/ShieldSun.svg +3 -0
  6269. package/client/static/icons/ShieldSunOutline.svg +3 -0
  6270. package/client/static/icons/ShieldSword.svg +3 -0
  6271. package/client/static/icons/ShieldSwordOutline.svg +3 -0
  6272. package/client/static/icons/ShieldSync.svg +3 -0
  6273. package/client/static/icons/ShieldSyncOutline.svg +3 -0
  6274. package/client/static/icons/Shimmer.svg +3 -0
  6275. package/client/static/icons/ShipWheel.svg +3 -0
  6276. package/client/static/icons/ShippingPallet.svg +3 -0
  6277. package/client/static/icons/ShoeBallet.svg +3 -0
  6278. package/client/static/icons/ShoeCleat.svg +3 -0
  6279. package/client/static/icons/ShoeFormal.svg +3 -0
  6280. package/client/static/icons/ShoeHeel.svg +3 -0
  6281. package/client/static/icons/ShoePrint.svg +3 -0
  6282. package/client/static/icons/ShoeSneaker.svg +3 -0
  6283. package/client/static/icons/Shopping.svg +3 -0
  6284. package/client/static/icons/ShoppingMusic.svg +3 -0
  6285. package/client/static/icons/ShoppingOutline.svg +3 -0
  6286. package/client/static/icons/ShoppingSearch.svg +3 -0
  6287. package/client/static/icons/ShoppingSearchOutline.svg +3 -0
  6288. package/client/static/icons/Shore.svg +3 -0
  6289. package/client/static/icons/Shovel.svg +3 -0
  6290. package/client/static/icons/ShovelOff.svg +3 -0
  6291. package/client/static/icons/Shower.svg +3 -0
  6292. package/client/static/icons/ShowerHead.svg +3 -0
  6293. package/client/static/icons/Shredder.svg +3 -0
  6294. package/client/static/icons/Shuffle.svg +3 -0
  6295. package/client/static/icons/ShuffleDisabled.svg +3 -0
  6296. package/client/static/icons/ShuffleVariant.svg +3 -0
  6297. package/client/static/icons/Shuriken.svg +3 -0
  6298. package/client/static/icons/Sickle.svg +3 -0
  6299. package/client/static/icons/Sigma.svg +3 -0
  6300. package/client/static/icons/SigmaLower.svg +3 -0
  6301. package/client/static/icons/SignCaution.svg +3 -0
  6302. package/client/static/icons/SignDirection.svg +3 -0
  6303. package/client/static/icons/SignDirectionMinus.svg +3 -0
  6304. package/client/static/icons/SignDirectionPlus.svg +3 -0
  6305. package/client/static/icons/SignDirectionRemove.svg +3 -0
  6306. package/client/static/icons/SignLanguage.svg +3 -0
  6307. package/client/static/icons/SignLanguageOutline.svg +3 -0
  6308. package/client/static/icons/SignPole.svg +3 -0
  6309. package/client/static/icons/SignRealEstate.svg +3 -0
  6310. package/client/static/icons/SignText.svg +3 -0
  6311. package/client/static/icons/SignYield.svg +3 -0
  6312. package/client/static/icons/Signal.svg +3 -0
  6313. package/client/static/icons/Signal2g.svg +3 -0
  6314. package/client/static/icons/Signal3g.svg +3 -0
  6315. package/client/static/icons/Signal4g.svg +3 -0
  6316. package/client/static/icons/Signal5g.svg +3 -0
  6317. package/client/static/icons/SignalCellular1.svg +3 -0
  6318. package/client/static/icons/SignalCellular2.svg +3 -0
  6319. package/client/static/icons/SignalCellular3.svg +3 -0
  6320. package/client/static/icons/SignalCellularOutline.svg +3 -0
  6321. package/client/static/icons/SignalDistanceVariant.svg +3 -0
  6322. package/client/static/icons/SignalHspa.svg +3 -0
  6323. package/client/static/icons/SignalHspaPlus.svg +3 -0
  6324. package/client/static/icons/SignalOff.svg +3 -0
  6325. package/client/static/icons/SignalVariant.svg +3 -0
  6326. package/client/static/icons/Signature.svg +3 -0
  6327. package/client/static/icons/SignatureFreehand.svg +3 -0
  6328. package/client/static/icons/SignatureImage.svg +3 -0
  6329. package/client/static/icons/SignatureText.svg +3 -0
  6330. package/client/static/icons/Silo.svg +3 -0
  6331. package/client/static/icons/SiloOutline.svg +3 -0
  6332. package/client/static/icons/Silverware.svg +3 -0
  6333. package/client/static/icons/SilverwareClean.svg +3 -0
  6334. package/client/static/icons/SilverwareFork.svg +3 -0
  6335. package/client/static/icons/SilverwareForkKnife.svg +3 -0
  6336. package/client/static/icons/SilverwareSpoon.svg +3 -0
  6337. package/client/static/icons/SilverwareVariant.svg +3 -0
  6338. package/client/static/icons/Sim.svg +3 -0
  6339. package/client/static/icons/SimAlert.svg +3 -0
  6340. package/client/static/icons/SimAlertOutline.svg +3 -0
  6341. package/client/static/icons/SimOff.svg +3 -0
  6342. package/client/static/icons/SimOffOutline.svg +3 -0
  6343. package/client/static/icons/SimOutline.svg +3 -0
  6344. package/client/static/icons/SimpleIcons.svg +3 -0
  6345. package/client/static/icons/SinaWeibo.svg +3 -0
  6346. package/client/static/icons/SineWave.svg +3 -0
  6347. package/client/static/icons/Sitemap.svg +3 -0
  6348. package/client/static/icons/SitemapOutline.svg +3 -0
  6349. package/client/static/icons/SizeL.svg +3 -0
  6350. package/client/static/icons/SizeM.svg +3 -0
  6351. package/client/static/icons/SizeS.svg +3 -0
  6352. package/client/static/icons/SizeXl.svg +3 -0
  6353. package/client/static/icons/SizeXs.svg +3 -0
  6354. package/client/static/icons/SizeXxl.svg +3 -0
  6355. package/client/static/icons/SizeXxs.svg +3 -0
  6356. package/client/static/icons/SizeXxxl.svg +3 -0
  6357. package/client/static/icons/Skate.svg +3 -0
  6358. package/client/static/icons/SkateOff.svg +3 -0
  6359. package/client/static/icons/Skateboard.svg +3 -0
  6360. package/client/static/icons/Skateboarding.svg +3 -0
  6361. package/client/static/icons/SkewLess.svg +3 -0
  6362. package/client/static/icons/SkewMore.svg +3 -0
  6363. package/client/static/icons/Ski.svg +3 -0
  6364. package/client/static/icons/SkiCrossCountry.svg +3 -0
  6365. package/client/static/icons/SkiWater.svg +3 -0
  6366. package/client/static/icons/SkipBackward.svg +3 -0
  6367. package/client/static/icons/SkipBackwardOutline.svg +3 -0
  6368. package/client/static/icons/SkipForward.svg +3 -0
  6369. package/client/static/icons/SkipForwardOutline.svg +3 -0
  6370. package/client/static/icons/SkipNext.svg +3 -0
  6371. package/client/static/icons/SkipNextCircle.svg +3 -0
  6372. package/client/static/icons/SkipNextCircleOutline.svg +3 -0
  6373. package/client/static/icons/SkipNextOutline.svg +3 -0
  6374. package/client/static/icons/SkipPrevious.svg +3 -0
  6375. package/client/static/icons/SkipPreviousCircle.svg +3 -0
  6376. package/client/static/icons/SkipPreviousCircleOutline.svg +3 -0
  6377. package/client/static/icons/SkipPreviousOutline.svg +3 -0
  6378. package/client/static/icons/Skull.svg +3 -0
  6379. package/client/static/icons/SkullCrossbones.svg +3 -0
  6380. package/client/static/icons/SkullCrossbonesOutline.svg +3 -0
  6381. package/client/static/icons/SkullOutline.svg +3 -0
  6382. package/client/static/icons/SkullScan.svg +3 -0
  6383. package/client/static/icons/SkullScanOutline.svg +3 -0
  6384. package/client/static/icons/Skype.svg +3 -0
  6385. package/client/static/icons/SkypeBusiness.svg +3 -0
  6386. package/client/static/icons/Slack.svg +3 -0
  6387. package/client/static/icons/SlashForward.svg +3 -0
  6388. package/client/static/icons/SlashForwardBox.svg +3 -0
  6389. package/client/static/icons/Sledding.svg +3 -0
  6390. package/client/static/icons/Sleep.svg +3 -0
  6391. package/client/static/icons/SleepOff.svg +3 -0
  6392. package/client/static/icons/Slide.svg +3 -0
  6393. package/client/static/icons/SlopeDownhill.svg +3 -0
  6394. package/client/static/icons/SlopeUphill.svg +3 -0
  6395. package/client/static/icons/SlotMachine.svg +3 -0
  6396. package/client/static/icons/SlotMachineOutline.svg +3 -0
  6397. package/client/static/icons/SmartCard.svg +3 -0
  6398. package/client/static/icons/SmartCardOff.svg +3 -0
  6399. package/client/static/icons/SmartCardOffOutline.svg +3 -0
  6400. package/client/static/icons/SmartCardOutline.svg +3 -0
  6401. package/client/static/icons/SmartCardReader.svg +3 -0
  6402. package/client/static/icons/SmartCardReaderOutline.svg +3 -0
  6403. package/client/static/icons/Smog.svg +3 -0
  6404. package/client/static/icons/Smoke.svg +3 -0
  6405. package/client/static/icons/SmokeDetector.svg +3 -0
  6406. package/client/static/icons/SmokeDetectorAlert.svg +3 -0
  6407. package/client/static/icons/SmokeDetectorAlertOutline.svg +3 -0
  6408. package/client/static/icons/SmokeDetectorOff.svg +3 -0
  6409. package/client/static/icons/SmokeDetectorOffOutline.svg +3 -0
  6410. package/client/static/icons/SmokeDetectorOutline.svg +3 -0
  6411. package/client/static/icons/SmokeDetectorVariant.svg +3 -0
  6412. package/client/static/icons/SmokeDetectorVariantAlert.svg +3 -0
  6413. package/client/static/icons/SmokeDetectorVariantOff.svg +3 -0
  6414. package/client/static/icons/Smoking.svg +3 -0
  6415. package/client/static/icons/SmokingOff.svg +3 -0
  6416. package/client/static/icons/SmokingPipe.svg +3 -0
  6417. package/client/static/icons/SmokingPipeOff.svg +3 -0
  6418. package/client/static/icons/Snail.svg +3 -0
  6419. package/client/static/icons/Snake.svg +3 -0
  6420. package/client/static/icons/Snapchat.svg +3 -0
  6421. package/client/static/icons/Snowboard.svg +3 -0
  6422. package/client/static/icons/Snowflake.svg +3 -0
  6423. package/client/static/icons/SnowflakeAlert.svg +3 -0
  6424. package/client/static/icons/SnowflakeCheck.svg +3 -0
  6425. package/client/static/icons/SnowflakeMelt.svg +3 -0
  6426. package/client/static/icons/SnowflakeOff.svg +3 -0
  6427. package/client/static/icons/SnowflakeThermometer.svg +3 -0
  6428. package/client/static/icons/SnowflakeVariant.svg +3 -0
  6429. package/client/static/icons/Snowman.svg +3 -0
  6430. package/client/static/icons/Snowmobile.svg +3 -0
  6431. package/client/static/icons/Snowshoeing.svg +3 -0
  6432. package/client/static/icons/Soccer.svg +3 -0
  6433. package/client/static/icons/SoccerField.svg +3 -0
  6434. package/client/static/icons/SocialDistance2Meters.svg +3 -0
  6435. package/client/static/icons/SocialDistance6Feet.svg +3 -0
  6436. package/client/static/icons/Sofa.svg +3 -0
  6437. package/client/static/icons/SofaOutline.svg +3 -0
  6438. package/client/static/icons/SofaSingle.svg +3 -0
  6439. package/client/static/icons/SofaSingleOutline.svg +3 -0
  6440. package/client/static/icons/SolarPanel.svg +3 -0
  6441. package/client/static/icons/SolarPanelLarge.svg +3 -0
  6442. package/client/static/icons/SolarPower.svg +3 -0
  6443. package/client/static/icons/SolarPowerVariant.svg +3 -0
  6444. package/client/static/icons/SolarPowerVariantOutline.svg +3 -0
  6445. package/client/static/icons/SolderingIron.svg +3 -0
  6446. package/client/static/icons/Solid.svg +3 -0
  6447. package/client/static/icons/SonyPlaystation.svg +3 -0
  6448. package/client/static/icons/Sort.svg +3 -0
  6449. package/client/static/icons/SortAlphabeticalAscending.svg +3 -0
  6450. package/client/static/icons/SortAlphabeticalAscendingVariant.svg +3 -0
  6451. package/client/static/icons/SortAlphabeticalDescending.svg +3 -0
  6452. package/client/static/icons/SortAlphabeticalDescendingVariant.svg +3 -0
  6453. package/client/static/icons/SortAlphabeticalVariant.svg +3 -0
  6454. package/client/static/icons/SortAscending.svg +3 -0
  6455. package/client/static/icons/SortBoolAscending.svg +3 -0
  6456. package/client/static/icons/SortBoolAscendingVariant.svg +3 -0
  6457. package/client/static/icons/SortBoolDescending.svg +3 -0
  6458. package/client/static/icons/SortBoolDescendingVariant.svg +3 -0
  6459. package/client/static/icons/SortCalendarAscending.svg +3 -0
  6460. package/client/static/icons/SortCalendarDescending.svg +3 -0
  6461. package/client/static/icons/SortClockAscending.svg +3 -0
  6462. package/client/static/icons/SortClockAscendingOutline.svg +3 -0
  6463. package/client/static/icons/SortClockDescending.svg +3 -0
  6464. package/client/static/icons/SortClockDescendingOutline.svg +3 -0
  6465. package/client/static/icons/SortDescending.svg +3 -0
  6466. package/client/static/icons/SortNumericAscending.svg +3 -0
  6467. package/client/static/icons/SortNumericAscendingVariant.svg +3 -0
  6468. package/client/static/icons/SortNumericDescending.svg +3 -0
  6469. package/client/static/icons/SortNumericDescendingVariant.svg +3 -0
  6470. package/client/static/icons/SortNumericVariant.svg +3 -0
  6471. package/client/static/icons/SortReverseVariant.svg +3 -0
  6472. package/client/static/icons/SortVariant.svg +3 -0
  6473. package/client/static/icons/SortVariantLock.svg +3 -0
  6474. package/client/static/icons/SortVariantLockOpen.svg +3 -0
  6475. package/client/static/icons/SortVariantOff.svg +3 -0
  6476. package/client/static/icons/SortVariantRemove.svg +3 -0
  6477. package/client/static/icons/Soundbar.svg +3 -0
  6478. package/client/static/icons/Soundcloud.svg +3 -0
  6479. package/client/static/icons/SourceBranch.svg +3 -0
  6480. package/client/static/icons/SourceBranchCheck.svg +3 -0
  6481. package/client/static/icons/SourceBranchMinus.svg +3 -0
  6482. package/client/static/icons/SourceBranchPlus.svg +3 -0
  6483. package/client/static/icons/SourceBranchRefresh.svg +3 -0
  6484. package/client/static/icons/SourceBranchRemove.svg +3 -0
  6485. package/client/static/icons/SourceBranchSync.svg +3 -0
  6486. package/client/static/icons/SourceCommit.svg +3 -0
  6487. package/client/static/icons/SourceCommitEnd.svg +3 -0
  6488. package/client/static/icons/SourceCommitEndLocal.svg +3 -0
  6489. package/client/static/icons/SourceCommitLocal.svg +3 -0
  6490. package/client/static/icons/SourceCommitNextLocal.svg +3 -0
  6491. package/client/static/icons/SourceCommitStart.svg +3 -0
  6492. package/client/static/icons/SourceCommitStartNextLocal.svg +3 -0
  6493. package/client/static/icons/SourceFork.svg +3 -0
  6494. package/client/static/icons/SourceMerge.svg +3 -0
  6495. package/client/static/icons/SourcePull.svg +3 -0
  6496. package/client/static/icons/SourceRepository.svg +3 -0
  6497. package/client/static/icons/SourceRepositoryMultiple.svg +3 -0
  6498. package/client/static/icons/SoySauce.svg +3 -0
  6499. package/client/static/icons/SoySauceOff.svg +3 -0
  6500. package/client/static/icons/Spa.svg +3 -0
  6501. package/client/static/icons/SpaOutline.svg +3 -0
  6502. package/client/static/icons/SpaceInvaders.svg +3 -0
  6503. package/client/static/icons/SpaceStation.svg +3 -0
  6504. package/client/static/icons/Spade.svg +3 -0
  6505. package/client/static/icons/Speaker.svg +3 -0
  6506. package/client/static/icons/SpeakerBluetooth.svg +3 -0
  6507. package/client/static/icons/SpeakerMessage.svg +3 -0
  6508. package/client/static/icons/SpeakerMultiple.svg +3 -0
  6509. package/client/static/icons/SpeakerOff.svg +3 -0
  6510. package/client/static/icons/SpeakerPause.svg +3 -0
  6511. package/client/static/icons/SpeakerPlay.svg +3 -0
  6512. package/client/static/icons/SpeakerStop.svg +3 -0
  6513. package/client/static/icons/SpeakerWireless.svg +3 -0
  6514. package/client/static/icons/Spear.svg +3 -0
  6515. package/client/static/icons/Speedometer.svg +3 -0
  6516. package/client/static/icons/SpeedometerMedium.svg +3 -0
  6517. package/client/static/icons/SpeedometerSlow.svg +3 -0
  6518. package/client/static/icons/Spellcheck.svg +3 -0
  6519. package/client/static/icons/Sphere.svg +3 -0
  6520. package/client/static/icons/SphereOff.svg +3 -0
  6521. package/client/static/icons/Spider.svg +3 -0
  6522. package/client/static/icons/SpiderOutline.svg +3 -0
  6523. package/client/static/icons/SpiderThread.svg +3 -0
  6524. package/client/static/icons/SpiderWeb.svg +3 -0
  6525. package/client/static/icons/SpiritLevel.svg +3 -0
  6526. package/client/static/icons/SpoonSugar.svg +3 -0
  6527. package/client/static/icons/Spotify.svg +3 -0
  6528. package/client/static/icons/Spotlight.svg +3 -0
  6529. package/client/static/icons/SpotlightBeam.svg +3 -0
  6530. package/client/static/icons/Spray.svg +3 -0
  6531. package/client/static/icons/SprayBottle.svg +3 -0
  6532. package/client/static/icons/Sprinkler.svg +3 -0
  6533. package/client/static/icons/SprinklerFire.svg +3 -0
  6534. package/client/static/icons/SprinklerVariant.svg +3 -0
  6535. package/client/static/icons/Sprout.svg +3 -0
  6536. package/client/static/icons/SproutOutline.svg +3 -0
  6537. package/client/static/icons/Square.svg +3 -0
  6538. package/client/static/icons/SquareCircle.svg +3 -0
  6539. package/client/static/icons/SquareCircleOutline.svg +3 -0
  6540. package/client/static/icons/SquareEditOutline.svg +3 -0
  6541. package/client/static/icons/SquareMedium.svg +3 -0
  6542. package/client/static/icons/SquareMediumOutline.svg +3 -0
  6543. package/client/static/icons/SquareOff.svg +3 -0
  6544. package/client/static/icons/SquareOffOutline.svg +3 -0
  6545. package/client/static/icons/SquareOpacity.svg +3 -0
  6546. package/client/static/icons/SquareOutline.svg +3 -0
  6547. package/client/static/icons/SquareRoot.svg +3 -0
  6548. package/client/static/icons/SquareRootBox.svg +3 -0
  6549. package/client/static/icons/SquareRounded.svg +3 -0
  6550. package/client/static/icons/SquareRoundedBadge.svg +3 -0
  6551. package/client/static/icons/SquareRoundedBadgeOutline.svg +3 -0
  6552. package/client/static/icons/SquareRoundedOutline.svg +3 -0
  6553. package/client/static/icons/SquareSmall.svg +3 -0
  6554. package/client/static/icons/SquareWave.svg +3 -0
  6555. package/client/static/icons/Squeegee.svg +3 -0
  6556. package/client/static/icons/Ssh.svg +3 -0
  6557. package/client/static/icons/StackExchange.svg +3 -0
  6558. package/client/static/icons/StackOverflow.svg +3 -0
  6559. package/client/static/icons/Stackpath.svg +3 -0
  6560. package/client/static/icons/Stadium.svg +3 -0
  6561. package/client/static/icons/StadiumOutline.svg +3 -0
  6562. package/client/static/icons/StadiumVariant.svg +3 -0
  6563. package/client/static/icons/Stairs.svg +3 -0
  6564. package/client/static/icons/StairsBox.svg +3 -0
  6565. package/client/static/icons/StairsDown.svg +3 -0
  6566. package/client/static/icons/StairsUp.svg +3 -0
  6567. package/client/static/icons/Stamper.svg +3 -0
  6568. package/client/static/icons/StandardDefinition.svg +3 -0
  6569. package/client/static/icons/Star.svg +3 -0
  6570. package/client/static/icons/StarBox.svg +3 -0
  6571. package/client/static/icons/StarBoxMultiple.svg +3 -0
  6572. package/client/static/icons/StarBoxMultipleOutline.svg +3 -0
  6573. package/client/static/icons/StarBoxOutline.svg +3 -0
  6574. package/client/static/icons/StarCheck.svg +3 -0
  6575. package/client/static/icons/StarCheckOutline.svg +3 -0
  6576. package/client/static/icons/StarCircle.svg +3 -0
  6577. package/client/static/icons/StarCircleOutline.svg +3 -0
  6578. package/client/static/icons/StarCog.svg +3 -0
  6579. package/client/static/icons/StarCogOutline.svg +3 -0
  6580. package/client/static/icons/StarCrescent.svg +3 -0
  6581. package/client/static/icons/StarDavid.svg +3 -0
  6582. package/client/static/icons/StarFace.svg +3 -0
  6583. package/client/static/icons/StarFourPoints.svg +3 -0
  6584. package/client/static/icons/StarFourPointsBox.svg +3 -0
  6585. package/client/static/icons/StarFourPointsBoxOutline.svg +3 -0
  6586. package/client/static/icons/StarFourPointsCircle.svg +3 -0
  6587. package/client/static/icons/StarFourPointsCircleOutline.svg +3 -0
  6588. package/client/static/icons/StarFourPointsOutline.svg +3 -0
  6589. package/client/static/icons/StarFourPointsSmall.svg +3 -0
  6590. package/client/static/icons/StarHalf.svg +3 -0
  6591. package/client/static/icons/StarHalfFull.svg +3 -0
  6592. package/client/static/icons/StarMinus.svg +3 -0
  6593. package/client/static/icons/StarMinusOutline.svg +3 -0
  6594. package/client/static/icons/StarOff.svg +3 -0
  6595. package/client/static/icons/StarOffOutline.svg +3 -0
  6596. package/client/static/icons/StarOutline.svg +3 -0
  6597. package/client/static/icons/StarPlus.svg +3 -0
  6598. package/client/static/icons/StarPlusOutline.svg +3 -0
  6599. package/client/static/icons/StarRemove.svg +3 -0
  6600. package/client/static/icons/StarRemoveOutline.svg +3 -0
  6601. package/client/static/icons/StarSettings.svg +3 -0
  6602. package/client/static/icons/StarSettingsOutline.svg +3 -0
  6603. package/client/static/icons/StarShooting.svg +3 -0
  6604. package/client/static/icons/StarShootingOutline.svg +3 -0
  6605. package/client/static/icons/StarThreePoints.svg +3 -0
  6606. package/client/static/icons/StarThreePointsOutline.svg +3 -0
  6607. package/client/static/icons/StateMachine.svg +3 -0
  6608. package/client/static/icons/Steam.svg +3 -0
  6609. package/client/static/icons/Steering.svg +3 -0
  6610. package/client/static/icons/SteeringOff.svg +3 -0
  6611. package/client/static/icons/StepBackward.svg +3 -0
  6612. package/client/static/icons/StepBackward2.svg +3 -0
  6613. package/client/static/icons/StepForward.svg +3 -0
  6614. package/client/static/icons/StepForward2.svg +3 -0
  6615. package/client/static/icons/Stethoscope.svg +3 -0
  6616. package/client/static/icons/Sticker.svg +3 -0
  6617. package/client/static/icons/StickerAlert.svg +3 -0
  6618. package/client/static/icons/StickerAlertOutline.svg +3 -0
  6619. package/client/static/icons/StickerCheck.svg +3 -0
  6620. package/client/static/icons/StickerCheckOutline.svg +3 -0
  6621. package/client/static/icons/StickerCircleOutline.svg +3 -0
  6622. package/client/static/icons/StickerEmoji.svg +3 -0
  6623. package/client/static/icons/StickerMinus.svg +3 -0
  6624. package/client/static/icons/StickerMinusOutline.svg +3 -0
  6625. package/client/static/icons/StickerOutline.svg +3 -0
  6626. package/client/static/icons/StickerPlus.svg +3 -0
  6627. package/client/static/icons/StickerPlusOutline.svg +3 -0
  6628. package/client/static/icons/StickerRemove.svg +3 -0
  6629. package/client/static/icons/StickerRemoveOutline.svg +3 -0
  6630. package/client/static/icons/StickerText.svg +3 -0
  6631. package/client/static/icons/StickerTextOutline.svg +3 -0
  6632. package/client/static/icons/Stocking.svg +3 -0
  6633. package/client/static/icons/Stomach.svg +3 -0
  6634. package/client/static/icons/Stool.svg +3 -0
  6635. package/client/static/icons/StoolOutline.svg +3 -0
  6636. package/client/static/icons/Stop.svg +3 -0
  6637. package/client/static/icons/StopCircle.svg +3 -0
  6638. package/client/static/icons/StopCircleOutline.svg +3 -0
  6639. package/client/static/icons/StorageTank.svg +3 -0
  6640. package/client/static/icons/StorageTankOutline.svg +3 -0
  6641. package/client/static/icons/Store.svg +3 -0
  6642. package/client/static/icons/Store24Hour.svg +3 -0
  6643. package/client/static/icons/StoreAlert.svg +3 -0
  6644. package/client/static/icons/StoreAlertOutline.svg +3 -0
  6645. package/client/static/icons/StoreCheck.svg +3 -0
  6646. package/client/static/icons/StoreCheckOutline.svg +3 -0
  6647. package/client/static/icons/StoreClock.svg +3 -0
  6648. package/client/static/icons/StoreClockOutline.svg +3 -0
  6649. package/client/static/icons/StoreCog.svg +3 -0
  6650. package/client/static/icons/StoreCogOutline.svg +3 -0
  6651. package/client/static/icons/StoreEdit.svg +3 -0
  6652. package/client/static/icons/StoreEditOutline.svg +3 -0
  6653. package/client/static/icons/StoreMarker.svg +3 -0
  6654. package/client/static/icons/StoreMarkerOutline.svg +3 -0
  6655. package/client/static/icons/StoreMinus.svg +3 -0
  6656. package/client/static/icons/StoreMinusOutline.svg +3 -0
  6657. package/client/static/icons/StoreOff.svg +3 -0
  6658. package/client/static/icons/StoreOffOutline.svg +3 -0
  6659. package/client/static/icons/StoreOutline.svg +3 -0
  6660. package/client/static/icons/StorePlus.svg +3 -0
  6661. package/client/static/icons/StorePlusOutline.svg +3 -0
  6662. package/client/static/icons/StoreRemove.svg +3 -0
  6663. package/client/static/icons/StoreRemoveOutline.svg +3 -0
  6664. package/client/static/icons/StoreSearch.svg +3 -0
  6665. package/client/static/icons/StoreSearchOutline.svg +3 -0
  6666. package/client/static/icons/StoreSettings.svg +3 -0
  6667. package/client/static/icons/StoreSettingsOutline.svg +3 -0
  6668. package/client/static/icons/Storefront.svg +3 -0
  6669. package/client/static/icons/StorefrontCheck.svg +3 -0
  6670. package/client/static/icons/StorefrontCheckOutline.svg +3 -0
  6671. package/client/static/icons/StorefrontEdit.svg +3 -0
  6672. package/client/static/icons/StorefrontEditOutline.svg +3 -0
  6673. package/client/static/icons/StorefrontMinus.svg +3 -0
  6674. package/client/static/icons/StorefrontMinusOutline.svg +3 -0
  6675. package/client/static/icons/StorefrontOutline.svg +3 -0
  6676. package/client/static/icons/StorefrontPlus.svg +3 -0
  6677. package/client/static/icons/StorefrontPlusOutline.svg +3 -0
  6678. package/client/static/icons/StorefrontRemove.svg +3 -0
  6679. package/client/static/icons/StorefrontRemoveOutline.svg +3 -0
  6680. package/client/static/icons/Stove.svg +3 -0
  6681. package/client/static/icons/Strategy.svg +3 -0
  6682. package/client/static/icons/StretchToPage.svg +3 -0
  6683. package/client/static/icons/StretchToPageOutline.svg +3 -0
  6684. package/client/static/icons/StringLights.svg +3 -0
  6685. package/client/static/icons/StringLightsOff.svg +3 -0
  6686. package/client/static/icons/SubdirectoryArrowLeft.svg +3 -0
  6687. package/client/static/icons/SubdirectoryArrowRight.svg +3 -0
  6688. package/client/static/icons/Submarine.svg +3 -0
  6689. package/client/static/icons/Subtitles.svg +3 -0
  6690. package/client/static/icons/SubtitlesOutline.svg +3 -0
  6691. package/client/static/icons/Subway.svg +3 -0
  6692. package/client/static/icons/SubwayAlertVariant.svg +3 -0
  6693. package/client/static/icons/SubwayVariant.svg +3 -0
  6694. package/client/static/icons/Summit.svg +3 -0
  6695. package/client/static/icons/SunAngle.svg +3 -0
  6696. package/client/static/icons/SunAngleOutline.svg +3 -0
  6697. package/client/static/icons/SunClock.svg +3 -0
  6698. package/client/static/icons/SunClockOutline.svg +3 -0
  6699. package/client/static/icons/SunCompass.svg +3 -0
  6700. package/client/static/icons/SunSnowflake.svg +3 -0
  6701. package/client/static/icons/SunSnowflakeVariant.svg +3 -0
  6702. package/client/static/icons/SunThermometer.svg +3 -0
  6703. package/client/static/icons/SunThermometerOutline.svg +3 -0
  6704. package/client/static/icons/SunWireless.svg +3 -0
  6705. package/client/static/icons/SunWirelessOutline.svg +3 -0
  6706. package/client/static/icons/Sunglasses.svg +3 -0
  6707. package/client/static/icons/Surfing.svg +3 -0
  6708. package/client/static/icons/SurroundSound.svg +3 -0
  6709. package/client/static/icons/SurroundSound20.svg +3 -0
  6710. package/client/static/icons/SurroundSound21.svg +3 -0
  6711. package/client/static/icons/SurroundSound31.svg +3 -0
  6712. package/client/static/icons/SurroundSound51.svg +3 -0
  6713. package/client/static/icons/SurroundSound512.svg +3 -0
  6714. package/client/static/icons/SurroundSound71.svg +3 -0
  6715. package/client/static/icons/Svg.svg +3 -0
  6716. package/client/static/icons/SwapHorizontal.svg +3 -0
  6717. package/client/static/icons/SwapHorizontalBold.svg +3 -0
  6718. package/client/static/icons/SwapHorizontalCircle.svg +3 -0
  6719. package/client/static/icons/SwapHorizontalCircleOutline.svg +3 -0
  6720. package/client/static/icons/SwapHorizontalHidden.svg +3 -0
  6721. package/client/static/icons/SwapHorizontalVariant.svg +3 -0
  6722. package/client/static/icons/SwapVertical.svg +3 -0
  6723. package/client/static/icons/SwapVerticalBold.svg +3 -0
  6724. package/client/static/icons/SwapVerticalCircle.svg +3 -0
  6725. package/client/static/icons/SwapVerticalCircleOutline.svg +3 -0
  6726. package/client/static/icons/SwapVerticalVariant.svg +3 -0
  6727. package/client/static/icons/Swim.svg +3 -0
  6728. package/client/static/icons/Switch.svg +3 -0
  6729. package/client/static/icons/Sword.svg +3 -0
  6730. package/client/static/icons/SwordCross.svg +3 -0
  6731. package/client/static/icons/SyllabaryHangul.svg +3 -0
  6732. package/client/static/icons/SyllabaryHiragana.svg +3 -0
  6733. package/client/static/icons/SyllabaryKatakana.svg +3 -0
  6734. package/client/static/icons/SyllabaryKatakanaHalfwidth.svg +3 -0
  6735. package/client/static/icons/Symbol.svg +3 -0
  6736. package/client/static/icons/Symfony.svg +3 -0
  6737. package/client/static/icons/Synagogue.svg +3 -0
  6738. package/client/static/icons/SynagogueOutline.svg +3 -0
  6739. package/client/static/icons/Sync.svg +3 -0
  6740. package/client/static/icons/SyncAlert.svg +3 -0
  6741. package/client/static/icons/SyncCircle.svg +3 -0
  6742. package/client/static/icons/SyncOff.svg +3 -0
  6743. package/client/static/icons/Tab.svg +3 -0
  6744. package/client/static/icons/TabMinus.svg +3 -0
  6745. package/client/static/icons/TabPlus.svg +3 -0
  6746. package/client/static/icons/TabRemove.svg +3 -0
  6747. package/client/static/icons/TabSearch.svg +3 -0
  6748. package/client/static/icons/TabUnselected.svg +3 -0
  6749. package/client/static/icons/Table.svg +3 -0
  6750. package/client/static/icons/TableAccount.svg +3 -0
  6751. package/client/static/icons/TableAlert.svg +3 -0
  6752. package/client/static/icons/TableArrowDown.svg +3 -0
  6753. package/client/static/icons/TableArrowLeft.svg +3 -0
  6754. package/client/static/icons/TableArrowRight.svg +3 -0
  6755. package/client/static/icons/TableArrowUp.svg +3 -0
  6756. package/client/static/icons/TableBorder.svg +3 -0
  6757. package/client/static/icons/TableCancel.svg +3 -0
  6758. package/client/static/icons/TableChair.svg +3 -0
  6759. package/client/static/icons/TableCheck.svg +3 -0
  6760. package/client/static/icons/TableClock.svg +3 -0
  6761. package/client/static/icons/TableCog.svg +3 -0
  6762. package/client/static/icons/TableColumn.svg +3 -0
  6763. package/client/static/icons/TableColumnPlusAfter.svg +3 -0
  6764. package/client/static/icons/TableColumnPlusBefore.svg +3 -0
  6765. package/client/static/icons/TableColumnRemove.svg +3 -0
  6766. package/client/static/icons/TableColumnWidth.svg +3 -0
  6767. package/client/static/icons/TableEdit.svg +3 -0
  6768. package/client/static/icons/TableEye.svg +3 -0
  6769. package/client/static/icons/TableEyeOff.svg +3 -0
  6770. package/client/static/icons/TableFilter.svg +3 -0
  6771. package/client/static/icons/TableFurniture.svg +3 -0
  6772. package/client/static/icons/TableHeadersEye.svg +3 -0
  6773. package/client/static/icons/TableHeadersEyeOff.svg +3 -0
  6774. package/client/static/icons/TableHeart.svg +3 -0
  6775. package/client/static/icons/TableKey.svg +3 -0
  6776. package/client/static/icons/TableLarge.svg +3 -0
  6777. package/client/static/icons/TableLargePlus.svg +3 -0
  6778. package/client/static/icons/TableLargeRemove.svg +3 -0
  6779. package/client/static/icons/TableLock.svg +3 -0
  6780. package/client/static/icons/TableMergeCells.svg +3 -0
  6781. package/client/static/icons/TableMinus.svg +3 -0
  6782. package/client/static/icons/TableMultiple.svg +3 -0
  6783. package/client/static/icons/TableNetwork.svg +3 -0
  6784. package/client/static/icons/TableOfContents.svg +3 -0
  6785. package/client/static/icons/TableOff.svg +3 -0
  6786. package/client/static/icons/TablePicnic.svg +3 -0
  6787. package/client/static/icons/TablePivot.svg +3 -0
  6788. package/client/static/icons/TablePlus.svg +3 -0
  6789. package/client/static/icons/TableQuestion.svg +3 -0
  6790. package/client/static/icons/TableRefresh.svg +3 -0
  6791. package/client/static/icons/TableRemove.svg +3 -0
  6792. package/client/static/icons/TableRow.svg +3 -0
  6793. package/client/static/icons/TableRowHeight.svg +3 -0
  6794. package/client/static/icons/TableRowPlusAfter.svg +3 -0
  6795. package/client/static/icons/TableRowPlusBefore.svg +3 -0
  6796. package/client/static/icons/TableRowRemove.svg +3 -0
  6797. package/client/static/icons/TableSearch.svg +3 -0
  6798. package/client/static/icons/TableSettings.svg +3 -0
  6799. package/client/static/icons/TableSplitCell.svg +3 -0
  6800. package/client/static/icons/TableStar.svg +3 -0
  6801. package/client/static/icons/TableSync.svg +3 -0
  6802. package/client/static/icons/TableTennis.svg +3 -0
  6803. package/client/static/icons/Tablet.svg +3 -0
  6804. package/client/static/icons/TabletCellphone.svg +3 -0
  6805. package/client/static/icons/TabletDashboard.svg +3 -0
  6806. package/client/static/icons/Taco.svg +3 -0
  6807. package/client/static/icons/Tag.svg +3 -0
  6808. package/client/static/icons/TagArrowDown.svg +3 -0
  6809. package/client/static/icons/TagArrowDownOutline.svg +3 -0
  6810. package/client/static/icons/TagArrowLeft.svg +3 -0
  6811. package/client/static/icons/TagArrowLeftOutline.svg +3 -0
  6812. package/client/static/icons/TagArrowRight.svg +3 -0
  6813. package/client/static/icons/TagArrowRightOutline.svg +3 -0
  6814. package/client/static/icons/TagArrowUp.svg +3 -0
  6815. package/client/static/icons/TagArrowUpOutline.svg +3 -0
  6816. package/client/static/icons/TagCheck.svg +3 -0
  6817. package/client/static/icons/TagCheckOutline.svg +3 -0
  6818. package/client/static/icons/TagEdit.svg +3 -0
  6819. package/client/static/icons/TagEditOutline.svg +3 -0
  6820. package/client/static/icons/TagFaces.svg +3 -0
  6821. package/client/static/icons/TagHeart.svg +3 -0
  6822. package/client/static/icons/TagHeartOutline.svg +3 -0
  6823. package/client/static/icons/TagHidden.svg +3 -0
  6824. package/client/static/icons/TagMinus.svg +3 -0
  6825. package/client/static/icons/TagMinusOutline.svg +3 -0
  6826. package/client/static/icons/TagMultiple.svg +3 -0
  6827. package/client/static/icons/TagMultipleOutline.svg +3 -0
  6828. package/client/static/icons/TagOff.svg +3 -0
  6829. package/client/static/icons/TagOffOutline.svg +3 -0
  6830. package/client/static/icons/TagOutline.svg +3 -0
  6831. package/client/static/icons/TagPlus.svg +3 -0
  6832. package/client/static/icons/TagPlusOutline.svg +3 -0
  6833. package/client/static/icons/TagRemove.svg +3 -0
  6834. package/client/static/icons/TagRemoveOutline.svg +3 -0
  6835. package/client/static/icons/TagSearch.svg +3 -0
  6836. package/client/static/icons/TagSearchOutline.svg +3 -0
  6837. package/client/static/icons/TagText.svg +3 -0
  6838. package/client/static/icons/TagTextOutline.svg +3 -0
  6839. package/client/static/icons/Tailwind.svg +3 -0
  6840. package/client/static/icons/TallyMark1.svg +3 -0
  6841. package/client/static/icons/TallyMark2.svg +3 -0
  6842. package/client/static/icons/TallyMark3.svg +3 -0
  6843. package/client/static/icons/TallyMark4.svg +3 -0
  6844. package/client/static/icons/TallyMark5.svg +3 -0
  6845. package/client/static/icons/Tangram.svg +3 -0
  6846. package/client/static/icons/Tank.svg +3 -0
  6847. package/client/static/icons/TankerTruck.svg +3 -0
  6848. package/client/static/icons/TapeDrive.svg +3 -0
  6849. package/client/static/icons/TapeMeasure.svg +3 -0
  6850. package/client/static/icons/Target.svg +3 -0
  6851. package/client/static/icons/TargetAccount.svg +3 -0
  6852. package/client/static/icons/TargetVariant.svg +3 -0
  6853. package/client/static/icons/Taxi.svg +3 -0
  6854. package/client/static/icons/Tea.svg +3 -0
  6855. package/client/static/icons/TeaOutline.svg +3 -0
  6856. package/client/static/icons/Teamviewer.svg +3 -0
  6857. package/client/static/icons/TeddyBear.svg +3 -0
  6858. package/client/static/icons/Telescope.svg +3 -0
  6859. package/client/static/icons/Television.svg +3 -0
  6860. package/client/static/icons/TelevisionAmbientLight.svg +3 -0
  6861. package/client/static/icons/TelevisionBox.svg +3 -0
  6862. package/client/static/icons/TelevisionClassic.svg +3 -0
  6863. package/client/static/icons/TelevisionClassicOff.svg +3 -0
  6864. package/client/static/icons/TelevisionGuide.svg +3 -0
  6865. package/client/static/icons/TelevisionOff.svg +3 -0
  6866. package/client/static/icons/TelevisionPause.svg +3 -0
  6867. package/client/static/icons/TelevisionPlay.svg +3 -0
  6868. package/client/static/icons/TelevisionShimmer.svg +3 -0
  6869. package/client/static/icons/TelevisionSpeaker.svg +3 -0
  6870. package/client/static/icons/TelevisionSpeakerOff.svg +3 -0
  6871. package/client/static/icons/TelevisionStop.svg +3 -0
  6872. package/client/static/icons/TemperatureCelsius.svg +3 -0
  6873. package/client/static/icons/TemperatureFahrenheit.svg +3 -0
  6874. package/client/static/icons/TemperatureKelvin.svg +3 -0
  6875. package/client/static/icons/TempleBuddhist.svg +3 -0
  6876. package/client/static/icons/TempleBuddhistOutline.svg +3 -0
  6877. package/client/static/icons/TempleHindu.svg +3 -0
  6878. package/client/static/icons/TempleHinduOutline.svg +3 -0
  6879. package/client/static/icons/Tennis.svg +3 -0
  6880. package/client/static/icons/TennisBall.svg +3 -0
  6881. package/client/static/icons/TennisBallOutline.svg +3 -0
  6882. package/client/static/icons/Tent.svg +3 -0
  6883. package/client/static/icons/Terraform.svg +3 -0
  6884. package/client/static/icons/Terrain.svg +3 -0
  6885. package/client/static/icons/TestTube.svg +3 -0
  6886. package/client/static/icons/TestTubeEmpty.svg +3 -0
  6887. package/client/static/icons/TestTubeOff.svg +3 -0
  6888. package/client/static/icons/Text.svg +3 -0
  6889. package/client/static/icons/TextAccount.svg +3 -0
  6890. package/client/static/icons/TextBox.svg +3 -0
  6891. package/client/static/icons/TextBoxCheck.svg +3 -0
  6892. package/client/static/icons/TextBoxCheckOutline.svg +3 -0
  6893. package/client/static/icons/TextBoxEdit.svg +3 -0
  6894. package/client/static/icons/TextBoxEditOutline.svg +3 -0
  6895. package/client/static/icons/TextBoxMinus.svg +3 -0
  6896. package/client/static/icons/TextBoxMinusOutline.svg +3 -0
  6897. package/client/static/icons/TextBoxMultiple.svg +3 -0
  6898. package/client/static/icons/TextBoxMultipleOutline.svg +3 -0
  6899. package/client/static/icons/TextBoxOutline.svg +3 -0
  6900. package/client/static/icons/TextBoxPlus.svg +3 -0
  6901. package/client/static/icons/TextBoxPlusOutline.svg +3 -0
  6902. package/client/static/icons/TextBoxRemove.svg +3 -0
  6903. package/client/static/icons/TextBoxRemoveOutline.svg +3 -0
  6904. package/client/static/icons/TextBoxSearch.svg +3 -0
  6905. package/client/static/icons/TextBoxSearchOutline.svg +3 -0
  6906. package/client/static/icons/TextLong.svg +3 -0
  6907. package/client/static/icons/TextRecognition.svg +3 -0
  6908. package/client/static/icons/TextSearch.svg +3 -0
  6909. package/client/static/icons/TextSearchVariant.svg +3 -0
  6910. package/client/static/icons/TextShadow.svg +3 -0
  6911. package/client/static/icons/TextShort.svg +3 -0
  6912. package/client/static/icons/Texture.svg +3 -0
  6913. package/client/static/icons/TextureBox.svg +3 -0
  6914. package/client/static/icons/Theater.svg +3 -0
  6915. package/client/static/icons/ThemeLightDark.svg +3 -0
  6916. package/client/static/icons/Thermometer.svg +3 -0
  6917. package/client/static/icons/ThermometerAlert.svg +3 -0
  6918. package/client/static/icons/ThermometerAuto.svg +3 -0
  6919. package/client/static/icons/ThermometerBluetooth.svg +3 -0
  6920. package/client/static/icons/ThermometerCheck.svg +3 -0
  6921. package/client/static/icons/ThermometerChevronDown.svg +3 -0
  6922. package/client/static/icons/ThermometerChevronUp.svg +3 -0
  6923. package/client/static/icons/ThermometerHigh.svg +3 -0
  6924. package/client/static/icons/ThermometerLines.svg +3 -0
  6925. package/client/static/icons/ThermometerLow.svg +3 -0
  6926. package/client/static/icons/ThermometerMinus.svg +3 -0
  6927. package/client/static/icons/ThermometerOff.svg +3 -0
  6928. package/client/static/icons/ThermometerPlus.svg +3 -0
  6929. package/client/static/icons/ThermometerProbe.svg +3 -0
  6930. package/client/static/icons/ThermometerProbeOff.svg +3 -0
  6931. package/client/static/icons/ThermometerWater.svg +3 -0
  6932. package/client/static/icons/Thermostat.svg +3 -0
  6933. package/client/static/icons/ThermostatAuto.svg +3 -0
  6934. package/client/static/icons/ThermostatBox.svg +3 -0
  6935. package/client/static/icons/ThermostatBoxAuto.svg +3 -0
  6936. package/client/static/icons/ThermostatCog.svg +3 -0
  6937. package/client/static/icons/ThoughtBubble.svg +3 -0
  6938. package/client/static/icons/ThoughtBubbleOutline.svg +3 -0
  6939. package/client/static/icons/ThumbDown.svg +3 -0
  6940. package/client/static/icons/ThumbDownOutline.svg +3 -0
  6941. package/client/static/icons/ThumbUp.svg +3 -0
  6942. package/client/static/icons/ThumbUpOutline.svg +3 -0
  6943. package/client/static/icons/ThumbsUpDown.svg +3 -0
  6944. package/client/static/icons/ThumbsUpDownOutline.svg +3 -0
  6945. package/client/static/icons/Ticket.svg +3 -0
  6946. package/client/static/icons/TicketAccount.svg +3 -0
  6947. package/client/static/icons/TicketConfirmation.svg +3 -0
  6948. package/client/static/icons/TicketConfirmationOutline.svg +3 -0
  6949. package/client/static/icons/TicketOutline.svg +3 -0
  6950. package/client/static/icons/TicketPercent.svg +3 -0
  6951. package/client/static/icons/TicketPercentOutline.svg +3 -0
  6952. package/client/static/icons/Tie.svg +3 -0
  6953. package/client/static/icons/Tilde.svg +3 -0
  6954. package/client/static/icons/TildeOff.svg +3 -0
  6955. package/client/static/icons/Timelapse.svg +3 -0
  6956. package/client/static/icons/Timeline.svg +3 -0
  6957. package/client/static/icons/TimelineAlert.svg +3 -0
  6958. package/client/static/icons/TimelineAlertOutline.svg +3 -0
  6959. package/client/static/icons/TimelineCheck.svg +3 -0
  6960. package/client/static/icons/TimelineCheckOutline.svg +3 -0
  6961. package/client/static/icons/TimelineClock.svg +3 -0
  6962. package/client/static/icons/TimelineClockOutline.svg +3 -0
  6963. package/client/static/icons/TimelineMinus.svg +3 -0
  6964. package/client/static/icons/TimelineMinusOutline.svg +3 -0
  6965. package/client/static/icons/TimelineOutline.svg +3 -0
  6966. package/client/static/icons/TimelinePlus.svg +3 -0
  6967. package/client/static/icons/TimelinePlusOutline.svg +3 -0
  6968. package/client/static/icons/TimelineQuestion.svg +3 -0
  6969. package/client/static/icons/TimelineQuestionOutline.svg +3 -0
  6970. package/client/static/icons/TimelineRemove.svg +3 -0
  6971. package/client/static/icons/TimelineRemoveOutline.svg +3 -0
  6972. package/client/static/icons/TimelineText.svg +3 -0
  6973. package/client/static/icons/TimelineTextOutline.svg +3 -0
  6974. package/client/static/icons/Timer.svg +3 -0
  6975. package/client/static/icons/Timer10.svg +3 -0
  6976. package/client/static/icons/Timer3.svg +3 -0
  6977. package/client/static/icons/TimerAlert.svg +3 -0
  6978. package/client/static/icons/TimerAlertOutline.svg +3 -0
  6979. package/client/static/icons/TimerCancel.svg +3 -0
  6980. package/client/static/icons/TimerCancelOutline.svg +3 -0
  6981. package/client/static/icons/TimerCheck.svg +3 -0
  6982. package/client/static/icons/TimerCheckOutline.svg +3 -0
  6983. package/client/static/icons/TimerCog.svg +3 -0
  6984. package/client/static/icons/TimerCogOutline.svg +3 -0
  6985. package/client/static/icons/TimerEdit.svg +3 -0
  6986. package/client/static/icons/TimerEditOutline.svg +3 -0
  6987. package/client/static/icons/TimerLock.svg +3 -0
  6988. package/client/static/icons/TimerLockOpen.svg +3 -0
  6989. package/client/static/icons/TimerLockOpenOutline.svg +3 -0
  6990. package/client/static/icons/TimerLockOutline.svg +3 -0
  6991. package/client/static/icons/TimerMarker.svg +3 -0
  6992. package/client/static/icons/TimerMarkerOutline.svg +3 -0
  6993. package/client/static/icons/TimerMinus.svg +3 -0
  6994. package/client/static/icons/TimerMinusOutline.svg +3 -0
  6995. package/client/static/icons/TimerMusic.svg +3 -0
  6996. package/client/static/icons/TimerMusicOutline.svg +3 -0
  6997. package/client/static/icons/TimerOff.svg +3 -0
  6998. package/client/static/icons/TimerOffOutline.svg +3 -0
  6999. package/client/static/icons/TimerOutline.svg +3 -0
  7000. package/client/static/icons/TimerPause.svg +3 -0
  7001. package/client/static/icons/TimerPauseOutline.svg +3 -0
  7002. package/client/static/icons/TimerPlay.svg +3 -0
  7003. package/client/static/icons/TimerPlayOutline.svg +3 -0
  7004. package/client/static/icons/TimerPlus.svg +3 -0
  7005. package/client/static/icons/TimerPlusOutline.svg +3 -0
  7006. package/client/static/icons/TimerRefresh.svg +3 -0
  7007. package/client/static/icons/TimerRefreshOutline.svg +3 -0
  7008. package/client/static/icons/TimerRemove.svg +3 -0
  7009. package/client/static/icons/TimerRemoveOutline.svg +3 -0
  7010. package/client/static/icons/TimerSand.svg +3 -0
  7011. package/client/static/icons/TimerSandComplete.svg +3 -0
  7012. package/client/static/icons/TimerSandEmpty.svg +3 -0
  7013. package/client/static/icons/TimerSandFull.svg +3 -0
  7014. package/client/static/icons/TimerSandPaused.svg +3 -0
  7015. package/client/static/icons/TimerSettings.svg +3 -0
  7016. package/client/static/icons/TimerSettingsOutline.svg +3 -0
  7017. package/client/static/icons/TimerStar.svg +3 -0
  7018. package/client/static/icons/TimerStarOutline.svg +3 -0
  7019. package/client/static/icons/TimerStop.svg +3 -0
  7020. package/client/static/icons/TimerStopOutline.svg +3 -0
  7021. package/client/static/icons/TimerSync.svg +3 -0
  7022. package/client/static/icons/TimerSyncOutline.svg +3 -0
  7023. package/client/static/icons/Timetable.svg +3 -0
  7024. package/client/static/icons/Tire.svg +3 -0
  7025. package/client/static/icons/Toaster.svg +3 -0
  7026. package/client/static/icons/ToasterOff.svg +3 -0
  7027. package/client/static/icons/ToasterOven.svg +3 -0
  7028. package/client/static/icons/ToggleSwitch.svg +3 -0
  7029. package/client/static/icons/ToggleSwitchOff.svg +3 -0
  7030. package/client/static/icons/ToggleSwitchOffOutline.svg +3 -0
  7031. package/client/static/icons/ToggleSwitchOutline.svg +3 -0
  7032. package/client/static/icons/ToggleSwitchVariant.svg +3 -0
  7033. package/client/static/icons/ToggleSwitchVariantOff.svg +3 -0
  7034. package/client/static/icons/Toilet.svg +3 -0
  7035. package/client/static/icons/Toolbox.svg +3 -0
  7036. package/client/static/icons/ToolboxOutline.svg +3 -0
  7037. package/client/static/icons/Tools.svg +3 -0
  7038. package/client/static/icons/Tooltip.svg +3 -0
  7039. package/client/static/icons/TooltipAccount.svg +3 -0
  7040. package/client/static/icons/TooltipCellphone.svg +3 -0
  7041. package/client/static/icons/TooltipCheck.svg +3 -0
  7042. package/client/static/icons/TooltipCheckOutline.svg +3 -0
  7043. package/client/static/icons/TooltipEdit.svg +3 -0
  7044. package/client/static/icons/TooltipEditOutline.svg +3 -0
  7045. package/client/static/icons/TooltipImage.svg +3 -0
  7046. package/client/static/icons/TooltipImageOutline.svg +3 -0
  7047. package/client/static/icons/TooltipMinus.svg +3 -0
  7048. package/client/static/icons/TooltipMinusOutline.svg +3 -0
  7049. package/client/static/icons/TooltipOutline.svg +3 -0
  7050. package/client/static/icons/TooltipPlus.svg +3 -0
  7051. package/client/static/icons/TooltipPlusOutline.svg +3 -0
  7052. package/client/static/icons/TooltipQuestion.svg +3 -0
  7053. package/client/static/icons/TooltipQuestionOutline.svg +3 -0
  7054. package/client/static/icons/TooltipRemove.svg +3 -0
  7055. package/client/static/icons/TooltipRemoveOutline.svg +3 -0
  7056. package/client/static/icons/TooltipText.svg +3 -0
  7057. package/client/static/icons/TooltipTextOutline.svg +3 -0
  7058. package/client/static/icons/Tooth.svg +3 -0
  7059. package/client/static/icons/ToothOutline.svg +3 -0
  7060. package/client/static/icons/Toothbrush.svg +3 -0
  7061. package/client/static/icons/ToothbrushElectric.svg +3 -0
  7062. package/client/static/icons/ToothbrushPaste.svg +3 -0
  7063. package/client/static/icons/Torch.svg +3 -0
  7064. package/client/static/icons/Tortoise.svg +3 -0
  7065. package/client/static/icons/Toslink.svg +3 -0
  7066. package/client/static/icons/TouchTextOutline.svg +3 -0
  7067. package/client/static/icons/Tournament.svg +3 -0
  7068. package/client/static/icons/TowTruck.svg +3 -0
  7069. package/client/static/icons/TowerBeach.svg +3 -0
  7070. package/client/static/icons/TowerFire.svg +3 -0
  7071. package/client/static/icons/TownHall.svg +3 -0
  7072. package/client/static/icons/ToyBrick.svg +3 -0
  7073. package/client/static/icons/ToyBrickMarker.svg +3 -0
  7074. package/client/static/icons/ToyBrickMarkerOutline.svg +3 -0
  7075. package/client/static/icons/ToyBrickMinus.svg +3 -0
  7076. package/client/static/icons/ToyBrickMinusOutline.svg +3 -0
  7077. package/client/static/icons/ToyBrickOutline.svg +3 -0
  7078. package/client/static/icons/ToyBrickPlus.svg +3 -0
  7079. package/client/static/icons/ToyBrickPlusOutline.svg +3 -0
  7080. package/client/static/icons/ToyBrickRemove.svg +3 -0
  7081. package/client/static/icons/ToyBrickRemoveOutline.svg +3 -0
  7082. package/client/static/icons/ToyBrickSearch.svg +3 -0
  7083. package/client/static/icons/ToyBrickSearchOutline.svg +3 -0
  7084. package/client/static/icons/TrackLight.svg +3 -0
  7085. package/client/static/icons/TrackLightOff.svg +3 -0
  7086. package/client/static/icons/Trackpad.svg +3 -0
  7087. package/client/static/icons/TrackpadLock.svg +3 -0
  7088. package/client/static/icons/Tractor.svg +3 -0
  7089. package/client/static/icons/TractorVariant.svg +3 -0
  7090. package/client/static/icons/Trademark.svg +3 -0
  7091. package/client/static/icons/TrafficCone.svg +3 -0
  7092. package/client/static/icons/TrafficLight.svg +3 -0
  7093. package/client/static/icons/TrafficLightOutline.svg +3 -0
  7094. package/client/static/icons/Train.svg +3 -0
  7095. package/client/static/icons/TrainBus.svg +3 -0
  7096. package/client/static/icons/TrainCar.svg +3 -0
  7097. package/client/static/icons/TrainCarAutorack.svg +3 -0
  7098. package/client/static/icons/TrainCarBox.svg +3 -0
  7099. package/client/static/icons/TrainCarBoxFull.svg +3 -0
  7100. package/client/static/icons/TrainCarBoxOpen.svg +3 -0
  7101. package/client/static/icons/TrainCarCaboose.svg +3 -0
  7102. package/client/static/icons/TrainCarCenterbeam.svg +3 -0
  7103. package/client/static/icons/TrainCarCenterbeamFull.svg +3 -0
  7104. package/client/static/icons/TrainCarContainer.svg +3 -0
  7105. package/client/static/icons/TrainCarFlatbed.svg +3 -0
  7106. package/client/static/icons/TrainCarFlatbedCar.svg +3 -0
  7107. package/client/static/icons/TrainCarFlatbedTank.svg +3 -0
  7108. package/client/static/icons/TrainCarGondola.svg +3 -0
  7109. package/client/static/icons/TrainCarGondolaFull.svg +3 -0
  7110. package/client/static/icons/TrainCarHopper.svg +3 -0
  7111. package/client/static/icons/TrainCarHopperCovered.svg +3 -0
  7112. package/client/static/icons/TrainCarHopperFull.svg +3 -0
  7113. package/client/static/icons/TrainCarIntermodal.svg +3 -0
  7114. package/client/static/icons/TrainCarPassenger.svg +3 -0
  7115. package/client/static/icons/TrainCarPassengerDoor.svg +3 -0
  7116. package/client/static/icons/TrainCarPassengerDoorOpen.svg +3 -0
  7117. package/client/static/icons/TrainCarPassengerVariant.svg +3 -0
  7118. package/client/static/icons/TrainCarTank.svg +3 -0
  7119. package/client/static/icons/TrainVariant.svg +3 -0
  7120. package/client/static/icons/Tram.svg +3 -0
  7121. package/client/static/icons/TramSide.svg +3 -0
  7122. package/client/static/icons/Transcribe.svg +3 -0
  7123. package/client/static/icons/TranscribeClose.svg +3 -0
  7124. package/client/static/icons/Transfer.svg +3 -0
  7125. package/client/static/icons/TransferDown.svg +3 -0
  7126. package/client/static/icons/TransferLeft.svg +3 -0
  7127. package/client/static/icons/TransferRight.svg +3 -0
  7128. package/client/static/icons/TransferUp.svg +3 -0
  7129. package/client/static/icons/TransitConnection.svg +3 -0
  7130. package/client/static/icons/TransitConnectionHorizontal.svg +3 -0
  7131. package/client/static/icons/TransitConnectionVariant.svg +3 -0
  7132. package/client/static/icons/TransitDetour.svg +3 -0
  7133. package/client/static/icons/TransitSkip.svg +3 -0
  7134. package/client/static/icons/TransitTransfer.svg +3 -0
  7135. package/client/static/icons/Transition.svg +3 -0
  7136. package/client/static/icons/TransitionMasked.svg +3 -0
  7137. package/client/static/icons/Translate.svg +3 -0
  7138. package/client/static/icons/TranslateOff.svg +3 -0
  7139. package/client/static/icons/TranslateVariant.svg +3 -0
  7140. package/client/static/icons/TransmissionTower.svg +3 -0
  7141. package/client/static/icons/TransmissionTowerExport.svg +3 -0
  7142. package/client/static/icons/TransmissionTowerImport.svg +3 -0
  7143. package/client/static/icons/TransmissionTowerOff.svg +3 -0
  7144. package/client/static/icons/TrashCan.svg +3 -0
  7145. package/client/static/icons/TrashCanOutline.svg +3 -0
  7146. package/client/static/icons/Tray.svg +3 -0
  7147. package/client/static/icons/TrayAlert.svg +3 -0
  7148. package/client/static/icons/TrayArrowDown.svg +3 -0
  7149. package/client/static/icons/TrayArrowUp.svg +3 -0
  7150. package/client/static/icons/TrayFull.svg +3 -0
  7151. package/client/static/icons/TrayMinus.svg +3 -0
  7152. package/client/static/icons/TrayPlus.svg +3 -0
  7153. package/client/static/icons/TrayRemove.svg +3 -0
  7154. package/client/static/icons/TreasureChest.svg +3 -0
  7155. package/client/static/icons/TreasureChestOutline.svg +3 -0
  7156. package/client/static/icons/Tree.svg +3 -0
  7157. package/client/static/icons/TreeOutline.svg +3 -0
  7158. package/client/static/icons/Trello.svg +3 -0
  7159. package/client/static/icons/TrendingDown.svg +3 -0
  7160. package/client/static/icons/TrendingNeutral.svg +3 -0
  7161. package/client/static/icons/TrendingUp.svg +3 -0
  7162. package/client/static/icons/Triangle.svg +3 -0
  7163. package/client/static/icons/TriangleDown.svg +3 -0
  7164. package/client/static/icons/TriangleDownOutline.svg +3 -0
  7165. package/client/static/icons/TriangleOutline.svg +3 -0
  7166. package/client/static/icons/TriangleSmallDown.svg +3 -0
  7167. package/client/static/icons/TriangleSmallUp.svg +3 -0
  7168. package/client/static/icons/TriangleWave.svg +3 -0
  7169. package/client/static/icons/Triforce.svg +3 -0
  7170. package/client/static/icons/Trophy.svg +3 -0
  7171. package/client/static/icons/TrophyAward.svg +3 -0
  7172. package/client/static/icons/TrophyBroken.svg +3 -0
  7173. package/client/static/icons/TrophyOutline.svg +3 -0
  7174. package/client/static/icons/TrophyVariant.svg +3 -0
  7175. package/client/static/icons/TrophyVariantOutline.svg +3 -0
  7176. package/client/static/icons/Truck.svg +3 -0
  7177. package/client/static/icons/TruckAlert.svg +3 -0
  7178. package/client/static/icons/TruckAlertOutline.svg +3 -0
  7179. package/client/static/icons/TruckCargoContainer.svg +3 -0
  7180. package/client/static/icons/TruckCheck.svg +3 -0
  7181. package/client/static/icons/TruckCheckOutline.svg +3 -0
  7182. package/client/static/icons/TruckDelivery.svg +3 -0
  7183. package/client/static/icons/TruckDeliveryOutline.svg +3 -0
  7184. package/client/static/icons/TruckFast.svg +3 -0
  7185. package/client/static/icons/TruckFastOutline.svg +3 -0
  7186. package/client/static/icons/TruckFlatbed.svg +3 -0
  7187. package/client/static/icons/TruckMinus.svg +3 -0
  7188. package/client/static/icons/TruckMinusOutline.svg +3 -0
  7189. package/client/static/icons/TruckOffRoad.svg +3 -0
  7190. package/client/static/icons/TruckOffRoadOff.svg +3 -0
  7191. package/client/static/icons/TruckOutline.svg +3 -0
  7192. package/client/static/icons/TruckPlus.svg +3 -0
  7193. package/client/static/icons/TruckPlusOutline.svg +3 -0
  7194. package/client/static/icons/TruckRemove.svg +3 -0
  7195. package/client/static/icons/TruckRemoveOutline.svg +3 -0
  7196. package/client/static/icons/TruckSnowflake.svg +3 -0
  7197. package/client/static/icons/TruckTrailer.svg +3 -0
  7198. package/client/static/icons/Trumpet.svg +3 -0
  7199. package/client/static/icons/TshirtCrew.svg +3 -0
  7200. package/client/static/icons/TshirtCrewOutline.svg +3 -0
  7201. package/client/static/icons/TshirtV.svg +3 -0
  7202. package/client/static/icons/TshirtVOutline.svg +3 -0
  7203. package/client/static/icons/Tsunami.svg +3 -0
  7204. package/client/static/icons/TumbleDryer.svg +3 -0
  7205. package/client/static/icons/TumbleDryerAlert.svg +3 -0
  7206. package/client/static/icons/TumbleDryerOff.svg +3 -0
  7207. package/client/static/icons/Tune.svg +3 -0
  7208. package/client/static/icons/TuneVariant.svg +3 -0
  7209. package/client/static/icons/TuneVertical.svg +3 -0
  7210. package/client/static/icons/TuneVerticalVariant.svg +3 -0
  7211. package/client/static/icons/Tunnel.svg +3 -0
  7212. package/client/static/icons/TunnelOutline.svg +3 -0
  7213. package/client/static/icons/Turbine.svg +3 -0
  7214. package/client/static/icons/Turkey.svg +3 -0
  7215. package/client/static/icons/Turnstile.svg +3 -0
  7216. package/client/static/icons/TurnstileOutline.svg +3 -0
  7217. package/client/static/icons/Turtle.svg +3 -0
  7218. package/client/static/icons/Twitch.svg +3 -0
  7219. package/client/static/icons/Twitter.svg +3 -0
  7220. package/client/static/icons/TwoFactorAuthentication.svg +3 -0
  7221. package/client/static/icons/Typewriter.svg +3 -0
  7222. package/client/static/icons/Ubisoft.svg +3 -0
  7223. package/client/static/icons/Ubuntu.svg +3 -0
  7224. package/client/static/icons/Ufo.svg +3 -0
  7225. package/client/static/icons/UfoOutline.svg +3 -0
  7226. package/client/static/icons/UltraHighDefinition.svg +3 -0
  7227. package/client/static/icons/Umbraco.svg +3 -0
  7228. package/client/static/icons/Umbrella.svg +3 -0
  7229. package/client/static/icons/UmbrellaBeach.svg +3 -0
  7230. package/client/static/icons/UmbrellaBeachOutline.svg +3 -0
  7231. package/client/static/icons/UmbrellaClosed.svg +3 -0
  7232. package/client/static/icons/UmbrellaClosedOutline.svg +3 -0
  7233. package/client/static/icons/UmbrellaClosedVariant.svg +3 -0
  7234. package/client/static/icons/UmbrellaOutline.svg +3 -0
  7235. package/client/static/icons/UnderwearOutline.svg +3 -0
  7236. package/client/static/icons/Undo.svg +3 -0
  7237. package/client/static/icons/UndoVariant.svg +3 -0
  7238. package/client/static/icons/UnfoldLessHorizontal.svg +3 -0
  7239. package/client/static/icons/UnfoldLessVertical.svg +3 -0
  7240. package/client/static/icons/UnfoldMoreHorizontal.svg +3 -0
  7241. package/client/static/icons/UnfoldMoreVertical.svg +3 -0
  7242. package/client/static/icons/Ungroup.svg +3 -0
  7243. package/client/static/icons/Unicode.svg +3 -0
  7244. package/client/static/icons/Unicorn.svg +3 -0
  7245. package/client/static/icons/UnicornVariant.svg +3 -0
  7246. package/client/static/icons/Unicycle.svg +3 -0
  7247. package/client/static/icons/Unity.svg +3 -0
  7248. package/client/static/icons/Unreal.svg +3 -0
  7249. package/client/static/icons/Update.svg +3 -0
  7250. package/client/static/icons/Upload.svg +3 -0
  7251. package/client/static/icons/UploadBox.svg +3 -0
  7252. package/client/static/icons/UploadBoxOutline.svg +3 -0
  7253. package/client/static/icons/UploadCircle.svg +3 -0
  7254. package/client/static/icons/UploadCircleOutline.svg +3 -0
  7255. package/client/static/icons/UploadLock.svg +3 -0
  7256. package/client/static/icons/UploadLockOutline.svg +3 -0
  7257. package/client/static/icons/UploadMultiple.svg +3 -0
  7258. package/client/static/icons/UploadMultipleOutline.svg +3 -0
  7259. package/client/static/icons/UploadNetwork.svg +3 -0
  7260. package/client/static/icons/UploadNetworkOutline.svg +3 -0
  7261. package/client/static/icons/UploadOff.svg +3 -0
  7262. package/client/static/icons/UploadOffOutline.svg +3 -0
  7263. package/client/static/icons/UploadOutline.svg +3 -0
  7264. package/client/static/icons/Usb.svg +3 -0
  7265. package/client/static/icons/UsbCPort.svg +3 -0
  7266. package/client/static/icons/UsbFlashDrive.svg +3 -0
  7267. package/client/static/icons/UsbFlashDriveOutline.svg +3 -0
  7268. package/client/static/icons/UsbPort.svg +3 -0
  7269. package/client/static/icons/Vacuum.svg +3 -0
  7270. package/client/static/icons/VacuumOutline.svg +3 -0
  7271. package/client/static/icons/Valve.svg +3 -0
  7272. package/client/static/icons/ValveClosed.svg +3 -0
  7273. package/client/static/icons/ValveOpen.svg +3 -0
  7274. package/client/static/icons/VanPassenger.svg +3 -0
  7275. package/client/static/icons/VanUtility.svg +3 -0
  7276. package/client/static/icons/Vanish.svg +3 -0
  7277. package/client/static/icons/VanishQuarter.svg +3 -0
  7278. package/client/static/icons/VanityLight.svg +3 -0
  7279. package/client/static/icons/Variable.svg +3 -0
  7280. package/client/static/icons/VariableBox.svg +3 -0
  7281. package/client/static/icons/VectorArrangeAbove.svg +3 -0
  7282. package/client/static/icons/VectorArrangeBelow.svg +3 -0
  7283. package/client/static/icons/VectorBezier.svg +3 -0
  7284. package/client/static/icons/VectorCircle.svg +3 -0
  7285. package/client/static/icons/VectorCircleVariant.svg +3 -0
  7286. package/client/static/icons/VectorCombine.svg +3 -0
  7287. package/client/static/icons/VectorCurve.svg +3 -0
  7288. package/client/static/icons/VectorDifference.svg +3 -0
  7289. package/client/static/icons/VectorDifferenceAb.svg +3 -0
  7290. package/client/static/icons/VectorDifferenceBa.svg +3 -0
  7291. package/client/static/icons/VectorEllipse.svg +3 -0
  7292. package/client/static/icons/VectorIntersection.svg +3 -0
  7293. package/client/static/icons/VectorLine.svg +3 -0
  7294. package/client/static/icons/VectorLink.svg +3 -0
  7295. package/client/static/icons/VectorPoint.svg +3 -0
  7296. package/client/static/icons/VectorPointEdit.svg +3 -0
  7297. package/client/static/icons/VectorPointMinus.svg +3 -0
  7298. package/client/static/icons/VectorPointPlus.svg +3 -0
  7299. package/client/static/icons/VectorPointSelect.svg +3 -0
  7300. package/client/static/icons/VectorPolygon.svg +3 -0
  7301. package/client/static/icons/VectorPolygonVariant.svg +3 -0
  7302. package/client/static/icons/VectorPolyline.svg +3 -0
  7303. package/client/static/icons/VectorPolylineEdit.svg +3 -0
  7304. package/client/static/icons/VectorPolylineMinus.svg +3 -0
  7305. package/client/static/icons/VectorPolylinePlus.svg +3 -0
  7306. package/client/static/icons/VectorPolylineRemove.svg +3 -0
  7307. package/client/static/icons/VectorRadius.svg +3 -0
  7308. package/client/static/icons/VectorRectangle.svg +3 -0
  7309. package/client/static/icons/VectorSelection.svg +3 -0
  7310. package/client/static/icons/VectorSquare.svg +3 -0
  7311. package/client/static/icons/VectorSquareClose.svg +3 -0
  7312. package/client/static/icons/VectorSquareEdit.svg +3 -0
  7313. package/client/static/icons/VectorSquareMinus.svg +3 -0
  7314. package/client/static/icons/VectorSquareOpen.svg +3 -0
  7315. package/client/static/icons/VectorSquarePlus.svg +3 -0
  7316. package/client/static/icons/VectorSquareRemove.svg +3 -0
  7317. package/client/static/icons/VectorTriangle.svg +3 -0
  7318. package/client/static/icons/VectorUnion.svg +3 -0
  7319. package/client/static/icons/Vhs.svg +3 -0
  7320. package/client/static/icons/Vibrate.svg +3 -0
  7321. package/client/static/icons/VibrateOff.svg +3 -0
  7322. package/client/static/icons/Video.svg +3 -0
  7323. package/client/static/icons/Video2d.svg +3 -0
  7324. package/client/static/icons/Video3d.svg +3 -0
  7325. package/client/static/icons/Video3dOff.svg +3 -0
  7326. package/client/static/icons/Video3dVariant.svg +3 -0
  7327. package/client/static/icons/Video4kBox.svg +3 -0
  7328. package/client/static/icons/VideoAccount.svg +3 -0
  7329. package/client/static/icons/VideoBox.svg +3 -0
  7330. package/client/static/icons/VideoBoxOff.svg +3 -0
  7331. package/client/static/icons/VideoCheck.svg +3 -0
  7332. package/client/static/icons/VideoCheckOutline.svg +3 -0
  7333. package/client/static/icons/VideoHighDefinition.svg +3 -0
  7334. package/client/static/icons/VideoImage.svg +3 -0
  7335. package/client/static/icons/VideoInputAntenna.svg +3 -0
  7336. package/client/static/icons/VideoInputComponent.svg +3 -0
  7337. package/client/static/icons/VideoInputHdmi.svg +3 -0
  7338. package/client/static/icons/VideoInputScart.svg +3 -0
  7339. package/client/static/icons/VideoInputSvideo.svg +3 -0
  7340. package/client/static/icons/VideoMarker.svg +3 -0
  7341. package/client/static/icons/VideoMarkerOutline.svg +3 -0
  7342. package/client/static/icons/VideoMinus.svg +3 -0
  7343. package/client/static/icons/VideoMinusOutline.svg +3 -0
  7344. package/client/static/icons/VideoOff.svg +3 -0
  7345. package/client/static/icons/VideoOffOutline.svg +3 -0
  7346. package/client/static/icons/VideoOutline.svg +3 -0
  7347. package/client/static/icons/VideoPlus.svg +3 -0
  7348. package/client/static/icons/VideoPlusOutline.svg +3 -0
  7349. package/client/static/icons/VideoStabilization.svg +3 -0
  7350. package/client/static/icons/VideoStandardDefinition.svg +3 -0
  7351. package/client/static/icons/VideoSwitch.svg +3 -0
  7352. package/client/static/icons/VideoSwitchOutline.svg +3 -0
  7353. package/client/static/icons/VideoVintage.svg +3 -0
  7354. package/client/static/icons/VideoWireless.svg +3 -0
  7355. package/client/static/icons/VideoWirelessOutline.svg +3 -0
  7356. package/client/static/icons/ViewAgenda.svg +3 -0
  7357. package/client/static/icons/ViewAgendaOutline.svg +3 -0
  7358. package/client/static/icons/ViewArray.svg +3 -0
  7359. package/client/static/icons/ViewArrayOutline.svg +3 -0
  7360. package/client/static/icons/ViewCarousel.svg +3 -0
  7361. package/client/static/icons/ViewCarouselOutline.svg +3 -0
  7362. package/client/static/icons/ViewColumn.svg +3 -0
  7363. package/client/static/icons/ViewColumnOutline.svg +3 -0
  7364. package/client/static/icons/ViewComfy.svg +3 -0
  7365. package/client/static/icons/ViewComfyOutline.svg +3 -0
  7366. package/client/static/icons/ViewCompact.svg +3 -0
  7367. package/client/static/icons/ViewCompactOutline.svg +3 -0
  7368. package/client/static/icons/ViewDashboard.svg +3 -0
  7369. package/client/static/icons/ViewDashboardEdit.svg +3 -0
  7370. package/client/static/icons/ViewDashboardEditOutline.svg +3 -0
  7371. package/client/static/icons/ViewDashboardOutline.svg +3 -0
  7372. package/client/static/icons/ViewDashboardVariant.svg +3 -0
  7373. package/client/static/icons/ViewDashboardVariantOutline.svg +3 -0
  7374. package/client/static/icons/ViewDay.svg +3 -0
  7375. package/client/static/icons/ViewDayOutline.svg +3 -0
  7376. package/client/static/icons/ViewGallery.svg +3 -0
  7377. package/client/static/icons/ViewGalleryOutline.svg +3 -0
  7378. package/client/static/icons/ViewGrid.svg +3 -0
  7379. package/client/static/icons/ViewGridCompact.svg +3 -0
  7380. package/client/static/icons/ViewGridOutline.svg +3 -0
  7381. package/client/static/icons/ViewGridPlus.svg +3 -0
  7382. package/client/static/icons/ViewGridPlusOutline.svg +3 -0
  7383. package/client/static/icons/ViewHeadline.svg +3 -0
  7384. package/client/static/icons/ViewList.svg +3 -0
  7385. package/client/static/icons/ViewListOutline.svg +3 -0
  7386. package/client/static/icons/ViewModule.svg +3 -0
  7387. package/client/static/icons/ViewModuleOutline.svg +3 -0
  7388. package/client/static/icons/ViewParallel.svg +3 -0
  7389. package/client/static/icons/ViewParallelOutline.svg +3 -0
  7390. package/client/static/icons/ViewQuilt.svg +3 -0
  7391. package/client/static/icons/ViewQuiltOutline.svg +3 -0
  7392. package/client/static/icons/ViewSequential.svg +3 -0
  7393. package/client/static/icons/ViewSequentialOutline.svg +3 -0
  7394. package/client/static/icons/ViewSplitHorizontal.svg +3 -0
  7395. package/client/static/icons/ViewSplitVertical.svg +3 -0
  7396. package/client/static/icons/ViewStream.svg +3 -0
  7397. package/client/static/icons/ViewStreamOutline.svg +3 -0
  7398. package/client/static/icons/ViewWeek.svg +3 -0
  7399. package/client/static/icons/ViewWeekOutline.svg +3 -0
  7400. package/client/static/icons/Vimeo.svg +3 -0
  7401. package/client/static/icons/Violin.svg +3 -0
  7402. package/client/static/icons/VirtualReality.svg +3 -0
  7403. package/client/static/icons/Virus.svg +3 -0
  7404. package/client/static/icons/VirusOff.svg +3 -0
  7405. package/client/static/icons/VirusOffOutline.svg +3 -0
  7406. package/client/static/icons/VirusOutline.svg +3 -0
  7407. package/client/static/icons/Vlc.svg +3 -0
  7408. package/client/static/icons/Voicemail.svg +3 -0
  7409. package/client/static/icons/Volcano.svg +3 -0
  7410. package/client/static/icons/VolcanoOutline.svg +3 -0
  7411. package/client/static/icons/Volleyball.svg +3 -0
  7412. package/client/static/icons/VolumeEqual.svg +3 -0
  7413. package/client/static/icons/VolumeHigh.svg +3 -0
  7414. package/client/static/icons/VolumeLow.svg +3 -0
  7415. package/client/static/icons/VolumeMedium.svg +3 -0
  7416. package/client/static/icons/VolumeMinus.svg +3 -0
  7417. package/client/static/icons/VolumeMute.svg +3 -0
  7418. package/client/static/icons/VolumeOff.svg +3 -0
  7419. package/client/static/icons/VolumePlus.svg +3 -0
  7420. package/client/static/icons/VolumeSource.svg +3 -0
  7421. package/client/static/icons/VolumeVariantOff.svg +3 -0
  7422. package/client/static/icons/VolumeVibrate.svg +3 -0
  7423. package/client/static/icons/Vote.svg +3 -0
  7424. package/client/static/icons/VoteOutline.svg +3 -0
  7425. package/client/static/icons/Vpn.svg +3 -0
  7426. package/client/static/icons/Vuejs.svg +3 -0
  7427. package/client/static/icons/Vuetify.svg +3 -0
  7428. package/client/static/icons/Walk.svg +3 -0
  7429. package/client/static/icons/Wall.svg +3 -0
  7430. package/client/static/icons/WallFire.svg +3 -0
  7431. package/client/static/icons/WallSconce.svg +3 -0
  7432. package/client/static/icons/WallSconceFlat.svg +3 -0
  7433. package/client/static/icons/WallSconceFlatOutline.svg +3 -0
  7434. package/client/static/icons/WallSconceFlatVariant.svg +3 -0
  7435. package/client/static/icons/WallSconceFlatVariantOutline.svg +3 -0
  7436. package/client/static/icons/WallSconceOutline.svg +3 -0
  7437. package/client/static/icons/WallSconceRound.svg +3 -0
  7438. package/client/static/icons/WallSconceRoundOutline.svg +3 -0
  7439. package/client/static/icons/WallSconceRoundVariant.svg +3 -0
  7440. package/client/static/icons/WallSconceRoundVariantOutline.svg +3 -0
  7441. package/client/static/icons/Wallet.svg +3 -0
  7442. package/client/static/icons/WalletBifold.svg +3 -0
  7443. package/client/static/icons/WalletBifoldOutline.svg +3 -0
  7444. package/client/static/icons/WalletGiftcard.svg +3 -0
  7445. package/client/static/icons/WalletMembership.svg +3 -0
  7446. package/client/static/icons/WalletOutline.svg +3 -0
  7447. package/client/static/icons/WalletPlus.svg +3 -0
  7448. package/client/static/icons/WalletPlusOutline.svg +3 -0
  7449. package/client/static/icons/WalletTravel.svg +3 -0
  7450. package/client/static/icons/Wallpaper.svg +3 -0
  7451. package/client/static/icons/Wan.svg +3 -0
  7452. package/client/static/icons/Wardrobe.svg +3 -0
  7453. package/client/static/icons/WardrobeOutline.svg +3 -0
  7454. package/client/static/icons/Warehouse.svg +3 -0
  7455. package/client/static/icons/WashingMachine.svg +3 -0
  7456. package/client/static/icons/WashingMachineAlert.svg +3 -0
  7457. package/client/static/icons/WashingMachineOff.svg +3 -0
  7458. package/client/static/icons/Watch.svg +3 -0
  7459. package/client/static/icons/WatchExport.svg +3 -0
  7460. package/client/static/icons/WatchExportVariant.svg +3 -0
  7461. package/client/static/icons/WatchImport.svg +3 -0
  7462. package/client/static/icons/WatchImportVariant.svg +3 -0
  7463. package/client/static/icons/WatchVariant.svg +3 -0
  7464. package/client/static/icons/WatchVibrate.svg +3 -0
  7465. package/client/static/icons/WatchVibrateOff.svg +3 -0
  7466. package/client/static/icons/Water.svg +3 -0
  7467. package/client/static/icons/WaterAlert.svg +3 -0
  7468. package/client/static/icons/WaterAlertOutline.svg +3 -0
  7469. package/client/static/icons/WaterBoiler.svg +3 -0
  7470. package/client/static/icons/WaterBoilerAlert.svg +3 -0
  7471. package/client/static/icons/WaterBoilerAuto.svg +3 -0
  7472. package/client/static/icons/WaterBoilerOff.svg +3 -0
  7473. package/client/static/icons/WaterCheck.svg +3 -0
  7474. package/client/static/icons/WaterCheckOutline.svg +3 -0
  7475. package/client/static/icons/WaterCircle.svg +3 -0
  7476. package/client/static/icons/WaterMinus.svg +3 -0
  7477. package/client/static/icons/WaterMinusOutline.svg +3 -0
  7478. package/client/static/icons/WaterOff.svg +3 -0
  7479. package/client/static/icons/WaterOffOutline.svg +3 -0
  7480. package/client/static/icons/WaterOpacity.svg +3 -0
  7481. package/client/static/icons/WaterOutline.svg +3 -0
  7482. package/client/static/icons/WaterPercent.svg +3 -0
  7483. package/client/static/icons/WaterPercentAlert.svg +3 -0
  7484. package/client/static/icons/WaterPlus.svg +3 -0
  7485. package/client/static/icons/WaterPlusOutline.svg +3 -0
  7486. package/client/static/icons/WaterPolo.svg +3 -0
  7487. package/client/static/icons/WaterPump.svg +3 -0
  7488. package/client/static/icons/WaterPumpOff.svg +3 -0
  7489. package/client/static/icons/WaterRemove.svg +3 -0
  7490. package/client/static/icons/WaterRemoveOutline.svg +3 -0
  7491. package/client/static/icons/WaterSync.svg +3 -0
  7492. package/client/static/icons/WaterThermometer.svg +3 -0
  7493. package/client/static/icons/WaterThermometerOutline.svg +3 -0
  7494. package/client/static/icons/WaterWell.svg +3 -0
  7495. package/client/static/icons/WaterWellOutline.svg +3 -0
  7496. package/client/static/icons/Waterfall.svg +3 -0
  7497. package/client/static/icons/WateringCan.svg +3 -0
  7498. package/client/static/icons/WateringCanOutline.svg +3 -0
  7499. package/client/static/icons/Watermark.svg +3 -0
  7500. package/client/static/icons/Wave.svg +3 -0
  7501. package/client/static/icons/WaveArrowDown.svg +3 -0
  7502. package/client/static/icons/WaveArrowUp.svg +3 -0
  7503. package/client/static/icons/WaveUndercurrent.svg +3 -0
  7504. package/client/static/icons/Waveform.svg +3 -0
  7505. package/client/static/icons/Waves.svg +3 -0
  7506. package/client/static/icons/WavesArrowLeft.svg +3 -0
  7507. package/client/static/icons/WavesArrowRight.svg +3 -0
  7508. package/client/static/icons/WavesArrowUp.svg +3 -0
  7509. package/client/static/icons/Waze.svg +3 -0
  7510. package/client/static/icons/WeatherCloudy.svg +3 -0
  7511. package/client/static/icons/WeatherCloudyAlert.svg +3 -0
  7512. package/client/static/icons/WeatherCloudyArrowRight.svg +3 -0
  7513. package/client/static/icons/WeatherCloudyClock.svg +3 -0
  7514. package/client/static/icons/WeatherDust.svg +3 -0
  7515. package/client/static/icons/WeatherFog.svg +3 -0
  7516. package/client/static/icons/WeatherHail.svg +3 -0
  7517. package/client/static/icons/WeatherHazy.svg +3 -0
  7518. package/client/static/icons/WeatherHurricane.svg +3 -0
  7519. package/client/static/icons/WeatherHurricaneOutline.svg +3 -0
  7520. package/client/static/icons/WeatherLightning.svg +3 -0
  7521. package/client/static/icons/WeatherLightningRainy.svg +3 -0
  7522. package/client/static/icons/WeatherMoonset.svg +3 -0
  7523. package/client/static/icons/WeatherMoonsetDown.svg +3 -0
  7524. package/client/static/icons/WeatherMoonsetUp.svg +3 -0
  7525. package/client/static/icons/WeatherNight.svg +3 -0
  7526. package/client/static/icons/WeatherNightPartlyCloudy.svg +3 -0
  7527. package/client/static/icons/WeatherPartlyCloudy.svg +3 -0
  7528. package/client/static/icons/WeatherPartlyLightning.svg +3 -0
  7529. package/client/static/icons/WeatherPartlyRainy.svg +3 -0
  7530. package/client/static/icons/WeatherPartlySnowy.svg +3 -0
  7531. package/client/static/icons/WeatherPartlySnowyRainy.svg +3 -0
  7532. package/client/static/icons/WeatherPouring.svg +3 -0
  7533. package/client/static/icons/WeatherRainy.svg +3 -0
  7534. package/client/static/icons/WeatherSnowy.svg +3 -0
  7535. package/client/static/icons/WeatherSnowyHeavy.svg +3 -0
  7536. package/client/static/icons/WeatherSnowyRainy.svg +3 -0
  7537. package/client/static/icons/WeatherSunny.svg +3 -0
  7538. package/client/static/icons/WeatherSunnyAlert.svg +3 -0
  7539. package/client/static/icons/WeatherSunnyOff.svg +3 -0
  7540. package/client/static/icons/WeatherSunset.svg +3 -0
  7541. package/client/static/icons/WeatherSunsetDown.svg +3 -0
  7542. package/client/static/icons/WeatherSunsetUp.svg +3 -0
  7543. package/client/static/icons/WeatherTornado.svg +3 -0
  7544. package/client/static/icons/WeatherWindy.svg +3 -0
  7545. package/client/static/icons/WeatherWindyVariant.svg +3 -0
  7546. package/client/static/icons/Web.svg +3 -0
  7547. package/client/static/icons/WebBox.svg +3 -0
  7548. package/client/static/icons/WebCancel.svg +3 -0
  7549. package/client/static/icons/WebCheck.svg +3 -0
  7550. package/client/static/icons/WebClock.svg +3 -0
  7551. package/client/static/icons/WebMinus.svg +3 -0
  7552. package/client/static/icons/WebOff.svg +3 -0
  7553. package/client/static/icons/WebPlus.svg +3 -0
  7554. package/client/static/icons/WebRefresh.svg +3 -0
  7555. package/client/static/icons/WebRemove.svg +3 -0
  7556. package/client/static/icons/WebSync.svg +3 -0
  7557. package/client/static/icons/Webcam.svg +3 -0
  7558. package/client/static/icons/WebcamOff.svg +3 -0
  7559. package/client/static/icons/Webhook.svg +3 -0
  7560. package/client/static/icons/Webpack.svg +3 -0
  7561. package/client/static/icons/Webrtc.svg +3 -0
  7562. package/client/static/icons/Wechat.svg +3 -0
  7563. package/client/static/icons/Weight.svg +3 -0
  7564. package/client/static/icons/WeightGram.svg +3 -0
  7565. package/client/static/icons/WeightKilogram.svg +3 -0
  7566. package/client/static/icons/WeightLifter.svg +3 -0
  7567. package/client/static/icons/WeightPound.svg +3 -0
  7568. package/client/static/icons/Whatsapp.svg +3 -0
  7569. package/client/static/icons/WheelBarrow.svg +3 -0
  7570. package/client/static/icons/Wheelchair.svg +3 -0
  7571. package/client/static/icons/WheelchairAccessibility.svg +3 -0
  7572. package/client/static/icons/Whistle.svg +3 -0
  7573. package/client/static/icons/WhistleOutline.svg +3 -0
  7574. package/client/static/icons/WhiteBalanceAuto.svg +3 -0
  7575. package/client/static/icons/WhiteBalanceIncandescent.svg +3 -0
  7576. package/client/static/icons/WhiteBalanceIridescent.svg +3 -0
  7577. package/client/static/icons/WhiteBalanceSunny.svg +3 -0
  7578. package/client/static/icons/Widgets.svg +3 -0
  7579. package/client/static/icons/WidgetsOutline.svg +3 -0
  7580. package/client/static/icons/Wifi.svg +3 -0
  7581. package/client/static/icons/WifiAlert.svg +3 -0
  7582. package/client/static/icons/WifiArrowDown.svg +3 -0
  7583. package/client/static/icons/WifiArrowLeft.svg +3 -0
  7584. package/client/static/icons/WifiArrowLeftRight.svg +3 -0
  7585. package/client/static/icons/WifiArrowRight.svg +3 -0
  7586. package/client/static/icons/WifiArrowUp.svg +3 -0
  7587. package/client/static/icons/WifiArrowUpDown.svg +3 -0
  7588. package/client/static/icons/WifiCancel.svg +3 -0
  7589. package/client/static/icons/WifiCheck.svg +3 -0
  7590. package/client/static/icons/WifiCog.svg +3 -0
  7591. package/client/static/icons/WifiLock.svg +3 -0
  7592. package/client/static/icons/WifiLockOpen.svg +3 -0
  7593. package/client/static/icons/WifiMarker.svg +3 -0
  7594. package/client/static/icons/WifiMinus.svg +3 -0
  7595. package/client/static/icons/WifiOff.svg +3 -0
  7596. package/client/static/icons/WifiPlus.svg +3 -0
  7597. package/client/static/icons/WifiRefresh.svg +3 -0
  7598. package/client/static/icons/WifiRemove.svg +3 -0
  7599. package/client/static/icons/WifiSettings.svg +3 -0
  7600. package/client/static/icons/WifiStar.svg +3 -0
  7601. package/client/static/icons/WifiStrength1.svg +3 -0
  7602. package/client/static/icons/WifiStrength1Alert.svg +3 -0
  7603. package/client/static/icons/WifiStrength1Lock.svg +3 -0
  7604. package/client/static/icons/WifiStrength1LockOpen.svg +3 -0
  7605. package/client/static/icons/WifiStrength2.svg +3 -0
  7606. package/client/static/icons/WifiStrength2Alert.svg +3 -0
  7607. package/client/static/icons/WifiStrength2Lock.svg +3 -0
  7608. package/client/static/icons/WifiStrength2LockOpen.svg +3 -0
  7609. package/client/static/icons/WifiStrength3.svg +3 -0
  7610. package/client/static/icons/WifiStrength3Alert.svg +3 -0
  7611. package/client/static/icons/WifiStrength3Lock.svg +3 -0
  7612. package/client/static/icons/WifiStrength3LockOpen.svg +3 -0
  7613. package/client/static/icons/WifiStrength4.svg +3 -0
  7614. package/client/static/icons/WifiStrength4Alert.svg +3 -0
  7615. package/client/static/icons/WifiStrength4Lock.svg +3 -0
  7616. package/client/static/icons/WifiStrength4LockOpen.svg +3 -0
  7617. package/client/static/icons/WifiStrengthAlertOutline.svg +3 -0
  7618. package/client/static/icons/WifiStrengthLockOpenOutline.svg +3 -0
  7619. package/client/static/icons/WifiStrengthLockOutline.svg +3 -0
  7620. package/client/static/icons/WifiStrengthOff.svg +3 -0
  7621. package/client/static/icons/WifiStrengthOffOutline.svg +3 -0
  7622. package/client/static/icons/WifiStrengthOutline.svg +3 -0
  7623. package/client/static/icons/WifiSync.svg +3 -0
  7624. package/client/static/icons/Wikipedia.svg +3 -0
  7625. package/client/static/icons/WindPower.svg +3 -0
  7626. package/client/static/icons/WindPowerOutline.svg +3 -0
  7627. package/client/static/icons/WindTurbine.svg +3 -0
  7628. package/client/static/icons/WindTurbineAlert.svg +3 -0
  7629. package/client/static/icons/WindTurbineCheck.svg +3 -0
  7630. package/client/static/icons/WindowClose.svg +3 -0
  7631. package/client/static/icons/WindowClosed.svg +3 -0
  7632. package/client/static/icons/WindowClosedVariant.svg +3 -0
  7633. package/client/static/icons/WindowMaximize.svg +3 -0
  7634. package/client/static/icons/WindowMinimize.svg +3 -0
  7635. package/client/static/icons/WindowOpen.svg +3 -0
  7636. package/client/static/icons/WindowOpenVariant.svg +3 -0
  7637. package/client/static/icons/WindowRestore.svg +3 -0
  7638. package/client/static/icons/WindowShutter.svg +3 -0
  7639. package/client/static/icons/WindowShutterAlert.svg +3 -0
  7640. package/client/static/icons/WindowShutterAuto.svg +3 -0
  7641. package/client/static/icons/WindowShutterCog.svg +3 -0
  7642. package/client/static/icons/WindowShutterOpen.svg +3 -0
  7643. package/client/static/icons/WindowShutterSettings.svg +3 -0
  7644. package/client/static/icons/Windsock.svg +3 -0
  7645. package/client/static/icons/Wiper.svg +3 -0
  7646. package/client/static/icons/WiperWash.svg +3 -0
  7647. package/client/static/icons/WiperWashAlert.svg +3 -0
  7648. package/client/static/icons/WizardHat.svg +3 -0
  7649. package/client/static/icons/Wordpress.svg +3 -0
  7650. package/client/static/icons/Wrap.svg +3 -0
  7651. package/client/static/icons/WrapDisabled.svg +3 -0
  7652. package/client/static/icons/Wrench.svg +3 -0
  7653. package/client/static/icons/WrenchCheck.svg +3 -0
  7654. package/client/static/icons/WrenchCheckOutline.svg +3 -0
  7655. package/client/static/icons/WrenchClock.svg +3 -0
  7656. package/client/static/icons/WrenchClockOutline.svg +3 -0
  7657. package/client/static/icons/WrenchCog.svg +3 -0
  7658. package/client/static/icons/WrenchCogOutline.svg +3 -0
  7659. package/client/static/icons/WrenchOutline.svg +3 -0
  7660. package/client/static/icons/Xamarin.svg +3 -0
  7661. package/client/static/icons/Xml.svg +3 -0
  7662. package/client/static/icons/Xmpp.svg +3 -0
  7663. package/client/static/icons/Yahoo.svg +3 -0
  7664. package/client/static/icons/Yeast.svg +3 -0
  7665. package/client/static/icons/YinYang.svg +3 -0
  7666. package/client/static/icons/Yoga.svg +3 -0
  7667. package/client/static/icons/Youtube.svg +3 -0
  7668. package/client/static/icons/YoutubeGaming.svg +3 -0
  7669. package/client/static/icons/YoutubeStudio.svg +3 -0
  7670. package/client/static/icons/YoutubeSubscription.svg +3 -0
  7671. package/client/static/icons/YoutubeTv.svg +3 -0
  7672. package/client/static/icons/Yurt.svg +3 -0
  7673. package/client/static/icons/ZWave.svg +3 -0
  7674. package/client/static/icons/Zend.svg +3 -0
  7675. package/client/static/icons/Zigbee.svg +3 -0
  7676. package/client/static/icons/ZipBox.svg +3 -0
  7677. package/client/static/icons/ZipBoxOutline.svg +3 -0
  7678. package/client/static/icons/ZipDisk.svg +3 -0
  7679. package/client/static/icons/ZodiacAquarius.svg +3 -0
  7680. package/client/static/icons/ZodiacAries.svg +3 -0
  7681. package/client/static/icons/ZodiacCancer.svg +3 -0
  7682. package/client/static/icons/ZodiacCapricorn.svg +3 -0
  7683. package/client/static/icons/ZodiacGemini.svg +3 -0
  7684. package/client/static/icons/ZodiacLeo.svg +3 -0
  7685. package/client/static/icons/ZodiacLibra.svg +3 -0
  7686. package/client/static/icons/ZodiacPisces.svg +3 -0
  7687. package/client/static/icons/ZodiacSagittarius.svg +3 -0
  7688. package/client/static/icons/ZodiacScorpio.svg +3 -0
  7689. package/client/static/icons/ZodiacTaurus.svg +3 -0
  7690. package/client/static/icons/ZodiacVirgo.svg +3 -0
  7691. package/client/static/icons/_meta.json +7449 -0
  7692. package/client/static/logos/anthropic.svg +3 -0
  7693. package/client/static/logos/google.svg +25 -0
  7694. package/client/static/logos/hetzner.svg +1 -0
  7695. package/client/static/logos/ollama.svg +7 -0
  7696. package/client/static/logos/openai.svg +2 -0
  7697. package/client/static/logos/openrouter.svg +1 -0
  7698. package/client/static/mcp-oauth-close.js +5 -0
  7699. package/client/static/prostgles-logo.svg +39 -0
  7700. package/client/static/util.css +2024 -0
  7701. package/client/static/v2.svg +25 -0
  7702. package/dist/common/DBGeneratedSchema.d.ts +3913 -0
  7703. package/dist/common/DBGeneratedSchema.d.ts.map +1 -0
  7704. package/dist/common/DBGeneratedSchema.js +4 -0
  7705. package/dist/common/DBGeneratedSchema.js.map +1 -0
  7706. package/dist/common/DashboardTypes.d.ts +463 -0
  7707. package/dist/common/DashboardTypes.d.ts.map +1 -0
  7708. package/dist/common/DashboardTypes.js +7 -0
  7709. package/dist/common/DashboardTypes.js.map +1 -0
  7710. package/dist/common/KeyObjMap.d.ts +14 -0
  7711. package/dist/common/KeyObjMap.d.ts.map +1 -0
  7712. package/dist/common/KeyObjMap.js +86 -0
  7713. package/dist/common/KeyObjMap.js.map +1 -0
  7714. package/dist/common/OAuthUtils.d.ts +87 -0
  7715. package/dist/common/OAuthUtils.d.ts.map +1 -0
  7716. package/dist/common/OAuthUtils.js +239 -0
  7717. package/dist/common/OAuthUtils.js.map +1 -0
  7718. package/dist/common/auditOperationStyles.d.ts +15 -0
  7719. package/dist/common/auditOperationStyles.d.ts.map +1 -0
  7720. package/dist/common/auditOperationStyles.js +9 -0
  7721. package/dist/common/auditOperationStyles.js.map +1 -0
  7722. package/dist/common/authTypesAndConstants.d.ts +2 -0
  7723. package/dist/common/authTypesAndConstants.d.ts.map +1 -0
  7724. package/dist/common/authTypesAndConstants.js +5 -0
  7725. package/dist/common/authTypesAndConstants.js.map +1 -0
  7726. package/dist/common/columnDisplayFormat.schema.d.ts +207 -0
  7727. package/dist/common/columnDisplayFormat.schema.d.ts.map +1 -0
  7728. package/dist/common/columnDisplayFormat.schema.js +230 -0
  7729. package/dist/common/columnDisplayFormat.schema.js.map +1 -0
  7730. package/dist/common/electronInitTypes.d.ts +41 -0
  7731. package/dist/common/electronInitTypes.d.ts.map +1 -0
  7732. package/dist/common/electronInitTypes.js +19 -0
  7733. package/dist/common/electronInitTypes.js.map +1 -0
  7734. package/dist/common/filterUtils.d.ts +172 -0
  7735. package/dist/common/filterUtils.d.ts.map +1 -0
  7736. package/dist/common/filterUtils.js +351 -0
  7737. package/dist/common/filterUtils.js.map +1 -0
  7738. package/dist/common/getJsonSchemaAsTs.d.ts +32 -0
  7739. package/dist/common/getJsonSchemaAsTs.d.ts.map +1 -0
  7740. package/dist/common/getJsonSchemaAsTs.js +203 -0
  7741. package/dist/common/getJsonSchemaAsTs.js.map +1 -0
  7742. package/dist/common/llmUtils.d.ts +55 -0
  7743. package/dist/common/llmUtils.d.ts.map +1 -0
  7744. package/dist/common/llmUtils.js +96 -0
  7745. package/dist/common/llmUtils.js.map +1 -0
  7746. package/dist/common/managedTableSchema.d.ts +33 -0
  7747. package/dist/common/managedTableSchema.d.ts.map +1 -0
  7748. package/dist/common/managedTableSchema.js +21 -0
  7749. package/dist/common/managedTableSchema.js.map +1 -0
  7750. package/dist/common/mcp/databaseAccessSchema.d.ts +302 -0
  7751. package/dist/common/mcp/databaseAccessSchema.d.ts.map +1 -0
  7752. package/dist/common/mcp/databaseAccessSchema.js +70 -0
  7753. package/dist/common/mcp/databaseAccessSchema.js.map +1 -0
  7754. package/dist/common/mcp/db.mcp.schema.d.ts +389 -0
  7755. package/dist/common/mcp/db.mcp.schema.d.ts.map +1 -0
  7756. package/dist/common/mcp/db.mcp.schema.js +258 -0
  7757. package/dist/common/mcp/db.mcp.schema.js.map +1 -0
  7758. package/dist/common/mcp/documents.mcp.schema.d.ts +95 -0
  7759. package/dist/common/mcp/documents.mcp.schema.d.ts.map +1 -0
  7760. package/dist/common/mcp/documents.mcp.schema.js +43 -0
  7761. package/dist/common/mcp/documents.mcp.schema.js.map +1 -0
  7762. package/dist/common/mcp/documentsServiceInputSchema.d.ts +160 -0
  7763. package/dist/common/mcp/documentsServiceInputSchema.d.ts.map +1 -0
  7764. package/dist/common/mcp/documentsServiceInputSchema.js +121 -0
  7765. package/dist/common/mcp/documentsServiceInputSchema.js.map +1 -0
  7766. package/dist/common/mcp/runCodeInSandboxSchema.d.ts +213 -0
  7767. package/dist/common/mcp/runCodeInSandboxSchema.d.ts.map +1 -0
  7768. package/dist/common/mcp/runCodeInSandboxSchema.js +80 -0
  7769. package/dist/common/mcp/runCodeInSandboxSchema.js.map +1 -0
  7770. package/dist/common/mcp/startAgenticWorkflowSchema.d.ts +768 -0
  7771. package/dist/common/mcp/startAgenticWorkflowSchema.d.ts.map +1 -0
  7772. package/dist/common/mcp/startAgenticWorkflowSchema.js +170 -0
  7773. package/dist/common/mcp/startAgenticWorkflowSchema.js.map +1 -0
  7774. package/dist/common/mcp/tableOptionsJsonbSchema.d.ts +395 -0
  7775. package/dist/common/mcp/tableOptionsJsonbSchema.d.ts.map +1 -0
  7776. package/dist/common/mcp/tableOptionsJsonbSchema.js +152 -0
  7777. package/dist/common/mcp/tableOptionsJsonbSchema.js.map +1 -0
  7778. package/dist/common/mcp/tablePermissionsSchema.d.ts +148 -0
  7779. package/dist/common/mcp/tablePermissionsSchema.d.ts.map +1 -0
  7780. package/dist/common/mcp/tablePermissionsSchema.js +98 -0
  7781. package/dist/common/mcp/tablePermissionsSchema.js.map +1 -0
  7782. package/dist/common/mcp/ui.mcp.schema.d.ts +1325 -0
  7783. package/dist/common/mcp/ui.mcp.schema.d.ts.map +1 -0
  7784. package/dist/common/mcp/ui.mcp.schema.js +471 -0
  7785. package/dist/common/mcp/ui.mcp.schema.js.map +1 -0
  7786. package/dist/common/mcp/userInputSchema.d.ts +153 -0
  7787. package/dist/common/mcp/userInputSchema.d.ts.map +1 -0
  7788. package/dist/common/mcp/userInputSchema.js +90 -0
  7789. package/dist/common/mcp/userInputSchema.js.map +1 -0
  7790. package/dist/common/mcp/web.mcp.schema.d.ts +261 -0
  7791. package/dist/common/mcp/web.mcp.schema.d.ts.map +1 -0
  7792. package/dist/common/mcp/web.mcp.schema.js +221 -0
  7793. package/dist/common/mcp/web.mcp.schema.js.map +1 -0
  7794. package/dist/common/mcp/webdev.mcp.schema.d.ts +121 -0
  7795. package/dist/common/mcp/webdev.mcp.schema.d.ts.map +1 -0
  7796. package/dist/common/mcp/webdev.mcp.schema.js +129 -0
  7797. package/dist/common/mcp/webdev.mcp.schema.js.map +1 -0
  7798. package/dist/common/mcpUtils.d.ts +31 -0
  7799. package/dist/common/mcpUtils.d.ts.map +1 -0
  7800. package/dist/common/mcpUtils.js +30 -0
  7801. package/dist/common/mcpUtils.js.map +1 -0
  7802. package/dist/common/prostglesApiTypes.d.ts +5 -0
  7803. package/dist/common/prostglesApiTypes.d.ts.map +1 -0
  7804. package/dist/common/prostglesApiTypes.js +555 -0
  7805. package/dist/common/prostglesApiTypes.js.map +1 -0
  7806. package/dist/common/prostglesMcp.d.ts +2127 -0
  7807. package/dist/common/prostglesMcp.d.ts.map +1 -0
  7808. package/dist/common/prostglesMcp.js +19 -0
  7809. package/dist/common/prostglesMcp.js.map +1 -0
  7810. package/dist/common/publishUtils.d.ts +220 -0
  7811. package/dist/common/publishUtils.d.ts.map +1 -0
  7812. package/dist/common/publishUtils.js +259 -0
  7813. package/dist/common/publishUtils.js.map +1 -0
  7814. package/dist/common/utils.d.ts +250 -0
  7815. package/dist/common/utils.d.ts.map +1 -0
  7816. package/dist/common/utils.js +264 -0
  7817. package/dist/common/utils.js.map +1 -0
  7818. package/dist/server/package.json +96 -0
  7819. package/dist/server/src/BackupManager/BackupManager.d.ts +324 -0
  7820. package/dist/server/src/BackupManager/BackupManager.d.ts.map +1 -0
  7821. package/dist/server/src/BackupManager/BackupManager.js +235 -0
  7822. package/dist/server/src/BackupManager/BackupManager.js.map +1 -0
  7823. package/dist/server/src/BackupManager/checkAutomaticBackup.d.ts +4 -0
  7824. package/dist/server/src/BackupManager/checkAutomaticBackup.d.ts.map +1 -0
  7825. package/dist/server/src/BackupManager/checkAutomaticBackup.js +121 -0
  7826. package/dist/server/src/BackupManager/checkAutomaticBackup.js.map +1 -0
  7827. package/dist/server/src/BackupManager/getInstalledPrograms.d.ts +4 -0
  7828. package/dist/server/src/BackupManager/getInstalledPrograms.d.ts.map +1 -0
  7829. package/dist/server/src/BackupManager/getInstalledPrograms.js +183 -0
  7830. package/dist/server/src/BackupManager/getInstalledPrograms.js.map +1 -0
  7831. package/dist/server/src/BackupManager/pgDump.d.ts +4 -0
  7832. package/dist/server/src/BackupManager/pgDump.d.ts.map +1 -0
  7833. package/dist/server/src/BackupManager/pgDump.js +189 -0
  7834. package/dist/server/src/BackupManager/pgDump.js.map +1 -0
  7835. package/dist/server/src/BackupManager/pgRestore.d.ts +8 -0
  7836. package/dist/server/src/BackupManager/pgRestore.d.ts.map +1 -0
  7837. package/dist/server/src/BackupManager/pgRestore.js +192 -0
  7838. package/dist/server/src/BackupManager/pgRestore.js.map +1 -0
  7839. package/dist/server/src/BackupManager/pipeFromCommand.d.ts +18 -0
  7840. package/dist/server/src/BackupManager/pipeFromCommand.d.ts.map +1 -0
  7841. package/dist/server/src/BackupManager/pipeFromCommand.js +64 -0
  7842. package/dist/server/src/BackupManager/pipeFromCommand.js.map +1 -0
  7843. package/dist/server/src/BackupManager/pipeToCommand.d.ts +8 -0
  7844. package/dist/server/src/BackupManager/pipeToCommand.d.ts.map +1 -0
  7845. package/dist/server/src/BackupManager/pipeToCommand.js +54 -0
  7846. package/dist/server/src/BackupManager/pipeToCommand.js.map +1 -0
  7847. package/dist/server/src/BackupManager/utils.d.ts +133 -0
  7848. package/dist/server/src/BackupManager/utils.d.ts.map +1 -0
  7849. package/dist/server/src/BackupManager/utils.js +85 -0
  7850. package/dist/server/src/BackupManager/utils.js.map +1 -0
  7851. package/dist/server/src/ConnectionManager/ConnectionManager.d.ts +614 -0
  7852. package/dist/server/src/ConnectionManager/ConnectionManager.d.ts.map +1 -0
  7853. package/dist/server/src/ConnectionManager/ConnectionManager.js +401 -0
  7854. package/dist/server/src/ConnectionManager/ConnectionManager.js.map +1 -0
  7855. package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.d.ts +14 -0
  7856. package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.d.ts.map +1 -0
  7857. package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.js +59 -0
  7858. package/dist/server/src/ConnectionManager/applyStartupSchemaConfig.js.map +1 -0
  7859. package/dist/server/src/ConnectionManager/compileSchemaConfigProject.d.ts +2 -0
  7860. package/dist/server/src/ConnectionManager/compileSchemaConfigProject.d.ts.map +1 -0
  7861. package/dist/server/src/ConnectionManager/compileSchemaConfigProject.js +28 -0
  7862. package/dist/server/src/ConnectionManager/compileSchemaConfigProject.js.map +1 -0
  7863. package/dist/server/src/ConnectionManager/connectionManagerUtils.d.ts +22 -0
  7864. package/dist/server/src/ConnectionManager/connectionManagerUtils.d.ts.map +1 -0
  7865. package/dist/server/src/ConnectionManager/connectionManagerUtils.js +92 -0
  7866. package/dist/server/src/ConnectionManager/connectionManagerUtils.js.map +1 -0
  7867. package/dist/server/src/ConnectionManager/connectionOnReady.d.ts +14 -0
  7868. package/dist/server/src/ConnectionManager/connectionOnReady.d.ts.map +1 -0
  7869. package/dist/server/src/ConnectionManager/connectionOnReady.js +54 -0
  7870. package/dist/server/src/ConnectionManager/connectionOnReady.js.map +1 -0
  7871. package/dist/server/src/ConnectionManager/dbsConnectionOptions.d.ts +101 -0
  7872. package/dist/server/src/ConnectionManager/dbsConnectionOptions.d.ts.map +1 -0
  7873. package/dist/server/src/ConnectionManager/dbsConnectionOptions.js +104 -0
  7874. package/dist/server/src/ConnectionManager/dbsConnectionOptions.js.map +1 -0
  7875. package/dist/server/src/ConnectionManager/getConnectionAuth.d.ts +6 -0
  7876. package/dist/server/src/ConnectionManager/getConnectionAuth.d.ts.map +1 -0
  7877. package/dist/server/src/ConnectionManager/getConnectionAuth.js +29 -0
  7878. package/dist/server/src/ConnectionManager/getConnectionAuth.js.map +1 -0
  7879. package/dist/server/src/ConnectionManager/getConnectionHttpServer.d.ts +63 -0
  7880. package/dist/server/src/ConnectionManager/getConnectionHttpServer.d.ts.map +1 -0
  7881. package/dist/server/src/ConnectionManager/getConnectionHttpServer.js +77 -0
  7882. package/dist/server/src/ConnectionManager/getConnectionHttpServer.js.map +1 -0
  7883. package/dist/server/src/ConnectionManager/getConnectionPublish.d.ts +13 -0
  7884. package/dist/server/src/ConnectionManager/getConnectionPublish.d.ts.map +1 -0
  7885. package/dist/server/src/ConnectionManager/getConnectionPublish.js +85 -0
  7886. package/dist/server/src/ConnectionManager/getConnectionPublish.js.map +1 -0
  7887. package/dist/server/src/ConnectionManager/getConnectionServerFunctions.d.ts +16 -0
  7888. package/dist/server/src/ConnectionManager/getConnectionServerFunctions.d.ts.map +1 -0
  7889. package/dist/server/src/ConnectionManager/getConnectionServerFunctions.js +110 -0
  7890. package/dist/server/src/ConnectionManager/getConnectionServerFunctions.js.map +1 -0
  7891. package/dist/server/src/ConnectionManager/getConnectionSocketPath.d.ts +6 -0
  7892. package/dist/server/src/ConnectionManager/getConnectionSocketPath.d.ts.map +1 -0
  7893. package/dist/server/src/ConnectionManager/getConnectionSocketPath.js +11 -0
  7894. package/dist/server/src/ConnectionManager/getConnectionSocketPath.js.map +1 -0
  7895. package/dist/server/src/ConnectionManager/getHotReloadConfigs.d.ts +202 -0
  7896. package/dist/server/src/ConnectionManager/getHotReloadConfigs.d.ts.map +1 -0
  7897. package/dist/server/src/ConnectionManager/getHotReloadConfigs.js +107 -0
  7898. package/dist/server/src/ConnectionManager/getHotReloadConfigs.js.map +1 -0
  7899. package/dist/server/src/ConnectionManager/getInitiatedPostgresqlPIDs.d.ts +2 -0
  7900. package/dist/server/src/ConnectionManager/getInitiatedPostgresqlPIDs.d.ts.map +1 -0
  7901. package/dist/server/src/ConnectionManager/getInitiatedPostgresqlPIDs.js +82 -0
  7902. package/dist/server/src/ConnectionManager/getInitiatedPostgresqlPIDs.js.map +1 -0
  7903. package/dist/server/src/ConnectionManager/getSchemaConfig.d.ts +11 -0
  7904. package/dist/server/src/ConnectionManager/getSchemaConfig.d.ts.map +1 -0
  7905. package/dist/server/src/ConnectionManager/getSchemaConfig.js +56 -0
  7906. package/dist/server/src/ConnectionManager/getSchemaConfig.js.map +1 -0
  7907. package/dist/server/src/ConnectionManager/getTableAuditConfig.d.ts +6 -0
  7908. package/dist/server/src/ConnectionManager/getTableAuditConfig.d.ts.map +1 -0
  7909. package/dist/server/src/ConnectionManager/getTableAuditConfig.js +21 -0
  7910. package/dist/server/src/ConnectionManager/getTableAuditConfig.js.map +1 -0
  7911. package/dist/server/src/ConnectionManager/initConnectionManager.d.ts +6 -0
  7912. package/dist/server/src/ConnectionManager/initConnectionManager.d.ts.map +1 -0
  7913. package/dist/server/src/ConnectionManager/initConnectionManager.js +114 -0
  7914. package/dist/server/src/ConnectionManager/initConnectionManager.js.map +1 -0
  7915. package/dist/server/src/ConnectionManager/modifyClientSchema.d.ts +15 -0
  7916. package/dist/server/src/ConnectionManager/modifyClientSchema.d.ts.map +1 -0
  7917. package/dist/server/src/ConnectionManager/modifyClientSchema.js +159 -0
  7918. package/dist/server/src/ConnectionManager/modifyClientSchema.js.map +1 -0
  7919. package/dist/server/src/ConnectionManager/parseTableConfig.d.ts +27 -0
  7920. package/dist/server/src/ConnectionManager/parseTableConfig.d.ts.map +1 -0
  7921. package/dist/server/src/ConnectionManager/parseTableConfig.js +193 -0
  7922. package/dist/server/src/ConnectionManager/parseTableConfig.js.map +1 -0
  7923. package/dist/server/src/ConnectionManager/saveCertificates.d.ts +5 -0
  7924. package/dist/server/src/ConnectionManager/saveCertificates.d.ts.map +1 -0
  7925. package/dist/server/src/ConnectionManager/saveCertificates.js +61 -0
  7926. package/dist/server/src/ConnectionManager/saveCertificates.js.map +1 -0
  7927. package/dist/server/src/ConnectionManager/setupSchemaConfigTemplate.d.ts +2 -0
  7928. package/dist/server/src/ConnectionManager/setupSchemaConfigTemplate.d.ts.map +1 -0
  7929. package/dist/server/src/ConnectionManager/setupSchemaConfigTemplate.js +27 -0
  7930. package/dist/server/src/ConnectionManager/setupSchemaConfigTemplate.js.map +1 -0
  7931. package/dist/server/src/ConnectionManager/startConnection.d.ts +12 -0
  7932. package/dist/server/src/ConnectionManager/startConnection.d.ts.map +1 -0
  7933. package/dist/server/src/ConnectionManager/startConnection.js +294 -0
  7934. package/dist/server/src/ConnectionManager/startConnection.js.map +1 -0
  7935. package/dist/server/src/ConnectionManager/startConnectionOnRequestHandler.d.ts +3 -0
  7936. package/dist/server/src/ConnectionManager/startConnectionOnRequestHandler.d.ts.map +1 -0
  7937. package/dist/server/src/ConnectionManager/startConnectionOnRequestHandler.js +42 -0
  7938. package/dist/server/src/ConnectionManager/startConnectionOnRequestHandler.js.map +1 -0
  7939. package/dist/server/src/ConnectionManager/syncSchemaConfig.d.ts +13 -0
  7940. package/dist/server/src/ConnectionManager/syncSchemaConfig.d.ts.map +1 -0
  7941. package/dist/server/src/ConnectionManager/syncSchemaConfig.js +51 -0
  7942. package/dist/server/src/ConnectionManager/syncSchemaConfig.js.map +1 -0
  7943. package/dist/server/src/Logger.d.ts +9 -0
  7944. package/dist/server/src/Logger.d.ts.map +1 -0
  7945. package/dist/server/src/Logger.js +173 -0
  7946. package/dist/server/src/Logger.js.map +1 -0
  7947. package/dist/server/src/McpHub/AnthropicMcpHub/McpHub.d.ts +248 -0
  7948. package/dist/server/src/McpHub/AnthropicMcpHub/McpHub.d.ts.map +1 -0
  7949. package/dist/server/src/McpHub/AnthropicMcpHub/McpHub.js +95 -0
  7950. package/dist/server/src/McpHub/AnthropicMcpHub/McpHub.js.map +1 -0
  7951. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/authenticateMcpServer.d.ts +11 -0
  7952. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/authenticateMcpServer.d.ts.map +1 -0
  7953. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/authenticateMcpServer.js +72 -0
  7954. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/authenticateMcpServer.js.map +1 -0
  7955. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/connectToRemoteMCPServer.d.ts +11 -0
  7956. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/connectToRemoteMCPServer.d.ts.map +1 -0
  7957. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/connectToRemoteMCPServer.js +122 -0
  7958. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/connectToRemoteMCPServer.js.map +1 -0
  7959. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/createMcpOAuthProvider.d.ts +14 -0
  7960. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/createMcpOAuthProvider.d.ts.map +1 -0
  7961. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/createMcpOAuthProvider.js +188 -0
  7962. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/createMcpOAuthProvider.js.map +1 -0
  7963. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getMcpOAuthMetadata.d.ts +27 -0
  7964. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getMcpOAuthMetadata.d.ts.map +1 -0
  7965. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getMcpOAuthMetadata.js +62 -0
  7966. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getMcpOAuthMetadata.js.map +1 -0
  7967. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getRemoteMcpServerParameters.d.ts +36 -0
  7968. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getRemoteMcpServerParameters.d.ts.map +1 -0
  7969. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getRemoteMcpServerParameters.js +58 -0
  7970. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/getRemoteMcpServerParameters.js.map +1 -0
  7971. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/saveServerInfo.d.ts +9 -0
  7972. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/saveServerInfo.d.ts.map +1 -0
  7973. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/saveServerInfo.js +41 -0
  7974. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/saveServerInfo.js.map +1 -0
  7975. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/updateRemoteMcpAuthorizationCode.d.ts +11 -0
  7976. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/updateRemoteMcpAuthorizationCode.d.ts.map +1 -0
  7977. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/updateRemoteMcpAuthorizationCode.js +79 -0
  7978. package/dist/server/src/McpHub/AnthropicMcpHub/McpOAuth/updateRemoteMcpAuthorizationCode.js.map +1 -0
  7979. package/dist/server/src/McpHub/AnthropicMcpHub/McpTypes.d.ts +142 -0
  7980. package/dist/server/src/McpHub/AnthropicMcpHub/McpTypes.d.ts.map +1 -0
  7981. package/dist/server/src/McpHub/AnthropicMcpHub/McpTypes.js +51 -0
  7982. package/dist/server/src/McpHub/AnthropicMcpHub/McpTypes.js.map +1 -0
  7983. package/dist/server/src/McpHub/AnthropicMcpHub/connectToMCPServer.d.ts +16 -0
  7984. package/dist/server/src/McpHub/AnthropicMcpHub/connectToMCPServer.d.ts.map +1 -0
  7985. package/dist/server/src/McpHub/AnthropicMcpHub/connectToMCPServer.js +106 -0
  7986. package/dist/server/src/McpHub/AnthropicMcpHub/connectToMCPServer.js.map +1 -0
  7987. package/dist/server/src/McpHub/AnthropicMcpHub/createMcpServerHandlers.d.ts +217 -0
  7988. package/dist/server/src/McpHub/AnthropicMcpHub/createMcpServerHandlers.d.ts.map +1 -0
  7989. package/dist/server/src/McpHub/AnthropicMcpHub/createMcpServerHandlers.js +77 -0
  7990. package/dist/server/src/McpHub/AnthropicMcpHub/createMcpServerHandlers.js.map +1 -0
  7991. package/dist/server/src/McpHub/AnthropicMcpHub/installMCPServer.d.ts +13 -0
  7992. package/dist/server/src/McpHub/AnthropicMcpHub/installMCPServer.d.ts.map +1 -0
  7993. package/dist/server/src/McpHub/AnthropicMcpHub/installMCPServer.js +168 -0
  7994. package/dist/server/src/McpHub/AnthropicMcpHub/installMCPServer.js.map +1 -0
  7995. package/dist/server/src/McpHub/AnthropicMcpHub/runShellCommand.d.ts +7 -0
  7996. package/dist/server/src/McpHub/AnthropicMcpHub/runShellCommand.d.ts.map +1 -0
  7997. package/dist/server/src/McpHub/AnthropicMcpHub/runShellCommand.js +46 -0
  7998. package/dist/server/src/McpHub/AnthropicMcpHub/runShellCommand.js.map +1 -0
  7999. package/dist/server/src/McpHub/AnthropicMcpHub/startMcpHub.d.ts +5 -0
  8000. package/dist/server/src/McpHub/AnthropicMcpHub/startMcpHub.d.ts.map +1 -0
  8001. package/dist/server/src/McpHub/AnthropicMcpHub/startMcpHub.js +76 -0
  8002. package/dist/server/src/McpHub/AnthropicMcpHub/startMcpHub.js.map +1 -0
  8003. package/dist/server/src/McpHub/DefaultMCPServers/DefaultMCPServers.d.ts +3 -0
  8004. package/dist/server/src/McpHub/DefaultMCPServers/DefaultMCPServers.d.ts.map +1 -0
  8005. package/dist/server/src/McpHub/DefaultMCPServers/DefaultMCPServers.js +127 -0
  8006. package/dist/server/src/McpHub/DefaultMCPServers/DefaultMCPServers.js.map +1 -0
  8007. package/dist/server/src/McpHub/DefaultMCPServers/mcpGithub.d.ts +3 -0
  8008. package/dist/server/src/McpHub/DefaultMCPServers/mcpGithub.d.ts.map +1 -0
  8009. package/dist/server/src/McpHub/DefaultMCPServers/mcpGithub.js +955 -0
  8010. package/dist/server/src/McpHub/DefaultMCPServers/mcpGithub.js.map +1 -0
  8011. package/dist/server/src/McpHub/DockerSandbox/createBridgeInternalDockerNetwork.d.ts +2 -0
  8012. package/dist/server/src/McpHub/DockerSandbox/createBridgeInternalDockerNetwork.d.ts.map +1 -0
  8013. package/dist/server/src/McpHub/DockerSandbox/createBridgeInternalDockerNetwork.js +28 -0
  8014. package/dist/server/src/McpHub/DockerSandbox/createBridgeInternalDockerNetwork.js.map +1 -0
  8015. package/dist/server/src/McpHub/DockerSandbox/createContainer.d.ts +14 -0
  8016. package/dist/server/src/McpHub/DockerSandbox/createContainer.d.ts.map +1 -0
  8017. package/dist/server/src/McpHub/DockerSandbox/createContainer.js +94 -0
  8018. package/dist/server/src/McpHub/DockerSandbox/createContainer.js.map +1 -0
  8019. package/dist/server/src/McpHub/DockerSandbox/createContainer.spec.d.ts +2 -0
  8020. package/dist/server/src/McpHub/DockerSandbox/createContainer.spec.d.ts.map +1 -0
  8021. package/dist/server/src/McpHub/DockerSandbox/createContainer.spec.js +175 -0
  8022. package/dist/server/src/McpHub/DockerSandbox/createContainer.spec.js.map +1 -0
  8023. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerContainerAuthRegistry.d.ts +39 -0
  8024. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerContainerAuthRegistry.d.ts.map +1 -0
  8025. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerContainerAuthRegistry.js +79 -0
  8026. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerContainerAuthRegistry.js.map +1 -0
  8027. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerMCPServerProxy.d.ts +26 -0
  8028. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerMCPServerProxy.d.ts.map +1 -0
  8029. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerMCPServerProxy.js +299 -0
  8030. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/dockerMCPServerProxy.js.map +1 -0
  8031. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/getDockerGatewayIP.d.ts +3 -0
  8032. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/getDockerGatewayIP.d.ts.map +1 -0
  8033. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/getDockerGatewayIP.js +25 -0
  8034. package/dist/server/src/McpHub/DockerSandbox/dockerMCPServerProxy/getDockerGatewayIP.js.map +1 -0
  8035. package/dist/server/src/McpHub/DockerSandbox/executeDockerCommand.d.ts +25 -0
  8036. package/dist/server/src/McpHub/DockerSandbox/executeDockerCommand.d.ts.map +1 -0
  8037. package/dist/server/src/McpHub/DockerSandbox/executeDockerCommand.js +110 -0
  8038. package/dist/server/src/McpHub/DockerSandbox/executeDockerCommand.js.map +1 -0
  8039. package/dist/server/src/McpHub/DockerSandbox/getContainerLogs.d.ts +2 -0
  8040. package/dist/server/src/McpHub/DockerSandbox/getContainerLogs.d.ts.map +1 -0
  8041. package/dist/server/src/McpHub/DockerSandbox/getContainerLogs.js +17 -0
  8042. package/dist/server/src/McpHub/DockerSandbox/getContainerLogs.js.map +1 -0
  8043. package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.d.ts +29 -0
  8044. package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.d.ts.map +1 -0
  8045. package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.js +69 -0
  8046. package/dist/server/src/McpHub/DockerSandbox/getDockerRunArgs.js.map +1 -0
  8047. package/dist/server/src/McpHub/DockerSandbox/runContainerWithProxyAccess.d.ts +26 -0
  8048. package/dist/server/src/McpHub/DockerSandbox/runContainerWithProxyAccess.d.ts.map +1 -0
  8049. package/dist/server/src/McpHub/DockerSandbox/runContainerWithProxyAccess.js +75 -0
  8050. package/dist/server/src/McpHub/DockerSandbox/runContainerWithProxyAccess.js.map +1 -0
  8051. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServerTypes.d.ts +75 -0
  8052. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServerTypes.d.ts.map +1 -0
  8053. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServerTypes.js +3 -0
  8054. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServerTypes.js.map +1 -0
  8055. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Db.mcp.d.ts +399 -0
  8056. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Db.mcp.d.ts.map +1 -0
  8057. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Db.mcp.js +186 -0
  8058. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Db.mcp.js.map +1 -0
  8059. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Documents.mcp.d.ts +103 -0
  8060. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Documents.mcp.d.ts.map +1 -0
  8061. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Documents.mcp.js +62 -0
  8062. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Documents.mcp.js.map +1 -0
  8063. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/createAgenticWorkflow.d.ts +14 -0
  8064. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/createAgenticWorkflow.d.ts.map +1 -0
  8065. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/createAgenticWorkflow.js +164 -0
  8066. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/createAgenticWorkflow.js.map +1 -0
  8067. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/assertTablesExistInFutureSchema.d.ts +3 -0
  8068. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/assertTablesExistInFutureSchema.d.ts.map +1 -0
  8069. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/assertTablesExistInFutureSchema.js +11 -0
  8070. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/assertTablesExistInFutureSchema.js.map +1 -0
  8071. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/getValidatedMcpServerToolsAllowed.d.ts +13 -0
  8072. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/getValidatedMcpServerToolsAllowed.d.ts.map +1 -0
  8073. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/getValidatedMcpServerToolsAllowed.js +105 -0
  8074. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/getValidatedMcpServerToolsAllowed.js.map +1 -0
  8075. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/parseDDLStatements.d.ts +17 -0
  8076. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/parseDDLStatements.d.ts.map +1 -0
  8077. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/parseDDLStatements.js +70 -0
  8078. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/parseDDLStatements.js.map +1 -0
  8079. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/quoteIdent.d.ts +13 -0
  8080. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/quoteIdent.d.ts.map +1 -0
  8081. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/quoteIdent.js +140 -0
  8082. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/quoteIdent.js.map +1 -0
  8083. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateAgenticWorkflowDefinitions.d.ts +219 -0
  8084. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateAgenticWorkflowDefinitions.d.ts.map +1 -0
  8085. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateAgenticWorkflowDefinitions.js +57 -0
  8086. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateAgenticWorkflowDefinitions.js.map +1 -0
  8087. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateDatabaseAccessDefinitions.d.ts +60 -0
  8088. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateDatabaseAccessDefinitions.d.ts.map +1 -0
  8089. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateDatabaseAccessDefinitions.js +148 -0
  8090. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateDatabaseAccessDefinitions.js.map +1 -0
  8091. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInput.d.ts +13 -0
  8092. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInput.d.ts.map +1 -0
  8093. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInput.js +116 -0
  8094. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInput.js.map +1 -0
  8095. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInputDefinitions.d.ts +4 -0
  8096. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInputDefinitions.d.ts.map +1 -0
  8097. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInputDefinitions.js +24 -0
  8098. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/definitionValidation/validateUserInputDefinitions.js.map +1 -0
  8099. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/getVolumesFromUserInput.d.ts +13 -0
  8100. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/getVolumesFromUserInput.d.ts.map +1 -0
  8101. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/getVolumesFromUserInput.js +87 -0
  8102. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/getVolumesFromUserInput.js.map +1 -0
  8103. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/startAgenticWorkflowContainer.d.ts +51 -0
  8104. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/startAgenticWorkflowContainer.d.ts.map +1 -0
  8105. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/startAgenticWorkflowContainer.js +225 -0
  8106. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/execution/startAgenticWorkflowContainer.js.map +1 -0
  8107. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/createWorkflowExecutionHandlers.d.ts +222 -0
  8108. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/createWorkflowExecutionHandlers.d.ts.map +1 -0
  8109. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/createWorkflowExecutionHandlers.js +79 -0
  8110. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/createWorkflowExecutionHandlers.js.map +1 -0
  8111. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/getAgentConfigWithDefaults.d.ts +66 -0
  8112. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/getAgentConfigWithDefaults.d.ts.map +1 -0
  8113. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/getAgentConfigWithDefaults.js +63 -0
  8114. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/getAgentConfigWithDefaults.js.map +1 -0
  8115. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/setupOrchestrationToolPermissions.d.ts +148 -0
  8116. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/setupOrchestrationToolPermissions.d.ts.map +1 -0
  8117. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/setupOrchestrationToolPermissions.js +36 -0
  8118. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/proxyHandlers/setupOrchestrationToolPermissions.js.map +1 -0
  8119. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.d.ts +67 -0
  8120. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.d.ts.map +1 -0
  8121. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.js +198 -0
  8122. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.js.map +1 -0
  8123. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.d.ts +3 -0
  8124. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.d.ts.map +1 -0
  8125. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.js +88 -0
  8126. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.js.map +1 -0
  8127. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.d.ts +432 -0
  8128. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.d.ts.map +1 -0
  8129. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.js +91 -0
  8130. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.js.map +1 -0
  8131. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.d.ts +2 -0
  8132. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.d.ts.map +1 -0
  8133. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.js +90 -0
  8134. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.js.map +1 -0
  8135. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.d.ts +9 -0
  8136. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.d.ts.map +1 -0
  8137. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.js +96 -0
  8138. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.js.map +1 -0
  8139. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.d.ts +60 -0
  8140. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.d.ts.map +1 -0
  8141. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.js +11 -0
  8142. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.js.map +1 -0
  8143. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.d.ts +3 -0
  8144. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.d.ts.map +1 -0
  8145. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.js +85 -0
  8146. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.js.map +1 -0
  8147. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.d.ts +4 -0
  8148. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.d.ts.map +1 -0
  8149. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.js +54 -0
  8150. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.js.map +1 -0
  8151. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.d.ts +103 -0
  8152. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.d.ts.map +1 -0
  8153. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.js +457 -0
  8154. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.js.map +1 -0
  8155. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.d.ts +3 -0
  8156. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.d.ts.map +1 -0
  8157. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.js +39 -0
  8158. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.js.map +1 -0
  8159. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.d.ts +3 -0
  8160. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.d.ts.map +1 -0
  8161. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.js +103 -0
  8162. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.js.map +1 -0
  8163. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.d.ts +29 -0
  8164. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.d.ts.map +1 -0
  8165. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.js +208 -0
  8166. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.js.map +1 -0
  8167. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.spec.d.ts +2 -0
  8168. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.spec.d.ts.map +1 -0
  8169. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.spec.js +23 -0
  8170. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getAgenticWorkflowDockerCoreFiles.spec.js.map +1 -0
  8171. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getDefineAgenticWorkflowTsWithDbAndMcpTypes.d.ts +19 -0
  8172. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getDefineAgenticWorkflowTsWithDbAndMcpTypes.d.ts.map +1 -0
  8173. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getDefineAgenticWorkflowTsWithDbAndMcpTypes.js +96 -0
  8174. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getDefineAgenticWorkflowTsWithDbAndMcpTypes.js.map +1 -0
  8175. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getOrchestrationContainerFiles.d.ts +18 -0
  8176. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getOrchestrationContainerFiles.d.ts.map +1 -0
  8177. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getOrchestrationContainerFiles.js +14 -0
  8178. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getOrchestrationContainerFiles.js.map +1 -0
  8179. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getToolTypescriptSchemas.d.ts +9 -0
  8180. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getToolTypescriptSchemas.d.ts.map +1 -0
  8181. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getToolTypescriptSchemas.js +52 -0
  8182. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSetup/getToolTypescriptSchemas.js.map +1 -0
  8183. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/startAgenticWorkflow.d.ts +45 -0
  8184. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/startAgenticWorkflow.d.ts.map +1 -0
  8185. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/startAgenticWorkflow.js +120 -0
  8186. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/startAgenticWorkflow.js.map +1 -0
  8187. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/fetchTools.d.ts +4 -0
  8188. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/fetchTools.d.ts.map +1 -0
  8189. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/fetchTools.js +39 -0
  8190. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/fetchTools.js.map +1 -0
  8191. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/runCodeInSandboxContainer.d.ts +22 -0
  8192. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/runCodeInSandboxContainer.d.ts.map +1 -0
  8193. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/runCodeInSandboxContainer.js +105 -0
  8194. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/runCodeInSandboxContainer.js.map +1 -0
  8195. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getAgenticToolSchemas.d.ts +12 -0
  8196. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getAgenticToolSchemas.d.ts.map +1 -0
  8197. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getAgenticToolSchemas.js +46 -0
  8198. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getAgenticToolSchemas.js.map +1 -0
  8199. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolProxyAccessInstructions.d.ts +3 -0
  8200. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolProxyAccessInstructions.d.ts.map +1 -0
  8201. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolProxyAccessInstructions.js +21 -0
  8202. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolProxyAccessInstructions.js.map +1 -0
  8203. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolSchemas.d.ts +222 -0
  8204. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolSchemas.d.ts.map +1 -0
  8205. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolSchemas.js +24 -0
  8206. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/getContainerToolSchemas.js.map +1 -0
  8207. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/prostglesUiToolSchemas.d.ts +7 -0
  8208. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/prostglesUiToolSchemas.d.ts.map +1 -0
  8209. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/prostglesUiToolSchemas.js +17 -0
  8210. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/prostglesUiToolSchemas.js.map +1 -0
  8211. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/suggestDashboardsToolSchema.d.ts +7 -0
  8212. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/suggestDashboardsToolSchema.d.ts.map +1 -0
  8213. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/suggestDashboardsToolSchema.js +23 -0
  8214. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/schemas/suggestDashboardsToolSchema.js.map +1 -0
  8215. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/startAgent.d.ts +22 -0
  8216. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/startAgent.d.ts.map +1 -0
  8217. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/startAgent.js +98 -0
  8218. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/startAgent.js.map +1 -0
  8219. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/validateCreateDashboards.d.ts +3 -0
  8220. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/validateCreateDashboards.d.ts.map +1 -0
  8221. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/validateCreateDashboards.js +191 -0
  8222. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/validateCreateDashboards.js.map +1 -0
  8223. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Ui.mcp.d.ts +1284 -0
  8224. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Ui.mcp.d.ts.map +1 -0
  8225. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Ui.mcp.js +244 -0
  8226. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Ui.mcp.js.map +1 -0
  8227. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/Web.mcp.d.ts +266 -0
  8228. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/Web.mcp.d.ts.map +1 -0
  8229. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/Web.mcp.js +181 -0
  8230. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/Web.mcp.js.map +1 -0
  8231. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.d.ts +4 -0
  8232. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.d.ts.map +1 -0
  8233. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.js +183 -0
  8234. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.js.map +1 -0
  8235. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.spec.d.ts +2 -0
  8236. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.spec.d.ts.map +1 -0
  8237. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.spec.js +81 -0
  8238. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/checkConfigAccess.spec.js.map +1 -0
  8239. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/getDocumentText.d.ts +6 -0
  8240. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/getDocumentText.d.ts.map +1 -0
  8241. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/getDocumentText.js +23 -0
  8242. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Web/getDocumentText.js.map +1 -0
  8243. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/WebDev.mcp.d.ts +131 -0
  8244. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/WebDev.mcp.d.ts.map +1 -0
  8245. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/WebDev.mcp.js +91 -0
  8246. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/WebDev.mcp.js.map +1 -0
  8247. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponent.d.ts +6 -0
  8248. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponent.d.ts.map +1 -0
  8249. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponent.js +62 -0
  8250. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponent.js.map +1 -0
  8251. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponentQuickFeedbackPreview.d.ts +4 -0
  8252. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponentQuickFeedbackPreview.d.ts.map +1 -0
  8253. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponentQuickFeedbackPreview.js +31 -0
  8254. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/createComponentQuickFeedbackPreview.js.map +1 -0
  8255. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.d.ts +302 -0
  8256. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.d.ts.map +1 -0
  8257. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.js +11 -0
  8258. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/getWebDevChatAndConnection.js.map +1 -0
  8259. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.d.ts +18 -0
  8260. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.d.ts.map +1 -0
  8261. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.js +83 -0
  8262. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.js.map +1 -0
  8263. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.spec.d.ts +2 -0
  8264. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.spec.d.ts.map +1 -0
  8265. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.spec.js +61 -0
  8266. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/searchWebDevFiles.spec.js.map +1 -0
  8267. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/utils.d.ts +6 -0
  8268. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/utils.d.ts.map +1 -0
  8269. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/utils.js +25 -0
  8270. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/WebDev/tools/utils.js.map +1 -0
  8271. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getClientDBHandlersForChat.d.ts +4 -0
  8272. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getClientDBHandlersForChat.d.ts.map +1 -0
  8273. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getClientDBHandlersForChat.js +36 -0
  8274. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getClientDBHandlersForChat.js.map +1 -0
  8275. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getExistingTablesSchema.d.ts +6 -0
  8276. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getExistingTablesSchema.d.ts.map +1 -0
  8277. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getExistingTablesSchema.js +169 -0
  8278. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/getExistingTablesSchema.js.map +1 -0
  8279. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers.d.ts +4332 -0
  8280. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers.d.ts.map +1 -0
  8281. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers.js +24 -0
  8282. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMCPServers.js.map +1 -0
  8283. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMcpHub.d.ts +4356 -0
  8284. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMcpHub.d.ts.map +1 -0
  8285. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMcpHub.js +164 -0
  8286. package/dist/server/src/McpHub/ProstglesMcpHub/ProstglesMcpHub.js.map +1 -0
  8287. package/dist/server/src/McpHub/callMCPServerTool.d.ts +19 -0
  8288. package/dist/server/src/McpHub/callMCPServerTool.d.ts.map +1 -0
  8289. package/dist/server/src/McpHub/callMCPServerTool.js +94 -0
  8290. package/dist/server/src/McpHub/callMCPServerTool.js.map +1 -0
  8291. package/dist/server/src/McpHub/getMcpServerParameters.d.ts +5 -0
  8292. package/dist/server/src/McpHub/getMcpServerParameters.d.ts.map +1 -0
  8293. package/dist/server/src/McpHub/getMcpServerParameters.js +154 -0
  8294. package/dist/server/src/McpHub/getMcpServerParameters.js.map +1 -0
  8295. package/dist/server/src/McpHub/insertMcpServerList.d.ts +3 -0
  8296. package/dist/server/src/McpHub/insertMcpServerList.d.ts.map +1 -0
  8297. package/dist/server/src/McpHub/insertMcpServerList.js +41 -0
  8298. package/dist/server/src/McpHub/insertMcpServerList.js.map +1 -0
  8299. package/dist/server/src/McpHub/reloadMcpServerTools.d.ts +14 -0
  8300. package/dist/server/src/McpHub/reloadMcpServerTools.d.ts.map +1 -0
  8301. package/dist/server/src/McpHub/reloadMcpServerTools.js +83 -0
  8302. package/dist/server/src/McpHub/reloadMcpServerTools.js.map +1 -0
  8303. package/dist/server/src/McpHub/testMCPServerConfig.d.ts +4 -0
  8304. package/dist/server/src/McpHub/testMCPServerConfig.d.ts.map +1 -0
  8305. package/dist/server/src/McpHub/testMCPServerConfig.js +26 -0
  8306. package/dist/server/src/McpHub/testMCPServerConfig.js.map +1 -0
  8307. package/dist/server/src/McpHub/utils.d.ts +2 -0
  8308. package/dist/server/src/McpHub/utils.d.ts.map +1 -0
  8309. package/dist/server/src/McpHub/utils.js +5 -0
  8310. package/dist/server/src/McpHub/utils.js.map +1 -0
  8311. package/dist/server/src/ServiceManager/ServiceManager.d.ts +34 -0
  8312. package/dist/server/src/ServiceManager/ServiceManager.d.ts.map +1 -0
  8313. package/dist/server/src/ServiceManager/ServiceManager.js +134 -0
  8314. package/dist/server/src/ServiceManager/ServiceManager.js.map +1 -0
  8315. package/dist/server/src/ServiceManager/ServiceManager.spec.d.ts +2 -0
  8316. package/dist/server/src/ServiceManager/ServiceManager.spec.d.ts.map +1 -0
  8317. package/dist/server/src/ServiceManager/ServiceManager.spec.js +61 -0
  8318. package/dist/server/src/ServiceManager/ServiceManager.spec.js.map +1 -0
  8319. package/dist/server/src/ServiceManager/ServiceManagerTypes.d.ts +776 -0
  8320. package/dist/server/src/ServiceManager/ServiceManagerTypes.d.ts.map +1 -0
  8321. package/dist/server/src/ServiceManager/ServiceManagerTypes.js +12 -0
  8322. package/dist/server/src/ServiceManager/ServiceManagerTypes.js.map +1 -0
  8323. package/dist/server/src/ServiceManager/buildService.d.ts +5 -0
  8324. package/dist/server/src/ServiceManager/buildService.d.ts.map +1 -0
  8325. package/dist/server/src/ServiceManager/buildService.js +108 -0
  8326. package/dist/server/src/ServiceManager/buildService.js.map +1 -0
  8327. package/dist/server/src/ServiceManager/dockerInspect.d.ts +10 -0
  8328. package/dist/server/src/ServiceManager/dockerInspect.d.ts.map +1 -0
  8329. package/dist/server/src/ServiceManager/dockerInspect.js +25 -0
  8330. package/dist/server/src/ServiceManager/dockerInspect.js.map +1 -0
  8331. package/dist/server/src/ServiceManager/enableService.d.ts +5 -0
  8332. package/dist/server/src/ServiceManager/enableService.d.ts.map +1 -0
  8333. package/dist/server/src/ServiceManager/enableService.js +31 -0
  8334. package/dist/server/src/ServiceManager/enableService.js.map +1 -0
  8335. package/dist/server/src/ServiceManager/getDockerBuildHash.d.ts +2 -0
  8336. package/dist/server/src/ServiceManager/getDockerBuildHash.d.ts.map +1 -0
  8337. package/dist/server/src/ServiceManager/getDockerBuildHash.js +47 -0
  8338. package/dist/server/src/ServiceManager/getDockerBuildHash.js.map +1 -0
  8339. package/dist/server/src/ServiceManager/getSelectedConfigEnvs.d.ts +7 -0
  8340. package/dist/server/src/ServiceManager/getSelectedConfigEnvs.d.ts.map +1 -0
  8341. package/dist/server/src/ServiceManager/getSelectedConfigEnvs.js +40 -0
  8342. package/dist/server/src/ServiceManager/getSelectedConfigEnvs.js.map +1 -0
  8343. package/dist/server/src/ServiceManager/getServiceEndpoints.d.ts +7 -0
  8344. package/dist/server/src/ServiceManager/getServiceEndpoints.d.ts.map +1 -0
  8345. package/dist/server/src/ServiceManager/getServiceEndpoints.js +101 -0
  8346. package/dist/server/src/ServiceManager/getServiceEndpoints.js.map +1 -0
  8347. package/dist/server/src/ServiceManager/getServiceManager.d.ts +685 -0
  8348. package/dist/server/src/ServiceManager/getServiceManager.d.ts.map +1 -0
  8349. package/dist/server/src/ServiceManager/getServiceManager.js +24 -0
  8350. package/dist/server/src/ServiceManager/getServiceManager.js.map +1 -0
  8351. package/dist/server/src/ServiceManager/initialiseServices.d.ts +4 -0
  8352. package/dist/server/src/ServiceManager/initialiseServices.d.ts.map +1 -0
  8353. package/dist/server/src/ServiceManager/initialiseServices.js +39 -0
  8354. package/dist/server/src/ServiceManager/initialiseServices.js.map +1 -0
  8355. package/dist/server/src/ServiceManager/resolveBinary.d.ts +4 -0
  8356. package/dist/server/src/ServiceManager/resolveBinary.d.ts.map +1 -0
  8357. package/dist/server/src/ServiceManager/resolveBinary.js +33 -0
  8358. package/dist/server/src/ServiceManager/resolveBinary.js.map +1 -0
  8359. package/dist/server/src/ServiceManager/services/documents/documents.service.d.ts +381 -0
  8360. package/dist/server/src/ServiceManager/services/documents/documents.service.d.ts.map +1 -0
  8361. package/dist/server/src/ServiceManager/services/documents/documents.service.js +175 -0
  8362. package/dist/server/src/ServiceManager/services/documents/documents.service.js.map +1 -0
  8363. package/dist/server/src/ServiceManager/services/documents/documents.service.types.d.ts +39 -0
  8364. package/dist/server/src/ServiceManager/services/documents/documents.service.types.d.ts.map +1 -0
  8365. package/dist/server/src/ServiceManager/services/documents/documents.service.types.js +45 -0
  8366. package/dist/server/src/ServiceManager/services/documents/documents.service.types.js.map +1 -0
  8367. package/dist/server/src/ServiceManager/services/frontendDev/frontendDev.service.d.ts +20 -0
  8368. package/dist/server/src/ServiceManager/services/frontendDev/frontendDev.service.d.ts.map +1 -0
  8369. package/dist/server/src/ServiceManager/services/frontendDev/frontendDev.service.js +21 -0
  8370. package/dist/server/src/ServiceManager/services/frontendDev/frontendDev.service.js.map +1 -0
  8371. package/dist/server/src/ServiceManager/services/speechToText/TRANSCRIBE_OUTPUT_SCHEMA.d.ts +49 -0
  8372. package/dist/server/src/ServiceManager/services/speechToText/TRANSCRIBE_OUTPUT_SCHEMA.d.ts.map +1 -0
  8373. package/dist/server/src/ServiceManager/services/speechToText/TRANSCRIBE_OUTPUT_SCHEMA.js +55 -0
  8374. package/dist/server/src/ServiceManager/services/speechToText/TRANSCRIBE_OUTPUT_SCHEMA.js.map +1 -0
  8375. package/dist/server/src/ServiceManager/services/speechToText/speechToText.service.d.ts +207 -0
  8376. package/dist/server/src/ServiceManager/services/speechToText/speechToText.service.d.ts.map +1 -0
  8377. package/dist/server/src/ServiceManager/services/speechToText/speechToText.service.js +123 -0
  8378. package/dist/server/src/ServiceManager/services/speechToText/speechToText.service.js.map +1 -0
  8379. package/dist/server/src/ServiceManager/services/webSearchSearxng/webSearchSearxng.service.d.ts +98 -0
  8380. package/dist/server/src/ServiceManager/services/webSearchSearxng/webSearchSearxng.service.d.ts.map +1 -0
  8381. package/dist/server/src/ServiceManager/services/webSearchSearxng/webSearchSearxng.service.js +33 -0
  8382. package/dist/server/src/ServiceManager/services/webSearchSearxng/webSearchSearxng.service.js.map +1 -0
  8383. package/dist/server/src/ServiceManager/startService.d.ts +7 -0
  8384. package/dist/server/src/ServiceManager/startService.d.ts.map +1 -0
  8385. package/dist/server/src/ServiceManager/startService.js +150 -0
  8386. package/dist/server/src/ServiceManager/startService.js.map +1 -0
  8387. package/dist/server/src/ServiceManager/stopService.d.ts +3 -0
  8388. package/dist/server/src/ServiceManager/stopService.d.ts.map +1 -0
  8389. package/dist/server/src/ServiceManager/stopService.js +22 -0
  8390. package/dist/server/src/ServiceManager/stopService.js.map +1 -0
  8391. package/dist/server/src/ServiceManager/withRetries.d.ts +2 -0
  8392. package/dist/server/src/ServiceManager/withRetries.d.ts.map +1 -0
  8393. package/dist/server/src/ServiceManager/withRetries.js +20 -0
  8394. package/dist/server/src/ServiceManager/withRetries.js.map +1 -0
  8395. package/dist/server/src/authConfig/OAuthProviders/getOAuthLoginProviders.d.ts +8 -0
  8396. package/dist/server/src/authConfig/OAuthProviders/getOAuthLoginProviders.d.ts.map +1 -0
  8397. package/dist/server/src/authConfig/OAuthProviders/getOAuthLoginProviders.js +55 -0
  8398. package/dist/server/src/authConfig/OAuthProviders/getOAuthLoginProviders.js.map +1 -0
  8399. package/dist/server/src/authConfig/OAuthProviders/loginWithProvider.d.ts +11 -0
  8400. package/dist/server/src/authConfig/OAuthProviders/loginWithProvider.d.ts.map +1 -0
  8401. package/dist/server/src/authConfig/OAuthProviders/loginWithProvider.js +77 -0
  8402. package/dist/server/src/authConfig/OAuthProviders/loginWithProvider.js.map +1 -0
  8403. package/dist/server/src/authConfig/authUtils.d.ts +4 -0
  8404. package/dist/server/src/authConfig/authUtils.d.ts.map +1 -0
  8405. package/dist/server/src/authConfig/authUtils.js +23 -0
  8406. package/dist/server/src/authConfig/authUtils.js.map +1 -0
  8407. package/dist/server/src/authConfig/createPasswordlessAdminSessionIfNeeded.d.ts +6 -0
  8408. package/dist/server/src/authConfig/createPasswordlessAdminSessionIfNeeded.d.ts.map +1 -0
  8409. package/dist/server/src/authConfig/createPasswordlessAdminSessionIfNeeded.js +57 -0
  8410. package/dist/server/src/authConfig/createPasswordlessAdminSessionIfNeeded.js.map +1 -0
  8411. package/dist/server/src/authConfig/createPublicUserSessionIfAllowed.d.ts +6 -0
  8412. package/dist/server/src/authConfig/createPublicUserSessionIfAllowed.d.ts.map +1 -0
  8413. package/dist/server/src/authConfig/createPublicUserSessionIfAllowed.js +34 -0
  8414. package/dist/server/src/authConfig/createPublicUserSessionIfAllowed.js.map +1 -0
  8415. package/dist/server/src/authConfig/emailProvider/getEmailAuthProvider.d.ts +5 -0
  8416. package/dist/server/src/authConfig/emailProvider/getEmailAuthProvider.d.ts.map +1 -0
  8417. package/dist/server/src/authConfig/emailProvider/getEmailAuthProvider.js +32 -0
  8418. package/dist/server/src/authConfig/emailProvider/getEmailAuthProvider.js.map +1 -0
  8419. package/dist/server/src/authConfig/emailProvider/getEmailSenderWithMockTest.d.ts +61 -0
  8420. package/dist/server/src/authConfig/emailProvider/getEmailSenderWithMockTest.d.ts.map +1 -0
  8421. package/dist/server/src/authConfig/emailProvider/getEmailSenderWithMockTest.js +69 -0
  8422. package/dist/server/src/authConfig/emailProvider/getEmailSenderWithMockTest.js.map +1 -0
  8423. package/dist/server/src/authConfig/emailProvider/onEmailRegistration.d.ts +12 -0
  8424. package/dist/server/src/authConfig/emailProvider/onEmailRegistration.d.ts.map +1 -0
  8425. package/dist/server/src/authConfig/emailProvider/onEmailRegistration.js +78 -0
  8426. package/dist/server/src/authConfig/emailProvider/onEmailRegistration.js.map +1 -0
  8427. package/dist/server/src/authConfig/getActiveSession.d.ts +43 -0
  8428. package/dist/server/src/authConfig/getActiveSession.d.ts.map +1 -0
  8429. package/dist/server/src/authConfig/getActiveSession.js +46 -0
  8430. package/dist/server/src/authConfig/getActiveSession.js.map +1 -0
  8431. package/dist/server/src/authConfig/getAuth.d.ts +112 -0
  8432. package/dist/server/src/authConfig/getAuth.d.ts.map +1 -0
  8433. package/dist/server/src/authConfig/getAuth.js +136 -0
  8434. package/dist/server/src/authConfig/getAuth.js.map +1 -0
  8435. package/dist/server/src/authConfig/getLogin.d.ts +6 -0
  8436. package/dist/server/src/authConfig/getLogin.d.ts.map +1 -0
  8437. package/dist/server/src/authConfig/getLogin.js +147 -0
  8438. package/dist/server/src/authConfig/getLogin.js.map +1 -0
  8439. package/dist/server/src/authConfig/getUser.d.ts +14 -0
  8440. package/dist/server/src/authConfig/getUser.d.ts.map +1 -0
  8441. package/dist/server/src/authConfig/getUser.js +72 -0
  8442. package/dist/server/src/authConfig/getUser.js.map +1 -0
  8443. package/dist/server/src/authConfig/onMagicLinkOrOTP.d.ts +17 -0
  8444. package/dist/server/src/authConfig/onMagicLinkOrOTP.d.ts.map +1 -0
  8445. package/dist/server/src/authConfig/onMagicLinkOrOTP.js +128 -0
  8446. package/dist/server/src/authConfig/onMagicLinkOrOTP.js.map +1 -0
  8447. package/dist/server/src/authConfig/onUseOrSocketConnected.d.ts +14 -0
  8448. package/dist/server/src/authConfig/onUseOrSocketConnected.d.ts.map +1 -0
  8449. package/dist/server/src/authConfig/onUseOrSocketConnected.js +29 -0
  8450. package/dist/server/src/authConfig/onUseOrSocketConnected.js.map +1 -0
  8451. package/dist/server/src/authConfig/sessionUtils.d.ts +103 -0
  8452. package/dist/server/src/authConfig/sessionUtils.d.ts.map +1 -0
  8453. package/dist/server/src/authConfig/sessionUtils.js +72 -0
  8454. package/dist/server/src/authConfig/sessionUtils.js.map +1 -0
  8455. package/dist/server/src/authConfig/startRateLimitedLoginAttempt.d.ts +68 -0
  8456. package/dist/server/src/authConfig/startRateLimitedLoginAttempt.d.ts.map +1 -0
  8457. package/dist/server/src/authConfig/startRateLimitedLoginAttempt.js +132 -0
  8458. package/dist/server/src/authConfig/startRateLimitedLoginAttempt.js.map +1 -0
  8459. package/dist/server/src/authConfig/subscribeToAuthSetupChanges.d.ts +281 -0
  8460. package/dist/server/src/authConfig/subscribeToAuthSetupChanges.d.ts.map +1 -0
  8461. package/dist/server/src/authConfig/subscribeToAuthSetupChanges.js +91 -0
  8462. package/dist/server/src/authConfig/subscribeToAuthSetupChanges.js.map +1 -0
  8463. package/dist/server/src/authConfig/upsertSession.d.ts +14 -0
  8464. package/dist/server/src/authConfig/upsertSession.d.ts.map +1 -0
  8465. package/dist/server/src/authConfig/upsertSession.js +26 -0
  8466. package/dist/server/src/authConfig/upsertSession.js.map +1 -0
  8467. package/dist/server/src/cli/.prettierrc +3 -0
  8468. package/dist/server/src/cli/DB.Dockerfile +11 -0
  8469. package/dist/server/src/cli/Dockerfile +33 -0
  8470. package/dist/server/src/cli/cli.d.ts +3 -0
  8471. package/dist/server/src/cli/cli.d.ts.map +1 -0
  8472. package/dist/server/src/cli/cli.js +194 -0
  8473. package/dist/server/src/cli/cli.js.map +1 -0
  8474. package/dist/server/src/cli/cliTemplateFiles.d.ts +92 -0
  8475. package/dist/server/src/cli/cliTemplateFiles.d.ts.map +1 -0
  8476. package/dist/server/src/cli/cliTemplateFiles.js +593 -0
  8477. package/dist/server/src/cli/cliTemplateFiles.js.map +1 -0
  8478. package/dist/server/src/cli/cliTemplateFiles.spec.d.ts +2 -0
  8479. package/dist/server/src/cli/cliTemplateFiles.spec.d.ts.map +1 -0
  8480. package/dist/server/src/cli/cliTemplateFiles.spec.js +57 -0
  8481. package/dist/server/src/cli/cliTemplateFiles.spec.js.map +1 -0
  8482. package/dist/server/src/cli/ensureCliDatabases.d.ts +7 -0
  8483. package/dist/server/src/cli/ensureCliDatabases.d.ts.map +1 -0
  8484. package/dist/server/src/cli/ensureCliDatabases.js +48 -0
  8485. package/dist/server/src/cli/ensureCliDatabases.js.map +1 -0
  8486. package/dist/server/src/cli/testing/createTestDeployment.d.ts +41 -0
  8487. package/dist/server/src/cli/testing/createTestDeployment.d.ts.map +1 -0
  8488. package/dist/server/src/cli/testing/createTestDeployment.js +431 -0
  8489. package/dist/server/src/cli/testing/createTestDeployment.js.map +1 -0
  8490. package/dist/server/src/cli/testing/index.d.ts +2 -0
  8491. package/dist/server/src/cli/testing/index.d.ts.map +1 -0
  8492. package/dist/server/src/cli/testing/index.js +6 -0
  8493. package/dist/server/src/cli/testing/index.js.map +1 -0
  8494. package/dist/server/src/cli/upgradeCli.d.ts +9 -0
  8495. package/dist/server/src/cli/upgradeCli.d.ts.map +1 -0
  8496. package/dist/server/src/cli/upgradeCli.js +163 -0
  8497. package/dist/server/src/cli/upgradeCli.js.map +1 -0
  8498. package/dist/server/src/cli/upgradeCli.spec.d.ts +2 -0
  8499. package/dist/server/src/cli/upgradeCli.spec.d.ts.map +1 -0
  8500. package/dist/server/src/cli/upgradeCli.spec.js +105 -0
  8501. package/dist/server/src/cli/upgradeCli.spec.js.map +1 -0
  8502. package/dist/server/src/cliServer.d.ts +2 -0
  8503. package/dist/server/src/cliServer.d.ts.map +1 -0
  8504. package/dist/server/src/cliServer.js +4 -0
  8505. package/dist/server/src/cliServer.js.map +1 -0
  8506. package/dist/server/src/cloudClients/cloudClients.d.ts +11 -0
  8507. package/dist/server/src/cloudClients/cloudClients.d.ts.map +1 -0
  8508. package/dist/server/src/cloudClients/cloudClients.js +72 -0
  8509. package/dist/server/src/cloudClients/cloudClients.js.map +1 -0
  8510. package/dist/server/src/connectionUtils/getConnectionDetails.d.ts +15 -0
  8511. package/dist/server/src/connectionUtils/getConnectionDetails.d.ts.map +1 -0
  8512. package/dist/server/src/connectionUtils/getConnectionDetails.js +69 -0
  8513. package/dist/server/src/connectionUtils/getConnectionDetails.js.map +1 -0
  8514. package/dist/server/src/connectionUtils/getConnectionDetails.spec.d.ts +2 -0
  8515. package/dist/server/src/connectionUtils/getConnectionDetails.spec.d.ts.map +1 -0
  8516. package/dist/server/src/connectionUtils/getConnectionDetails.spec.js +25 -0
  8517. package/dist/server/src/connectionUtils/getConnectionDetails.spec.js.map +1 -0
  8518. package/dist/server/src/connectionUtils/testDBConnection.d.ts +26 -0
  8519. package/dist/server/src/connectionUtils/testDBConnection.d.ts.map +1 -0
  8520. package/dist/server/src/connectionUtils/testDBConnection.js +127 -0
  8521. package/dist/server/src/connectionUtils/testDBConnection.js.map +1 -0
  8522. package/dist/server/src/connectionUtils/validateConnection.d.ts +13 -0
  8523. package/dist/server/src/connectionUtils/validateConnection.d.ts.map +1 -0
  8524. package/dist/server/src/connectionUtils/validateConnection.js +77 -0
  8525. package/dist/server/src/connectionUtils/validateConnection.js.map +1 -0
  8526. package/dist/server/src/createHttpAndIOServers/createHttpServer.d.ts +17 -0
  8527. package/dist/server/src/createHttpAndIOServers/createHttpServer.d.ts.map +1 -0
  8528. package/dist/server/src/createHttpAndIOServers/createHttpServer.js +83 -0
  8529. package/dist/server/src/createHttpAndIOServers/createHttpServer.js.map +1 -0
  8530. package/dist/server/src/createHttpAndIOServers/createIOWebsocketServer.d.ts +11 -0
  8531. package/dist/server/src/createHttpAndIOServers/createIOWebsocketServer.d.ts.map +1 -0
  8532. package/dist/server/src/createHttpAndIOServers/createIOWebsocketServer.js +16 -0
  8533. package/dist/server/src/createHttpAndIOServers/createIOWebsocketServer.js.map +1 -0
  8534. package/dist/server/src/createHttpAndIOServers/getCorsOptions.d.ts +4 -0
  8535. package/dist/server/src/createHttpAndIOServers/getCorsOptions.d.ts.map +1 -0
  8536. package/dist/server/src/createHttpAndIOServers/getCorsOptions.js +49 -0
  8537. package/dist/server/src/createHttpAndIOServers/getCorsOptions.js.map +1 -0
  8538. package/dist/server/src/createHttpAndIOServers/getCorsOptions.spec.d.ts +2 -0
  8539. package/dist/server/src/createHttpAndIOServers/getCorsOptions.spec.d.ts.map +1 -0
  8540. package/dist/server/src/createHttpAndIOServers/getCorsOptions.spec.js +42 -0
  8541. package/dist/server/src/createHttpAndIOServers/getCorsOptions.spec.js.map +1 -0
  8542. package/dist/server/src/createHttpAndIOServers/setHttpAppSecurity.d.ts +5 -0
  8543. package/dist/server/src/createHttpAndIOServers/setHttpAppSecurity.d.ts.map +1 -0
  8544. package/dist/server/src/createHttpAndIOServers/setHttpAppSecurity.js +74 -0
  8545. package/dist/server/src/createHttpAndIOServers/setHttpAppSecurity.js.map +1 -0
  8546. package/dist/server/src/dockerRuntime.d.ts +21 -0
  8547. package/dist/server/src/dockerRuntime.d.ts.map +1 -0
  8548. package/dist/server/src/dockerRuntime.js +45 -0
  8549. package/dist/server/src/dockerRuntime.js.map +1 -0
  8550. package/dist/server/src/dockerRuntime.spec.d.ts +2 -0
  8551. package/dist/server/src/dockerRuntime.spec.d.ts.map +1 -0
  8552. package/dist/server/src/dockerRuntime.spec.js +51 -0
  8553. package/dist/server/src/dockerRuntime.spec.js.map +1 -0
  8554. package/dist/server/src/electronConfig.d.ts +58 -0
  8555. package/dist/server/src/electronConfig.d.ts.map +1 -0
  8556. package/dist/server/src/electronConfig.js +161 -0
  8557. package/dist/server/src/electronConfig.js.map +1 -0
  8558. package/dist/server/src/envVars.d.ts +22 -0
  8559. package/dist/server/src/envVars.d.ts.map +1 -0
  8560. package/dist/server/src/envVars.js +35 -0
  8561. package/dist/server/src/envVars.js.map +1 -0
  8562. package/dist/server/src/getPSQLQueries.d.ts +183 -0
  8563. package/dist/server/src/getPSQLQueries.d.ts.map +1 -0
  8564. package/dist/server/src/getPSQLQueries.js +121 -0
  8565. package/dist/server/src/getPSQLQueries.js.map +1 -0
  8566. package/dist/server/src/index.d.ts +24 -0
  8567. package/dist/server/src/index.d.ts.map +1 -0
  8568. package/dist/server/src/index.js +199 -0
  8569. package/dist/server/src/index.js.map +1 -0
  8570. package/dist/server/src/init/CSP_DEFAULTS.d.ts +10 -0
  8571. package/dist/server/src/init/CSP_DEFAULTS.d.ts.map +1 -0
  8572. package/dist/server/src/init/CSP_DEFAULTS.js +40 -0
  8573. package/dist/server/src/init/CSP_DEFAULTS.js.map +1 -0
  8574. package/dist/server/src/init/addDevImageProxyRoute.d.ts +3 -0
  8575. package/dist/server/src/init/addDevImageProxyRoute.d.ts.map +1 -0
  8576. package/dist/server/src/init/addDevImageProxyRoute.js +68 -0
  8577. package/dist/server/src/init/addDevImageProxyRoute.js.map +1 -0
  8578. package/dist/server/src/init/cleanupTestDatabases.d.ts +3 -0
  8579. package/dist/server/src/init/cleanupTestDatabases.d.ts.map +1 -0
  8580. package/dist/server/src/init/cleanupTestDatabases.js +52 -0
  8581. package/dist/server/src/init/cleanupTestDatabases.js.map +1 -0
  8582. package/dist/server/src/init/initExpressAndIOServers.d.ts +8 -0
  8583. package/dist/server/src/init/initExpressAndIOServers.d.ts.map +1 -0
  8584. package/dist/server/src/init/initExpressAndIOServers.js +95 -0
  8585. package/dist/server/src/init/initExpressAndIOServers.js.map +1 -0
  8586. package/dist/server/src/init/initUsers.d.ts +73 -0
  8587. package/dist/server/src/init/initUsers.d.ts.map +1 -0
  8588. package/dist/server/src/init/initUsers.js +85 -0
  8589. package/dist/server/src/init/initUsers.js.map +1 -0
  8590. package/dist/server/src/init/insertStateDatabase.d.ts +6 -0
  8591. package/dist/server/src/init/insertStateDatabase.d.ts.map +1 -0
  8592. package/dist/server/src/init/insertStateDatabase.js +53 -0
  8593. package/dist/server/src/init/insertStateDatabase.js.map +1 -0
  8594. package/dist/server/src/init/isRetryableError.d.ts +5 -0
  8595. package/dist/server/src/init/isRetryableError.d.ts.map +1 -0
  8596. package/dist/server/src/init/isRetryableError.js +35 -0
  8597. package/dist/server/src/init/isRetryableError.js.map +1 -0
  8598. package/dist/server/src/init/logOutgoingHttpRequests.d.ts +2 -0
  8599. package/dist/server/src/init/logOutgoingHttpRequests.d.ts.map +1 -0
  8600. package/dist/server/src/init/logOutgoingHttpRequests.js +18 -0
  8601. package/dist/server/src/init/logOutgoingHttpRequests.js.map +1 -0
  8602. package/dist/server/src/init/prostglesOnReady.d.ts +9 -0
  8603. package/dist/server/src/init/prostglesOnReady.d.ts.map +1 -0
  8604. package/dist/server/src/init/prostglesOnReady.js +105 -0
  8605. package/dist/server/src/init/prostglesOnReady.js.map +1 -0
  8606. package/dist/server/src/init/saveTypescriptFilesForProduction.d.ts +12 -0
  8607. package/dist/server/src/init/saveTypescriptFilesForProduction.d.ts.map +1 -0
  8608. package/dist/server/src/init/saveTypescriptFilesForProduction.js +87 -0
  8609. package/dist/server/src/init/saveTypescriptFilesForProduction.js.map +1 -0
  8610. package/dist/server/src/init/setDBSRoutesForElectron.d.ts +7 -0
  8611. package/dist/server/src/init/setDBSRoutesForElectron.d.ts.map +1 -0
  8612. package/dist/server/src/init/setDBSRoutesForElectron.js +158 -0
  8613. package/dist/server/src/init/setDBSRoutesForElectron.js.map +1 -0
  8614. package/dist/server/src/init/startDevHotReloadNotifier.d.ts +7 -0
  8615. package/dist/server/src/init/startDevHotReloadNotifier.d.ts.map +1 -0
  8616. package/dist/server/src/init/startDevHotReloadNotifier.js +31 -0
  8617. package/dist/server/src/init/startDevHotReloadNotifier.js.map +1 -0
  8618. package/dist/server/src/init/startProstgles.d.ts +26 -0
  8619. package/dist/server/src/init/startProstgles.d.ts.map +1 -0
  8620. package/dist/server/src/init/startProstgles.js +177 -0
  8621. package/dist/server/src/init/startProstgles.js.map +1 -0
  8622. package/dist/server/src/init/tryStartProstgles.d.ts +30 -0
  8623. package/dist/server/src/init/tryStartProstgles.d.ts.map +1 -0
  8624. package/dist/server/src/init/tryStartProstgles.js +123 -0
  8625. package/dist/server/src/init/tryStartProstgles.js.map +1 -0
  8626. package/dist/server/src/init/utils.d.ts +9 -0
  8627. package/dist/server/src/init/utils.d.ts.map +1 -0
  8628. package/dist/server/src/init/utils.js +34 -0
  8629. package/dist/server/src/init/utils.js.map +1 -0
  8630. package/dist/server/src/methods/getPidStats.d.ts +20 -0
  8631. package/dist/server/src/methods/getPidStats.d.ts.map +1 -0
  8632. package/dist/server/src/methods/getPidStats.js +245 -0
  8633. package/dist/server/src/methods/getPidStats.js.map +1 -0
  8634. package/dist/server/src/methods/getPidStatsFromProc.d.ts +4 -0
  8635. package/dist/server/src/methods/getPidStatsFromProc.d.ts.map +1 -0
  8636. package/dist/server/src/methods/getPidStatsFromProc.js +102 -0
  8637. package/dist/server/src/methods/getPidStatsFromProc.js.map +1 -0
  8638. package/dist/server/src/methods/statusMonitorUtils.d.ts +6 -0
  8639. package/dist/server/src/methods/statusMonitorUtils.d.ts.map +1 -0
  8640. package/dist/server/src/methods/statusMonitorUtils.js +104 -0
  8641. package/dist/server/src/methods/statusMonitorUtils.js.map +1 -0
  8642. package/dist/server/src/publish/getPublishLLM.d.ts +641 -0
  8643. package/dist/server/src/publish/getPublishLLM.d.ts.map +1 -0
  8644. package/dist/server/src/publish/getPublishLLM.js +188 -0
  8645. package/dist/server/src/publish/getPublishLLM.js.map +1 -0
  8646. package/dist/server/src/publish/getPublishLlmChats.d.ts +357 -0
  8647. package/dist/server/src/publish/getPublishLlmChats.d.ts.map +1 -0
  8648. package/dist/server/src/publish/getPublishLlmChats.js +73 -0
  8649. package/dist/server/src/publish/getPublishLlmChats.js.map +1 -0
  8650. package/dist/server/src/publish/publish.d.ts +6 -0
  8651. package/dist/server/src/publish/publish.d.ts.map +1 -0
  8652. package/dist/server/src/publish/publish.js +335 -0
  8653. package/dist/server/src/publish/publish.js.map +1 -0
  8654. package/dist/server/src/runtimeMode.d.ts +2 -0
  8655. package/dist/server/src/runtimeMode.d.ts.map +1 -0
  8656. package/dist/server/src/runtimeMode.js +22 -0
  8657. package/dist/server/src/runtimeMode.js.map +1 -0
  8658. package/dist/server/src/schemaConfig.d.ts +65 -0
  8659. package/dist/server/src/schemaConfig.d.ts.map +1 -0
  8660. package/dist/server/src/schemaConfig.js +18 -0
  8661. package/dist/server/src/schemaConfig.js.map +1 -0
  8662. package/dist/server/src/serverFunctions/adminServerFunctions/agenticWorkflowFunctions.d.ts +1152 -0
  8663. package/dist/server/src/serverFunctions/adminServerFunctions/agenticWorkflowFunctions.d.ts.map +1 -0
  8664. package/dist/server/src/serverFunctions/adminServerFunctions/agenticWorkflowFunctions.js +150 -0
  8665. package/dist/server/src/serverFunctions/adminServerFunctions/agenticWorkflowFunctions.js.map +1 -0
  8666. package/dist/server/src/serverFunctions/adminServerFunctions/backupServerFunctions.d.ts +453 -0
  8667. package/dist/server/src/serverFunctions/adminServerFunctions/backupServerFunctions.d.ts.map +1 -0
  8668. package/dist/server/src/serverFunctions/adminServerFunctions/backupServerFunctions.js +155 -0
  8669. package/dist/server/src/serverFunctions/adminServerFunctions/backupServerFunctions.js.map +1 -0
  8670. package/dist/server/src/serverFunctions/adminServerFunctions/mcpServerFunctions.d.ts +514 -0
  8671. package/dist/server/src/serverFunctions/adminServerFunctions/mcpServerFunctions.d.ts.map +1 -0
  8672. package/dist/server/src/serverFunctions/adminServerFunctions/mcpServerFunctions.js +236 -0
  8673. package/dist/server/src/serverFunctions/adminServerFunctions/mcpServerFunctions.js.map +1 -0
  8674. package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.d.ts +3501 -0
  8675. package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.d.ts.map +1 -0
  8676. package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.js +459 -0
  8677. package/dist/server/src/serverFunctions/adminServerFunctions/stateServerAdminFunctions.js.map +1 -0
  8678. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/buildWebApp.d.ts +8 -0
  8679. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/buildWebApp.d.ts.map +1 -0
  8680. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/buildWebApp.js +33 -0
  8681. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/buildWebApp.js.map +1 -0
  8682. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents copy.d.ts +10 -0
  8683. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents copy.d.ts.map +1 -0
  8684. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents copy.js +145 -0
  8685. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents copy.js.map +1 -0
  8686. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents.d.ts +19 -0
  8687. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents.d.ts.map +1 -0
  8688. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents.js +206 -0
  8689. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactComponents.js.map +1 -0
  8690. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactRenderTree.d.ts +14 -0
  8691. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactRenderTree.d.ts.map +1 -0
  8692. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactRenderTree.js +149 -0
  8693. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getReactRenderTree.js.map +1 -0
  8694. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.d.ts +165 -0
  8695. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.d.ts.map +1 -0
  8696. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.js +22 -0
  8697. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getTemplatedWebAppConnection.js.map +1 -0
  8698. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.d.ts +8 -0
  8699. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.d.ts.map +1 -0
  8700. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.js +17 -0
  8701. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.js.map +1 -0
  8702. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.spec.d.ts +2 -0
  8703. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.spec.d.ts.map +1 -0
  8704. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.spec.js +70 -0
  8705. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/getValidatedWebAppPath.spec.js.map +1 -0
  8706. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/readWebAppFiles.d.ts +11 -0
  8707. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/readWebAppFiles.d.ts.map +1 -0
  8708. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/readWebAppFiles.js +32 -0
  8709. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/readWebAppFiles.js.map +1 -0
  8710. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/runDockerForWebApp.d.ts +13 -0
  8711. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/runDockerForWebApp.d.ts.map +1 -0
  8712. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/runDockerForWebApp.js +37 -0
  8713. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/runDockerForWebApp.js.map +1 -0
  8714. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/testWebApp.d.ts +7 -0
  8715. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/testWebApp.d.ts.map +1 -0
  8716. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/testWebApp.js +25 -0
  8717. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/testWebApp.js.map +1 -0
  8718. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/writeWebAppFiles.d.ts +9 -0
  8719. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/writeWebAppFiles.d.ts.map +1 -0
  8720. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/writeWebAppFiles.js +66 -0
  8721. package/dist/server/src/serverFunctions/adminServerFunctions/webApp/writeWebAppFiles.js.map +1 -0
  8722. package/dist/server/src/serverFunctions/adminServerFunctions/webAppServerFunctions.d.ts +170 -0
  8723. package/dist/server/src/serverFunctions/adminServerFunctions/webAppServerFunctions.d.ts.map +1 -0
  8724. package/dist/server/src/serverFunctions/adminServerFunctions/webAppServerFunctions.js +185 -0
  8725. package/dist/server/src/serverFunctions/adminServerFunctions/webAppServerFunctions.js.map +1 -0
  8726. package/dist/server/src/serverFunctions/applySampleSchema.d.ts +444 -0
  8727. package/dist/server/src/serverFunctions/applySampleSchema.d.ts.map +1 -0
  8728. package/dist/server/src/serverFunctions/applySampleSchema.js +78 -0
  8729. package/dist/server/src/serverFunctions/applySampleSchema.js.map +1 -0
  8730. package/dist/server/src/serverFunctions/askLLM/LLMResponseTypes.d.ts +275 -0
  8731. package/dist/server/src/serverFunctions/askLLM/LLMResponseTypes.d.ts.map +1 -0
  8732. package/dist/server/src/serverFunctions/askLLM/LLMResponseTypes.js +3 -0
  8733. package/dist/server/src/serverFunctions/askLLM/LLMResponseTypes.js.map +1 -0
  8734. package/dist/server/src/serverFunctions/askLLM/agentConstants.d.ts +10 -0
  8735. package/dist/server/src/serverFunctions/askLLM/agentConstants.d.ts.map +1 -0
  8736. package/dist/server/src/serverFunctions/askLLM/agentConstants.js +36 -0
  8737. package/dist/server/src/serverFunctions/askLLM/agentConstants.js.map +1 -0
  8738. package/dist/server/src/serverFunctions/askLLM/askLLM.d.ts +65 -0
  8739. package/dist/server/src/serverFunctions/askLLM/askLLM.d.ts.map +1 -0
  8740. package/dist/server/src/serverFunctions/askLLM/askLLM.js +351 -0
  8741. package/dist/server/src/serverFunctions/askLLM/askLLM.js.map +1 -0
  8742. package/dist/server/src/serverFunctions/askLLM/checkLLMLimit.d.ts +4 -0
  8743. package/dist/server/src/serverFunctions/askLLM/checkLLMLimit.d.ts.map +1 -0
  8744. package/dist/server/src/serverFunctions/askLLM/checkLLMLimit.js +54 -0
  8745. package/dist/server/src/serverFunctions/askLLM/checkLLMLimit.js.map +1 -0
  8746. package/dist/server/src/serverFunctions/askLLM/checkMaxCostLimitForChat.d.ts +4 -0
  8747. package/dist/server/src/serverFunctions/askLLM/checkMaxCostLimitForChat.d.ts.map +1 -0
  8748. package/dist/server/src/serverFunctions/askLLM/checkMaxCostLimitForChat.js +39 -0
  8749. package/dist/server/src/serverFunctions/askLLM/checkMaxCostLimitForChat.js.map +1 -0
  8750. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/base.prompt.d.ts +2 -0
  8751. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/base.prompt.d.ts.map +1 -0
  8752. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/base.prompt.js +28 -0
  8753. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/base.prompt.js.map +1 -0
  8754. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createAgenticWorkflow.prompt.d.ts +2 -0
  8755. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createAgenticWorkflow.prompt.d.ts.map +1 -0
  8756. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createAgenticWorkflow.prompt.js +55 -0
  8757. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createAgenticWorkflow.prompt.js.map +1 -0
  8758. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createDashboards.prompt.d.ts +2 -0
  8759. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createDashboards.prompt.d.ts.map +1 -0
  8760. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createDashboards.prompt.js +18 -0
  8761. package/dist/server/src/serverFunctions/askLLM/defaultPrompts/createDashboards.prompt.js.map +1 -0
  8762. package/dist/server/src/serverFunctions/askLLM/fetchLLMResponse.d.ts +20 -0
  8763. package/dist/server/src/serverFunctions/askLLM/fetchLLMResponse.d.ts.map +1 -0
  8764. package/dist/server/src/serverFunctions/askLLM/fetchLLMResponse.js +70 -0
  8765. package/dist/server/src/serverFunctions/askLLM/fetchLLMResponse.js.map +1 -0
  8766. package/dist/server/src/serverFunctions/askLLM/getCompactedMessages.d.ts +7 -0
  8767. package/dist/server/src/serverFunctions/askLLM/getCompactedMessages.d.ts.map +1 -0
  8768. package/dist/server/src/serverFunctions/askLLM/getCompactedMessages.js +65 -0
  8769. package/dist/server/src/serverFunctions/askLLM/getCompactedMessages.js.map +1 -0
  8770. package/dist/server/src/serverFunctions/askLLM/getFullPrompt.d.ts +6 -0
  8771. package/dist/server/src/serverFunctions/askLLM/getFullPrompt.d.ts.map +1 -0
  8772. package/dist/server/src/serverFunctions/askLLM/getFullPrompt.js +60 -0
  8773. package/dist/server/src/serverFunctions/askLLM/getFullPrompt.js.map +1 -0
  8774. package/dist/server/src/serverFunctions/askLLM/getLLMRequestBody.d.ts +8 -0
  8775. package/dist/server/src/serverFunctions/askLLM/getLLMRequestBody.d.ts.map +1 -0
  8776. package/dist/server/src/serverFunctions/askLLM/getLLMRequestBody.js +318 -0
  8777. package/dist/server/src/serverFunctions/askLLM/getLLMRequestBody.js.map +1 -0
  8778. package/dist/server/src/serverFunctions/askLLM/getLLMToolsAllowedInThisChat.d.ts +19 -0
  8779. package/dist/server/src/serverFunctions/askLLM/getLLMToolsAllowedInThisChat.d.ts.map +1 -0
  8780. package/dist/server/src/serverFunctions/askLLM/getLLMToolsAllowedInThisChat.js +124 -0
  8781. package/dist/server/src/serverFunctions/askLLM/getLLMToolsAllowedInThisChat.js.map +1 -0
  8782. package/dist/server/src/serverFunctions/askLLM/getLLMUsageCost.d.ts +22 -0
  8783. package/dist/server/src/serverFunctions/askLLM/getLLMUsageCost.d.ts.map +1 -0
  8784. package/dist/server/src/serverFunctions/askLLM/getLLMUsageCost.js +46 -0
  8785. package/dist/server/src/serverFunctions/askLLM/getLLMUsageCost.js.map +1 -0
  8786. package/dist/server/src/serverFunctions/askLLM/getLlmLimitWasReached.d.ts +4 -0
  8787. package/dist/server/src/serverFunctions/askLLM/getLlmLimitWasReached.d.ts.map +1 -0
  8788. package/dist/server/src/serverFunctions/askLLM/getLlmLimitWasReached.js +41 -0
  8789. package/dist/server/src/serverFunctions/askLLM/getLlmLimitWasReached.js.map +1 -0
  8790. package/dist/server/src/serverFunctions/askLLM/getPastMessages.d.ts +61 -0
  8791. package/dist/server/src/serverFunctions/askLLM/getPastMessages.d.ts.map +1 -0
  8792. package/dist/server/src/serverFunctions/askLLM/getPastMessages.js +9 -0
  8793. package/dist/server/src/serverFunctions/askLLM/getPastMessages.js.map +1 -0
  8794. package/dist/server/src/serverFunctions/askLLM/getUserMessageCost.d.ts +4 -0
  8795. package/dist/server/src/serverFunctions/askLLM/getUserMessageCost.d.ts.map +1 -0
  8796. package/dist/server/src/serverFunctions/askLLM/getUserMessageCost.js +16 -0
  8797. package/dist/server/src/serverFunctions/askLLM/getUserMessageCost.js.map +1 -0
  8798. package/dist/server/src/serverFunctions/askLLM/getValidatedAskLLMChatOptions.d.ts +300 -0
  8799. package/dist/server/src/serverFunctions/askLLM/getValidatedAskLLMChatOptions.d.ts.map +1 -0
  8800. package/dist/server/src/serverFunctions/askLLM/getValidatedAskLLMChatOptions.js +55 -0
  8801. package/dist/server/src/serverFunctions/askLLM/getValidatedAskLLMChatOptions.js.map +1 -0
  8802. package/dist/server/src/serverFunctions/askLLM/handleToolUseResultConfirmation.d.ts +31 -0
  8803. package/dist/server/src/serverFunctions/askLLM/handleToolUseResultConfirmation.d.ts.map +1 -0
  8804. package/dist/server/src/serverFunctions/askLLM/handleToolUseResultConfirmation.js +65 -0
  8805. package/dist/server/src/serverFunctions/askLLM/handleToolUseResultConfirmation.js.map +1 -0
  8806. package/dist/server/src/serverFunctions/askLLM/parseLLMResponseObject.d.ts +16 -0
  8807. package/dist/server/src/serverFunctions/askLLM/parseLLMResponseObject.d.ts.map +1 -0
  8808. package/dist/server/src/serverFunctions/askLLM/parseLLMResponseObject.js +172 -0
  8809. package/dist/server/src/serverFunctions/askLLM/parseLLMResponseObject.js.map +1 -0
  8810. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getDbConnectionWithPermissions.d.ts +6 -0
  8811. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getDbConnectionWithPermissions.d.ts.map +1 -0
  8812. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getDbConnectionWithPermissions.js +65 -0
  8813. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getDbConnectionWithPermissions.js.map +1 -0
  8814. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMCPServerTools.d.ts +36 -0
  8815. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMCPServerTools.d.ts.map +1 -0
  8816. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMCPServerTools.js +21 -0
  8817. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMCPServerTools.js.map +1 -0
  8818. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMcpToolsWithDynamicDescription.d.ts +49 -0
  8819. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMcpToolsWithDynamicDescription.d.ts.map +1 -0
  8820. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMcpToolsWithDynamicDescription.js +47 -0
  8821. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getMcpToolsWithDynamicDescription.js.map +1 -0
  8822. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getTemplateUserConnection.d.ts +3 -0
  8823. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getTemplateUserConnection.d.ts.map +1 -0
  8824. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getTemplateUserConnection.js +167 -0
  8825. package/dist/server/src/serverFunctions/askLLM/prostglesLLMTools/getTemplateUserConnection.js.map +1 -0
  8826. package/dist/server/src/serverFunctions/askLLM/readFetchStream.d.ts +2 -0
  8827. package/dist/server/src/serverFunctions/askLLM/readFetchStream.d.ts.map +1 -0
  8828. package/dist/server/src/serverFunctions/askLLM/readFetchStream.js +73 -0
  8829. package/dist/server/src/serverFunctions/askLLM/readFetchStream.js.map +1 -0
  8830. package/dist/server/src/serverFunctions/askLLM/refreshModels.d.ts +12 -0
  8831. package/dist/server/src/serverFunctions/askLLM/refreshModels.d.ts.map +1 -0
  8832. package/dist/server/src/serverFunctions/askLLM/refreshModels.js +190 -0
  8833. package/dist/server/src/serverFunctions/askLLM/refreshModels.js.map +1 -0
  8834. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/getMostSimilar.d.ts +2 -0
  8835. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/getMostSimilar.d.ts.map +1 -0
  8836. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/getMostSimilar.js +44 -0
  8837. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/getMostSimilar.js.map +1 -0
  8838. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runAgentGoalTool.d.ts +13 -0
  8839. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runAgentGoalTool.d.ts.map +1 -0
  8840. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runAgentGoalTool.js +81 -0
  8841. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runAgentGoalTool.js.map +1 -0
  8842. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runApprovedTools.d.ts +21 -0
  8843. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runApprovedTools.d.ts.map +1 -0
  8844. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runApprovedTools.js +224 -0
  8845. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/runApprovedTools.js.map +1 -0
  8846. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/validateLastMessageToolUseRequests.d.ts +7 -0
  8847. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/validateLastMessageToolUseRequests.d.ts.map +1 -0
  8848. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/validateLastMessageToolUseRequests.js +17 -0
  8849. package/dist/server/src/serverFunctions/askLLM/runApprovedTools/validateLastMessageToolUseRequests.js.map +1 -0
  8850. package/dist/server/src/serverFunctions/askLLM/setupLLM.d.ts +3 -0
  8851. package/dist/server/src/serverFunctions/askLLM/setupLLM.d.ts.map +1 -0
  8852. package/dist/server/src/serverFunctions/askLLM/setupLLM.js +153 -0
  8853. package/dist/server/src/serverFunctions/askLLM/setupLLM.js.map +1 -0
  8854. package/dist/server/src/serverFunctions/askLLM/setupLLMProviders.d.ts +8 -0
  8855. package/dist/server/src/serverFunctions/askLLM/setupLLMProviders.d.ts.map +1 -0
  8856. package/dist/server/src/serverFunctions/askLLM/setupLLMProviders.js +191 -0
  8857. package/dist/server/src/serverFunctions/askLLM/setupLLMProviders.js.map +1 -0
  8858. package/dist/server/src/serverFunctions/defineFunctionGroup.d.ts +5 -0
  8859. package/dist/server/src/serverFunctions/defineFunctionGroup.d.ts.map +1 -0
  8860. package/dist/server/src/serverFunctions/defineFunctionGroup.js +7 -0
  8861. package/dist/server/src/serverFunctions/defineFunctionGroup.js.map +1 -0
  8862. package/dist/server/src/serverFunctions/deleteConnection.d.ts +168 -0
  8863. package/dist/server/src/serverFunctions/deleteConnection.d.ts.map +1 -0
  8864. package/dist/server/src/serverFunctions/deleteConnection.js +92 -0
  8865. package/dist/server/src/serverFunctions/deleteConnection.js.map +1 -0
  8866. package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.d.ts +418 -0
  8867. package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.d.ts.map +1 -0
  8868. package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.js +25 -0
  8869. package/dist/server/src/serverFunctions/getConnectionAndDatabaseConfig.js.map +1 -0
  8870. package/dist/server/src/serverFunctions/getNodeTypes.d.ts +7 -0
  8871. package/dist/server/src/serverFunctions/getNodeTypes.d.ts.map +1 -0
  8872. package/dist/server/src/serverFunctions/getNodeTypes.js +239 -0
  8873. package/dist/server/src/serverFunctions/getNodeTypes.js.map +1 -0
  8874. package/dist/server/src/serverFunctions/getNodeTypes.spec.d.ts +2 -0
  8875. package/dist/server/src/serverFunctions/getNodeTypes.spec.d.ts.map +1 -0
  8876. package/dist/server/src/serverFunctions/getNodeTypes.spec.js +45 -0
  8877. package/dist/server/src/serverFunctions/getNodeTypes.spec.js.map +1 -0
  8878. package/dist/server/src/serverFunctions/insertConfigWorkspaces.d.ts +7 -0
  8879. package/dist/server/src/serverFunctions/insertConfigWorkspaces.d.ts.map +1 -0
  8880. package/dist/server/src/serverFunctions/insertConfigWorkspaces.js +59 -0
  8881. package/dist/server/src/serverFunctions/insertConfigWorkspaces.js.map +1 -0
  8882. package/dist/server/src/serverFunctions/prostglesSignup.d.ts +12 -0
  8883. package/dist/server/src/serverFunctions/prostglesSignup.d.ts.map +1 -0
  8884. package/dist/server/src/serverFunctions/prostglesSignup.js +29 -0
  8885. package/dist/server/src/serverFunctions/prostglesSignup.js.map +1 -0
  8886. package/dist/server/src/serverFunctions/setFileStorage.d.ts +7 -0
  8887. package/dist/server/src/serverFunctions/setFileStorage.d.ts.map +1 -0
  8888. package/dist/server/src/serverFunctions/setFileStorage.js +89 -0
  8889. package/dist/server/src/serverFunctions/setFileStorage.js.map +1 -0
  8890. package/dist/server/src/serverFunctions/stateServerFunctions.d.ts +3859 -0
  8891. package/dist/server/src/serverFunctions/stateServerFunctions.d.ts.map +1 -0
  8892. package/dist/server/src/serverFunctions/stateServerFunctions.js +67 -0
  8893. package/dist/server/src/serverFunctions/stateServerFunctions.js.map +1 -0
  8894. package/dist/server/src/serverFunctions/userServerFunctions/approveToolUse.d.ts +13 -0
  8895. package/dist/server/src/serverFunctions/userServerFunctions/approveToolUse.d.ts.map +1 -0
  8896. package/dist/server/src/serverFunctions/userServerFunctions/approveToolUse.js +105 -0
  8897. package/dist/server/src/serverFunctions/userServerFunctions/approveToolUse.js.map +1 -0
  8898. package/dist/server/src/serverFunctions/userServerFunctions/userServerFunctions.d.ts +333 -0
  8899. package/dist/server/src/serverFunctions/userServerFunctions/userServerFunctions.d.ts.map +1 -0
  8900. package/dist/server/src/serverFunctions/userServerFunctions/userServerFunctions.js +234 -0
  8901. package/dist/server/src/serverFunctions/userServerFunctions/userServerFunctions.js.map +1 -0
  8902. package/dist/server/src/services.d.ts +3 -0
  8903. package/dist/server/src/services.d.ts.map +1 -0
  8904. package/dist/server/src/services.js +6 -0
  8905. package/dist/server/src/services.js.map +1 -0
  8906. package/dist/server/src/tableConfig/tableConfig.d.ts +5 -0
  8907. package/dist/server/src/tableConfig/tableConfig.d.ts.map +1 -0
  8908. package/dist/server/src/tableConfig/tableConfig.js +347 -0
  8909. package/dist/server/src/tableConfig/tableConfig.js.map +1 -0
  8910. package/dist/server/src/tableConfig/tableConfigAccessControl.d.ts +5 -0
  8911. package/dist/server/src/tableConfig/tableConfigAccessControl.d.ts.map +1 -0
  8912. package/dist/server/src/tableConfig/tableConfigAccessControl.js +209 -0
  8913. package/dist/server/src/tableConfig/tableConfigAccessControl.js.map +1 -0
  8914. package/dist/server/src/tableConfig/tableConfigAgenticWorkflow.d.ts +5 -0
  8915. package/dist/server/src/tableConfig/tableConfigAgenticWorkflow.d.ts.map +1 -0
  8916. package/dist/server/src/tableConfig/tableConfigAgenticWorkflow.js +166 -0
  8917. package/dist/server/src/tableConfig/tableConfigAgenticWorkflow.js.map +1 -0
  8918. package/dist/server/src/tableConfig/tableConfigBackups.d.ts +146 -0
  8919. package/dist/server/src/tableConfig/tableConfigBackups.d.ts.map +1 -0
  8920. package/dist/server/src/tableConfig/tableConfigBackups.js +152 -0
  8921. package/dist/server/src/tableConfig/tableConfigBackups.js.map +1 -0
  8922. package/dist/server/src/tableConfig/tableConfigConnections.d.ts +6 -0
  8923. package/dist/server/src/tableConfig/tableConfigConnections.d.ts.map +1 -0
  8924. package/dist/server/src/tableConfig/tableConfigConnections.js +133 -0
  8925. package/dist/server/src/tableConfig/tableConfigConnections.js.map +1 -0
  8926. package/dist/server/src/tableConfig/tableConfigDatabaseConfig.d.ts +58 -0
  8927. package/dist/server/src/tableConfig/tableConfigDatabaseConfig.d.ts.map +1 -0
  8928. package/dist/server/src/tableConfig/tableConfigDatabaseConfig.js +682 -0
  8929. package/dist/server/src/tableConfig/tableConfigDatabaseConfig.js.map +1 -0
  8930. package/dist/server/src/tableConfig/tableConfigGlobalSettings.d.ts +5 -0
  8931. package/dist/server/src/tableConfig/tableConfigGlobalSettings.d.ts.map +1 -0
  8932. package/dist/server/src/tableConfig/tableConfigGlobalSettings.js +42 -0
  8933. package/dist/server/src/tableConfig/tableConfigGlobalSettings.js.map +1 -0
  8934. package/dist/server/src/tableConfig/tableConfigLinks.d.ts +5 -0
  8935. package/dist/server/src/tableConfig/tableConfigLinks.d.ts.map +1 -0
  8936. package/dist/server/src/tableConfig/tableConfigLinks.js +263 -0
  8937. package/dist/server/src/tableConfig/tableConfigLinks.js.map +1 -0
  8938. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlm.d.ts +77 -0
  8939. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlm.d.ts.map +1 -0
  8940. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlm.js +340 -0
  8941. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlm.js.map +1 -0
  8942. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmChats.d.ts +5 -0
  8943. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmChats.d.ts.map +1 -0
  8944. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmChats.js +251 -0
  8945. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmChats.js.map +1 -0
  8946. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmExtraRequestData.d.ts +63 -0
  8947. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmExtraRequestData.d.ts.map +1 -0
  8948. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmExtraRequestData.js +47 -0
  8949. package/dist/server/src/tableConfig/tableConfigLlm/tableConfigLlmExtraRequestData.js.map +1 -0
  8950. package/dist/server/src/tableConfig/tableConfigMCPServers.d.ts +59 -0
  8951. package/dist/server/src/tableConfig/tableConfigMCPServers.d.ts.map +1 -0
  8952. package/dist/server/src/tableConfig/tableConfigMCPServers.js +510 -0
  8953. package/dist/server/src/tableConfig/tableConfigMCPServers.js.map +1 -0
  8954. package/dist/server/src/tableConfig/tableConfigMigrations.d.ts +10 -0
  8955. package/dist/server/src/tableConfig/tableConfigMigrations.d.ts.map +1 -0
  8956. package/dist/server/src/tableConfig/tableConfigMigrations.js +29 -0
  8957. package/dist/server/src/tableConfig/tableConfigMigrations.js.map +1 -0
  8958. package/dist/server/src/tableConfig/tableConfigPublishedMethods.d.ts +5 -0
  8959. package/dist/server/src/tableConfig/tableConfigPublishedMethods.d.ts.map +1 -0
  8960. package/dist/server/src/tableConfig/tableConfigPublishedMethods.js +115 -0
  8961. package/dist/server/src/tableConfig/tableConfigPublishedMethods.js.map +1 -0
  8962. package/dist/server/src/tableConfig/tableConfigServices.d.ts +5 -0
  8963. package/dist/server/src/tableConfig/tableConfigServices.d.ts.map +1 -0
  8964. package/dist/server/src/tableConfig/tableConfigServices.js +63 -0
  8965. package/dist/server/src/tableConfig/tableConfigServices.js.map +1 -0
  8966. package/dist/server/src/tableConfig/tableConfigUsers.d.ts +199 -0
  8967. package/dist/server/src/tableConfig/tableConfigUsers.d.ts.map +1 -0
  8968. package/dist/server/src/tableConfig/tableConfigUsers.js +174 -0
  8969. package/dist/server/src/tableConfig/tableConfigUsers.js.map +1 -0
  8970. package/dist/server/src/tableConfig/tableConfigWebApp.d.ts +5 -0
  8971. package/dist/server/src/tableConfig/tableConfigWebApp.d.ts.map +1 -0
  8972. package/dist/server/src/tableConfig/tableConfigWebApp.js +19 -0
  8973. package/dist/server/src/tableConfig/tableConfigWebApp.js.map +1 -0
  8974. package/dist/server/src/tableConfig/tableConfigWindows.d.ts +139 -0
  8975. package/dist/server/src/tableConfig/tableConfigWindows.d.ts.map +1 -0
  8976. package/dist/server/src/tableConfig/tableConfigWindows.js +160 -0
  8977. package/dist/server/src/tableConfig/tableConfigWindows.js.map +1 -0
  8978. package/dist/server/src/tableConfig/tableConfigWorkspaces.d.ts +5 -0
  8979. package/dist/server/src/tableConfig/tableConfigWorkspaces.d.ts.map +1 -0
  8980. package/dist/server/src/tableConfig/tableConfigWorkspaces.js +100 -0
  8981. package/dist/server/src/tableConfig/tableConfigWorkspaces.js.map +1 -0
  8982. package/dist/server/src/tableConfig/tablePermissionsSchema.d.ts +123 -0
  8983. package/dist/server/src/tableConfig/tablePermissionsSchema.d.ts.map +1 -0
  8984. package/dist/server/src/tableConfig/tablePermissionsSchema.js +64 -0
  8985. package/dist/server/src/tableConfig/tablePermissionsSchema.js.map +1 -0
  8986. package/dist/server/src/tableHooks/connections.tableHooks.d.ts +4 -0
  8987. package/dist/server/src/tableHooks/connections.tableHooks.d.ts.map +1 -0
  8988. package/dist/server/src/tableHooks/connections.tableHooks.js +37 -0
  8989. package/dist/server/src/tableHooks/connections.tableHooks.js.map +1 -0
  8990. package/dist/server/src/tableHooks/llm_chats.tableHook.d.ts +4 -0
  8991. package/dist/server/src/tableHooks/llm_chats.tableHook.d.ts.map +1 -0
  8992. package/dist/server/src/tableHooks/llm_chats.tableHook.js +84 -0
  8993. package/dist/server/src/tableHooks/llm_chats.tableHook.js.map +1 -0
  8994. package/dist/server/src/tableHooks/llm_chats_allowed_mcp_tools.tableHooks.d.ts +4 -0
  8995. package/dist/server/src/tableHooks/llm_chats_allowed_mcp_tools.tableHooks.d.ts.map +1 -0
  8996. package/dist/server/src/tableHooks/llm_chats_allowed_mcp_tools.tableHooks.js +79 -0
  8997. package/dist/server/src/tableHooks/llm_chats_allowed_mcp_tools.tableHooks.js.map +1 -0
  8998. package/dist/server/src/tableHooks/llm_credentials.tableHooks.d.ts +40 -0
  8999. package/dist/server/src/tableHooks/llm_credentials.tableHooks.d.ts.map +1 -0
  9000. package/dist/server/src/tableHooks/llm_credentials.tableHooks.js +67 -0
  9001. package/dist/server/src/tableHooks/llm_credentials.tableHooks.js.map +1 -0
  9002. package/dist/server/src/tableHooks/mcp_server_configs.tableHooks.d.ts +4 -0
  9003. package/dist/server/src/tableHooks/mcp_server_configs.tableHooks.d.ts.map +1 -0
  9004. package/dist/server/src/tableHooks/mcp_server_configs.tableHooks.js +43 -0
  9005. package/dist/server/src/tableHooks/mcp_server_configs.tableHooks.js.map +1 -0
  9006. package/dist/server/src/tableHooks/tableHooks.d.ts +2132 -0
  9007. package/dist/server/src/tableHooks/tableHooks.d.ts.map +1 -0
  9008. package/dist/server/src/tableHooks/tableHooks.js +18 -0
  9009. package/dist/server/src/tableHooks/tableHooks.js.map +1 -0
  9010. package/dist/server/src/tableHooks/users.tableHooks.d.ts +125 -0
  9011. package/dist/server/src/tableHooks/users.tableHooks.d.ts.map +1 -0
  9012. package/dist/server/src/tableHooks/users.tableHooks.js +42 -0
  9013. package/dist/server/src/tableHooks/users.tableHooks.js.map +1 -0
  9014. package/dist/server/src/testElectron.d.ts +2 -0
  9015. package/dist/server/src/testElectron.d.ts.map +1 -0
  9016. package/dist/server/src/testElectron.js +32 -0
  9017. package/dist/server/src/testElectron.js.map +1 -0
  9018. package/dist/server/src/upsertConnection.d.ts +418 -0
  9019. package/dist/server/src/upsertConnection.d.ts.map +1 -0
  9020. package/dist/server/src/upsertConnection.js +60 -0
  9021. package/dist/server/src/upsertConnection.js.map +1 -0
  9022. package/dist/server/src/utils/assertIconExists.d.ts +7 -0
  9023. package/dist/server/src/utils/assertIconExists.d.ts.map +1 -0
  9024. package/dist/server/src/utils/assertIconExists.js +19 -0
  9025. package/dist/server/src/utils/assertIconExists.js.map +1 -0
  9026. package/dist/server/src/utils/isPortFree.d.ts +3 -0
  9027. package/dist/server/src/utils/isPortFree.d.ts.map +1 -0
  9028. package/dist/server/src/utils/isPortFree.js +42 -0
  9029. package/dist/server/src/utils/isPortFree.js.map +1 -0
  9030. package/dist/server/src/utils/tout.d.ts +2 -0
  9031. package/dist/server/src/utils/tout.d.ts.map +1 -0
  9032. package/dist/server/src/utils/tout.js +12 -0
  9033. package/dist/server/src/utils/tout.js.map +1 -0
  9034. package/package.json +96 -0
  9035. package/sample_schemas/_crypto.sql +95 -0
  9036. package/sample_schemas/cleaning.sql +49 -0
  9037. package/sample_schemas/cloud_computing.sql +63 -0
  9038. package/sample_schemas/countries.sql +29 -0
  9039. package/sample_schemas/crypto/dist/index.js +9 -0
  9040. package/sample_schemas/crypto/dist/onMount.js +747 -0
  9041. package/sample_schemas/crypto/dist/tableConfig.js +81 -0
  9042. package/sample_schemas/crypto/dist/workspaceConfig.js +263 -0
  9043. package/sample_schemas/crypto/index.ts +3 -0
  9044. package/sample_schemas/crypto/onMount.ts +802 -0
  9045. package/sample_schemas/crypto/package.json +7 -0
  9046. package/sample_schemas/crypto/tableConfig.ts +80 -0
  9047. package/sample_schemas/crypto/tsconfig.json +16 -0
  9048. package/sample_schemas/crypto/workspaceConfig.ts +261 -0
  9049. package/sample_schemas/financial.sql +49 -0
  9050. package/sample_schemas/food_delivery/connection.ts +1007 -0
  9051. package/sample_schemas/food_delivery/databaseConfig.ts +116 -0
  9052. package/sample_schemas/food_delivery/dist/connection.js +1008 -0
  9053. package/sample_schemas/food_delivery/dist/databaseConfig.js +116 -0
  9054. package/sample_schemas/food_delivery/dist/index.js +17 -0
  9055. package/sample_schemas/food_delivery/dist/onMount.js +132 -0
  9056. package/sample_schemas/food_delivery/dist/workspaceConfig.js +56 -0
  9057. package/sample_schemas/food_delivery/index.ts +8 -0
  9058. package/sample_schemas/food_delivery/onInit.sql +1507 -0
  9059. package/sample_schemas/food_delivery/onMount.ts +149 -0
  9060. package/sample_schemas/food_delivery/package.json +4 -0
  9061. package/sample_schemas/food_delivery/tsconfig.json +16 -0
  9062. package/sample_schemas/food_delivery/workspaceConfig.ts +53 -0
  9063. package/sample_schemas/lodging.sql +48 -0
  9064. package/sample_schemas/maps.sql +73 -0
  9065. package/sample_schemas/property_management/index.ts +2 -0
  9066. package/sample_schemas/property_management/onMount.ts +55 -0
  9067. package/sample_schemas/property_management/package.json +4 -0
  9068. package/sample_schemas/property_management/tsconfig.json +16 -0
  9069. package/sample_schemas/property_management/workspaceConfig.ts +92 -0
  9070. package/sample_schemas/sales.sql +51 -0
  9071. package/sample_schemas/sample.sql +72 -0
  9072. package/sample_schemas/testschema.ts +21 -0
  9073. package/sample_schemas/weather/index.ts +1 -0
  9074. package/sample_schemas/weather/onMount.ts +284 -0
  9075. package/sample_schemas/weather/package.json +4 -0
  9076. package/sample_schemas/weather/tsconfig.json +16 -0
  9077. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/addInstrumentationToTsLogic.ts +350 -0
  9078. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/callWorkflowProxy.ts +99 -0
  9079. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.spec.ts +110 -0
  9080. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflow.ts +576 -0
  9081. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.ts +127 -0
  9082. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/defineAgenticWorkflowHandlers.types.ts +72 -0
  9083. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/definitionHandler.ts +104 -0
  9084. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/ensureWorkflowIsExecuted.ts +53 -0
  9085. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/getTsLogicSummary.ts +639 -0
  9086. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/orchestrationToolHandlers.ts +55 -0
  9087. package/src/McpHub/ProstglesMcpHub/ProstglesMCPServers/Prostgles/agenticWorkflow/runtimeSdk/tableHandlers.ts +108 -0
  9088. package/src/init.sql +1 -0
@@ -0,0 +1,2 @@
1
+ /*! For license information please see deckgl.bundle.js.LICENSE.txt */
2
+ (globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[489],{81456(e,t){var n,i,r;i=[],void 0===(r="function"==typeof(n=function(){"use strict";function e(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function t(e){return!0===(e&&e.__isLong__)}e.prototype.__isLong__,Object.defineProperty(e.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),e.isLong=t;var n={},i={};function r(e,t){var r,o,a;return t?(a=0<=(e>>>=0)&&e<256)&&(o=i[e])?o:(r=s(e,(0|e)<0?-1:0,!0),a&&(i[e]=r),r):(a=-128<=(e|=0)&&e<128)&&(o=n[e])?o:(r=s(e,e<0?-1:0,!1),a&&(n[e]=r),r)}function o(e,t){if(isNaN(e)||!isFinite(e))return t?g:p;if(t){if(e<0)return g;if(e>=h)return y}else{if(e<=-d)return C;if(e+1>=d)return v}return e<0?o(-e,t).neg():s(e%u|0,e/u|0,t)}function s(t,n,i){return new e(t,n,i)}e.fromInt=r,e.fromNumber=o,e.fromBits=s;var a=Math.pow;function l(e,t,n){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return p;if("number"==typeof t?(n=t,t=!1):t=!!t,(n=n||10)<2||36<n)throw RangeError("radix");var i;if((i=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===i)return l(e.substring(1),t,n).neg();for(var r=o(a(n,8)),s=p,A=0;A<e.length;A+=8){var c=Math.min(8,e.length-A),u=parseInt(e.substring(A,A+c),n);if(c<8){var h=o(a(n,c));s=s.mul(h).add(o(u))}else s=(s=s.mul(r)).add(o(u))}return s.unsigned=t,s}function A(t){return t instanceof e?t:"number"==typeof t?o(t):"string"==typeof t?l(t):s(t.low,t.high,t.unsigned)}e.fromString=l,e.fromValue=A;var c=65536,u=c*c,h=u*u,d=h/2,f=r(1<<24),p=r(0);e.ZERO=p;var g=r(0,!0);e.UZERO=g;var m=r(1);e.ONE=m;var _=r(1,!0);e.UONE=_;var b=r(-1);e.NEG_ONE=b;var v=s(-1,2147483647,!1);e.MAX_VALUE=v;var y=s(-1,-1,!0);e.MAX_UNSIGNED_VALUE=y;var C=s(0,-2147483648,!1);e.MIN_VALUE=C;var w=e.prototype;return w.toInt=function(){return this.unsigned?this.low>>>0:this.low},w.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},w.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(C)){var t=o(e),n=this.div(t),i=n.mul(t).sub(this);return n.toString(e)+i.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var r=o(a(e,6),this.unsigned),s=this,l="";;){var A=s.div(r),c=(s.sub(A.mul(r)).toInt()>>>0).toString(e);if((s=A).isZero())return c+l;for(;c.length<6;)c="0"+c;l=""+c+l}},w.getHighBits=function(){return this.high},w.getHighBitsUnsigned=function(){return this.high>>>0},w.getLowBits=function(){return this.low},w.getLowBitsUnsigned=function(){return this.low>>>0},w.getNumBitsAbs=function(){if(this.isNegative())return this.eq(C)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<<t);t--);return 0!=this.high?t+33:t+1},w.isZero=function(){return 0===this.high&&0===this.low},w.isNegative=function(){return!this.unsigned&&this.high<0},w.isPositive=function(){return this.unsigned||this.high>=0},w.isOdd=function(){return!(1&~this.low)},w.isEven=function(){return!(1&this.low)},w.equals=function(e){return t(e)||(e=A(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},w.eq=w.equals,w.notEquals=function(e){return!this.eq(e)},w.neq=w.notEquals,w.lessThan=function(e){return this.comp(e)<0},w.lt=w.lessThan,w.lessThanOrEqual=function(e){return this.comp(e)<=0},w.lte=w.lessThanOrEqual,w.greaterThan=function(e){return this.comp(e)>0},w.gt=w.greaterThan,w.greaterThanOrEqual=function(e){return this.comp(e)>=0},w.gte=w.greaterThanOrEqual,w.compare=function(e){if(t(e)||(e=A(e)),this.eq(e))return 0;var n=this.isNegative(),i=e.isNegative();return n&&!i?-1:!n&&i?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},w.comp=w.compare,w.negate=function(){return!this.unsigned&&this.eq(C)?C:this.not().add(m)},w.neg=w.negate,w.add=function(e){t(e)||(e=A(e));var n=this.high>>>16,i=65535&this.high,r=this.low>>>16,o=65535&this.low,a=e.high>>>16,l=65535&e.high,c=e.low>>>16,u=0,h=0,d=0,f=0;return d+=(f+=o+(65535&e.low))>>>16,h+=(d+=r+c)>>>16,u+=(h+=i+l)>>>16,u+=n+a,s((d&=65535)<<16|(f&=65535),(u&=65535)<<16|(h&=65535),this.unsigned)},w.subtract=function(e){return t(e)||(e=A(e)),this.add(e.neg())},w.sub=w.subtract,w.multiply=function(e){if(this.isZero())return p;if(t(e)||(e=A(e)),e.isZero())return p;if(this.eq(C))return e.isOdd()?C:p;if(e.eq(C))return this.isOdd()?C:p;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(f)&&e.lt(f))return o(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,i=65535&this.high,r=this.low>>>16,a=65535&this.low,l=e.high>>>16,c=65535&e.high,u=e.low>>>16,h=65535&e.low,d=0,g=0,m=0,_=0;return m+=(_+=a*h)>>>16,g+=(m+=r*h)>>>16,m&=65535,g+=(m+=a*u)>>>16,d+=(g+=i*h)>>>16,g&=65535,d+=(g+=r*u)>>>16,g&=65535,d+=(g+=a*c)>>>16,d+=n*h+i*u+r*c+a*l,s((m&=65535)<<16|(_&=65535),(d&=65535)<<16|(g&=65535),this.unsigned)},w.mul=w.multiply,w.divide=function(e){if(t(e)||(e=A(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?g:p;var n,i,r;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return g;if(e.gt(this.shru(1)))return _;r=g}else{if(this.eq(C))return e.eq(m)||e.eq(b)?C:e.eq(C)?m:(n=this.shr(1).div(e).shl(1)).eq(p)?e.isNegative()?m:b:(i=this.sub(e.mul(n)),r=n.add(i.div(e)));if(e.eq(C))return this.unsigned?g:p;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();r=p}for(i=this;i.gte(e);){n=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=Math.ceil(Math.log(n)/Math.LN2),l=s<=48?1:a(2,s-48),c=o(n),u=c.mul(e);u.isNegative()||u.gt(i);)u=(c=o(n-=l,this.unsigned)).mul(e);c.isZero()&&(c=m),r=r.add(c),i=i.sub(u)}return r},w.div=w.divide,w.modulo=function(e){return t(e)||(e=A(e)),this.sub(this.div(e).mul(e))},w.mod=w.modulo,w.not=function(){return s(~this.low,~this.high,this.unsigned)},w.and=function(e){return t(e)||(e=A(e)),s(this.low&e.low,this.high&e.high,this.unsigned)},w.or=function(e){return t(e)||(e=A(e)),s(this.low|e.low,this.high|e.high,this.unsigned)},w.xor=function(e){return t(e)||(e=A(e)),s(this.low^e.low,this.high^e.high,this.unsigned)},w.shiftLeft=function(e){return t(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?s(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):s(0,this.low<<e-32,this.unsigned)},w.shl=w.shiftLeft,w.shiftRight=function(e){return t(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?s(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):s(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},w.shr=w.shiftRight,w.shiftRightUnsigned=function(e){if(t(e)&&(e=e.toInt()),0==(e&=63))return this;var n=this.high;return e<32?s(this.low>>>e|n<<32-e,n>>>e,this.unsigned):s(32===e?n:n>>>e-32,0,this.unsigned)},w.shru=w.shiftRightUnsigned,w.toSigned=function(){return this.unsigned?s(this.low,this.high,!1):this},w.toUnsigned=function(){return this.unsigned?this:s(this.low,this.high,!0)},w.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},w.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},w.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t]},e})?n.apply(t,i):n)||(e.exports=r)},83909(e,t,n){"use strict";n.d(t,{I7:()=>DeviceFeatures,PI:()=>DeviceLimits,pF:()=>Device});var i=n(76028),r=n(29651),o=n(74683),s=n(26839),a=n(61954),l=n(42528),A=n(90153),c=n(74520);class DeviceLimits{}function u(e){if(void 0!==e){if(null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(e instanceof Error)return e.message;if(Array.isArray(e))return e.map(u);if("object"==typeof e){if(function(e){return"toString"in e&&"function"==typeof e.toString&&e.toString!==Object.prototype.toString}(e)){const t=String(e);if("[object Object]"!==t)return t}return function(e){return"message"in e&&"type"in e}(e)?function(e){const t="string"==typeof e.type?e.type:"message",n="string"==typeof e.message?e.message:"",i="number"==typeof e.lineNum?e.lineNum:null,r="number"==typeof e.linePos?e.linePos:null;return`${t}${null!==i&&null!==r?` @ ${i}:${r}`:null!==i?` @ ${i}`:""}: ${n}`.trim()}(e):e.constructor?.name||"Object"}return String(e)}}class DeviceFeatures{features;disabledFeatures;constructor(e=[],t){this.features=new Set(e),this.disabledFeatures=t||{}}*[Symbol.iterator](){yield*this.features}has(e){return!this.disabledFeatures?.[e]&&this.features.has(e)}}class Device{static defaultProps={id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,webgl:{},onError:(e,t)=>{},onResize:(e,t)=>{const[n,i]=e.getDevicePixelSize();r.R.log(1,`${e} resized => ${n}x${i}px`)()},onPositionChange:(e,t)=>{const[n,i]=e.getPosition();r.R.log(1,`${e} repositioned => ${n},${i}`)()},onVisibilityChange:e=>r.R.log(1,`${e} Visibility changed ${e.isVisible}`)(),onDevicePixelRatioChange:(e,t)=>r.R.log(1,`${e} DPR changed ${t.oldRatio} => ${e.devicePixelRatio}`)(),debug:h(),debugGPUTime:!1,debugShaders:r.R.get("debug-shaders")||void 0,debugFramebuffers:Boolean(r.R.get("debug-framebuffers")),debugFactories:Boolean(r.R.get("debug-factories")),debugWebGL:Boolean(r.R.get("debug-webgl")),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_reuseDevices:!1,_requestMaxLimits:!0,_cacheShaders:!0,_destroyShaders:!1,_cachePipelines:!0,_sharePipelines:!0,_destroyPipelines:!1,_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_handle:void 0};get[Symbol.toStringTag](){return"Device"}toString(){return`Device(${this.id})`}id;props;userData={};statsManager=i.d;_factories={};timestamp=0;_reused=!1;_moduleData={};_textureCaps={};_debugGPUTimeQuery=null;constructor(e){this.props={...Device.defaultProps,...e},this.id=this.props.id||(0,o.L)(this[Symbol.toStringTag].toLowerCase())}getVertexFormatInfo(e){return a.E.getVertexFormatInfo(e)}isVertexFormatSupported(e){return!0}getTextureFormatInfo(e){return l.vz.getInfo(e)}getTextureFormatCapabilities(e){let t=this._textureCaps[e];if(!t){const n=this._getDeviceTextureFormatCapabilities(e);t=this._getDeviceSpecificTextureFormatCapabilities(n),this._textureCaps[e]=t}return t}getMipLevelCount(e,t,n=1){const i=Math.max(e,t,n);return 1+Math.floor(Math.log2(i))}isExternalImage(e){return(0,A.x)(e)}getExternalImageSize(e){return(0,A.c)(e)}isTextureFormatSupported(e){return this.getTextureFormatCapabilities(e).create}isTextureFormatFilterable(e){return this.getTextureFormatCapabilities(e).filter}isTextureFormatRenderable(e){return this.getTextureFormatCapabilities(e).render}isTextureFormatCompressed(e){return l.vz.isCompressed(e)}getSupportedCompressedTextureFormats(){const e=[];for(const t of Object.keys((0,c.PU)()))this.isTextureFormatCompressed(t)&&this.isTextureFormatSupported(t)&&e.push(t);return e}pushDebugGroup(e){this.commandEncoder.pushDebugGroup(e)}popDebugGroup(){this.commandEncoder?.popDebugGroup()}insertDebugMarker(e){this.commandEncoder?.insertDebugMarker(e)}loseDevice(){return!1}incrementTimestamp(){return this.timestamp++}reportError(e,t,...n){if(!this.props.onError(e,t)){const i=function(e,t){return[u(e),...t.map(u).filter(e=>void 0!==e)].filter(e=>void 0!==e)}(t,n);return r.R.error("webgl"===this.type?"%cWebGL":"%cWebGPU","color: white; background: red; padding: 2px 6px; border-radius: 3px;",e.message,...i)}return()=>{}}debug(){if(this.props.debug);else{const e="'Type luma.log.set({debug: true}) in console to enable debug breakpoints',\nor create a device with the 'debug: true' prop.";r.R.once(0,e)()}}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}createFence(){throw new Error("createFence() not implemented")}beginRenderPass(e){return this.commandEncoder.beginRenderPass(e)}beginComputePass(e){return this.commandEncoder.beginComputePass(e)}generateMipmapsWebGPU(e){throw new Error("not implemented")}_createSharedRenderPipelineWebGL(e){throw new Error("_createSharedRenderPipelineWebGL() not implemented")}_createBindGroupLayoutWebGPU(e,t){throw new Error("_createBindGroupLayoutWebGPU() not implemented")}_createBindGroupWebGPU(e,t,n,i,r){throw new Error("_createBindGroupWebGPU() not implemented")}_supportsDebugGPUTime(){return this.features.has("timestamp-query")&&Boolean(this.props.debug||this.props.debugGPUTime)}_enableDebugGPUTime(e=256){if(!this._supportsDebugGPUTime())return null;if(this._debugGPUTimeQuery)return this._debugGPUTimeQuery;try{this._debugGPUTimeQuery=this.createQuerySet({type:"timestamp",count:e}),this.commandEncoder=this.createCommandEncoder({id:this.commandEncoder.props.id,timeProfilingQuerySet:this._debugGPUTimeQuery})}catch{this._debugGPUTimeQuery=null}return this._debugGPUTimeQuery}_disableDebugGPUTime(){this._debugGPUTimeQuery&&(this.commandEncoder.getTimeProfilingQuerySet()===this._debugGPUTimeQuery&&(this.commandEncoder=this.createCommandEncoder({id:this.commandEncoder.props.id})),this._debugGPUTimeQuery.destroy(),this._debugGPUTimeQuery=null)}_isDebugGPUTimeEnabled(){return null!==this._debugGPUTimeQuery}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,t){throw new Error("not implemented")}readPixelsToBufferWebGL(e,t){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,t){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}getModuleData(e){return this._moduleData[e]||={},this._moduleData[e]}static _getCanvasContextProps(e){return!0===e.createCanvasContext?{}:e.createCanvasContext}_getDeviceTextureFormatCapabilities(e){const t=l.vz.getCapabilities(e),n=e=>("string"==typeof e?this.features.has(e):e)??!0,i=n(t.create);return{format:e,create:i,render:i&&n(t.render),filter:i&&n(t.filter),blend:i&&n(t.blend),store:i&&n(t.store)}}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});const t={...e};if((e.usage||0)&s.h.INDEX&&(e.indexType||(e.data instanceof Uint32Array?t.indexType="uint32":e.data instanceof Uint16Array?t.indexType="uint16":e.data instanceof Uint8Array&&(t.data=new Uint16Array(e.data),t.indexType="uint16")),!t.indexType))throw new Error("indices buffer content must be of type uint16 or uint32");return t}}function h(){return e=r.R.get("debug"),t=function(){const e=globalThis.process;if(e?.env)return e.env.NODE_ENV}(),null!=e?Boolean(e):void 0!==t&&"production"!==t;var e,t}},76028(e,t,n){"use strict";var i=n(30568);const r=["Adapter","GPU","GPU Type","GPU Backend","Frame Rate","CPU Time","GPU Time","GPU Memory","Buffer Memory","Texture Memory","Referenced Buffer Memory","Referenced Texture Memory","Swap Chain Texture"],o=new WeakMap,s=new WeakMap;const a=new class StatsManager{stats=new Map;getStats(e){return this.get(e)}get(e){this.stats.has(e)||this.stats.set(e,new i.A({id:e}));const t=this.stats.get(e);return"GPU Time and Memory"===e&&function(e,t){const n=e.stats;let i=!1;for(const r of t)n[r]||(e.get(r),i=!0);const r=Object.keys(n).length,a=o.get(e);if(!i&&a?.orderedStatNames===t&&a.statCount===r)return;const l={};let A=s.get(t);A||(A=new Set(t),s.set(t,A));for(const e of t)n[e]&&(l[e]=n[e]);for(const[e,t]of Object.entries(n))A.has(e)||(l[e]=t);for(const e of Object.keys(n))delete n[e];Object.assign(n,l),o.set(e,{orderedStatNames:t,statCount:r})}(t,r),t}};n.d(t,["d",0,a])},62738(e,t,n){"use strict";n.d(t,{WebGLDevice:()=>WebGLDevice});var i=n(83909),r=n(29651);const o={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,35725:null,36006:null,36007:null,34229:null,34964:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32926:!1,32928:!1,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],36389:null,36662:null,36663:null,35053:null,35055:null,35723:4352,36010:null,35977:!1,3333:4,3317:4,37440:!1,37441:!1,37443:37444,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},s=(e,t,n)=>t?e.enable(n):e.disable(n),a=(e,t,n)=>e.hint(n,t),l=(e,t,n)=>e.pixelStorei(n,t),A=(e,t,n)=>{const i=36006===n?36009:36008;return e.bindFramebuffer(i,t)},c=(e,t,n)=>{const i={34964:34962,36662:36662,36663:36663,35053:35051,35055:35052}[n];e.bindBuffer(i,t)};function u(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}const h={3042:s,32773:(e,t)=>e.blendColor(...t),32777:"blendEquation",34877:"blendEquation",32969:"blendFunc",32968:"blendFunc",32971:"blendFunc",32970:"blendFunc",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:s,2885:(e,t)=>e.cullFace(t),2929:s,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:s,35723:a,35725:(e,t)=>e.useProgram(t),36007:(e,t)=>e.bindRenderbuffer(36161,t),36389:(e,t)=>e.bindTransformFeedback?.(36386,t),34229:(e,t)=>e.bindVertexArray(t),36006:A,36010:A,34964:c,36662:c,36663:c,35053:c,35055:c,2886:(e,t)=>e.frontFace(t),33170:a,2849:(e,t)=>e.lineWidth(t),32823:s,32824:"polygonOffset",10752:"polygonOffset",35977:s,32926:s,32928:s,32938:"sampleCoverage",32939:"sampleCoverage",3089:s,3088:(e,t)=>e.scissor(...t),2960:s,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),2962:"stencilFuncFront",2967:"stencilFuncFront",2963:"stencilFuncFront",34816:"stencilFuncBack",36003:"stencilFuncBack",36004:"stencilFuncBack",2964:"stencilOpFront",2965:"stencilOpFront",2966:"stencilOpFront",34817:"stencilOpBack",34818:"stencilOpBack",34819:"stencilOpBack",2978:(e,t)=>e.viewport(...t),34383:s,10754:s,12288:s,12289:s,12290:s,12291:s,12292:s,12293:s,12294:s,12295:s,3333:l,3317:l,37440:l,37441:l,37443:l,3330:l,3332:l,3331:l,3314:l,32878:l,3316:l,3315:l,32877:l,framebuffer:(e,t)=>{const n=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,n)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{const n="number"==typeof t?[t,t]:t;e.blendEquationSeparate(...n)},blendFunc:(e,t)=>{const n=2===t?.length?[...t,...t]:t;e.blendFuncSeparate(...n)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=u(t)?t:[t,t];const[n,i]=t;e.stencilMaskSeparate(1028,n),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=u(t)&&3===t.length?[...t,...t]:t;const[n,i,r,o,s,a]=t;e.stencilFuncSeparate(1028,n,i,r),e.stencilFuncSeparate(1029,o,s,a)},stencilOp:(e,t)=>{t=u(t)&&3===t.length?[...t,...t]:t;const[n,i,r,o,s,a]=t;e.stencilOpSeparate(1028,n,i,r),e.stencilOpSeparate(1029,o,s,a)},viewport:(e,t)=>e.viewport(...t)};function d(e,t,n){return void 0!==t[e]?t[e]:n[e]}const f={blendEquation:(e,t,n)=>e.blendEquationSeparate(d(32777,t,n),d(34877,t,n)),blendFunc:(e,t,n)=>e.blendFuncSeparate(d(32969,t,n),d(32968,t,n),d(32971,t,n),d(32970,t,n)),polygonOffset:(e,t,n)=>e.polygonOffset(d(32824,t,n),d(10752,t,n)),sampleCoverage:(e,t,n)=>e.sampleCoverage(d(32938,t,n),d(32939,t,n)),stencilFuncFront:(e,t,n)=>e.stencilFuncSeparate(1028,d(2962,t,n),d(2967,t,n),d(2963,t,n)),stencilFuncBack:(e,t,n)=>e.stencilFuncSeparate(1029,d(34816,t,n),d(36003,t,n),d(36004,t,n)),stencilOpFront:(e,t,n)=>e.stencilOpSeparate(1028,d(2964,t,n),d(2965,t,n),d(2966,t,n)),stencilOpBack:(e,t,n)=>e.stencilOpSeparate(1029,d(34817,t,n),d(34818,t,n),d(34819,t,n))},p={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,n)=>e({[t]:n}),hint:(e,t,n)=>e({[t]:n}),useProgram:(e,t)=>e({35725:t}),bindRenderbuffer:(e,t,n)=>e({36007:n}),bindTransformFeedback:(e,t,n)=>e({36389:n}),bindVertexArray:(e,t)=>e({34229:t}),bindFramebuffer:(e,t,n)=>{switch(t){case 36160:return e({36006:n,36010:n});case 36009:return e({36006:n});case 36008:return e({36010:n});default:return null}},bindBuffer:(e,t,n)=>{const i={34962:[34964],36662:[36662],36663:[36663],35051:[35053],35052:[35055]}[t];return i?e({[i]:n}):{valueChanged:!0}},blendColor:(e,t,n,i,r)=>e({32773:new Float32Array([t,n,i,r])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,n)=>e({32777:t,34877:n}),blendFunc:(e,t,n)=>e({32969:t,32968:n,32971:t,32970:n}),blendFuncSeparate:(e,t,n,i,r)=>e({32969:t,32968:n,32971:i,32970:r}),clearColor:(e,t,n,i,r)=>e({3106:new Float32Array([t,n,i,r])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,n,i,r)=>e({3107:[t,n,i,r]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,n)=>e({2928:new Float32Array([t,n])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,n)=>e({32824:t,10752:n}),sampleCoverage:(e,t,n)=>e({32938:t,32939:n}),scissor:(e,t,n,i,r)=>e({3088:new Int32Array([t,n,i,r])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,n)=>e({[1028===t?2968:36005]:n}),stencilFunc:(e,t,n,i)=>e({2962:t,2967:n,2963:i,34816:t,36003:n,36004:i}),stencilFuncSeparate:(e,t,n,i,r)=>e({[1028===t?2962:34816]:n,[1028===t?2967:36003]:i,[1028===t?2963:36004]:r}),stencilOp:(e,t,n,i)=>e({2964:t,2965:n,2966:i,34817:t,34818:n,34819:i}),stencilOpSeparate:(e,t,n,i,r)=>e({[1028===t?2964:34817]:n,[1028===t?2965:34818]:i,[1028===t?2966:34819]:r}),viewport:(e,t,n,i,r)=>e({2978:[t,n,i,r]})},g=(e,t)=>e.isEnabled(t),m={3042:g,2884:g,2929:g,3024:g,32823:g,32926:g,32928:g,3089:g,2960:g,35977:g},_=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function b(e,t){if(function(e){for(const t in e)return!1;return!0}(t))return;const n={};for(const i in t){const r=Number(i),o=h[i];o&&("string"==typeof o?n[o]=!0:o(e,t[i],r))}const i=e.lumaState?.cache;if(i)for(const r in n){(0,f[r])(e,t,i)}}function v(e,t=o){if("number"==typeof t){const n=t,i=m[n];return i?i(e,n):e.getParameter(n)}const n=Array.isArray(t)?t:Object.keys(t),i={};for(const t of n){const n=m[t];i[t]=n?n(e,Number(t)):e.getParameter(Number(t))}return i}function y(e,t){if(e===t)return!0;if(C(e)&&C(t)&&e.length===t.length){for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}return!1}function C(e){return Array.isArray(e)||ArrayBuffer.isView(e)}class WebGLStateTracker{static get(e){return e.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(e,t){this.gl=e,this.log=t?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){const e=this.stateStack[this.stateStack.length-1];b(this.gl,e),this.stateStack.pop()}trackState(e,t){if(this.cache=t?.copyState?v(e):Object.assign({},o),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,function(e){const t=e.useProgram.bind(e);e.useProgram=function(n){const i=WebGLStateTracker.get(e);i.program!==n&&(t(n),i.program=n)}}(e);for(const t in p){E(e,t,p[t])}w(e,"getParameter"),w(e,"isEnabled")}_updateCache(e){let t,n=!1;const i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(const r in e){const o=e[r],s=this.cache[r];y(o,s)||(n=!0,t=s,i&&!(r in i)&&(i[r]=s),this.cache[r]=o)}return{valueChanged:n,oldValue:t}}}function w(e,t){const n=e[t].bind(e);e[t]=function(t){if(void 0===t||_.has(t))return n(t);const i=WebGLStateTracker.get(e);return t in i.cache||(i.cache[t]=n(t)),i.enable?i.cache[t]:n(t)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function E(e,t,n){if(!e[t])return;const i=e[t].bind(e);e[t]=function(...t){const r=WebGLStateTracker.get(e),{valueChanged:o,oldValue:s}=n(r._updateCache,...t);return o&&i(...t),s},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}var x=n(28891);function T(e,t,n){return void 0===n[t]&&(n[t]=e.getExtension(t)||null),n[t]}function S(e,t){const n=e.getParameter(7936),i=e.getParameter(7937);T(e,"WEBGL_debug_renderer_info",t);const r=t.WEBGL_debug_renderer_info,o=e.getParameter(r?r.UNMASKED_VENDOR_WEBGL:7936)||n,s=e.getParameter(r?r.UNMASKED_RENDERER_WEBGL:7937)||i,a=e.getParameter(7938),l=P(o,s),A=function(e,t){if(/Metal/i.exec(e)||/Metal/i.exec(t))return"metal";if(/ANGLE/i.exec(e)||/ANGLE/i.exec(t))return"opengl";return"unknown"}(o,s),c=function(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(P(e,t)){case"apple":return function(e,t){return/Apple (M\d|A\d|GPU)/i.test(`${e} ${t}`)}(e,t)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}(o,s);return{type:"webgl",gpu:l,gpuType:c,gpuBackend:A,vendor:o,renderer:s,version:a,shadingLanguage:"glsl",shadingLanguageVersion:300}}function P(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}var M=n(42528);function R(e){switch(e){case"uint8":case"unorm8":return 5121;case"sint8":case"snorm8":return 5120;case"uint16":case"unorm16":return 5123;case"sint16":case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}const B="WEBGL_compressed_texture_s3tc",I="WEBGL_compressed_texture_s3tc_srgb",L="EXT_texture_compression_rgtc",F="EXT_texture_compression_bptc",D="EXT_render_snorm",O="EXT_color_buffer_float",N="snorm8-renderable-webgl",k="norm16-renderable-webgl",U="snorm16-renderable-webgl",G="float16-renderable-webgl",V="float32-renderable-webgl",z={"float32-renderable-webgl":{extensions:[O]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[D]},"norm16-webgl":{extensions:["EXT_texture_norm16"]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[D]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[B,I,L,F]},"texture-compression-bc5-webgl":{extensions:[L]},"texture-compression-bc7-webgl":{extensions:[F]},"texture-compression-etc2":{extensions:["WEBGL_compressed_texture_etc"]},"texture-compression-astc":{extensions:["WEBGL_compressed_texture_astc"]},"texture-compression-etc1-webgl":{extensions:["WEBGL_compressed_texture_etc1"]},"texture-compression-pvrtc-webgl":{extensions:["WEBGL_compressed_texture_pvrtc"]},"texture-compression-atc-webgl":{extensions:["WEBGL_compressed_texture_atc"]}};function H(e,t,n){return W(e,t,n,new Set)}function W(e,t,n,i){const r=z[t];if(!r)return!1;if(i.has(t))return!1;i.add(t);const o=(r.features||[]).every(t=>W(e,t,n,i));return i.delete(t),!!o&&(r.extensions||[]).every(t=>Boolean(T(e,t,n)))}const j={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:N},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:N},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:G},r16unorm:{gl:33322,rb:!0,r:k},r16snorm:{gl:36760,r:U},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:N},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:G},rg16unorm:{gl:33324,r:k},rg16snorm:{gl:36761,r:U},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:V},rgb9e5ufloat:{gl:35901,r:"rgb9e5ufloat-renderable-webgl"},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:V},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:G},rgba16unorm:{gl:32859,rb:!0,r:k},rgba16snorm:{gl:36763,r:U},"rgb32float-webgl":{gl:34837,x:O,r:V,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:V},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:B},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:I},"bc1-rgba-unorm":{gl:33777,x:B},"bc1-rgba-unorm-srgb":{gl:35916,x:I},"bc2-rgba-unorm":{gl:33778,x:B},"bc2-rgba-unorm-srgb":{gl:35918,x:I},"bc3-rgba-unorm":{gl:33779,x:B},"bc3-rgba-unorm-srgb":{gl:35919,x:I},"bc4-r-unorm":{gl:36283,x:L},"bc4-r-snorm":{gl:36284,x:L},"bc5-rg-unorm":{gl:36285,x:L},"bc5-rg-snorm":{gl:36286,x:L},"bc6h-rgb-ufloat":{gl:36495,x:F},"bc6h-rgb-float":{gl:36494,x:F},"bc7-rgba-unorm":{gl:36492,x:F},"bc7-rgba-unorm-srgb":{gl:36493,x:F},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}};function Q(e,t,n){let i=t.create;const r=j[t.format];void 0===r?.gl&&(i=!1),r?.x&&(i=i&&Boolean(T(e,r.x,n))),"stencil8"===t.format&&(i=!1);const o=!1!==r?.r&&(void 0===r?.r||H(e,r.r,n)),s=i&&t.render&&o&&function(e,t,n){const i=j[t],r=i?.gl;if(void 0===r)return!1;if(i?.x&&!T(e,i.x,n))return!1;const o=e.getParameter(32873),s=e.getParameter(36006),a=e.createTexture(),l=e.createFramebuffer();if(!a||!l)return!1;const A=Number(0);let c=Number(e.getError());for(;c!==A;)c=e.getError();let u=!1;try{if(e.bindTexture(3553,a),e.texStorage2D(3553,1,r,1,1),Number(e.getError())!==A)return!1;e.bindFramebuffer(36160,l),e.framebufferTexture2D(36160,36064,3553,a,0),u=Number(e.checkFramebufferStatus(36160))===Number(36053)&&Number(e.getError())===A}finally{e.bindFramebuffer(36160,s),e.deleteFramebuffer(l),e.bindTexture(3553,o),e.deleteTexture(a)}return u}(e,t.format,n);return{format:t.format,create:i&&t.create,render:s,filter:i&&t.filter,blend:i&&t.blend,store:i&&t.store}}function X(e){const t=j[e],n=function(e){const t=j[e],n=t?.gl;if(void 0===n)throw new Error(`Unsupported texture format ${e}`);return n}(e),i=M.vz.getInfo(e);return i.compressed&&(t.dataFormat=n),{internalFormat:n,format:t?.dataFormat||K(i.channels,i.integer,i.normalized,n),type:i.dataType?R(i.dataType):t?.types?.[0]||5121,compressed:i.compressed||!1}}function K(e,t,n,i){if(6408===i||6407===i)return i;switch(e){case"r":return t&&!n?36244:6403;case"rg":return t&&!n?33320:33319;case"rgb":return t&&!n?36248:6407;case"rgba":return t&&!n?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}const J={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"};class WebGLDeviceFeatures extends i.I7{gl;extensions;testedFeatures=new Set;constructor(e,t,n){super([],n),this.gl=e,this.extensions=t,T(e,"EXT_color_buffer_float",t)}*[Symbol.iterator](){const e=this.getFeatures();for(const t of e)this.has(t)&&(yield t);return[]}has(e){return!this.disabledFeatures?.[e]&&(this.testedFeatures.has(e)||(this.testedFeatures.add(e),function(e){return e in z}(e)&&H(this.gl,e,this.extensions)&&this.features.add(e),this.getWebGLFeature(e)&&this.features.add(e)),this.features.has(e))}initializeFeatures(){const e=this.getFeatures().filter(e=>"polygon-mode-webgl"!==e);for(const t of e)this.has(t)}getFeatures(){return[...Object.keys(J),...Object.keys(z)]}getWebGLFeature(e){const t=J[e];return"string"==typeof t?Boolean(T(this.gl,t,this.extensions)):Boolean(t)}}class WebGLDeviceLimits extends i.PI{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(e){super(),this.gl=e}getParameter(e){return void 0===this.limits[e]&&(this.limits[e]=this.gl.getParameter(e)),this.limits[e]||0}}var q=n(16769);class CanvasObserver{props;_resizeObserver;_intersectionObserver;_observeDevicePixelRatioTimeout=null;_observeDevicePixelRatioMediaQuery=null;_handleDevicePixelRatioChange=()=>this._refreshDevicePixelRatio();_trackPositionInterval=null;_started=!1;get started(){return this._started}constructor(e){this.props=e}start(){if(this._started||!this.props.canvas)return;this._started=!0,this._intersectionObserver||=new IntersectionObserver(e=>this.props.onIntersection(e)),this._resizeObserver||=new ResizeObserver(e=>this.props.onResize(e)),this._intersectionObserver.observe(this.props.canvas);const e=this.props.resizeObserverBox;try{this._resizeObserver.observe(this.props.canvas,{box:e})}catch{this._resizeObserver.observe(this.props.canvas,{box:"content-box"})}this._observeDevicePixelRatioTimeout=setTimeout(()=>this._refreshDevicePixelRatio(),0),this.props.trackPosition&&this._trackPosition()}stop(){this._started&&(this._started=!1,this._observeDevicePixelRatioTimeout&&(clearTimeout(this._observeDevicePixelRatioTimeout),this._observeDevicePixelRatioTimeout=null),this._observeDevicePixelRatioMediaQuery&&(this._observeDevicePixelRatioMediaQuery.removeEventListener("change",this._handleDevicePixelRatioChange),this._observeDevicePixelRatioMediaQuery=null),this._trackPositionInterval&&(clearInterval(this._trackPositionInterval),this._trackPositionInterval=null),this._resizeObserver?.disconnect(),this._intersectionObserver?.disconnect())}_refreshDevicePixelRatio(){this._started&&(this.props.onDevicePixelRatioChange(),this._observeDevicePixelRatioMediaQuery?.removeEventListener("change",this._handleDevicePixelRatioChange),this._observeDevicePixelRatioMediaQuery=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),this._observeDevicePixelRatioMediaQuery.addEventListener("change",this._handleDevicePixelRatioChange,{once:!0}))}_trackPosition(e=100){this._trackPositionInterval||(this._trackPositionInterval=setInterval(()=>{this._started?this.props.onPositionChange():this._trackPositionInterval&&(clearInterval(this._trackPositionInterval),this._trackPositionInterval=null)},e))}}var Y=n(74683);function Z(e,t){if(!e){const e=new Error(t??"luma.gl assertion failed.");throw Error.captureStackTrace?.(e,Z),e}}function $(e,t){return Z(e,t),e}class CanvasSurface{static isHTMLCanvas(e){return"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement}static isOffscreenCanvas(e){return"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas}static defaultProps={id:void 0,canvas:null,width:800,height:600,useDevicePixels:!0,pixelSizeSource:"exact",autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb",trackPosition:!1};id;props;canvas;htmlCanvas;offscreenCanvas;type;initialized;isInitialized=!1;isVisible=!0;cssWidth;cssHeight;devicePixelRatio;devicePixelWidth;devicePixelHeight;drawingBufferWidth;drawingBufferHeight;_initializedResolvers=function(){let e,t;return{promise:new Promise((n,i)=>{e=n,t=i}),resolve:e,reject:t}}();_canvasObserver;_position=[0,0];destroyed=!1;_needsDrawingBufferResize=!0;toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){this.props={...CanvasSurface.defaultProps,...e},e=this.props,this.initialized=this._initializedResolvers.promise,(0,q.B)()?e.canvas?"string"==typeof e.canvas?this.canvas=function(e){const t=document.getElementById(e);if(!CanvasSurface.isHTMLCanvas(t))throw new Error("Object is not a canvas element");return t}(e.canvas):this.canvas=e.canvas:this.canvas=function(e){const{width:t,height:n}=e,i=document.createElement("canvas");i.id=(0,Y.L)("lumagl-auto-created-canvas"),i.width=t||1,i.height=n||1,i.style.width=Number.isFinite(t)?`${t}px`:"100%",i.style.height=Number.isFinite(n)?`${n}px`:"100%",e?.visible||(i.style.visibility="hidden");const r=function(e){if("string"==typeof e){const t=document.getElementById(e);if(!t)throw new Error(`${e} is not an HTML element`);return t}if(e)return e;return document.body}(e?.container||null);return r.insertBefore(i,r.firstChild),i}(e):this.canvas={width:e.width||1,height:e.height||1},CanvasSurface.isHTMLCanvas(this.canvas)?(this.id=e.id||this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):CanvasSurface.isOffscreenCanvas(this.canvas)?(this.id=e.id||"offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas):(this.id=e.id||"node-canvas-context",this.type="node"),this.cssWidth=this.htmlCanvas?.clientWidth||this.canvas.width,this.cssHeight=this.htmlCanvas?.clientHeight||this.canvas.height,this.devicePixelWidth=this.canvas.width,this.devicePixelHeight=this.canvas.height,this.drawingBufferWidth=this.canvas.width,this.drawingBufferHeight=this.canvas.height,this.devicePixelRatio=globalThis.devicePixelRatio||1,this._position=[0,0],this._canvasObserver=new CanvasObserver({canvas:this.htmlCanvas,trackPosition:this.props.trackPosition,resizeObserverBox:"css-dpr"===this.props.pixelSizeSource?"content-box":"device-pixel-content-box",onResize:e=>this._handleResize(e),onIntersection:e=>this._handleIntersection(e),onDevicePixelRatioChange:()=>this._observeDevicePixelRatio(),onPositionChange:()=>this.updatePosition()})}destroy(){this.destroyed||(this.destroyed=!0,this._stopObservers(),this.device=null)}setProps(e){return"useDevicePixels"in e&&(this.props.useDevicePixels=e.useDevicePixels||!1,this._updateDrawingBufferSize()),this}getCurrentFramebuffer(e){return this._resizeDrawingBufferIfNeeded(),this._getCurrentFramebuffer(e)}getCSSSize(){return[this.cssWidth,this.cssHeight]}getPosition(){return this._position}getDevicePixelSize(){return[this.devicePixelWidth,this.devicePixelHeight]}getDrawingBufferSize(){return[this.drawingBufferWidth,this.drawingBufferHeight]}getMaxDrawingBufferSize(){const e=this.device.limits.maxTextureDimension2D;return[e,e]}setDrawingBufferSize(e,t){e=Math.floor(e),t=Math.floor(t),this.drawingBufferWidth===e&&this.drawingBufferHeight===t||(this.drawingBufferWidth=e,this.drawingBufferHeight=t,this._needsDrawingBufferResize=!0)}getDevicePixelRatio(){return"undefined"!=typeof window&&window.devicePixelRatio||1}cssToDevicePixels(e,t=!0){const n=this.cssToDeviceRatio(),[i,r]=this.getDrawingBufferSize();return function(e,t,n,i,r){const o=e,s=ee(o[0],t,n);let a=te(o[1],t,i,r),l=ee(o[0]+1,t,n);const A=l===n-1?l:l-1;let c;l=te(o[1]+1,t,i,r),r?(l=0===l?l:l+1,c=a,a=l):c=l===i-1?l:l-1;return{x:s,y:a,width:Math.max(A-s+1,1),height:Math.max(c-a+1,1)}}(e,n,i,r,t)}getPixelSize(){return this.getDevicePixelSize()}getAspect(){const[e,t]=this.getDrawingBufferSize();return e>0&&t>0?e/t:1}cssToDeviceRatio(){try{const[e]=this.getDrawingBufferSize(),[t]=this.getCSSSize();return t?e/t:1}catch{return 1}}resize(e){this.setDrawingBufferSize(e.width,e.height)}_setAutoCreatedCanvasId(e){"lumagl-auto-created-canvas"===this.htmlCanvas?.id&&(this.htmlCanvas.id=e)}_startObservers(){this.destroyed||this._canvasObserver.start()}_stopObservers(){this._canvasObserver.stop()}_handleIntersection(e){if(this.destroyed)return;const t=e.find(e=>e.target===this.canvas);if(!t)return;const n=t.isIntersecting;this.isVisible!==n&&(this.isVisible=n,this.device.props.onVisibilityChange(this))}_handleResize(e){if(this.destroyed)return;const t=e.find(e=>e.target===this.canvas);if(!t)return;const n=$(t.contentBoxSize?.[0]);this.cssWidth=n.inlineSize,this.cssHeight=n.blockSize;const i=this.getDevicePixelSize();this._setDevicePixelSize(this._getDevicePixelSizeFromResizeEntry(t)),this._updateDrawingBufferSize(),this.device.props.onResize(this,{oldPixelSize:i})}_updateDrawingBufferSize(){if(this.props.autoResize)if("number"==typeof this.props.useDevicePixels){const e=this.props.useDevicePixels;this.setDrawingBufferSize(this.cssWidth*e,this.cssHeight*e)}else this.props.useDevicePixels?this.setDrawingBufferSize(this.devicePixelWidth,this.devicePixelHeight):this.setDrawingBufferSize(this.cssWidth,this.cssHeight);this._initializedResolvers.resolve(),this.isInitialized=!0,this.updatePosition()}_getDevicePixelSizeFromResizeEntry(e){const t=$(e.contentBoxSize?.[0]);return"css-dpr"===this.props.pixelSizeSource?this._getDevicePixelSizeFromCSSSize(t.inlineSize,t.blockSize):{devicePixelWidth:e.devicePixelContentBoxSize?.[0]?.inlineSize||t.inlineSize*devicePixelRatio,devicePixelHeight:e.devicePixelContentBoxSize?.[0]?.blockSize||t.blockSize*devicePixelRatio}}_getDevicePixelSizeFromCSSSize(e,t){const n=this.getDevicePixelRatio();return{devicePixelWidth:Math.floor(e*n),devicePixelHeight:Math.floor(t*n)}}_setDevicePixelSize({devicePixelWidth:e,devicePixelHeight:t}){const[n,i]=this.getMaxDrawingBufferSize();this.devicePixelWidth=Math.max(1,Math.min(e,n)),this.devicePixelHeight=Math.max(1,Math.min(t,i))}_resizeDrawingBufferIfNeeded(){if(this._needsDrawingBufferResize){this._needsDrawingBufferResize=!1;(this.drawingBufferWidth!==this.canvas.width||this.drawingBufferHeight!==this.canvas.height)&&(this.canvas.width=this.drawingBufferWidth,this.canvas.height=this.drawingBufferHeight,this._configureDevice())}}_observeDevicePixelRatio(){if(this.destroyed||!this._canvasObserver.started)return;const e=this.devicePixelRatio;if(this.devicePixelRatio=window.devicePixelRatio,"css-dpr"===this.props.pixelSizeSource){const e=this.getDevicePixelSize();this._setDevicePixelSize(this._getDevicePixelSizeFromCSSSize(this.cssWidth,this.cssHeight)),this._updateDrawingBufferSize(),this.device.props.onResize(this,{oldPixelSize:e})}this.updatePosition(),this.device.props.onDevicePixelRatioChange?.(this,{oldRatio:e})}updatePosition(){if(this.destroyed)return;const e=this.htmlCanvas?.getBoundingClientRect();if(e){const t=[e.left,e.top];this._position??=t;if(t[0]!==this._position[0]||t[1]!==this._position[1]){const e=this._position;this._position=t,this.device.props.onPositionChange?.(this,{oldPosition:e})}}}}function ee(e,t,n){return Math.min(Math.round(e*t),n-1)}function te(e,t,n,i){return i?Math.max(0,n-1-Math.round(e*t)):Math.min(Math.round(e*t),n-1)}class CanvasContext extends CanvasSurface{static defaultProps=CanvasSurface.defaultProps}var ne=n(5153),ie=n(80698);class Framebuffer extends ne.F{get[Symbol.toStringTag](){return"Framebuffer"}width;height;constructor(e,t={}){super(e,t,Framebuffer.defaultProps),this.width=this.props.width,this.height=this.props.height}clone(e){const t=this.colorAttachments.map(t=>t.texture.clone(e)),n=this.depthStencilAttachment&&this.depthStencilAttachment.texture.clone(e);return this.device.createFramebuffer({...this.props,...e,colorAttachments:t,depthStencilAttachment:n})}resize(e){let t=!e;if(e){const[n,i]=Array.isArray(e)?e:[e.width,e.height];t=t||i!==this.height||n!==this.width,this.width=n,this.height=i}t&&(r.R.log(2,`Resizing framebuffer ${this.id} to ${this.width}x${this.height}`)(),this.resizeAttachments(this.width,this.height))}autoCreateAttachmentTextures(){if(0===this.props.colorAttachments.length&&!this.props.depthStencilAttachment)throw new Error("Framebuffer has noattachments");this.colorAttachments=this.props.colorAttachments.map((e,t)=>{if("string"==typeof e){const n=this.createColorTexture(e,t);return this.attachResource(n),n.view}return e instanceof ie.g?e.view:e});const e=this.props.depthStencilAttachment;if(e)if("string"==typeof e){const t=this.createDepthStencilTexture(e);this.attachResource(t),this.depthStencilAttachment=t.view}else e instanceof ie.g?this.depthStencilAttachment=e.view:this.depthStencilAttachment=e}createColorTexture(e,t){return this.device.createTexture({id:`${this.id}-color-attachment-${t}`,usage:ie.g.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height,sampler:{magFilter:"linear",minFilter:"linear"}})}createDepthStencilTexture(e){return this.device.createTexture({id:`${this.id}-depth-stencil-attachment`,usage:ie.g.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}resizeAttachments(e,t){if(this.colorAttachments.forEach((n,i)=>{const r=n.texture.clone({width:e,height:t});this.destroyAttachedResource(n),this.colorAttachments[i]=r.view,this.attachResource(r.view)}),this.depthStencilAttachment){const n=this.depthStencilAttachment.texture.clone({width:e,height:t});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=n.view,this.attachResource(n)}this.updateAttachments()}static defaultProps={...ne.F.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null}}class WEBGLFramebuffer extends Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(e,t){super(e,t);const n=null===t.handle;this.device=e,this.gl=e.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),n||(e._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),t.handle||(this.autoCreateAttachmentTextures(),this.updateAttachments()))}destroy(){super.destroy(),this.destroyed||null===this.handle||this.props.handle||this.gl.deleteFramebuffer(this.handle)}updateAttachments(){const e=this.gl.bindFramebuffer(36160,this.handle);for(let e=0;e<this.colorAttachments.length;++e){const t=this.colorAttachments[e];if(t){const n=36064+e;this._attachTextureView(n,t)}}if(this.depthStencilAttachment){const e=function(e){switch(M.vz.getInfo(e).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${e}`)}}(this.depthStencilAttachment.props.format);this._attachTextureView(e,this.depthStencilAttachment)}if(this.device.props.debug){const e=this.gl.checkFramebufferStatus(36160);if(36053!==e)throw new Error(`Framebuffer ${function(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}(e)}`)}this.gl.bindFramebuffer(36160,e)}_attachTextureView(e,t){const{gl:n}=this.device,{texture:i}=t,r=t.props.baseMipLevel,o=t.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,e,i.handle,r,o);break;case 34067:const t=function(e){return e<34069?e+34069:e}(o);n.framebufferTexture2D(36160,e,t,i.handle,r);break;case 3553:n.framebufferTexture2D(36160,e,3553,i.handle,r);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}resizeAttachments(e,t){if(null===this.handle)return this.width=e,void(this.height=t);super.resizeAttachments(e,t)}}class WebGLCanvasContext extends CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(e,t){super(t),this.device=e,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new WEBGLFramebuffer(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}class PresentationContext extends CanvasSurface{}class WebGLPresentationContext extends PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(e,t={}){super(t),this.device=e;const n=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${n}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);const i=this.canvas.getContext("2d");if(!i)throw new Error(`${n}: Failed to create 2d presentation context`);this.context2d=i,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();const e=this.device.getDefaultCanvasContext(),[t,n]=e.getDrawingBufferSize();if(0!==this.drawingBufferWidth&&0!==this.drawingBufferHeight&&0!==t&&0!==n&&0!==e.canvas.width&&0!==e.canvas.height){if(t!==this.drawingBufferWidth||n!==this.drawingBufferHeight||e.canvas.width!==this.drawingBufferWidth||e.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${t}x${n} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(e.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(e){const t=this.device.getDefaultCanvasContext();return t.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),t.getCurrentFramebuffer(e)}}var re=n(25299),oe=n(89869);const se={};function ae(e="id"){se[e]=se[e]||1;return`${e}-${se[e]++}`}var le=n(26839);class WEBGLBuffer extends le.h{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(e,t={}){super(e,t),this.device=e,this.gl=this.device.gl;const n="object"==typeof t?t.handle:void 0;this.handle=n||this.gl.createBuffer(),e._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=function(e){if(e&le.h.INDEX)return 34963;if(e&le.h.VERTEX)return 34962;if(e&le.h.UNIFORM)return 35345;return 34962}(this.props.usage),this.glUsage=function(e){if(e&le.h.INDEX)return 35044;if(e&le.h.VERTEX)return 35044;if(e&le.h.UNIFORM)return 35048;return 35044}(this.props.usage),this.glIndexType="uint32"===this.props.indexType?5125:5123,t.data?this._initWithData(t.data,t.byteOffset,t.byteLength):this._initWithByteLength(t.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(e,t=0,n=e.byteLength+t){const i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,t,e),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(e,t,n),this.props.handle?this.trackReferencedMemory(n,"Buffer"):this.trackAllocatedMemory(n)}_initWithByteLength(e){let t=e;0===e&&(t=new Float32Array(0));const n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,t,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.props.handle?this.trackReferencedMemory(e,"Buffer"):this.trackAllocatedMemory(e),this}write(e,t=0){const n=ArrayBuffer.isView(e)?e:new Uint8Array(e),i=36663;this.gl.bindBuffer(i,this.handle),this.gl.bufferSubData(i,t,n),this.gl.bindBuffer(i,null),this._setDebugData(e,t,e.byteLength)}async mapAndWriteAsync(e,t=0,n=this.byteLength-t){const i=new ArrayBuffer(n);await e(i,"copied"),this.write(i,t)}async readAsync(e=0,t){return this.readSyncWebGL(e,t)}async mapAndReadAsync(e,t=0,n){const i=await this.readAsync(t,n);return await e(i.buffer,"copied")}readSyncWebGL(e=0,t){t=t??this.byteLength-e;const n=new Uint8Array(t);return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,n,0,t),this.gl.bindBuffer(36662,null),this._setDebugData(n,e,t),n}}var Ae=n(40720);function ce(e){const t=e.toLowerCase();return["warning","error","info"].includes(t)?t:"info"}class WEBGLShader extends Ae.M{device;handle;constructor(e,t){switch(super(e,t),this.device=e,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}e._setWebGLDebugMetadata(this.handle,this,{spector:this.props});const n=this._compile(this.source);n&&"function"==typeof n.catch&&n.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){const e=this.device.gl.getShaderInfoLog(this.handle);return e?function(e){const t=e.split(/\r?\n/),n=[];for(const e of t){if(e.length<=1)continue;const t=e.trim(),i=e.split(":"),r=i[0]?.trim();if(2===i.length){const[e,o]=i;if(!e||!o){n.push({message:t,type:ce(r||"info"),lineNum:0,linePos:0});continue}n.push({message:o.trim(),type:ce(e),lineNum:0,linePos:0});continue}const[o,s,a,...l]=i;if(!o||!s||!a){n.push({message:i.slice(1).join(":").trim()||t,type:ce(r||"info"),lineNum:0,linePos:0});continue}let A=parseInt(a,10);Number.isNaN(A)&&(A=0);let c=parseInt(s,10);Number.isNaN(c)&&(c=0),n.push({message:l.join(":").trim(),type:ce(o),lineNum:A,linePos:c})}return n}(e):[]}getTranslatedSource(){const e=this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders;return e?.getTranslatedShaderSource(this.handle)||null}_compile(e){e=e.startsWith("#version ")?e:`#version 300 es\n${e}`;const{gl:t}=this.device;if(t.shaderSource(this.handle,e),t.compileShader(this.handle),this.device.props.debug){if(this.device.features.has("compilation-status-async-webgl"))return r.R.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{r.R.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()});if(this._getCompilationStatus(),this.debugShader(),"error"===this.compilationStatus)throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}else this.compilationStatus="pending"}async _waitForCompilationComplete(){const e=async e=>await new Promise(t=>setTimeout(t,e));if(!this.device.features.has("compilation-status-async-webgl"))return void await e(10);const{gl:t}=this.device;for(;;){if(t.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}var ue=n(89277);function he(e,t){const n=e,{gl:i}=n;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029)}if(t.frontFace&&i.frontFace(me("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),void 0!==t.depthBias&&(i.enable(32823),i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){const e=n.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,i=me("provokingVertex",t.provokingVertex,{first:36429,last:36430});e?.provokingVertexWEBGL(i)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){const e=n.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,i=me("polygonMode",t.polygonMode,{fill:6914,line:6913});e?.polygonModeWEBGL(1028,i),e?.polygonModeWEBGL(1029,i)}t.polygonOffsetLine&&i.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&i.enable(12288),t.clipDistance1&&i.enable(12289),t.clipDistance2&&i.enable(12290),t.clipDistance3&&i.enable(12291),t.clipDistance4&&i.enable(12292),t.clipDistance5&&i.enable(12293),t.clipDistance6&&i.enable(12294),t.clipDistance7&&i.enable(12295)),void 0!==t.depthWriteEnabled&&i.depthMask(t.depthWriteEnabled),t.depthCompare&&("always"!==t.depthCompare?i.enable(2929):i.disable(2929),i.depthFunc(de("depthCompare",t.depthCompare))),void 0!==t.clearDepth&&i.clearDepth(t.clearDepth),t.stencilWriteMask){const e=t.stencilWriteMask;i.stencilMaskSeparate(1028,e),i.stencilMaskSeparate(1029,e)}if(t.stencilReadMask&&r.R.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){const e=t.stencilReadMask||4294967295,n=de("depthCompare",t.stencilCompare);"always"!==t.stencilCompare?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,n,0,e),i.stencilFuncSeparate(1029,n,0,e)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){const e=fe("stencilPassOperation",t.stencilPassOperation),n=fe("stencilFailOperation",t.stencilFailOperation),r=fe("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,n,r,e),i.stencilOpSeparate(1029,n,r,e)}switch(t.blend){case!0:i.enable(3042);break;case!1:i.disable(3042)}if(t.blendColorOperation||t.blendAlphaOperation){const e=pe("blendColorOperation",t.blendColorOperation||"add"),n=pe("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(e,n);const r=ge("blendColorSrcFactor",t.blendColorSrcFactor||"one"),o=ge("blendColorDstFactor",t.blendColorDstFactor||"zero"),s=ge("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),a=ge("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(r,o,s,a)}}function de(e,t){return me(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function fe(e,t){return me(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function pe(e,t){return me(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ge(e,t,n="color"){return me(e,t,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:"color"===n?32769:32771,"one-minus-constant":"color"===n?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function me(e,t,n){if(!(t in n))throw new Error(function(e,t){return`Illegal parameter ${t} for ${e}`}(e,t));return n[t]}function _e(e){let t=!0;for(const n in e){t=!1;break}return t}function be(e){const t={};return e.addressModeU&&(t[10242]=ve(e.addressModeU)),e.addressModeV&&(t[10243]=ve(e.addressModeV)),e.addressModeW&&(t[32882]=ve(e.addressModeW)),e.magFilter&&(t[10240]=ye(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=function(e,t="none"){if(!t)return ye(e);switch(t){case"none":return ye(e);case"nearest":switch(e){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(e){case"nearest":return 9986;case"linear":return 9987}}}(e.minFilter||"linear",e.mipmapFilter)),void 0!==e.lodMinClamp&&(t[33082]=e.lodMinClamp),void 0!==e.lodMaxClamp&&(t[33083]=e.lodMaxClamp),"comparison-sampler"===e.type&&(t[34892]=34894),e.compare&&(t[34893]=de("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function ve(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function ye(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}class WEBGLSampler extends ue.L{device;handle;parameters;constructor(e,t){super(e,t),this.device=e,this.parameters=be(t),this.handle=t.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(const[t,n]of Object.entries(e)){const e=Number(t);switch(e){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,e,n);break;default:this.device.gl.samplerParameteri(this.handle,e,n)}}}}var Ce=n(72246);function we(e,t,n){if(function(e){for(const t in e)return!1;return!0}(t))return n(e);const{nocatch:i=!0}=t,r=WebGLStateTracker.get(e);let o;if(r.push(),b(e,t),i)o=n(e),r.pop();else try{o=n(e)}finally{r.pop()}return o}var Ee=n(75638);class WEBGLTextureView extends Ee.X{device;gl;handle;texture;constructor(e,t){super(e,{...ie.g.defaultProps,...t}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=t.texture}}function xe(e){return Te[e]}const Te={5124:"sint32",5125:"uint32",5122:"sint16",5123:"uint16",5120:"sint8",5121:"uint8",5126:"float32",5131:"float16",33635:"uint16",32819:"uint16",32820:"uint16",33640:"uint32",35899:"uint32",35902:"uint32",34042:"uint32",36269:"uint32"};class WEBGLTexture extends ie.g{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(e,t){super(e,t,{byteAlignment:1}),this.device=e,this.gl=this.device.gl;const n=X(this.props.format);this.glTarget=function(e){switch(e){case"1d":case"cube-array":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866}throw new Error(e)}(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);const{dimension:i,width:r,height:o,depth:s,mipLevels:a,glTarget:l,glInternalFormat:A}=this;if(!this.compressed)switch(i){case"2d":case"cube":this.gl.texStorage2D(l,a,A,r,o);break;case"2d-array":case"3d":this.gl.texStorage3D(l,a,A,r,o,s);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(t.data),this.props.handle?this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"):this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"),this.setSampler(this.props.sampler),this.view=new WEBGLTextureView(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Texture"):(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")),this.destroyed=!0)}createView(e){return new WEBGLTextureView(this.device,{...e,texture:this})}setSampler(e={}){super.setSampler(e);const t=be(this.sampler.props);this._setSamplerParameters(t)}copyExternalImage(e){const t=this._normalizeCopyExternalImageOptions(e);if(t.sourceX||t.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");const{glFormat:n,glType:i}=this,{image:r,depth:o,mipLevel:s,x:a,y:l,z:A,width:c,height:u}=t,h=Se(this.glTarget,this.dimension,A),d=t.flipY?{37440:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),we(this.gl,d,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(h,s,a,l,c,u,n,i,r);break;case"2d-array":case"3d":this.gl.texSubImage3D(h,s,a,l,A,c,u,o,n,i,r)}}),this.gl.bindTexture(this.glTarget,null),{width:t.width,height:t.height}}copyImageData(e){super.copyImageData(e)}readBuffer(e={},t){if(!t)throw new Error(`${this} readBuffer requires a destination buffer`);const n=this._getSupportedColorReadOptions(e),i=e.byteOffset??0,r=this.computeMemoryLayout(n);if(t.byteLength<i+r.byteLength)throw new Error(`${this} readBuffer target is too small (${t.byteLength} < ${i+r.byteLength})`);const o=t;this.gl.bindBuffer(35051,o.handle);try{this._readColorTextureLayers(n,r,e=>{this.gl.readPixels(n.x,n.y,n.width,n.height,this.glFormat,this.glType,i+e)})}finally{this.gl.bindBuffer(35051,null)}return t}async readDataAsync(e={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(e,t={}){const n=this._normalizeTextureWriteOptions(t),{width:i,height:r,depthOrArrayLayers:o,mipLevel:s,byteOffset:a,x:l,y:A,z:c}=n,{glFormat:u,glType:h,compressed:d}=this,f=Se(this.glTarget,this.dimension,c);if(d)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");const{bytesPerPixel:p}=this.device.getTextureFormatInfo(this.format),g=p?n.bytesPerRow/p:void 0,m={3317:this.byteAlignment,...void 0!==g?{3314:g}:{},32878:n.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,e.handle),we(this.gl,m,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(f,s,l,A,i,r,u,h,a);break;case"2d-array":case"3d":this.gl.texSubImage3D(f,s,l,A,c,i,r,o,u,h,a)}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(e,t={}){const n=this._normalizeTextureWriteOptions(t),i=ArrayBuffer.isView(e)?e:new Uint8Array(e),{width:r,height:o,depthOrArrayLayers:s,mipLevel:a,x:l,y:A,z:c,byteOffset:u}=n,{glFormat:h,glType:d,compressed:f}=this,p=Se(this.glTarget,this.dimension,c);let g;if(!f){const{bytesPerPixel:e}=this.device.getTextureFormatInfo(this.format);e&&(g=n.bytesPerRow/e)}const m=this.compressed?{}:{3317:this.byteAlignment,...void 0!==g?{3314:g}:{},32878:n.rowsPerImage},_=function(e,t){if(t%e.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${t} must align to typed array element size ${e.BYTES_PER_ELEMENT}`);return t/e.BYTES_PER_ELEMENT}(i,u),b=f?function(e,t=0){if(!t)return e;return new e.constructor(e.buffer,e.byteOffset+t,(e.byteLength-t)/e.BYTES_PER_ELEMENT)}(i,u):i,v=this._getMipLevelSize(a),y=0===l&&0===A&&0===c&&r===v.width&&o===v.height&&s===v.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),we(this.gl,m,()=>{switch(this.dimension){case"2d":case"cube":f?y?this.gl.compressedTexImage2D(p,a,h,r,o,0,b):this.gl.compressedTexSubImage2D(p,a,l,A,r,o,h,b):this.gl.texSubImage2D(p,a,l,A,r,o,h,d,i,_);break;case"2d-array":case"3d":f?y?this.gl.compressedTexImage3D(p,a,h,r,o,s,0,b):this.gl.compressedTexSubImage3D(p,a,l,A,c,r,o,s,h,b):this.gl.texSubImage3D(p,a,l,A,c,r,o,s,h,d,i,_)}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(e,t){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(e={}){const t=this._getSupportedColorReadOptions(e),n=this.computeMemoryLayout(t),i=xe(this.glType),r=(0,Ce.Ak)(i),o=new r(n.byteLength/r.BYTES_PER_ELEMENT);return this._readColorTextureLayers(t,n,e=>{const i=new r(o.buffer,o.byteOffset+e,n.bytesPerImage/r.BYTES_PER_ELEMENT);this.gl.readPixels(t.x,t.y,t.width,t.height,this.glFormat,this.glType,i)}),o.buffer}_readColorTextureLayers(e,t,n){const i=this._getFramebuffer(),r=t.bytesPerRow/t.bytesPerPixel,o={3333:this.byteAlignment,...r!==e.width?{3330:r}:{}},s=this.gl.getParameter(3074),a=this.gl.bindFramebuffer(36160,i.handle);try{this.gl.readBuffer(36064),we(this.gl,o,()=>{for(let r=0;r<e.depthOrArrayLayers;r++)this._attachReadSubresource(i,e.mipLevel,e.z+r),n(r*t.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,a||null),this.gl.readBuffer(s)}}_attachReadSubresource(e,t,n){const i=`${t}:${n}`;if(this._framebufferAttachmentKey!==i){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,t);break;case"cube":this.gl.framebufferTexture2D(36160,36064,Se(this.glTarget,this.dimension,n),this.handle,t);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,t,n);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){const t=Number(this.gl.checkFramebufferStatus(36160));if(t!==Number(36053))throw new Error(`${e} incomplete for ${this} readback (${t})`)}this._framebufferAttachmentKey=i}}generateMipmapsWebGL(e){if(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format)||(r.R.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),e?.force))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(e){r.R.warn(`Error generating mipmap for ${this}: ${e.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(e){r.R.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(const[t,n]of Object.entries(e)){const e=Number(t),i=n;switch(e){case 33082:case 33083:this.gl.texParameterf(this.glTarget,e,i);break;case 10240:case 10241:case 10242:case 10243:case 32882:case 34892:case 34893:this.gl.texParameteri(this.glTarget,e,i);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,e,i)}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(e){const{gl:t}=this;return void 0!==e&&(this._textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.glTarget,this.handle),e}_unbind(e){const{gl:t}=this;return void 0!==e&&(this._textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.glTarget,null),e}}function Se(e,t,n){return"cube"===t?34069+n:e}var Pe=n(22512),Me=n(62069);function Re(e,t,n,i){const r=e;let o=i;!0===o&&(o=1),!1===o&&(o=0);const s="number"==typeof o?[o]:o;switch(n){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if("number"!=typeof i)throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,s);case 35664:return e.uniform2fv(t,s);case 35665:return e.uniform3fv(t,s);case 35666:return e.uniform4fv(t,s);case 5124:case 35670:return e.uniform1iv(t,s);case 35667:case 35671:return e.uniform2iv(t,s);case 35668:case 35672:return e.uniform3iv(t,s);case 35669:case 35673:return e.uniform4iv(t,s);case 5125:return r.uniform1uiv(t,s,1);case 36294:return r.uniform2uiv(t,s,2);case 36295:return r.uniform3uiv(t,s,3);case 36296:return r.uniform4uiv(t,s,4);case 35674:return e.uniformMatrix2fv(t,!1,s);case 35675:return e.uniformMatrix3fv(t,!1,s);case 35676:return e.uniformMatrix4fv(t,!1,s);case 35685:return r.uniformMatrix2x3fv(t,!1,s);case 35686:return r.uniformMatrix2x4fv(t,!1,s);case 35687:return r.uniformMatrix3x2fv(t,!1,s);case 35688:return r.uniformMatrix3x4fv(t,!1,s);case 35689:return r.uniformMatrix4x2fv(t,!1,s);case 35690:return r.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}class WEBGLRenderPipeline extends Pe.r{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(e,t){super(e,t),this.device=e;const n=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(t);this.sharedRenderPipeline=n,this.handle=n.handle,this.vs=n.vs,this.fs=n.fs,this.linkStatus=n.linkStatus,this.introspectedLayout=n.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=t.shaderLayout?function(e,t){const n={...e,attributes:e.attributes.map(e=>({...e})),bindings:e.bindings.map(e=>({...e}))};for(const e of t?.attributes||[]){const t=n.attributes.find(t=>t.name===e.name);t?(t.type=e.type||t.type,t.stepMode=e.stepMode||t.stepMode):r.R.warn(`shader layout attribute ${e.name} not present in shader`)}for(const e of t?.bindings||[]){const t=Be(n,e.name);t?Object.assign(t,e):r.R.warn(`shader layout binding ${e.name} not present in shader`)}return n}(this.introspectedLayout,t.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(e,t){const n=(0,Me.h0)((0,Me.gO)(this.shaderLayout,e));for(const[e,i]of Object.entries(n)){const n=Be(this.shaderLayout,e);if(n){switch(i||r.R.warn(`Unsetting binding "${e}" in render pipeline "${this.id}"`)(),n.type){case"uniform":if(!(i instanceof WEBGLBuffer||i.buffer instanceof WEBGLBuffer))throw new Error("buffer value");break;case"texture":if(!(i instanceof WEBGLTextureView||i instanceof WEBGLTexture||i instanceof WEBGLFramebuffer))throw new Error(`${this} Bad texture binding for ${e}`);break;case"sampler":r.R.warn(`Ignoring sampler ${e}`)();break;default:throw new Error(n.type)}this.bindings[e]=i}else{const n=this.shaderLayout.bindings.map(e=>`"${e.name}"`).join(", ");t?.disableWarnings||r.R.warn(`No binding "${e}" in render pipeline "${this.id}", expected one of ${n}`,i)()}}}draw(e){this._syncLinkStatus();const t=e.bindGroups?(0,Me.h0)(e.bindGroups):e.bindings||this.bindings,{renderPass:n,parameters:i=this.props.parameters,topology:o=this.props.topology,vertexArray:s,vertexCount:a,instanceCount:l,isInstanced:A=!1,firstVertex:c=0,transformFeedback:u,uniforms:h=this.uniforms}=e,d=function(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}(o),f=Boolean(s.indexBuffer),p=s.indexBuffer?.glIndexType;if("success"!==this.linkStatus)return r.R.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable(t))return r.R.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),s.bindBeforeRender(n),u&&u.begin(this.props.topology),this._applyBindings(t,{disableWarnings:this.props.disableWarnings}),this._applyUniforms(h);const g=n;return function(e,t,n,i){if(_e(t))return i(e);const r=e;r.pushState();try{return he(e,t),b(r.gl,n),i(e)}finally{r.popState()}}(this.device,i,g.glParameters,()=>{f&&A?this.device.gl.drawElementsInstanced(d,a||0,p,c,l||0):f?this.device.gl.drawElements(d,a||0,p,c):A?this.device.gl.drawArraysInstanced(d,c,a||0,l||0):this.device.gl.drawArrays(d,c,a||0),u&&u.end()}),s.unbindAfterRender(n),!0}_areTexturesRenderable(e){let t=!0;for(const n of this.shaderLayout.bindings)Ie(e,n.name)||(r.R.warn(`Binding ${n.name} not found in ${this.id}`)(),t=!1);return t}_applyBindings(e,t){if(this._syncLinkStatus(),"success"!==this.linkStatus)return;const{gl:n}=this.device;n.useProgram(this.handle);let i=0,o=0;for(const t of this.shaderLayout.bindings){const s=Ie(e,t.name);if(!s)throw new Error(`No value for binding ${t.name} in ${this.id}`);switch(t.type){case"uniform":const{name:e}=t,a=n.getUniformBlockIndex(this.handle,e);if(4294967295===a)throw new Error(`Invalid uniform block name ${e}`);if(n.uniformBlockBinding(this.handle,a,o),s instanceof WEBGLBuffer)n.bindBufferBase(35345,o,s.handle);else{const e=s;n.bindBufferRange(35345,o,e.buffer.handle,e.offset||0,e.size||e.buffer.byteLength-(e.offset||0))}o+=1;break;case"texture":if(!(s instanceof WEBGLTextureView||s instanceof WEBGLTexture||s instanceof WEBGLFramebuffer))throw new Error("texture");let l;if(s instanceof WEBGLTextureView)l=s.texture;else if(s instanceof WEBGLTexture)l=s;else{if(!(s instanceof WEBGLFramebuffer&&s.colorAttachments[0]instanceof WEBGLTextureView))throw new Error("No texture");r.R.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=s.colorAttachments[0].texture}n.activeTexture(33984+i),n.bindTexture(l.glTarget,l.handle),i+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${t.type}' not supported in WebGL`)}}}_applyUniforms(e){for(const t of this.shaderLayout.uniforms||[]){const{name:n,location:i,type:r,textureUnit:o}=t,s=e[n]??o;void 0!==s&&Re(this.device.gl,i,r,s)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}function Be(e,t){return e.bindings.find(e=>e.name===t||e.name===`${t}Uniforms`||`${e.name}Uniforms`===t)}function Ie(e,t){return e[t]||e[`${t}Uniforms`]||e[t.replace(/Uniforms$/,"")]}class SharedRenderPipeline extends ne.F{get[Symbol.toStringTag](){return"SharedRenderPipeline"}constructor(e,t){super(e,t,{...ne.F.defaultProps,handle:void 0,vs:void 0,fs:void 0,varyings:void 0,bufferMode:void 0})}}var Le=n(65219);function Fe(e){return Ne[e]}function De(e){return Boolean(ke[e])}function Oe(e){return ke[e]}const Ne={5126:"f32",35664:"vec2<f32>",35665:"vec3<f32>",35666:"vec4<f32>",5124:"i32",35667:"vec2<i32>",35668:"vec3<i32>",35669:"vec4<i32>",5125:"u32",36294:"vec2<u32>",36295:"vec3<u32>",36296:"vec4<u32>",35670:"f32",35671:"vec2<f32>",35672:"vec3<f32>",35673:"vec4<f32>",35674:"mat2x2<f32>",35685:"mat2x3<f32>",35686:"mat2x4<f32>",35687:"mat3x2<f32>",35675:"mat3x3<f32>",35688:"mat3x4<f32>",35689:"mat4x2<f32>",35690:"mat4x3<f32>",35676:"mat4x4<f32>"},ke={35678:{viewDimension:"2d",sampleType:"float"},35680:{viewDimension:"cube",sampleType:"float"},35679:{viewDimension:"3d",sampleType:"float"},35682:{viewDimension:"3d",sampleType:"depth"},36289:{viewDimension:"2d-array",sampleType:"float"},36292:{viewDimension:"2d-array",sampleType:"depth"},36293:{viewDimension:"cube",sampleType:"float"},36298:{viewDimension:"2d",sampleType:"sint"},36299:{viewDimension:"3d",sampleType:"sint"},36300:{viewDimension:"cube",sampleType:"sint"},36303:{viewDimension:"2d-array",sampleType:"uint"},36306:{viewDimension:"2d",sampleType:"uint"},36307:{viewDimension:"3d",sampleType:"uint"},36308:{viewDimension:"cube",sampleType:"uint"},36311:{viewDimension:"2d-array",sampleType:"uint"}},Ue={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126};function Ge(e,t){const n={attributes:[],bindings:[]};n.attributes=function(e,t){const n=[],i=e.getProgramParameter(t,35721);for(let r=0;r<i;r++){const i=e.getActiveAttrib(t,r);if(!i)throw new Error("activeInfo");const{name:o,type:s}=i,a=e.getAttribLocation(t,o);if(a>=0){const e=Fe(s),t=/instance/i.test(o)?"instance":"vertex";n.push({name:o,location:a,stepMode:t,type:e})}}return n.sort((e,t)=>e.location-t.location),n}(e,t);const i=function(e,t){const n=(n,i)=>e.getActiveUniformBlockParameter(t,n,i),i=[],o=e.getProgramParameter(t,35382);for(let s=0;s<o;s++){const o={name:e.getActiveUniformBlockName(t,s)||"",location:n(s,35391),byteLength:n(s,35392),vertex:n(s,35396),fragment:n(s,35398),uniformCount:n(s,35394),uniforms:[]},a=n(s,35395)||[],l=e.getActiveUniforms(t,a,35383),A=e.getActiveUniforms(t,a,35384),c=e.getActiveUniforms(t,a,35387),u=e.getActiveUniforms(t,a,35388);for(let n=0;n<o.uniformCount;++n){const i=a[n];if(void 0!==i){const r=e.getActiveUniform(t,i);if(!r)throw new Error("activeInfo");const s=Fe(l[n]);o.uniforms.push({name:r.name,format:s,type:l[n],arrayLength:A[n],byteOffset:c[n],byteStride:u[n]})}}const h=new Set(o.uniforms.map(e=>e.name.split(".")[0]).filter(e=>Boolean(e))),d=o.name.replace(/Uniforms$/,"");if(1===h.size&&!h.has(o.name)&&!h.has(d)){const[e]=h;r.R.warn(`Uniform block "${o.name}" uses GLSL instance "${e}". luma.gl binds uniform buffers by block name ("${o.name}") and alias ("${d}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}i.push(o)}return i.sort((e,t)=>e.location-t.location),i}(e,t);for(const e of i){const t=e.uniforms.map(e=>({name:e.name,format:e.format,byteOffset:e.byteOffset,byteStride:e.byteStride,arrayLength:e.arrayLength}));n.bindings.push({type:"uniform",name:e.name,group:0,location:e.location,visibility:(e.vertex?1:0)&(e.fragment?2:0),minBindingSize:e.byteLength,uniforms:t})}const o=function(e,t){const n=[],i=e.getProgramParameter(t,35718);for(let r=0;r<i;r++){const i=e.getActiveUniform(t,r);if(!i)throw new Error("activeInfo");const{name:o,size:s,type:a}=i,{name:l,isArray:A}=Ve(o);let c=e.getUniformLocation(t,l);const u={location:c,name:l,size:s,type:a,isArray:A};if(n.push(u),u.size>1)for(let i=0;i<u.size;i++){const r=`${l}[${i}]`;c=e.getUniformLocation(t,r);const o={...u,name:r,location:c};n.push(o)}}return n}(e,t);let s=0;for(const e of o)if(De(e.type)){const{viewDimension:t,sampleType:i}=Oe(e.type);n.bindings.push({type:"texture",name:e.name,group:0,location:s,viewDimension:t,sampleType:i}),e.textureUnit=s,s+=1}o.length&&(n.uniforms=o);const a=function(e,t){const n=[],i=e.getProgramParameter(t,35971);for(let r=0;r<i;r++){const i=e.getTransformFeedbackVarying(t,r);if(!i)throw new Error("activeInfo");const{name:o,type:s,size:a}=i,l=Fe(s),{type:A,components:c}=(0,Le.k0)(l);n.push({location:r,name:o,type:A,size:a*c})}return n.sort((e,t)=>e.location-t.location),n}(e,t);return a?.length&&(n.varyings=a),n}function Ve(e){if("]"!==e[e.length-1])return{name:e,length:1,isArray:!1};const t=/([^[]*)(\[[0-9]+\])?/.exec(e);return{name:$(t?.[1],`Failed to parse GLSL uniform name ${e}`),length:t?.[2]?1:0,isArray:Boolean(t?.[2])}}class WEBGLSharedRenderPipeline extends SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(e,t){super(e,t),this.device=e,this.handle=t.handle||this.device.gl.createProgram(),this.vs=t.vs,this.fs=t.fs,t.varyings&&t.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,t.varyings,t.bufferMode||35981),this._linkShaders(),r.R.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Ge(this.device.gl,this.handle),r.R.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){const{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),r.R.time(4,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),r.R.timeEnd(4,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){const e=this._getLinkStatus();return void this._reportLinkStatus(e)}r.R.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),r.R.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();const t=this._getLinkStatus();this._reportLinkStatus(t)}async _reportLinkStatus(e){if("success"!==e){const t="link-error"===e?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${t} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader()}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${t} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader()}const n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${t} during ${e}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){const{gl:e}=this.device;if(!e.getProgramParameter(this.handle,35714))return this.linkStatus="error","link-error";this._initializeSamplerUniforms(),e.validateProgram(this.handle);return e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")}_initializeSamplerUniforms(){const{gl:e}=this.device;e.useProgram(this.handle);let t=0;const n=e.getProgramParameter(this.handle,35718);for(let i=0;i<n;i++){const n=e.getActiveUniform(this.handle,i);if(n&&De(n.type)){const i=n.name.endsWith("[0]"),r=i?n.name.slice(0,-3):n.name,o=e.getUniformLocation(this.handle,r);null!==o&&(t=this._assignSamplerUniform(o,n,i,t))}}}_assignSamplerUniform(e,t,n,i){const{gl:r}=this.device;if(n&&t.size>1){const n=Int32Array.from({length:t.size},(e,t)=>i+t);return r.uniform1iv(e,n),i+t.size}return r.uniform1i(e,i),i+1}async _waitForLinkComplete(){const e=async e=>await new Promise(t=>setTimeout(t,e));if(!this.device.features.has("compilation-status-async-webgl"))return void await e(10);const{gl:t}=this.device;for(;;){if(t.getProgramParameter(this.handle,37297))return;await e(10)}}}class CommandEncoder extends ne.F{get[Symbol.toStringTag](){return"CommandEncoder"}_timeProfilingQuerySet=null;_timeProfilingSlotCount=0;_gpuTimeMs;constructor(e,t){super(e,t,CommandEncoder.defaultProps),this._timeProfilingQuerySet=t.timeProfilingQuerySet??null,this._timeProfilingSlotCount=0,this._gpuTimeMs=void 0}async resolveTimeProfilingQuerySet(){if(this._gpuTimeMs=void 0,!this._timeProfilingQuerySet)return;const e=Math.floor(this._timeProfilingSlotCount/2);if(e<=0)return;const t=2*e,n=await this._timeProfilingQuerySet.readResults({firstQuery:0,queryCount:t});let i=0n;for(let e=0;e<t;e+=2)i+=n[e+1]-n[e];this._gpuTimeMs=Number(i)/1e6}getTimeProfilingSlotCount(){return this._timeProfilingSlotCount}getTimeProfilingQuerySet(){return this._timeProfilingQuerySet}_applyTimeProfilingToPassProps(e){const t=e||{};if(!this._supportsTimestampQueries()||!this._timeProfilingQuerySet)return t;if(void 0!==t.timestampQuerySet||void 0!==t.beginTimestampIndex||void 0!==t.endTimestampIndex)return t;const n=this._timeProfilingSlotCount;return n+1>=this._timeProfilingQuerySet.props.count?t:(this._timeProfilingSlotCount+=2,{...t,timestampQuerySet:this._timeProfilingQuerySet,beginTimestampIndex:n,endTimestampIndex:n+1})}_supportsTimestampQueries(){return this.device.features.has("timestamp-query")}static defaultProps={...ne.F.defaultProps,measureExecutionTime:void 0,timeProfilingQuerySet:void 0}}class CommandBuffer extends ne.F{get[Symbol.toStringTag](){return"CommandBuffer"}constructor(e,t){super(e,t,CommandBuffer.defaultProps)}static defaultProps={...ne.F.defaultProps}}class WEBGLCommandBuffer extends CommandBuffer{device;handle=null;commands=[];constructor(e,t={}){super(e,t),this.device=e}_executeCommands(e=this.commands){for(const t of e)switch(t.name){case"copy-buffer-to-buffer":ze(this.device,t.options);break;case"copy-buffer-to-texture":He(this.device,t.options);break;case"copy-texture-to-buffer":We(this.device,t.options);break;case"copy-texture-to-texture":je(this.device,t.options);break;default:throw new Error(t.name)}}}function ze(e,t){const n=t.sourceBuffer,i=t.destinationBuffer;e.gl.bindBuffer(36662,n.handle),e.gl.bindBuffer(36663,i.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function He(e,t){throw new Error("copyBufferToTexture is not supported in WebGL")}function We(e,t){const{sourceTexture:n,mipLevel:i=0,aspect:r="all",width:o=t.sourceTexture.width,height:s=t.sourceTexture.height,depthOrArrayLayers:a,origin:l=[0,0,0],destinationBuffer:A,byteOffset:c=0,bytesPerRow:u,rowsPerImage:h}=t;if(n instanceof ie.g)return void n.readBuffer({x:l[0]??0,y:l[1]??0,z:l[2]??0,width:o,height:s,depthOrArrayLayers:a,mipLevel:i,aspect:r,byteOffset:c},A);if("all"!==r)throw new Error("aspect not supported in WebGL");if(0!==i||void 0!==a||u||h)throw new Error("not implemented");const{framebuffer:d,destroyFramebuffer:f}=Qe(n);let p;try{const t=A,n=o||d.width,i=s||d.height,r=X($(d.colorAttachments[0]).texture.props.format),a=r.format,u=r.type;e.gl.bindBuffer(35051,t.handle),p=e.gl.bindFramebuffer(36160,d.handle),e.gl.readPixels(l[0],l[1],n,i,a,u,c)}finally{e.gl.bindBuffer(35051,null),void 0!==p&&e.gl.bindFramebuffer(36160,p),f&&d.destroy()}}function je(e,t){const{sourceTexture:n,destinationMipLevel:i=0,origin:r=[0,0],destinationOrigin:o=[0,0,0],destinationTexture:s}=t;let{width:a=t.destinationTexture.width,height:l=t.destinationTexture.height}=t;const{framebuffer:A,destroyFramebuffer:c}=Qe(n),[u=0,h=0]=r,[d,f,p]=o,g=e.gl.bindFramebuffer(36160,A.handle);let m,_;if(!(s instanceof WEBGLTexture))throw new Error("invalid destination");switch(m=s,a=Number.isFinite(a)?a:m.width,l=Number.isFinite(l)?l:m.height,m._bind(0),_=m.glTarget,_){case 3553:case 34067:e.gl.copyTexSubImage2D(_,i,d,f,u,h,a,l);break;case 35866:case 32879:e.gl.copyTexSubImage3D(_,i,d,f,p,u,h,a,l)}m&&m._unbind(),e.gl.bindFramebuffer(36160,g),c&&A.destroy()}function Qe(e){if(e instanceof ie.g){const{width:t,height:n,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:n,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}class RenderPass extends ne.F{static defaultClearColor=[0,0,0,1];static defaultClearDepth=1;static defaultClearStencil=0;get[Symbol.toStringTag](){return"RenderPass"}constructor(e,t){super(e,t=RenderPass.normalizeProps(e,t),RenderPass.defaultProps)}static normalizeProps(e,t){return t}static defaultProps={...ne.F.defaultProps,framebuffer:null,parameters:void 0,clearColor:RenderPass.defaultClearColor,clearColors:void 0,clearDepth:RenderPass.defaultClearDepth,clearStencil:RenderPass.defaultClearStencil,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0}}const Xe=[1,2,4,8];class WEBGLRenderPass extends RenderPass{device;handle=null;glParameters={};constructor(e,t){super(e,t),this.device=e;const n=this.props.framebuffer,i=!n||null===n.handle;let r;if(i&&e.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded(),!t?.parameters?.viewport)if(!i&&n){const{width:e,height:t}=n;r=[0,0,e,t]}else{const[t,n]=e.getDefaultCanvasContext().getDrawingBufferSize();r=[0,0,t,n]}if(this.device.pushState(),this.setParameters({viewport:r,...this.props.parameters}),!i&&n?.colorAttachments.length){const e=n.colorAttachments.map((e,t)=>36064+t);this.device.gl.drawBuffers(e)}else i&&this.device.gl.drawBuffers([1029]);if(this.clear(),this.props.timestampQuerySet&&void 0!==this.props.beginTimestampIndex){this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}}end(){if(!this.destroyed){if(this.props.timestampQuerySet&&void 0!==this.props.endTimestampIndex){this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex)}this.device.popState(),this.destroy()}}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){const t={...this.glParameters};t.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(t.depthMask=!this.props.depthReadOnly),t.stencilMask=this.props.stencilReadOnly?0:1,t[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(t.viewport=e.viewport.slice(0,4),t.depthRange=[e.viewport[4],e.viewport[5]]):t.viewport=e.viewport),e.scissorRect&&(t.scissorTest=!0,t.scissor=e.scissorRect),e.blendConstant&&(t.blendColor=e.blendConstant),void 0!==e.stencilReference&&(t[2967]=e.stencilReference,t[36003]=e.stencilReference),"colorMask"in e&&(t.colorMask=Xe.map(t=>Boolean(t&e.colorMask))),this.glParameters=t,b(this.device.gl,t)}beginOcclusionQuery(e){const t=this.props.occlusionQuerySet;t?.beginOcclusionQuery()}endOcclusionQuery(){const e=this.props.occlusionQuerySet;e?.endOcclusionQuery()}clear(){const e={...this.glParameters};let t=0;this.props.clearColors&&this.props.clearColors.forEach((e,t)=>{e&&this.clearColorBuffer(t,e)}),!1!==this.props.clearColor&&void 0===this.props.clearColors&&(t|=16384,e.clearColor=this.props.clearColor),!1!==this.props.clearDepth&&(t|=256,e.clearDepth=this.props.clearDepth),!1!==this.props.clearStencil&&(t|=1024,e.clearStencil=this.props.clearStencil),0!==t&&we(this.device.gl,e,()=>{this.device.gl.clear(t)})}clearColorBuffer(e=0,t=[0,0,0,0]){we(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(t.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,t);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,t);break;case Float32Array:this.device.gl.clearBufferfv(6144,e,t);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}class WEBGLCommandEncoder extends CommandEncoder{device;handle=null;commandBuffer;constructor(e,t){super(e,t),this.device=e,this.commandBuffer=new WEBGLCommandBuffer(e,{id:`${this.props.id}-command-buffer`})}destroy(){this.destroyResource()}finish(e){return e?.id&&this.commandBuffer.id!==e.id&&(this.commandBuffer.id=e.id,this.commandBuffer.props.id=e.id),this.destroy(),this.commandBuffer}beginRenderPass(e={}){return new WEBGLRenderPass(this.device,this._applyTimeProfilingToPassProps(e))}beginComputePass(e={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,t,n){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(e,t){e.writeTimestamp(t)}}var Ke=n(2021);class VertexArray extends ne.F{static defaultProps={...ne.F.defaultProps,shaderLayout:void 0,bufferLayout:[]};get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(e,t){super(e,t,VertexArray.defaultProps),this.maxVertexAttributes=e.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null),this.attributeInfos=(0,Ke.M)(t.shaderLayout,t.bufferLayout,this.maxVertexAttributes)}setConstantWebGL(e,t){this.device.reportError(new Error("constant attributes not supported"),this)()}}var Je=n(73390),qe=n(15399),Ye=n(35526);class WEBGLVertexArray extends VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return"Chrome"==(t||(0,q.B)()?(0,qe.b)(t)?"Electron":(t||Ye.gM.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown":"Node");var t}constructor(e,t){super(e,t),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){const t=e;if(t&&34963!==t.glTarget)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,t?t.handle:null),this.indexBuffer=t,this.device.gl.bindVertexArray(null)}setBuffer(e,t){const n=t;if(34963===n.glTarget)throw new Error("Use .setIndexBuffer()");const{size:i,type:r,stride:o,offset:s,normalized:a,integer:l,divisor:A}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),l?this.device.gl.vertexAttribIPointer(e,i,r,o,s):this.device.gl.vertexAttribPointer(e,i,r,a,o,s),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,A||0),this.attributes[e]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,t){this._enable(e,!1),this.attributes[e]=t}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){const t=this.attributes[e];ArrayBuffer.isView(t)&&this.device.setConstantAttributeWebGL(e,t)}}_getAccessor(e){const t=this.attributeInfos[e];if(!t)throw new Error(`Unknown attribute location ${e}`);const n=R(t.bufferDataType);return{size:t.bufferComponents,type:n,stride:t.byteStride,offset:t.byteOffset,normalized:t.normalized,integer:t.integer,divisor:"instance"===t.stepMode?1:0}}_enable(e,t=!0){const n=WEBGLVertexArray.isConstantAttributeZeroSupported(this.device);(t||(n||0!==e))&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),t?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,t){const n=function(e){if(Array.isArray(e))return new Float32Array(e);return e}(t),i=n.byteLength*e,r=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o||=!function(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}(n,this.bufferValue),o){const e=(0,Je.X)(t.constructor,r);!function(e){const{target:t,source:n,start:i=0,count:r=1}=e,o=n.length,s=r*o;let a=0;for(let e=i;a<o;a++)t[e++]=n[a]??0;for(;a<s;)a<s-a?(t.copyWithin(i+a,i,i+a),a*=2):(t.copyWithin(i+a,i,i+s-a),a=s);e.target}({target:e,source:n,start:0,count:r}),this.buffer.write(e),this.bufferValue=t}return this.buffer}}class TransformFeedback extends ne.F{static defaultProps={...ne.F.defaultProps,layout:void 0,buffers:{}};get[Symbol.toStringTag](){return"TransformFeedback"}constructor(e,t){super(e,t,TransformFeedback.defaultProps)}}class WEBGLTransformFeedback extends TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,t){super(e,t),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,t.buffers&&this.setBuffers(t.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(function(e){switch(e){case"point-list":return 0;case"line-list":case"line-strip":return 1;case"triangle-list":case"triangle-strip":return 4;default:throw new Error(e)}}(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(const[t,n]of Object.entries(e))this.setBuffer(t,n)})}setBuffer(e,t){const n=this._getVaryingIndex(e),{buffer:i,byteLength:o,byteOffset:s}=this._getBufferRange(t);if(n<0)return this.unusedBuffers[e]=i,void r.R.warn(`${this.id} unusedBuffers varying buffer ${e}`)();this.buffers[n]={buffer:i,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(n,i,s,o)}getBuffer(e){if(Ze(e))return this.buffers[e]||null;const t=this._getVaryingIndex(e);return this.buffers[t]??null}bind(e=this.handle){if("function"!=typeof e)return this.gl.bindTransformFeedback(36386,e),this;let t;return this._bound?t=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,t=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),t}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof WEBGLBuffer)return{buffer:e,byteOffset:0,byteLength:e.byteLength};const{buffer:t,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:t,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(Ze(e))return Number(e);for(const t of this.layout.varyings||[])if(e===t.name)return t.location;return-1}_bindBuffers(){for(const[e,t]of Object.entries(this.buffers)){const{buffer:n,byteLength:i,byteOffset:r}=this._getBufferRange(t);this._bindBuffer(Number(e),n,r,i)}}_unbindBuffers(){for(const e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,t,n=0,i){const r=t&&t.handle;r&&void 0!==i?this.gl.bindBufferRange(35982,e,r,n,i):this.gl.bindBufferBase(35982,e,r)}}function Ze(e){return"number"==typeof e?Number.isInteger(e):/^\d+$/.test(e)}class QuerySet extends ne.F{get[Symbol.toStringTag](){return"QuerySet"}constructor(e,t){super(e,t,QuerySet.defaultProps)}static defaultProps={...ne.F.defaultProps,type:void 0,count:void 0}}class WEBGLQuerySet extends QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(e,t){if(super(e,t),this.device=e,"timestamp"===t.type){if(t.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(t.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(t.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");const e=this.device.gl.createQuery();if(!e)throw new Error("WebGL query not supported");this.handle=e}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(const e of this._timestampPairs){e.activeQuery&&(this._cancelPendingQuery(e.activeQuery),this.device.gl.deleteQuery(e.activeQuery.handle));for(const t of e.completedQueries)this._cancelPendingQuery(t),this.device.gl.deleteQuery(t.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(const e of Array.from(this._pendingReads))this._cancelPendingQuery(e);this.destroyResource()}}isResultAvailable(e){return"timestamp"===this.props.type?void 0===e?this._timestampPairs.some((e,t)=>this._isTimestampPairAvailable(t)):this._isTimestampPairAvailable(this._getTimestampPairIndex(e)):!!this._occlusionQuery&&this._pollQueryAvailability(this._occlusionQuery)}async readResults(e){const t=e?.firstQuery||0,n=e?.queryCount||this.props.count-t;if(this._validateRange(t,n),"timestamp"===this.props.type){const e=new Array(n).fill(0n),i=Math.floor(t/2),r=Math.floor((t+n-1)/2);for(let o=i;o<=r;o++){const i=await this._consumeTimestampPairResult(o),r=2*o,s=r+1;r>=t&&r<t+n&&(e[r-t]=0n),s>=t&&s<t+n&&(e[s-t]=i)}return e}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(e,t){if("timestamp"!==this.props.type)throw new Error("Timestamp durations require a timestamp QuerySet");if(e<0||t>=this.props.count||t<=e)throw new Error("Timestamp duration range is out of bounds");if(e%2!=0||t!==e+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");const n=await this._consumeTimestampPairResult(this._getTimestampPairIndex(e));return Number(n)/1e6}beginOcclusionQuery(){if("occlusion"!==this.props.type)throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(e){if("timestamp"!==this.props.type)throw new Error("Timestamp writes require a timestamp QuerySet");const t=this._getTimestampPairIndex(e),n=this._timestampPairs[t];if(e%2==0){if(n.activeQuery)throw new Error("Timestamp query pair is already active");const e=this.device.gl.createQuery();if(!e)throw new Error("WebGL query not supported");const t={handle:e,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};return this.device.gl.beginQuery(35007,e),void(n.activeQuery=t)}if(!n.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),n.completedQueries.push(n.activeQuery),n.activeQuery=null}_validateRange(e,t){if(e<0||t<0||e+t>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(e){if(e<0||e>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(e/2)}_isTimestampPairAvailable(e){const t=this._timestampPairs[e];return!(!t||0===t.completedQueries.length)&&this._pollQueryAvailability(t.completedQueries[0])}_pollQueryAvailability(e){if(e.cancelled||this.destroyed)return e.result=0n,!0;if(null!==e.result||e.disjoint)return!0;if(!this.device.gl.getQueryParameter(e.handle,34919))return!1;const t=Boolean(this.device.gl.getParameter(36795));return e.disjoint=t,e.result=t?0n:BigInt(this.device.gl.getQueryParameter(e.handle,34918)),!0}async _consumeTimestampPairResult(e){const t=this._timestampPairs[e];if(!t||0===t.completedQueries.length)throw new Error("Timestamp query pair has no completed result");const n=t.completedQueries.shift();try{return await this._consumeQueryResult(n)}finally{this.device.gl.deleteQuery(n.handle)}}_consumeQueryResult(e){return e.promise||(this._pendingReads.add(e),e.promise=new Promise((t,n)=>{e.resolve=t,e.reject=n;const i=()=>{if(e.pollRequestId=null,e.cancelled||this.destroyed)return this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,void t(0n);this._pollQueryAvailability(e)?(this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,e.disjoint?n(new Error("GPU timestamp query was invalidated by a disjoint event")):t(e.result||0n)):e.pollRequestId=this._requestAnimationFrame(i)};i()})),e.promise}_cancelPendingQuery(e){if(this._pendingReads.delete(e),e.cancelled=!0,null!==e.pollRequestId&&(this._cancelAnimationFrame(e.pollRequestId),e.pollRequestId=null),e.resolve){const t=e.resolve;e.promise=null,e.resolve=null,e.reject=null,t(0n)}}_requestAnimationFrame(e){return requestAnimationFrame(e)}_cancelAnimationFrame(e){cancelAnimationFrame(e)}}class Fence extends ne.F{static defaultProps={...ne.F.defaultProps};get[Symbol.toStringTag](){return"Fence"}constructor(e,t={}){super(e,t,Fence.defaultProps)}}class WEBGLFence extends Fence{device;gl;handle;signaled;_signaled=!1;constructor(e,t={}){super(e,{}),this.device=e,this.gl=e.gl;const n=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n)throw new Error("Failed to create WebGL fence");this.handle=n,this.signaled=new Promise(e=>{const t=()=>{const n=this.gl.clientWaitSync(this.handle,0,0);n===this.gl.ALREADY_SIGNALED||n===this.gl.CONDITION_SATISFIED?(this._signaled=!0,e()):setTimeout(t,1)};t()})}isSignaled(){if(this._signaled)return!0;const e=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=e===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}var $e=n(57285);function et(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function tt(e,t){const{sourceX:n=0,sourceY:i=0,sourceAttachment:r=0}=t||{};let{target:o=null,sourceWidth:s,sourceHeight:a,sourceDepth:l,sourceFormat:A,sourceType:c}=t||{};const{framebuffer:u,deleteFramebuffer:h}=nt(e),{gl:d,handle:f}=u;s||=u.width,a||=u.height;const p=u.colorAttachments[r]?.texture;if(!p)throw new Error(`Invalid framebuffer attachment ${r}`);l=p?.depth||1,A||=p?.glFormat||6408,c||=p?.glType||5121,o=function(e,t,n,i,r){if(e)return e;t||=5121;const o=xe(t),s=$e.r.getTypedArrayConstructor(o),a=et(n);return new s(i*r*a)}(o,c,A,s,a);const g=$e.r.getDataType(o);c=c||Ue[g];const m=d.bindFramebuffer(36160,f);return d.readBuffer(36064+r),d.readPixels(n,i,s,a,A,c,o),d.readBuffer(36064),d.bindFramebuffer(36160,m||null),h&&u.destroy(),o}function nt(e){return e instanceof Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:it(e),deleteFramebuffer:!0}}function it(e,t){const{device:n,width:i,height:r,id:o}=e;return n.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:r,colorAttachments:[e]})}class WebGLDevice extends i.pF{static getDeviceFromContext(e){return e?e.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(e){return"unorm8x4-bgra"!==e}constructor(e){super({...e,id:e.id||ae("webgl-device")});const t=i.pF._getCanvasContextProps(e);if(!t)throw new Error("WebGLDevice requires props.createCanvasContext to be set");const n=t.canvas?.gl??null;let o=WebGLDevice.getDeviceFromContext(n);if(o)throw new Error(`WebGL context already attached to device ${o.id}`);this.canvasContext=new WebGLCanvasContext(this,t),this.lost=new Promise(e=>{this._resolveContextLost=e});const s={...e.webgl};"premultiplied"===t.alphaMode&&(s.premultipliedAlpha=!0),void 0!==e.powerPreference&&(s.powerPreference=e.powerPreference),void 0!==e.failIfMajorPerformanceCaveat&&(s.failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat);const a=this.props._handle||function(e,t,n){let i="";const r=e=>{const t=e.statusMessage;t&&(i||=t)};e.addEventListener("webglcontextcreationerror",r,!1);const o=!0!==n.failIfMajorPerformanceCaveat,s={preserveDrawingBuffer:!0,...n,failIfMajorPerformanceCaveat:!0};let a=null;try{a||=e.getContext("webgl2",s),!a&&s.failIfMajorPerformanceCaveat&&(i||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let n=!1;if(!a&&o&&(s.failIfMajorPerformanceCaveat=!1,a=e.getContext("webgl2",s),n=!0),a||(a=e.getContext("webgl",{}),a&&(a=null,i||="Your browser only supports WebGL1")),!a)throw i||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${i}`);(0,x.V)(a).softwareRenderer=n;const{onContextLost:r,onContextRestored:l}=t;return e.addEventListener("webglcontextlost",e=>r(e),!1),e.addEventListener("webglcontextrestored",e=>l(e),!1),a}finally{e.removeEventListener("webglcontextcreationerror",r,!1)}}(this.canvasContext.canvas,{onContextLost:e=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:e=>console.log("WebGL context restored")},s);if(!a)throw new Error("WebGL context creation failed");if(o=WebGLDevice.getDeviceFromContext(a),o){if(e._reuseDevices)return r.R.log(1,`Not creating a new Device, instead returning a reference to Device ${o.id} already attached to WebGL context`,o)(),this.canvasContext.destroy(),o._reused=!0,o;throw new Error(`WebGL context already attached to device ${o.id}`)}this.handle=a,this.gl=a,this.spectorJS=(0,re.k2)({...this.props,gl:this.handle});const l=(0,x.V)(this.handle);l.device=this,l.extensions||(l.extensions={}),this.extensions=l.extensions,this.info=S(this.gl,this.extensions),this.limits=new WebGLDeviceLimits(this.gl),this.features=new WebGLDeviceFeatures(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures();new WebGLStateTracker(this.gl,{log:(...e)=>r.R.log(1,...e)()}).trackState(this.gl,{copyState:!1}),(e.debug||e.debugWebGL)&&(this.gl=(0,oe.l)(this.gl,{debugWebGL:!0,traceWebGL:e.debugWebGL}),r.R.warn("WebGL debug mode activated. Performance reduced.")()),e.debugWebGL&&(r.R.level=Math.max(r.R.level,1)),this.commandEncoder=new WEBGLCommandEncoder(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(this.commandEncoder?.destroy(),!this.props._reuseDevices&&!this._reused){(0,x.V)(this.handle).device=null}}get isLost(){return this.gl.isContextLost()}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createPresentationContext(e){return new WebGLPresentationContext(this,e||{})}createBuffer(e){const t=this._normalizeBufferProps(e);return new WEBGLBuffer(this,t)}createTexture(e){return new WEBGLTexture(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new WEBGLSampler(this,e)}createShader(e){return new WEBGLShader(this,e)}createFramebuffer(e){return new WEBGLFramebuffer(this,e)}createVertexArray(e){return new WEBGLVertexArray(this,e)}createTransformFeedback(e){return new WEBGLTransformFeedback(this,e)}createQuerySet(e){return new WEBGLQuerySet(this,e)}createFence(){return new WEBGLFence(this)}createRenderPipeline(e){return new WEBGLRenderPipeline(this,e)}_createSharedRenderPipelineWebGL(e){return new WEBGLSharedRenderPipeline(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(e={}){return new WEBGLCommandEncoder(this,e)}submit(e){let t=null;e||({submittedCommandEncoder:t,commandBuffer:e}=this._finalizeDefaultCommandEncoderForSubmit());try{e._executeCommands(),t&&t.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=t._gpuTimeMs}).catch(()=>{})}finally{e.destroy()}}_finalizeDefaultCommandEncoderForSubmit(){const e=this.commandEncoder,t=e.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:e.props.id,timeProfilingQuerySet:e.getTimeProfilingQuerySet()}),{submittedCommandEncoder:e,commandBuffer:t}}readPixelsToArrayWebGL(e,t){return tt(e,t)}readPixelsToBufferWebGL(e,t){return function(e,t){const{target:n,sourceX:i=0,sourceY:r=0,sourceFormat:o=6408,targetByteOffset:s=0}=t||{};let{sourceWidth:a,sourceHeight:l,sourceType:A}=t||{};const{framebuffer:c,deleteFramebuffer:u}=nt(e);a=a||c.width,l=l||c.height;const h=c;A=A||5121;let d=n;if(!d){const e=s+a*l*et(o)*function(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}(A);d=h.device.createBuffer({byteLength:e})}const f=e.device.createCommandEncoder();return f.copyTextureToBuffer({sourceTexture:e,width:a,height:l,origin:[i,r],destinationBuffer:d,byteOffset:s}),f.destroy(),u&&c.destroy(),d}(e,t)}setParametersWebGL(e){b(this.gl,e)}getParametersWebGL(e){return v(this.gl,e)}withParametersWebGL(e,t){return we(this.gl,e,t)}resetWebGL(){r.R.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),b(this.gl,o)}_getDeviceSpecificTextureFormatCapabilities(e){return Q(this.gl,e,this.extensions)}loseDevice(){let e=!1;const t=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return t&&(e=!0,t.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){WebGLStateTracker.get(this.gl).push()}popState(){WebGLStateTracker.get(this.gl).pop()}getGLKey(e,t){const n=Number(e);for(const e in this.gl)if(this.gl[e]===n)return`GL.${e}`;return t?.emptyIfUnknown?"":String(e)}getGLKeys(e){const t={emptyIfUnknown:!0};return Object.entries(e).reduce((e,[n,i])=>(e[`${n}:${this.getGLKey(n,t)}`]=`${i}:${this.getGLKey(i,t)}`,e),{})}setConstantAttributeWebGL(e,t){const n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);const i=this._constants[e];switch(i&&function(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}(i,t)&&r.R.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=t,t.constructor){case Float32Array:!function(e,t,n){switch(n.length){case 1:e.gl.vertexAttrib1fv(t,n);break;case 2:e.gl.vertexAttrib2fv(t,n);break;case 3:e.gl.vertexAttrib3fv(t,n);break;case 4:e.gl.vertexAttrib4fv(t,n)}}(this,e,t);break;case Int32Array:!function(e,t,n){e.gl.vertexAttribI4iv(t,n)}(this,e,t);break;case Uint32Array:!function(e,t,n){e.gl.vertexAttribI4uiv(t,n)}(this,e,t);break;default:throw new Error("constant")}}getExtension(e){return T(this.gl,e,this.extensions),this.extensions}_setWebGLDebugMetadata(e,t,n){e.luma=t;const i={props:n.spector,id:n.spector.id};e.__SPECTOR_Metadata=i}}},25299(e,t,n){"use strict";n.d(t,{_G:()=>A,k2:()=>c});var i=n(29651),r=n(32077),o=n(28891);let s=null,a=!1;const l={debugSpectorJS:i.R.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0};async function A(e){if(!globalThis.SPECTOR)try{await(0,r.k)(e.debugSpectorJSUrl||l.debugSpectorJSUrl)}catch(e){i.R.warn(String(e))}}function c(e){if(!(e={...l,...e}).debugSpectorJS)return null;if(!s&&globalThis.SPECTOR&&!globalThis.luma?.spector){i.R.probe(1,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();const{Spector:e}=globalThis.SPECTOR;s=new e,globalThis.luma&&(globalThis.luma.spector=s)}if(!s)return null;if(a||(a=!0,s.spyCanvases(),s?.onCaptureStarted.add(e=>i.R.info("Spector capture started:",e)()),s?.onCapture.add(e=>{i.R.info("Spector capture complete:",e)(),s?.getResultUI(),s?.resultView.display(),s?.resultView.addCapture(e)})),e.gl){const t=e.gl,n=(0,o.V)(t),r=n.device;s?.startCapture(e.gl,500),n.device=r,new Promise(e=>setTimeout(e,2e3)).then(e=>{i.R.info("Spector capture stopped after 2 seconds")(),s?.stopCapture()})}return s}n.d(t,["ic",0,l])},89869(e,t,n){"use strict";n.d(t,{$:()=>l,l:()=>A});var i,r=n(29651);!function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e[e.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",e[e.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",e[e.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",e[e.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",e[e.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",e[e.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",e[e.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",e[e.LINE_WEBGL=6913]="LINE_WEBGL",e[e.FILL_WEBGL=6914]="FILL_WEBGL",e[e.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",e[e.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",e[e.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",e[e.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",e[e.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",e[e.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",e[e.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",e[e.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",e[e.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",e[e.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",e[e.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",e[e.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",e[e.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",e[e.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",e[e.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",e[e.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",e[e.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",e[e.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",e[e.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",e[e.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",e[e.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",e[e.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",e[e.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",e[e.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"}(i||(i={}));var o=n(16769),s=n(32077);function a(e){return e.luma=e.luma||{},e.luma}async function l(){(0,o.B)()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,s.k)("https://unpkg.com/webgl-debug@2.0.1/index.js"))}function A(e,t={}){return t.debugWebGL||t.traceWebGL?function(e,t){if(!globalThis.WebGLDebugUtils)return r.R.warn("webgl-debug not loaded")(),e;const n=a(e);if(n.debugContext)return n.debugContext;globalThis.WebGLDebugUtils.init({...i,...e});const o=globalThis.WebGLDebugUtils.makeDebugContext(e,u.bind(null,t),h.bind(null,t));for(const e in i)e in o||"number"!=typeof i[e]||(o[e]=i[e]);class WebGLDebugContext{}Object.setPrototypeOf(o,Object.getPrototypeOf(e)),Object.setPrototypeOf(WebGLDebugContext,o);const s=Object.create(WebGLDebugContext);return n.realContext=e,n.debugContext=s,s.luma=n,s.debug=!0,s}(e,t):function(e){const t=a(e);return t.realContext?t.realContext:e}(e)}function c(e,t){t=Array.from(t).map(e=>void 0===e?"undefined":e);let n=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return n=`${n.slice(0,100)}${n.length>100?"...":""}`,`gl.${e}(${n})`}function u(e,t,n,i){i=Array.from(i).map(e=>void 0===e?"undefined":e);const o=`${globalThis.WebGLDebugUtils.glEnumToString(t)} in gl.${n}(${globalThis.WebGLDebugUtils.glFunctionArgsToString(n,i)})`;throw r.R.error("%cWebGL","color: white; background: red; padding: 2px 6px; border-radius: 3px;",o)(),new Error(o)}function h(e,t,n){let i="";e.traceWebGL&&r.R.level>=1&&(i=c(t,n),r.R.info(1,"%cWebGL","color: white; background: blue; padding: 2px 6px; border-radius: 3px;",i)());for(const e of n)void 0===e&&(i=i||c(t,n))}},28891(e,t,n){"use strict";function i(e){const t=e.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return t._polyfilled??=!1,t.extensions||={},e.luma=t,t}n.d(t,{V:()=>i})},32077(e,t,n){"use strict";async function i(e,t){const n=document.getElementsByTagName("head")[0];if(!n)throw new Error("loadScript");const i=document.createElement("script");return i.setAttribute("type","text/javascript"),i.setAttribute("src",e),t&&(i.id=t),new Promise((t,r)=>{i.onload=t,i.onerror=t=>r(new Error(`Unable to load script '${e}': ${t}`)),n.appendChild(i)})}n.d(t,{k:()=>i})},30568(e,t,n){"use strict";function i(){let e;if("undefined"!=typeof window&&window.performance)e=window.performance.now();else if("undefined"!=typeof process&&process.hrtime){const t=process.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}n.d(t,{A:()=>Stats});class Stat{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=i(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(i()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class Stats{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const e of Object.values(this.stats))e.reset();return this}forEach(e){for(const t of Object.values(this.stats))e(t)}getTable(){const e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(e=>this._getOrCreate(e))}_getOrCreate(e){const{name:t,type:n}=e;let i=this.stats[t];return i||(i=e instanceof Stat?e:new Stat(t,n),this.stats[t]=i),i}}},7572(e,t,n){"use strict";n.r(t),n.d(t,{A5Layer:()=>pm,AmbientLight:()=>AmbientLight,ArcLayer:()=>ms,Attribute:()=>Attribute,AttributeManager:()=>AttributeManager,BitmapLayer:()=>Es,COORDINATE_SYSTEM:()=>mn.rf,CPUAggregator:()=>CPUAggregator,ColumnLayer:()=>da,CompassWidget:()=>CompassWidget,CompositeLayer:()=>fo,ContextMenuWidget:()=>ContextMenuWidget,ContourLayer:()=>Dc,Controller:()=>Controller,Deck:()=>Ji,DeckGL:()=>YP,DeckRenderer:()=>DeckRenderer,DirectionalLight:()=>DirectionalLight,FirstPersonController:()=>FirstPersonController,FirstPersonView:()=>_o,FirstPersonViewport:()=>go,FlyToInterpolator:()=>FlyToInterpolator,FullscreenWidget:()=>FullscreenWidget,GeoJsonLayer:()=>ql,GeohashLayer:()=>UP,GimbalWidget:()=>GimbalWidget,GreatCircleLayer:()=>gm,GridCellLayer:()=>fa,GridLayer:()=>Gc,H3ClusterLayer:()=>Im,H3HexagonLayer:()=>Bm,HeatmapLayer:()=>ru,HexagonLayer:()=>NA,IconLayer:()=>Ns,IconWidget:()=>IconWidget,InfoWidget:()=>InfoWidget,Layer:()=>uo,LayerExtension:()=>hs.A,LayerManager:()=>LayerManager,LightingEffect:()=>LightingEffect,LineLayer:()=>Vs,LinearInterpolator:()=>LinearInterpolator,LoadingWidget:()=>LoadingWidget,MVTLayer:()=>BP,MapController:()=>MapController,MapView:()=>Hn,OPERATION:()=>mn.qR,OrbitController:()=>OrbitController,OrbitView:()=>Co,OrbitViewport:()=>yo,OrthographicController:()=>OrthographicController,OrthographicView:()=>xo,OrthographicViewport:()=>wo.A,PathLayer:()=>ka,PointCloudLayer:()=>Xs,PointLight:()=>PointLight,PolygonLayer:()=>Al,PopupWidget:()=>PopupWidget,PostProcessEffect:()=>PostProcessEffect,QuadkeyLayer:()=>Mm,ResetViewWidget:()=>ResetViewWidget,S2Layer:()=>Sm,ScatterplotLayer:()=>Zs,ScenegraphLayer:()=>BE,ScreenGridLayer:()=>bA,ScreenshotWidget:()=>ScreenshotWidget,ScrollbarWidget:()=>ScrollbarWidget,SelectorWidget:()=>SelectorWidget,SimpleMeshLayer:()=>NE,SolidPolygonLayer:()=>ol,TRANSITION_EVENTS:()=>hn,TerrainController:()=>TerrainController,TerrainLayer:()=>hP,Tesselator:()=>Tesselator,TextLayer:()=>Nl,ThemeWidget:()=>ThemeWidget,Tile3DLayer:()=>sP,TileLayer:()=>Pb,ToggleWidget:()=>ToggleWidget,TransitionInterpolator:()=>TransitionInterpolator,TripsLayer:()=>Bb,UNIT:()=>mn.p5,VERSION:()=>we,View:()=>View,Viewport:()=>Zt.A,WebGLAggregator:()=>WebGLAggregator,WebMercatorViewport:()=>An.A,Widget:()=>Widget,ZoomWidget:()=>ZoomWidget,_GeocoderWidget:()=>GeocoderWidget,_GlobeController:()=>GlobeController,_GlobeView:()=>Bo,_GlobeViewport:()=>Tn,_ScaleWidget:()=>ScaleWidget,_SplitterWidget:()=>SplitterWidget,_StatsWidget:()=>StatsWidget,_Tileset2D:()=>Tileset2D,_TimelineWidget:()=>TimelineWidget,assert:()=>pn,color:()=>Io,createIterable:()=>or,default:()=>YP,fp64LowPart:()=>Gn.qk,getShaderAssembler:()=>Re,gouraudMaterial:()=>Yo,log:()=>_e.A,phongMaterial:()=>Zo,picking:()=>Oo,project:()=>$n.A,project32:()=>No,shadow:()=>Ai});var i={};n.r(i),n.d(i,{createExtMeshFeatures:()=>cC,decode:()=>aC,encode:()=>lC,name:()=>sC});var r={};n.r(r),n.d(r,{createExtStructuralMetadata:()=>EC,decode:()=>fC,encode:()=>pC,name:()=>dC});var o={};n.r(o),n.d(o,{decode:()=>UC,name:()=>kC});var s={};n.r(s),n.d(s,{name:()=>jC,preprocess:()=>QC});var a={};n.r(a),n.d(a,{name:()=>KC,preprocess:()=>JC});var l={};n.r(l),n.d(l,{decode:()=>gw,encode:()=>mw,name:()=>fw,preprocess:()=>pw});var A={};n.r(A),n.d(A,{decode:()=>Tw,name:()=>Cw});var c={};n.r(c),n.d(c,{decode:()=>Iw,encode:()=>Lw,name:()=>Bw});var u={};n.r(u),n.d(u,{decode:()=>Ow,encode:()=>Nw,name:()=>Dw});var h={};n.r(h),n.d(h,{decode:()=>Gw,encode:()=>Vw,name:()=>Uw});var d={};function f(e,t){if(!e)throw new Error(t||"loader assertion failed.")}function p(e){if(!e)return!1;Array.isArray(e)&&(e=e[0]);return Array.isArray(e?.extensions)}function g(e){let t;return f(e,"null loader"),f(p(e),"invalid loader"),Array.isArray(e)&&(t=e[1],e=e[0],e={...e,options:{...e.options,...t}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}n.r(d),n.d(d,{decode:()=>jw,name:()=>Ww});const m=e=>"boolean"==typeof e,_=e=>"function"==typeof e,b=e=>null!==e&&"object"==typeof e,v=e=>b(e)&&e.constructor==={}.constructor,y=e=>"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer,C=e=>b(e)&&"number"==typeof e.byteLength&&"function"==typeof e.slice,w=e=>"undefined"!=typeof Response&&e instanceof Response||b(e)&&_(e.arrayBuffer)&&_(e.text)&&_(e.json),E=e=>"undefined"!=typeof Blob&&e instanceof Blob,x=e=>(e=>"undefined"!=typeof ReadableStream&&e instanceof ReadableStream||b(e)&&_(e.tee)&&_(e.cancel)&&_(e.getReader))(e)||(e=>b(e)&&_(e.read)&&_(e.pipe)&&m(e.readable))(e);function T(){if("undefined"!=typeof process&&void 0!==process.cwd)return process.cwd();const e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function S(e){const t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):e}function P(e){const t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function M(...e){const t=[];for(let n=0;n<e.length;n++)t[n]=e[n];let n,i="",r=!1;for(let e=t.length-1;e>=-1&&!r;e--){let o;e>=0?o=t[e]:(void 0===n&&(n=T()),o=n),0!==o.length&&(i=`${o}/${i}`,r=o.charCodeAt(0)===R)}return i=function(e,t){let n,i="",r=-1,o=0,s=!1;for(let a=0;a<=e.length;++a){if(a<e.length)n=e.charCodeAt(a);else{if(n===R)break;n=R}if(n===R){if(r===a-1||1===o);else if(r!==a-1&&2===o){if(i.length<2||!s||i.charCodeAt(i.length-1)!==B||i.charCodeAt(i.length-2)!==B)if(i.length>2){const e=i.length-1;let t=e;for(;t>=0&&i.charCodeAt(t)!==R;--t);if(t!==e){i=-1===t?"":i.slice(0,t),r=a,o=0,s=!1;continue}}else if(2===i.length||1===i.length){i="",r=a,o=0,s=!1;continue}t&&(i.length>0?i+="/..":i="..",s=!0)}else{const t=e.slice(r+1,a);i.length>0?i+=`/${t}`:i=t,s=!1}r=a,o=0}else n===B&&-1!==o?++o:o=-1}return i}(i,!r),r?`/${i}`:i.length>0?i:"."}const R=47,B=46;var I=n(3356);const L=new I.h({id:"loaders.gl"});class NullLog{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}"undefined"!=typeof self&&self,"undefined"!=typeof window&&window,"undefined"!=typeof globalThis&&globalThis,"undefined"!=typeof document&&document;const F=Boolean("object"!=typeof process||"[object process]"!==String(process)||process.browser),D="undefined"!=typeof process&&process.version&&/v([0-9]*)/.exec(process.version),O=(D&&parseFloat(D[1]),{core:{baseUrl:void 0,fetch:null,mimeType:void 0,fallbackMimeType:void 0,ignoreRegisteredLoaders:void 0,nothrow:!1,log:new class ConsoleLog{console;constructor(){this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}},useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:F,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]}}),N={baseUri:"core.baseUrl",fetch:"core.fetch",mimeType:"core.mimeType",fallbackMimeType:"core.fallbackMimeType",ignoreRegisteredLoaders:"core.ignoreRegisteredLoaders",nothrow:"core.nothrow",log:"core.log",useLocalLibraries:"core.useLocalLibraries",CDN:"core.CDN",worker:"core.worker",maxConcurrency:"core.maxConcurrency",maxMobileConcurrency:"core.maxMobileConcurrency",reuseWorkers:"core.reuseWorkers",_nodeWorkers:"core.nodeWorkers",_workerType:"core._workerType",_worker:"core._workerType",limit:"core.limit",_limitMB:"core._limitMB",batchSize:"core.batchSize",batchDebounceMs:"core.batchDebounceMs",metadata:"core.metadata",transforms:"core.transforms",throws:"nothrow",dataType:"(no longer used)",uri:"core.baseUrl",method:"core.fetch.method",headers:"core.fetch.headers",body:"core.fetch.body",mode:"core.fetch.mode",credentials:"core.fetch.credentials",cache:"core.fetch.cache",redirect:"core.fetch.redirect",referrer:"core.fetch.referrer",referrerPolicy:"core.fetch.referrerPolicy",integrity:"core.fetch.integrity",keepalive:"core.fetch.keepalive",signal:"core.fetch.signal"},k=/\?.*/;function U(e){return e.replace(k,"")}const G=["baseUrl","fetch","mimeType","fallbackMimeType","ignoreRegisteredLoaders","nothrow","log","useLocalLibraries","CDN","worker","maxConcurrency","maxMobileConcurrency","reuseWorkers","_nodeWorkers","_workerType","limit","_limitMB","batchSize","batchDebounceMs","metadata","transforms"];function V(){globalThis.loaders=globalThis.loaders||{};const{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function z(){const e=V();return e.globalOptions=e.globalOptions||{...O,core:{...O.core}},W(e.globalOptions)}function H(e,t,n,i){return n=n||[],function(e,t){j(e,null,O,N,t);for(const n of t){const i=e&&e[n.id]||{},r=n.options&&n.options[n.id]||{},o=n.deprecatedOptions&&n.deprecatedOptions[n.id]||{};j(i,n.id,r,o,t)}}(e,n=Array.isArray(n)?n:[n]),W(X(t,e,i))}function W(e){const t=function(e){const t={...e};e.core&&(t.core={...e.core});return t}(e);J(t);for(const e of G)t.core&&void 0!==t.core[e]&&delete t[e];return t.core&&void 0!==t.core._workerType&&delete t._worker,t}function j(e,t,n,i,r){const o=t||"Top level",s=t?`${t}.`:"";for(const a in e){const l=!t&&b(e[a]);if(!(a in n)&&!("baseUri"===a&&!t)&&!("workerUrl"===a&&t))if(a in i)L.level>0&&L.warn(`${o} loader option '${s}${a}' no longer supported, use '${i[a]}'`)();else if(!l&&L.level>0){const e=Q(a,r);L.warn(`${o} loader option '${s}${a}' not recognized. ${e}`)()}}}function Q(e,t){const n=e.toLowerCase();let i="";for(const r of t)for(const t in r.options){if(e===t)return`Did you mean '${r.id}.${t}'?`;const o=t.toLowerCase();(n.startsWith(o)||o.startsWith(n))&&(i=i||`Did you mean '${r.id}.${t}'?`)}return i}function X(e,t,n){const i=e.options||{},r={...i};i.core&&(r.core={...i.core}),J(r),null===r.core?.log&&(r.core={...r.core,log:new NullLog}),K(r,W(z()));return K(r,W(t)),function(e,t){if(!t)return;const n=void 0!==e.core?.baseUrl;n||(e.core||={},e.core.baseUrl=P(U(t)))}(r,n),function(e){const t=e.core;if(!t)return;for(const n of G)void 0!==t[n]&&(e[n]=t[n])}(r),r}function K(e,t){for(const n in t)if(n in t){const i=t[n];v(i)&&v(e[n])?e[n]={...e[n],...t[n]}:e[n]=t[n]}}function J(e){void 0!==e.baseUri&&(e.core||={},void 0===e.core.baseUrl&&(e.core.baseUrl=e.baseUri));for(const t of G)if(void 0!==e[t]){const n=e.core=e.core||{};void 0===n[t]&&(n[t]=e[t])}const t=e._worker;void 0!==t&&(e.core||={},void 0===e.core._workerType&&(e.core._workerType=t))}const q=()=>{const e=V();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};const Y=globalThis.loaders?.parseImageNode,Z="undefined"!=typeof Image,$="undefined"!=typeof ImageBitmap,ee=Boolean(Y),te=!!F||ee;function ne(e){const t=re(e);if(!t)throw new Error("Not an image");return t}function ie(e){switch(ne(e)){case"data":return e;case"image":case"imagebitmap":const t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function re(e){return"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap?"imagebitmap":"undefined"!=typeof Image&&e instanceof Image?"image":e&&"object"==typeof e&&e.data&&e.width&&e.height?"data":null}const oe=/^data:image\/svg\+xml/,se=/\.svg((\?|#).*)?$/;function ae(e){return e&&(oe.test(e)||se.test(e))}function le(e,t){if(ae(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Ae(e,t,n){const i=function(e,t){if(ae(t)){let t=(new TextDecoder).decode(e);try{"function"==typeof unescape&&"function"==typeof encodeURIComponent&&(t=unescape(encodeURIComponent(t)))}catch(e){throw new Error(e.message)}return`data:image/svg+xml;base64,${btoa(t)}`}return le(e,t)}(e,n),r=self.URL||self.webkitURL,o="string"!=typeof i&&r.createObjectURL(i);try{return await async function(e,t){const n=new Image;if(n.src=e,t.image&&t.image.decode&&n.decode)return await n.decode(),n;return await new Promise((e,t)=>{try{n.onload=()=>e(n),n.onerror=e=>{const n=e instanceof Error?e.message:"error";t(new Error(n))}}catch(e){t(e)}})}(o||i,t)}finally{o&&r.revokeObjectURL(o)}}let ce=!0;async function ue(e,t,n){let i;if(ae(n)){i=await Ae(e,t,n)}else i=le(e,n);const r=t&&t.imagebitmap;return await async function(e,t=null){!function(e){if(!e)return!0;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(t)&&ce||(t=null);if(t)try{return await createImageBitmap(e,t)}catch(e){console.warn(e),ce=!1}return await createImageBitmap(e)}(i,r)}function he(e){return function(e,t,n=0){const i=(r=t,[...r].map(e=>e.charCodeAt(0)));var r;for(let t=0;t<i.length;++t)if(i[t]!==e[t+n])return!1;return!0}(e,"ftyp",4)&&96&e[8]?function(e){switch((t=e,n=8,i=12,String.fromCharCode(...t.slice(n,i))).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}var t,n,i}(e):null}const de=!1,fe=!0;function pe(e){const t=ge(e);return function(e){const t=ge(e),n=t.byteLength>=24&&2303741511===t.getUint32(0,de);if(!n)return null;return{mimeType:"image/png",width:t.getUint32(16,de),height:t.getUint32(20,de)}}(t)||function(e){const t=ge(e),n=t.byteLength>=3&&65496===t.getUint16(0,de)&&255===t.getUint8(2);if(!n)return null;const{tableMarkers:i,sofMarkers:r}=function(){const e=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)e.add(t);const t=new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502]);return{tableMarkers:e,sofMarkers:t}}();let o=2;for(;o+9<t.byteLength;){const e=t.getUint16(o,de);if(r.has(e))return{mimeType:"image/jpeg",height:t.getUint16(o+5,de),width:t.getUint16(o+7,de)};if(!i.has(e))return null;o+=2,o+=t.getUint16(o,de)}return null}(t)||function(e){const t=ge(e),n=t.byteLength>=10&&1195984440===t.getUint32(0,de);if(!n)return null;return{mimeType:"image/gif",width:t.getUint16(6,fe),height:t.getUint16(8,fe)}}(t)||function(e){const t=ge(e),n=t.byteLength>=14&&16973===t.getUint16(0,de)&&t.getUint32(2,fe)===t.byteLength;if(!n)return null;return{mimeType:"image/bmp",width:t.getUint32(18,fe),height:t.getUint32(22,fe)}}(t)||function(e){const t=new Uint8Array(e instanceof DataView?e.buffer:e),n=he(t);if(!n)return null;return{mimeType:n.mimeType,width:0,height:0}}(t)}function ge(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}const me={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:"4.4.3",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],parse:async function(e,t,n){const i=((t=t||{}).image||{}).type||"auto",{url:r}=n||{};let o;switch(function(e){switch(e){case"auto":case"data":return function(){if($)return"imagebitmap";if(Z)return"image";if(te)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(e){switch(e){case"auto":return $||Z||te;case"imagebitmap":return $;case"image":return Z;case"data":return te;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}(e),e}}(i)){case"imagebitmap":o=await ue(e,t,r);break;case"image":o=await Ae(e,t,r);break;case"data":o=await async function(e){const{mimeType:t}=pe(e)||{},n=globalThis.loaders?.parseImageNode;return f(n),await n(e,t)}(e);break;default:f(!1)}return"data"===i&&(o=ie(o)),o},tests:[e=>Boolean(pe(new DataView(e)))],options:{image:{type:"auto",decode:!0}}};var _e=n(3459);let be={};function ve(e){be=e}function ye(e,t,n,i){_e.A.level>0&&be[e]&&be[e].call(null,t,n,i)}const Ce={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:function(e){const t=e[0],n=e[e.length-1];return"{"===t&&"}"===n||"["===t&&"]"===n},parseTextSync:JSON.parse};const we=function(){const e="9.3.7",t=globalThis.deck&&globalThis.deck.VERSION;if(t&&t!==e)throw new Error(`deck.gl - multiple versions detected: ${t} vs ${e}`);return t||(_e.A.log(1,`deck.gl ${e}`)(),globalThis.deck={...globalThis.deck,VERSION:e,version:e,log:_e.A,_registerLoggers:ve},function(e){const t=q();e=Array.isArray(e)?e:[e];for(const n of e){const e=g(n);t.find(t=>e===t)||t.unshift(e)}}([Ce,[me,{imagebitmap:{premultiplyAlpha:"none"}}]])),e}();let Ee=1,xe=1;class Timeline{time=0;channels=new Map;animations=new Map;playing=!1;lastEngineTime=-1;constructor(){}addChannel(e){const{delay:t=0,duration:n=Number.POSITIVE_INFINITY,rate:i=1,repeat:r=1}=e,o=Ee++,s={time:0,delay:t,duration:n,rate:i,repeat:r};return this._setChannelTime(s,this.time),this.channels.set(o,s),o}removeChannel(e){this.channels.delete(e);for(const[t,n]of this.animations)n.channel===e&&this.detachAnimation(t)}isFinished(e){const t=this.channels.get(e);return void 0!==t&&this.time>=t.delay+t.duration*t.repeat}getTime(e){if(void 0===e)return this.time;const t=this.channels.get(e);return void 0===t?-1:t.time}setTime(e){this.time=Math.max(0,e);const t=this.channels.values();for(const e of t)this._setChannelTime(e,this.time);const n=this.animations.values();for(const e of n){const{animation:t,channel:n}=e;t.setTime(this.getTime(n))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(e,t){const n=xe++;return this.animations.set(n,{animation:e,channel:t}),e.setTime(this.getTime(t)),n}detachAnimation(e){this.animations.delete(e)}update(e){this.playing&&(-1===this.lastEngineTime&&(this.lastEngineTime=e),this.setTime(this.time+(e-this.lastEngineTime)),this.lastEngineTime=e)}_setChannelTime(e,t){const n=t-e.delay;n>=e.duration*e.repeat?e.time=e.duration*e.rate:(e.time=Math.max(0,n)%e.duration,e.time*=e.rate)}}var Te=n(63234);const Se=[n(3065).A],Pe=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"],Me=[];function Re(e){const t=Te._.getDefaultShaderAssembler();for(const e of Se)t.addDefaultModule(e);t._hookFunctions.length=0;const n="glsl"===e?Pe:Me;for(const e of n)t.addShaderHook(e);return t}const Be="layout(std140) uniform layerUniforms {\n uniform float opacity;\n} layer;\n",Ie={name:"layer",source:"struct LayerUniforms {\n opacity: f32,\n};\n\n@group(0) @binding(auto)\nvar<uniform> layer: LayerUniforms;\n",vs:Be,fs:Be,getUniforms:e=>({opacity:Math.pow(e.opacity,1/2.2)}),uniformTypes:{opacity:"f32"}},Le="Awaiting state",Fe="Matched. State transferred from previous layer",De="Initialized",Oe="Discarded. Awaiting garbage collection",Ne="No longer matched. Awaiting garbage collection",ke="Finalized! Awaiting garbage collection",Ue=Symbol.for("component"),Ge=Symbol.for("propTypes"),Ve=Symbol.for("deprecatedProps"),ze=Symbol.for("asyncPropDefaults"),He=Symbol.for("asyncPropOriginal"),We=Symbol.for("asyncPropResolved");function je(e,t=()=>!0){return Array.isArray(e)?Qe(e,t,[]):t(e)?[e]:[]}function Qe(e,t,n){let i=-1;for(;++i<e.length;){const r=e[i];Array.isArray(r)?Qe(r,t,n):t(r)&&n.push(r)}return n}function Xe({target:e,source:t,start:n=0,count:i=1}){const r=t.length,o=i*r;let s=0;for(let i=n;s<r;s++)e[i++]=t[s];for(;s<o;)s<o-s?(e.copyWithin(n+s,n,n+s),s*=2):(e.copyWithin(n+s,n,n+o-s),s=o);return e}var Ke=n(30568);let Je="";const qe={};class FetchError extends Error{constructor(e,t){super(e),this.reason=t.reason,this.url=t.url,this.response=t.response}reason;url;response}const Ye=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Ze=/^([-\w.]+\/[-\w.+]+)/;function $e(e,t){return e.toLowerCase()===t.toLowerCase()}function et(e){const t=Ye.exec(e);return t?t[1]:""}function tt(e){if(w(e))return e.url;if(E(e)){return("name"in e?e.name:"")||""}return"string"==typeof e?e:""}function nt(e){if(w(e)){const t=e.headers.get("content-type")||"",n=U(e.url);return function(e){const t=Ze.exec(e);return t?t[1]:e}(t)||et(n)}return E(e)?e.type||"":"string"==typeof e?et(e):""}async function it(e){if(w(e))return e;const t={},n=function(e){if(w(e))return e.headers["content-length"]||-1;if(E(e))return e.size;return"string"==typeof e?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}(e);n>=0&&(t["content-length"]=String(n));const i=tt(e),r=nt(e);r&&(t["content-type"]=r);const o=await async function(e){const t=5;if("string"==typeof e)return`data:,${e.slice(0,t)}`;if(e instanceof Blob){const t=e.slice(0,5);return await new Promise(e=>{const n=new FileReader;n.onload=t=>e(t?.target?.result),n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){const n=function(e){let t="";const n=new Uint8Array(e);for(let e=0;e<n.byteLength;e++)t+=String.fromCharCode(n[e]);return btoa(t)}(e.slice(0,t));return`data:base64,${n}`}return null}(e);o&&(t["x-first-bytes"]=o),"string"==typeof e&&(e=(new TextEncoder).encode(e));const s=new Response(e,{headers:t});return Object.defineProperty(s,"url",{value:i}),s}async function rt(e){if(!e.ok){const t=await async function(e){const t=function(e){if(e.length<50)return e;const t=e.slice(e.length-15);return`${e.substr(0,32)}...${t}`}(e.url);let n=`Failed to fetch resource (${e.status}) ${e.statusText}: ${t}`;n=n.length>100?`${n.slice(0,100)}...`:n;const i={reason:e.statusText,url:e.url,response:e};try{const t=e.headers.get("Content-Type");i.reason=!e.bodyUsed&&t?.includes("application/json")?await e.json():await e.text()}catch(e){}return new FetchError(n,i)}(e);throw t}}async function ot(e,t){if("string"==typeof e){const n=function(e){for(const t in qe)if(e.startsWith(t)){const n=qe[t];e=e.replace(t,n)}return e.startsWith("http://")||e.startsWith("https://")||(e=`${Je}${e}`),e}(e);return function(e){return!function(e){return e.startsWith("http:")||e.startsWith("https:")}(e)&&!function(e){return e.startsWith("data:")}(e)}(n)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(n,t):await fetch(n,t)}return await it(e)}function st(e,t){const n=z(),i=e||n,r=i.fetch??i.core?.fetch;return"function"==typeof r?r:b(r)?e=>ot(e,r):t?.fetch?t?.fetch:ot}function at(e,t){return lt(e||{},t)}function lt(e,t,n=0){if(n>3)return t;const i={...e};for(const[e,r]of Object.entries(t))r&&"object"==typeof r&&!Array.isArray(r)?i[e]=lt(i[e]||{},t[e],n+1):i[e]=t[e];return i}"undefined"!=typeof self&&self,"undefined"!=typeof window&&window,"undefined"!=typeof globalThis&&globalThis,"undefined"!=typeof document&&document;const At="object"!=typeof process||"[object process]"!==String(process)||process.browser,ct="function"==typeof importScripts,ut="undefined"!=typeof window&&void 0!==window.orientation,ht="undefined"!=typeof process&&process.version&&/v([0-9]*)/.exec(process.version);ht&&parseFloat(ht[1]);class NodeWorker{terminate(){}}function dt(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}const ft=new Map;function pt(e){dt(e.source&&!e.url||!e.source&&e.url);let t=ft.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return gt((t=e,`try {\n importScripts('${t}');\n} catch (error) {\n console.error(error);\n throw error;\n}`));var t}(e.url),ft.set(e.url,t)),e.source&&(t=gt(e.source),ft.set(e.source,t))),dt(t),t}function gt(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function mt(e,t=!0,n){const i=n||new Set;if(e){if(_t(e))i.add(e);else if(_t(e.buffer))i.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const n in e)mt(e[n],t,i)}else;return void 0===n?Array.from(i):[]}function _t(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const bt=()=>{};class WorkerThread{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return"undefined"!=typeof Worker&&At||void 0!==NodeWorker&&!At}constructor(e){const{name:t,source:n,url:i}=e;dt(n||i),this.name=t,this.source=n,this.url=i,this.onMessage=bt,this.onError=e=>console.log(e),this.worker=At?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=bt,this.onError=bt,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||mt(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+=`worker ${this.name} from ${this.url}. `,e.message&&(t+=`${e.message} in `),e.lineno&&(t+=`:${e.lineno}:${e.colno}`),new Error(t)}_createBrowserWorker(){this._loadableURL=pt({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`,n=this.url.endsWith(".ts")||this.url.endsWith(".mjs")?"module":"commonjs";e=new NodeWorker(t,{eval:!1,type:n})}else{if(!this.source)throw new Error("no worker");e=new NodeWorker(this.source,{eval:!0})}return e.on("message",e=>{this.onMessage(e)}),e.on("error",e=>{this.onError(e)}),e.on("exit",e=>{}),e}}class WorkerJob{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(e,t){this.name=e,this.workerThread=t,this.result=new Promise((e,t)=>{this._resolve=e,this._reject=t})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){dt(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){dt(this.isRunning),this.isRunning=!1,this._reject(e)}}class WorkerPool{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return WorkerThread.isSupported()}constructor(e){this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach(e=>e.destroy()),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=(e,t,n)=>e.done(n),n=(e,t)=>e.error(t)){const i=new Promise(i=>(this.jobQueue.push({name:e,onMessage:t,onError:n,onStart:i}),this));return this._startQueuedJob(),await i}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const n=new WorkerJob(t.name,e);e.onMessage=e=>t.onMessage(n,e.type,e.payload),e.onError=e=>t.onError(n,e),t.onStart(n);try{await n.result}catch(e){console.error(`Worker exception: ${e}`)}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){!At||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;const e=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new WorkerThread({name:e,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return ut?this.maxMobileConcurrency:this.maxConcurrency}}const vt={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}};class WorkerFarm{props;workerPools=new Map;static _workerFarm;static isSupported(){return WorkerThread.isSupported()}static getWorkerFarm(e={}){return WorkerFarm._workerFarm=WorkerFarm._workerFarm||new WorkerFarm({}),WorkerFarm._workerFarm.setProps(e),WorkerFarm._workerFarm}constructor(e){this.props={...vt},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:n,url:i}=e;let r=this.workerPools.get(t);return r||(r=new WorkerPool({name:t,source:n,url:i}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}async function yt(e,t,n,i,r){const o=e.id,s=function(e,t={}){const n=t[e.id]||{},i=At?`${e.id}-worker.js`:`${e.id}-worker-node.js`;let r=n.workerUrl;if(r||"compression"!==e.id||(r=t.workerUrl),"test"===(t._workerType||t?.core?._workerType)&&(r=At?`modules/${e.module}/dist/${i}`:`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!r){let t=e.version;"latest"===t&&(t="latest");const n=t?`@${t}`:"";r=`https://unpkg.com/@loaders.gl/${e.module}${n}/dist/${i}`}return dt(r),r}(e,n),a=WorkerFarm.getWorkerFarm(n?.core).getWorkerPool({name:o,url:s});n=JSON.parse(JSON.stringify(n)),i=JSON.parse(JSON.stringify(i||{}));const l=await a.startJob("process-on-worker",Ct.bind(null,r));l.postMessage("process",{input:t,options:n,context:i});const A=await l.result;return await A.result}async function Ct(e,t,n,i){switch(n){case"done":t.done(i);break;case"error":t.error(new Error(i.error));break;case"process":const{id:r,input:o,options:s}=i;try{const n=await e(o,s);t.postMessage("done",{id:r,result:n})}catch(e){const n=e instanceof Error?e.message:"unknown error";t.postMessage("error",{id:r,error:n})}break;default:console.warn(`parse-with-worker unknown message ${n}`)}}const wt=(globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.3"),globalThis._loadersgl_.version);function Et(e){return e&&"object"==typeof e&&e.isBuffer}function xt(e){if(Et(e))return e;if(e instanceof ArrayBuffer)return e;if(y(e))return St(e);if(ArrayBuffer.isView(e)){const t=e.buffer;return 0===e.byteOffset&&e.byteLength===e.buffer.byteLength?t:t.slice(e.byteOffset,e.byteOffset+e.byteLength)}if("string"==typeof e){const t=e;return(new TextEncoder).encode(t).buffer}if(e&&"object"==typeof e&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}function Tt(e){if(e instanceof ArrayBuffer)return e;if(y(e))return St(e);const{buffer:t,byteOffset:n,byteLength:i}=e;return t instanceof ArrayBuffer&&0===n&&i===t.byteLength?t:St(t,n,i)}function St(e,t=0,n=e.byteLength-t){const i=new Uint8Array(e,t,n),r=new Uint8Array(i.length);return r.set(i),r.buffer}function Pt(...e){return function(e){const t=e.map(e=>e instanceof ArrayBuffer?new Uint8Array(e):e),n=t.reduce((e,t)=>e+t.byteLength,0),i=new Uint8Array(n);let r=0;for(const e of t)i.set(e,r),r+=e.byteLength;return i.buffer}(e)}function Mt(e,t,n){const i=void 0!==n?new Uint8Array(e).subarray(t,t+n):new Uint8Array(e).subarray(t);return new Uint8Array(i).buffer}function Rt(e){if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e)){const{buffer:t,byteOffset:n,byteLength:i}=e;return Bt(t,n,i)}return Bt(e)}function Bt(e,t=0,n=e.byteLength-t){const i=new Uint8Array(e,t,n),r=new Uint8Array(i.length);return r.set(i),r.buffer}const It=262144;function Lt(e,t){return F?async function*(e,t){const n=e.getReader();let i;try{for(;;){const e=i||n.read();t?._streamReadAhead&&(i=n.read());const{done:r,value:o}=await e;if(r)return;yield xt(o)}}catch(e){n.releaseLock()}}(e,t):async function*(e){for await(const t of e)yield xt(t)}(e)}function Ft(e,t){if("string"==typeof e)return function*(e,t){const n=t?.chunkSize||262144;let i=0;const r=new TextEncoder;for(;i<e.length;){const t=Math.min(e.length-i,n),o=e.slice(i,i+t);i+=t,yield Tt(r.encode(o))}}(e,t);if(e instanceof ArrayBuffer)return function*(e,t={}){const{chunkSize:n=It}=t;let i=0;for(;i<e.byteLength;){const t=Math.min(e.byteLength-i,n),r=new ArrayBuffer(t),o=new Uint8Array(e,i,t);new Uint8Array(r).set(o),i+=t,yield r}}(e,t);if(E(e))return async function*(e,t){const n=t?.chunkSize||1048576;let i=0;for(;i<e.size;){const t=i+n,r=await e.slice(i,t).arrayBuffer();i=t,yield r}}(e,t);if(x(e))return Lt(e,t);if(w(e)){const n=e.body;if(!n)throw new Error("Readable stream not available on Response");return Lt(n,t)}throw new Error("makeIterator")}const Dt="Cannot convert supplied data type";function Ot(e,t,n){if(t.text&&"string"==typeof e)return e;if(Et(e)&&(e=e.buffer),C(e)){const n=function(e){return ArrayBuffer.isView(e)?e:new Uint8Array(e)}(e);if(t.text&&!t.binary){return new TextDecoder("utf8").decode(n)}return xt(n)}throw new Error(Dt)}async function Nt(e,t,n){if("string"==typeof e||C(e))return Ot(e,t);if(E(e)&&(e=await it(e)),w(e))return await rt(e),t.binary?await e.arrayBuffer():await e.text();if(x(e)&&(e=Ft(e,n)),i=e,Boolean(i)&&_(i[Symbol.iterator])||(e=>Boolean(e)&&_(e[Symbol.asyncIterator]))(e))return async function(e){const t=[];for await(const n of e)t.push(Rt(n));return Pt(...t)}(e);var i;throw new Error(Dt)}function kt(e,t,n){if(n)return n;const i={fetch:st(t,e),...e};if(i.url){const e=U(i.url);i.baseUrl=e,i.queryString=function(e){const t=e.match(k);return t&&t[0]}(i.url),i.filename=S(e),i.baseUrl=P(e)}return Array.isArray(i.loaders)||(i.loaders=null),i}var Ut=n(52027);const Gt=/\.([^.]+)$/;function Vt(e){const t=nt(e);return Boolean(t&&(t.startsWith("text/")||"application/json"===t||t.endsWith("+json")))}function zt(e,t=[],n,i){if(!Ht(e))return null;const r=W(n||{});if(r.core||={},t&&!Array.isArray(t))return g(t);let o=[];t&&(o=o.concat(t)),r.core.ignoreRegisteredLoaders||o.push(...q()),function(e){for(const t of e)g(t)}(o);const s=function(e,t,n,i){const r=tt(e),o=nt(e),s=U(r)||i?.url;let a=null,l="";n?.core?.mimeType&&(a=jt(t,n?.core?.mimeType),l=`match forced by supplied MIME type ${n?.core?.mimeType}`);a=a||function(e,t){const n=t&&Gt.exec(t),i=n&&n[1];return i?function(e,t){t=t.toLowerCase();for(const n of e)for(const e of n.extensions)if(e.toLowerCase()===t)return n;return null}(e,i):null}(t,s),l=l||(a?`matched url ${s}`:""),a=a||jt(t,o),l=l||(a?`matched MIME type ${o}`:""),a=a||function(e,t){if(!t)return null;for(const n of e)if("string"==typeof t){if(Qt(t,n))return n}else if(ArrayBuffer.isView(t)){if(Xt(t.buffer,t.byteOffset,n))return n}else if(t instanceof ArrayBuffer){if(Xt(t,0,n))return n}return null}(t,e),l=l||(a?`matched initial data ${Kt(e)}`:""),n?.core?.fallbackMimeType&&(a=a||jt(t,n?.core?.fallbackMimeType),l=l||(a?`matched fallback MIME type ${o}`:""));l&&Ut.R.log(1,`selectLoader selected ${a?.name}: ${l}.`);return a}(e,o,r,i);if(!s&&!r.core.nothrow)throw new Error(Wt(e));return s}function Ht(e){return!(e instanceof Response&&204===e.status)}function Wt(e){const t=tt(e),n=nt(e);let i="No valid loader found (";i+=t?`${S(t)}, `:"no url provided, ",i+=`MIME type: ${n?`"${n}"`:"not provided"}, `;const r=e?Kt(e):"";return i+=r?` first bytes: "${r}"`:"first bytes: not available",i+=")",i}function jt(e,t){for(const n of e){if(n.mimeTypes?.some(e=>$e(t,e)))return n;if($e(t,`application/x.${n.id}`))return n}return null}function Qt(e,t){if(t.testText)return t.testText(e);return(Array.isArray(t.tests)?t.tests:[t.tests]).some(t=>e.startsWith(t))}function Xt(e,t,n){return(Array.isArray(n.tests)?n.tests:[n.tests]).some(n=>function(e,t,n,i){if(C(i))return function(e,t,n){if(n=n||e.byteLength,e.byteLength<n||t.byteLength<n)return!1;const i=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<i.length;++e)if(i[e]!==r[e])return!1;return!0}(i,e,i.byteLength);switch(typeof i){case"function":return i(Tt(e));case"string":return i===Jt(e,t,i.length);default:return!1}}(e,t,0,n))}function Kt(e,t=5){if("string"==typeof e)return e.slice(0,t);if(ArrayBuffer.isView(e))return Jt(e.buffer,e.byteOffset,t);if(e instanceof ArrayBuffer){return Jt(e,0,t)}return""}function Jt(e,t,n){if(e.byteLength<t+n)return"";const i=new DataView(e);let r="";for(let e=0;e<n;e++)r+=String.fromCharCode(i.getUint8(t+e));return r}async function qt(e,t,n,i){!t||Array.isArray(t)||p(t)||(i=void 0,n=t,t=void 0),n=n||{};const r=tt(e=await e),o=function(e,t){if(e&&!Array.isArray(e))return e;let n;if(e&&(n=Array.isArray(e)?e:[e]),t&&t.loaders){const e=Array.isArray(t.loaders)?t.loaders:[t.loaders];n=n?[...n,...e]:e}return n&&n.length?n:void 0}(t,i),s=await async function(e,t=[],n,i){if(!Ht(e))return null;const r=W(n||{});if(r.core||={},e instanceof Response&&Vt(e)){const n=zt(await e.clone().text(),t,{...r,core:{...r.core,nothrow:!0}},i);if(n)return n}let o=zt(e,t,{...r,core:{...r.core,nothrow:!0}},i);if(o)return o;E(e)&&(o=zt(e=await e.slice(0,10).arrayBuffer(),t,r,i)),!o&&e instanceof Response&&Vt(e)&&(o=zt(await e.clone().text(),t,r,i));if(!o&&!r.core.nothrow)throw new Error(Wt(e));return o}(e,o,n);if(!s)return null;const a=H(n,s,o,r);return i=kt({url:r,_parse:qt,loaders:o},a,i||null),await async function(e,t,n,i){if(function(e){dt(e,"no worker provided");const t=e.version}(e),n=at(e.options,n),w(t)){const{ok:e,redirected:n,status:r,statusText:o,type:s,url:a}=t,l=Object.fromEntries(t.headers.entries());i.response={headers:l,ok:e,redirected:n,status:r,statusText:o,type:s,url:a}}t=await Nt(t,e,n);const r=e;if(r.parseTextSync&&"string"==typeof t)return r.parseTextSync(t,n,i);if(function(e,t){if(!WorkerFarm.isSupported())return!1;if(!At&&!(t?._nodeWorkers??t?.core?._nodeWorkers))return!1;const n=t?.worker??t?.core?.worker;return Boolean(e.worker&&n)}(e,n))return await yt(e,t,n,i,qt);if(r.parseText&&"string"==typeof t)return await r.parseText(t,n,i);if(r.parse)return await r.parse(t,n,i);throw dt(!r.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}(s,e,a,i)}async function Yt(e,t,n,i){let r,o;Array.isArray(t)||p(t)?(r=t,o=n):(r=[],o=t);const s=st(o);let a=e;if("string"==typeof e&&(a=await s(e)),E(e)&&(a=await s(e)),"string"==typeof e){const t=W(o||{});t.core?.baseUrl||(o={...o,core:{...o?.core,baseUrl:e}})}return Array.isArray(r),await qt(a,r,o)}class Resource{constructor(e,t,n){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=n,this.setData(t)}subscribe(e){this._subscribers.add(e)}unsubscribe(e){this._subscribers.delete(e)}inUse(){return this._subscribers.size>0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(e,t){if(e===this._data&&!t)return;this._data=e;const n=++this._loadCount;let i=e;"string"==typeof e&&(i=Yt(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then(e=>{this._loadCount===n&&(this.isLoaded=!0,this._error=void 0,this._content=e)}).catch(e=>{this._loadCount===n&&(this.isLoaded=!0,this._error=e||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=e);for(const e of this._subscribers)e.onChange(this.getData())}}class ResourceManager{constructor(e){this.protocol=e.protocol||"resource://",this._context={device:e.device,gl:e.device?.gl,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(e){return!!e.startsWith(this.protocol)||e in this._resources}add({resourceId:e,data:t,forceUpdate:n=!1,persistent:i=!0}){let r=this._resources[e];r?r.setData(t,n):(r=new Resource(e,t,this._context),this._resources[e]=r),r.persistent=i}remove(e){const t=this._resources[e];t&&(t.delete(),delete this._resources[e])}unsubscribe({consumerId:e}){const t=this._consumers[e];if(t){for(const e in t){const n=t[e],i=this._resources[n.resourceId];i&&i.unsubscribe(n)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:t,consumerId:n,requestId:i="default"}){const{_resources:r,protocol:o}=this;e.startsWith(o)&&(r[e=e.replace(o,"")]||this.add({resourceId:e,data:null,persistent:!1}));const s=r[e];if(this._track(n,i,s,t),s)return s.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(const e in this._resources)this._resources[e].delete()}_track(e,t,n,i){const r=this._consumers,o=r[e]=r[e]||{};let s=o[t];const a=s&&s.resourceId&&this._resources[s.resourceId];a&&(a.unsubscribe(s),this.prune()),n&&(s?(s.onChange=i,s.resourceId=n.id):s={onChange:i,resourceId:n.id},o[t]=s,n.subscribe(s))}_prune(){this._pruneRequest=null;for(const e of Object.keys(this._resources)){const t=this._resources[e];t.persistent||t.inUse()||(t.delete(),delete this._resources[e])}}}var Zt=n(47345);class LayerManager{constructor(e,t){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=e=>{ye("layerManager.activateViewport",this,e),e&&(this.context.viewport=e)};const{deck:n,stats:i,viewport:r,timeline:o}=t||{};this.layers=[],this.resourceManager=new ResourceManager({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:n,shaderAssembler:Re(e?.info?.shadingLanguage||"glsl"),defaultShaderModules:[Ie],renderPass:void 0,stats:i||new Ke.A({id:"deck.gl"}),viewport:r||new Zt.A({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:o||new Timeline,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(const e of this.layers)this._finalizeLayer(e)}needsRedraw(e={clearRedrawFlags:!1}){let t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);for(const n of this.layers){const i=n.getNeedsRedraw(e);t=t||i}return t}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._defaultShaderModulesChanged?"shader modules changed":this._needsUpdate}setNeedsRedraw(e){this._needsRedraw=this._needsRedraw||e}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e}getLayers({layerIds:e}={}){return e?this.layers.filter(t=>e.find(e=>0===t.id.indexOf(e))):this.layers}setProps(e){"debug"in e&&(this._debug=e.debug),"userData"in e&&(this.context.userData=e.userData),"layers"in e&&(this._nextLayers=e.layers),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,t){ye("layerManager.setLayers",this,t,e),this._lastRenderedLayers=e;const n=je(e,Boolean);for(const e of n)e.context=this.context;this._updateLayers(this.layers,n)}updateLayers(){const e=this.needsUpdate();e&&(this.setNeedsRedraw(`updating layers: ${e}`),this.setLayers(this._nextLayers||this._lastRenderedLayers,e)),this._nextLayers=null}addDefaultShaderModule(e){const{defaultShaderModules:t}=this.context;t.find(t=>t.name===e.name)||(t.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){const{defaultShaderModules:t}=this.context,n=t.findIndex(t=>t.name===e.name);n>=0&&(t.splice(n,1),this._defaultShaderModulesChanged=!0)}_handleError(e,t,n){n.raiseError(t,`${e} of ${n}`)}_updateLayers(e,t){const n={};for(const t of e)n[t.id]?_e.A.warn(`Multiple old layers with same id ${t.id}`)():n[t.id]=t;if(this._defaultShaderModulesChanged){for(const t of e)t.setNeedsUpdate(),t.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}const i=[];this._updateSublayersRecursively(t,n,i),this._finalizeOldLayers(n);let r=!1;for(const e of i)if(e.hasUniformTransition()){r=`Uniform transition in ${e}`;break}this._needsUpdate=r,this.layers=i}_updateSublayersRecursively(e,t,n){for(const i of e){i.context=this.context;const e=t[i.id];null===e&&_e.A.warn(`Multiple new layers with same id ${i.id}`)(),t[i.id]=null;let r=null;try{this._debug&&e!==i&&i.validateProps(),e?(this._transferLayerState(e,i),this._updateLayer(i)):this._initializeLayer(i),n.push(i),r=i.isComposite?i.getSubLayers():null}catch(e){this._handleError("matching",e,i)}r&&this._updateSublayersRecursively(r,t,n)}}_finalizeOldLayers(e){for(const t in e){const n=e[t];n&&this._finalizeLayer(n)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=De}catch(t){this._handleError("initialization",t,e)}}_transferLayerState(e,t){t._transferState(e),t.lifecycle=Fe,t!==e&&(e.lifecycle=Oe)}_updateLayer(e){try{e._update()}catch(t){this._handleError("update",t,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=Ne;try{e._finalize(),e.lifecycle=ke}catch(t){this._handleError("finalization",t,e)}}}var $t=n(7914);class ViewManager{constructor(e){this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=e.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=e.eventManager,this._eventCallbacks={onViewStateChange:e.onViewStateChange,onInteractionStateChange:e.onInteractionStateChange},this._pickPosition=e.pickPosition,Object.seal(this),this.setProps(e)}finalize(){for(const e in this.controllers){const t=this.controllers[e];t&&t.finalize()}this.controllers={}}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}updateViewStates(){for(const e in this.controllers){const t=this.controllers[e];t&&t.updateTransition()}}getViewports(e){return e?this._viewports.filter(t=>t.containsPixel(e)):this._viewports}getViews(){const e={};return this.views.forEach(t=>{e[t.id]=t}),e}getView(e){return this.views.find(t=>t.id===e)}getViewState(e){const t="string"==typeof e?this.getView(e):e,n=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(n):n}getViewport(e){return this._viewportMap[e]}unproject(e,t){const n=this.getViewports(),i={x:e[0],y:e[1]};for(let r=n.length-1;r>=0;--r){const o=n[r];if(o.containsPixel(i)){const n=e.slice();return n[0]-=o.x,n[1]-=o.y,o.unproject(n,t)}}return null}setProps(e){e.views&&this._setViews(e.views),e.viewState&&this._setViewState(e.viewState),("width"in e||"height"in e)&&this._setSize(e.width,e.height),"pickPosition"in e&&(this._pickPosition=e.pickPosition),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(e,t){e===this.width&&t===this.height||(this.width=e,this.height=t,this.setNeedsUpdate("Size changed"))}_setViews(e){e=je(e,Boolean);this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){if(e){!(0,$t.b)(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e}else _e.A.warn("missing `viewState` or `initialViewState`")()}_createController(e,t){return new(0,t.type)({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._eventCallbacks.onViewStateChange,onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:t=>this.getView(e.id)?.makeViewport({viewState:t,width:this.width,height:this.height}),pickPosition:this._pickPosition})}_updateController(e,t,n,i){const r=e.controller;if(r&&n){const o={...t,...r,id:e.id,x:n.x,y:n.y,width:n.width,height:n.height};return i&&i.constructor===r.type||(i=this._createController(e,o)),i&&i.setProps(o),i}return null}_rebuildViewports(){const{views:e}=this,t=this.controllers;this._viewports=[],this.controllers={};let n=!1;for(let i=e.length;i--;){const r=e[i],o=this.getViewState(r),s=r.makeViewport({viewState:o,width:this.width,height:this.height});let a=t[r.id];const l=Boolean(r.controller);l&&!a&&(n=!0),!n&&l||!a||(a.finalize(),a=null),this.controllers[r.id]=this._updateController(r,o,s,a),s&&this._viewports.unshift(s)}for(const e in t){const n=t[e];n&&!this.controllers[e]&&n.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(e=>{e.id&&(this._viewportMap[e.id]=this._viewportMap[e.id]||e)})}_diffViews(e,t){return e.length!==t.length||e.some((n,i)=>!e[i].equals(t[i]))}}const en=/^(?:\d+\.?\d*|\.\d+)$/;function tn(e){switch(typeof e){case"number":if(!Number.isFinite(e))throw new Error(`Could not parse position string ${e}`);return{type:"literal",value:e};case"string":try{const t=function(e){const t=[];let n=0;for(;n<e.length;){const i=e[n];if(/\s/.test(i))n++;else{if("+"!==i&&"-"!==i&&"("!==i&&")"!==i&&"%"!==i){if(on(i)||"."===i){const r=n;let o="."===i;for(n++;n<e.length;){const t=e[n];if(on(t))n++;else{if("."!==t||o)break;o=!0,n++}}const s=e.slice(r,n);if(!en.test(s))throw new Error("Invalid number token");t.push({type:"number",value:parseFloat(s)});continue}if(sn(i)){const i=n;for(;n<e.length&&sn(e[n]);)n++;const r=e.slice(i,n).toLowerCase();t.push({type:"word",value:r});continue}throw new Error("Invalid token in position string")}t.push({type:"symbol",value:i}),n++}}return t}(e);return new LayoutExpressionParser(t).parseExpression()}catch(t){const n=t instanceof Error?t.message:String(t);throw new Error(`Could not parse position string ${e}: ${n}`)}default:throw new Error(`Could not parse position string ${e}`)}}function nn(e,t){switch(e.type){case"literal":return e.value;case"percentage":return Math.round(e.value*t);case"binary":const n=nn(e.left,t),i=nn(e.right,t);return"+"===e.operator?n+i:n-i;default:throw new Error("Unknown layout expression type")}}function rn(e,t){return nn(e,t)}class LayoutExpressionParser{constructor(e){this.index=0,this.tokens=e}parseExpression(){const e=this.parseBinaryExpression();if(this.index<this.tokens.length)throw new Error("Unexpected token at end of expression");return e}parseBinaryExpression(){let e=this.parseFactor(),t=this.peek();for(;an(t);){this.index++;const n=this.parseFactor();e={type:"binary",operator:t.value,left:e,right:n},t=this.peek()}return e}parseFactor(){const e=this.peek();if(!e)throw new Error("Unexpected end of expression");if("symbol"===e.type&&"+"===e.value)return this.index++,this.parseFactor();if("symbol"===e.type&&"-"===e.value){this.index++;return{type:"binary",operator:"-",left:{type:"literal",value:0},right:this.parseFactor()}}if("symbol"===e.type&&"("===e.value){this.index++;const e=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return e}if("word"===e.type&&"calc"===e.value){if(this.index++,!this.consumeSymbol("("))throw new Error("Missing opening parenthesis after calc");const e=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return e}if("number"===e.type){this.index++;const t=e.value,n=this.peek();return n&&"symbol"===n.type&&"%"===n.value?(this.index++,{type:"percentage",value:t/100}):n&&"word"===n.type&&"px"===n.value?(this.index++,{type:"literal",value:t}):{type:"literal",value:t}}throw new Error("Unexpected token in expression")}consumeSymbol(e){const t=this.peek();return!(!t||"symbol"!==t.type||t.value!==e)&&(this.index++,!0)}peek(){return this.tokens[this.index]||null}}function on(e){return e>="0"&&e<="9"}function sn(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function an(e){return Boolean(e&&"symbol"===e.type&&("+"===e.value||"-"===e.value))}function ln(e,t){e=e.slice();for(let n=0;n<t.length;n++){const i=t[n];Number.isFinite(i)&&(e[n]=i)}return e}class View{constructor(e){const{id:t,x:n=0,y:i=0,width:r="100%",height:o="100%",padding:s=null}=e;this.id=t||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=tn(n),this._y=tn(i),this._width=tn(r),this._height=tn(o),this._padding=s&&{left:tn(s.left||0),right:tn(s.right||0),top:tn(s.top||0),bottom:tn(s.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e||this.constructor===e.constructor&&(0,$t.b)(this.props,e.props,2)}clone(e){return new(0,this.constructor)({...this.props,...e})}makeViewport({width:e,height:t,viewState:n}){n=this.filterViewState(n);const i=this.getDimensions({width:e,height:t});if(!i.height||!i.width)return null;return new(this.getViewportType(n))({...n,...this.props,...i})}getViewStateId(){const{viewState:e}=this.props;return"string"==typeof e?e:e?.id||this.id}filterViewState(e){return this.props.viewState&&"object"==typeof this.props.viewState?this.props.viewState.id?function(e,t){const n={...e};for(const e in t)"id"!==e&&(Array.isArray(n[e])&&Array.isArray(t[e])?n[e]=ln(n[e],t[e]):n[e]=t[e]);return n}(e,this.props.viewState):this.props.viewState:e}getDimensions({width:e,height:t}){const n={x:rn(this._x,e),y:rn(this._y,t),width:rn(this._width,e),height:rn(this._height,t)};return this._padding&&(n.padding={left:rn(this._padding.left,e),top:rn(this._padding.top,t),right:rn(this._padding.right,e),bottom:rn(this._padding.bottom,t)}),n}get controller(){const e=this.props.controller;return e?!0===e?{type:this.ControllerType}:"function"==typeof e?{type:e}:{type:this.ControllerType,...e}:null}}var An=n(69502),cn=n(54901);class Transition{constructor(e){this._inProgress=!1,this._handle=null,this.time=0,this.settings={duration:0},this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(null===this._handle){const{_timeline:e,settings:t}=this;this._handle=e.addChannel({delay:e.getTime(),duration:t.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}}const un=()=>{},hn={BREAK:1,SNAP_TO_END:2,IGNORE:3},dn=e=>e,fn=hn.BREAK;class TransitionManager{constructor(e){this._onTransitionUpdate=e=>{const{time:t,settings:{interpolator:n,startProps:i,endProps:r,duration:o,easing:s}}=e,a=s(t/o),l=n.interpolateProps(i,r,a);this.propsInTransition=this.getControllerState({...this.props,...l}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new Transition(e.timeline),this.onViewStateChange=e.onViewStateChange||un,this.onStateChange=e.onStateChange||un}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let t=!1;const n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){const{interruption:e,endProps:t}=this.transition.settings;i={...n,...e===hn.SNAP_TO_END?t:this.propsInTransition||n}}this._triggerTransition(i,e),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(e){const{transitionDuration:t,transitionInterpolator:n}=e;return(t>0||"auto"===t)&&Boolean(n)}_isUpdateDueToCurrentTransition(e){return!(!this.transition.inProgress||!this.propsInTransition)&&this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition)}_shouldIgnoreViewportChange(e,t){if(this.transition.inProgress){return this.transition.settings.interruption===hn.IGNORE||this._isUpdateDueToCurrentTransition(t)}return!this._isTransitionEnabled(t)||t.transitionInterpolator.arePropsEqual(e,t)}_triggerTransition(e,t){const n=this.getControllerState(e),i=this.getControllerState(t).shortestPathFrom(n),r=t.transitionInterpolator,o=r.getDuration?r.getDuration(e,t):t.transitionDuration;if(0===o)return;const s=r.initializeProps(e,i);this.propsInTransition={};const a={duration:o,easing:t.transitionEasing||dn,interpolator:r,interruption:t.transitionInterruption||fn,startProps:s.start,endProps:s.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)};this.transition.start(a),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return t=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(t)}}}function pn(e,t){if(!e)throw new Error(t||"deck.gl: assertion failed.")}class TransitionInterpolator{constructor(e){const{compare:t,extract:n,required:i}=e;this._propsToCompare=t,this._propsToExtract=n||t,this._requiredProps=i}arePropsEqual(e,t){for(const n of this._propsToCompare)if(!(n in e)||!(n in t)||!(0,cn.aI)(e[n],t[n]))return!1;return!0}initializeProps(e,t){const n={},i={};for(const r of this._propsToExtract)(r in e||r in t)&&(n[r]=e[r],i[r]=t[r]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,t){return t.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(t=>{const n=e[t];pn(Number.isFinite(n)||Array.isArray(n),`${t} is required for transition`)})}}var gn=n(31886),mn=n(9350),_n=n(45249),bn=n(82859),vn=n(39426);const yn=Math.PI/180,Cn=180/Math.PI,wn=6370972,En=256;function xn(){const e=4018225162502676e-20,t=Math.PI/180*En;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[24886.609375,24886.609375,24886.609375],unitsPerDegree:[t,t,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/t,1/t,24886.609375]}}class GlobeViewport extends Zt.A{constructor(e={}){const{longitude:t=0,zoom:n=0,nearZMultiplier:i=.5,farZMultiplier:r=1,resolution:o=10}=e;let{latitude:s=0,height:a,altitude:l=1.5,fovy:A}=e;s=Math.max(Math.min(s,_n.aH),-_n.aH),a=a||1,A?l=(0,_n.wZ)(A):A=(0,_n.Os)(l);const c=Math.pow(2,n-Sn(s)),u=e.nearZ??i,h=e.farZ??(l+512*c/a)*r,d=(new gn.k).lookAt({eye:[0,-l,0],up:[0,0,1]});d.rotateX(s*yn),d.rotateZ(-t*yn),d.scale(c/a),super({...e,height:a,viewMatrix:d,longitude:t,latitude:s,zoom:n,distanceScales:xn(),fovy:A,focalDistance:l,near:u,far:h}),this.scale=c,this.latitude=s,this.longitude=t,this.fovy=A,this.resolution=o}get projectionMode(){return mn.Kx.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){const t={targetZ:e.z||0},n=this.unproject([0,this.height/2],t),i=this.unproject([this.width/2,0],t),r=this.unproject([this.width,this.height/2],t),o=this.unproject([this.width/2,this.height],t);return r[0]<this.longitude&&(r[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],r[0],i[0],o[0]),Math.min(n[1],r[1],i[1],o[1]),Math.max(n[0],r[0],i[0],o[0]),Math.max(n[1],r[1],i[1],o[1])]}unproject(e,{topLeft:t=!0,targetZ:n}={}){const[i,r,o]=e,s=t?r:this.height-r,{pixelUnprojectionMatrix:a}=this;let l;if(Number.isFinite(o))l=Pn(a,[i,s,o,1]);else{const e=Pn(a,[i,s,-1,1]),t=Pn(a,[i,s,1,1]),r=((n||0)/wn+1)*En,o=bn.uE(bn.jb([],e,t)),A=bn.uE(e),c=bn.uE(t),u=4*((4*A*c-(o-A-c)**2)/16)/o,h=(Math.sqrt(A-u)-Math.sqrt(Math.max(0,r*r-u)))/Math.sqrt(o);l=bn.Cc([],e,t,h)}const[A,c,u]=this.unprojectPosition(l);return Number.isFinite(o)?[A,c,u]:Number.isFinite(n)?[A,c,n]:[A,c]}projectPosition(e){const[t,n,i=0]=e,r=t*yn,o=n*yn,s=Math.cos(o),a=(i/wn+1)*En;return[Math.sin(r)*s*a,-Math.cos(r)*s*a,Math.sin(o)*a]}unprojectPosition(e){const[t,n,i]=e,r=bn.Il(e),o=Math.asin(i/r);return[Math.atan2(t,-n)*Cn,o*Cn,(r/En-1)*wn]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition([e,t,n],i,r){const o=.25/Math.pow(2,this.zoom-Sn(this.latitude)),s=e+o*(r[0]-i[0]);let a=t-o*(r[1]-i[1]);a=Math.max(Math.min(a,_n.aH),-_n.aH);const l={longitude:s,latitude:a,zoom:n-Sn(t)};return l.zoom+=Sn(l.latitude),l}}GlobeViewport.displayName="GlobeViewport";const Tn=GlobeViewport;function Sn(e){const t=Math.PI*Math.cos(e*Math.PI/180);return Math.log2(t)}function Pn(e,t){const n=vn.Z0([],t,e);return vn.hs(n,n,1/n[3]),n}const Mn=["longitude","latitude","zoom","bearing","pitch"],Rn=["longitude","latitude","zoom"];class LinearInterpolator extends TransitionInterpolator{constructor(e={}){const t=Array.isArray(e)?e:e.transitionProps,n=Array.isArray(e)?{}:e;n.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:Mn,required:Rn},super(n.transitionProps),this.opts=n}initializeProps(e,t){const n=super.initializeProps(e,t),{makeViewport:i,around:r}=this.opts;if(i&&r){if(i(e)instanceof Tn)_e.A.warn("around not supported in GlobeView")();else{const o=i(e),s=i(t),a=o.unproject(r);n.start.around=r,Object.assign(n.end,{around:s.project(a),aroundPosition:a,width:t.width,height:t.height})}}return n}interpolateProps(e,t,n){const i={};for(const r of this._propsToExtract)i[r]=(0,cn.Cc)(e[r]||0,t[r]||0,n);if(t.aroundPosition&&this.opts.makeViewport){const r=this.opts.makeViewport({...t,...i});Object.assign(i,r.panByPosition(t.aroundPosition,(0,cn.Cc)(e.around,t.around,n)))}return i}}const Bn={transitionDuration:0},In=e=>1-(1-e)*(1-e),Ln=["wheel"],Fn=["panstart","panmove","panend"],Dn=["pinchstart","pinchmove","pinchend"],On=["multipanstart","multipanmove","multipanend"],Nn=["dblclick"],kn=["keydown"],Un={};class Controller{constructor(e){this.state={},this._events={},this._interactionState={isDragging:!1},this._customEvents=[],this._eventStartBlocked=null,this._panMove=!1,this.invertPan=!1,this.dragMode="rotate",this.inertia=0,this.scrollZoom=!0,this.dragPan=!0,this.dragRotate=!0,this.doubleClickZoom=!0,this.touchZoom=!0,this.touchRotate=!1,this.keyboard=!0,this.transitionManager=new TransitionManager({...e,getControllerState:e=>new this.ControllerState(e),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport,this.pickPosition=e.pickPosition}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(const e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;const t=this._eventStartBlocked;switch(e.type){case"panstart":return!t&&this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return!t&&this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"multipanstart":return!t&&this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){const{x:t,y:n}=this.props,{offsetCenter:i}=e;return[i.x-t,i.y-n]}isPointInBounds(e,t){const{width:n,height:i}=this.props;if(t&&t.handled)return!1;const r=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return r&&t&&t.stopPropagation(),r}isFunctionKeyPressed(e){const{srcEvent:t}=e;return Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){const t=setTimeout(()=>{this._eventStartBlocked===t&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=t}setProps(e){e.dragMode&&(this.dragMode=e.dragMode);const t=this.props;this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);const{inertia:n}=e;this.inertia=Number.isFinite(n)?n:!0===n?300:0;const{scrollZoom:i=!0,dragPan:r=!0,dragRotate:o=!0,doubleClickZoom:s=!0,touchZoom:a=!0,touchRotate:l=!1,keyboard:A=!0}=e,c=Boolean(this.onViewStateChange);this.toggleEvents(Ln,c&&i),this.toggleEvents(Fn,c),this.toggleEvents(Dn,c&&(a||l)),this.toggleEvents(On,c&&l),this.toggleEvents(Nn,c&&s),this.toggleEvents(kn,c&&A),this.scrollZoom=i,this.dragPan=r,this.dragRotate=o,this.doubleClickZoom=s,this.touchZoom=a,this.touchRotate=l,this.keyboard=A;if((!t||t.height!==e.height||t.width!==e.width||t.maxBounds!==e.maxBounds)&&e.maxBounds){const t=new this.ControllerState({...e,makeViewport:this.makeViewport}),n=t.getViewportProps();Object.keys(n).some(t=>!(0,$t.b)(n[t],e[t],1))&&this.updateViewport(t)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,t){this.eventManager&&e.forEach(e=>{this._events[e]!==t&&(this._events[e]=t,t?this.eventManager.on(e,this.handleEvent):this.eventManager.off(e,this.handleEvent))})}updateViewport(e,t=null,n={}){const i={...e.getViewportProps(),...t},r=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),r){const e=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:e,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||"pan"===this.dragMode)&&(n=!n);const i=this.controllerState[n?"panStart":"rotateStart"]({pos:t});return this._panMove=n,this.updateViewport(i,Bn,{isDragging:!0}),!0}_onPan(e){return!!this.isDragging()&&(this._panMove?this._onPanMove(e):this._onPanRotate(e))}_onPanEnd(e){return!!this.isDragging()&&(this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e))}_onPanMove(e){if(!this.dragPan)return!1;const t=this.getCenter(e),n=this.controllerState.pan({pos:t});return this.updateViewport(n,Bn,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){const{inertia:t}=this;if(this.dragPan&&t&&e.velocity){const n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],r=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:In},{isDragging:!1,isPanning:!0})}else{const e=this.controllerState.panEnd();this.updateViewport(e,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;const t=this.getCenter(e),n=this.controllerState.rotate({pos:t});return this.updateViewport(n,Bn,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){const{inertia:t}=this;if(this.dragRotate&&t&&e.velocity){const n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],r=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:In},{isDragging:!1,isRotating:!0})}else{const e=this.controllerState.rotateEnd();this.updateViewport(e,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom)return!1;const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;e.srcEvent.preventDefault();const{speed:n=.01,smooth:i=!1}=!0===this.scrollZoom?{}:this.scrollZoom,{delta:r}=e;let o=2/(1+Math.exp(-Math.abs(r*n)));r<0&&0!==o&&(o=1/o);const s=i?{...this._getTransitionProps({around:t}),transitionDuration:250}:Bn,a=this.controllerState.zoom({pos:t,scale:o});return this.updateViewport(a,s,{isZooming:!0,isPanning:!0}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.controllerState.rotateStart({pos:t});return this.updateViewport(n,Bn,{isDragging:!0}),!0}_onMultiPan(e){if(!this.touchRotate)return!1;if(!this.isDragging())return!1;const t=this.getCenter(e);t[0]-=e.deltaX;const n=this.controllerState.rotate({pos:t});return this.updateViewport(n,Bn,{isDragging:!0,isRotating:!0}),!0}_onMultiPanEnd(e){if(!this.isDragging())return!1;const{inertia:t}=this;if(this.touchRotate&&t&&e.velocityY){const n=this.getCenter(e),i=[n[0],n[1]+=e.velocityY*t/2],r=this.controllerState.rotate({pos:i});this.updateViewport(r,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:In},{isDragging:!1,isRotating:!0}),this.blockEvents(t)}else{const e=this.controllerState.rotateEnd();this.updateViewport(e,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.controllerState.zoomStart({pos:t}).rotateStart({pos:t});return Un._startPinchRotation=e.rotation,Un._lastPinchEvent=e,this.updateViewport(n,Bn,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate)return!1;if(!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){const{scale:n}=e,i=this.getCenter(e);t=t.zoom({pos:i,scale:n})}if(this.touchRotate){const{rotation:n}=e;t=t.rotate({deltaAngleX:Un._startPinchRotation-n})}return this.updateViewport(t,Bn,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),Un._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;const{inertia:t}=this,{_lastPinchEvent:n}=Un;if(this.touchZoom&&t&&n&&e.scale!==n.scale){const i=this.getCenter(e);let r=this.controllerState.rotateEnd();const o=Math.log2(e.scale),s=(o-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),a=Math.pow(2,o+s*t/2);r=r.zoom({pos:i,scale:a}).zoomEnd(),this.updateViewport(r,{...this._getTransitionProps({around:i}),transitionDuration:t,transitionEasing:In},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{const e=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(e,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return Un._startPinchRotation=null,Un._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom)return!1;const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:t,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:t}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;const t=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:r,rotateSpeedY:o}=!0===this.keyboard?{}:this.keyboard,{controllerState:s}=this;let a;const l={};switch(e.srcEvent.code){case"Minus":a=t?s.zoomOut(n).zoomOut(n):s.zoomOut(n),l.isZooming=!0;break;case"Equal":a=t?s.zoomIn(n).zoomIn(n):s.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":t?(a=s.rotateLeft(r),l.isRotating=!0):(a=s.moveLeft(i),l.isPanning=!0);break;case"ArrowRight":t?(a=s.rotateRight(r),l.isRotating=!0):(a=s.moveRight(i),l.isPanning=!0);break;case"ArrowUp":t?(a=s.rotateUp(o),l.isRotating=!0):(a=s.moveUp(i),l.isPanning=!0);break;case"ArrowDown":t?(a=s.rotateDown(o),l.isRotating=!0):(a=s.moveDown(i),l.isPanning=!0);break;default:return!1}return this.updateViewport(a,this._getTransitionProps(),l),!0}_getTransitionProps(e){const{transition:t}=this;return t&&t.transitionInterpolator?e?{...t,transitionInterpolator:new LinearInterpolator({...e,...t.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:t:Bn}}class ViewState{constructor(e,t,n){this.makeViewport=n,this._viewportProps=this.applyConstraints(e),this._state=t}getViewportProps(){return this._viewportProps}getState(){return this._state}}var Gn=n(25667);const Vn=[[-1/0,-90],[1/0,90]];function zn([e,t]){if(Math.abs(t)>90&&(t=90*Math.sign(t)),Number.isFinite(e)){const[n,i]=(0,_n.Gw)([e,t]);return[n,(0,cn.qE)(i,0,512)]}const[,n]=(0,_n.Gw)([0,t]);return[e,(0,cn.qE)(n,0,512)]}class MapState extends ViewState{constructor(e){const{width:t,height:n,latitude:i,longitude:r,zoom:o,bearing:s=0,pitch:a=0,altitude:l=1.5,position:A=[0,0,0],maxZoom:c=20,minZoom:u=0,maxPitch:h=60,minPitch:d=0,startPanLngLat:f,startZoomLngLat:p,startRotatePos:g,startRotateLngLat:m,startBearing:_,startPitch:b,startZoom:v,normalize:y=!0}=e;pn(Number.isFinite(r)),pn(Number.isFinite(i)),pn(Number.isFinite(o));super({width:t,height:n,latitude:i,longitude:r,zoom:o,bearing:s,pitch:a,altitude:l,maxZoom:c,minZoom:u,maxPitch:h,minPitch:d,normalize:y,position:A,maxBounds:e.maxBounds||(y?Vn:null)},{startPanLngLat:f,startZoomLngLat:p,startRotatePos:g,startRotateLngLat:m,startBearing:_,startPitch:b,startZoom:v},e.makeViewport),this.getAltitude=e.getAltitude}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:t}){const n=this.getState().startPanLngLat||this._unproject(t);if(!n)return this;const i=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(i)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:e}){const t=this.getAltitude?.(e);return this._getUpdatedState({startRotatePos:e,startRotateLngLat:void 0!==t?this._unproject3D(e,t):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:t=0,deltaAngleY:n=0}){const{startRotatePos:i,startRotateLngLat:r,startBearing:o,startPitch:s}=this.getState();if(!i||void 0===o||void 0===s)return this;let a;if(a=e?this._getNewRotation(e,i,s,o):{bearing:o+t,pitch:s+n},r){const e=this.makeViewport({...this.getViewportProps(),...a}),t="panByPosition3D"in e?"panByPosition3D":"panByPosition";return this._getUpdatedState({...a,...e[t](r,i)})}return this._getUpdatedState(a)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart({pos:e}){return this._getUpdatedState({startZoomLngLat:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:t,scale:n}){let{startZoom:i,startZoomLngLat:r}=this.getState();if(r||(i=this.getViewportProps().zoom,r=this._unproject(t)||this._unproject(e)),!r)return this;const o=this._constrainZoom(i+Math.log2(n)),s=this.makeViewport({...this.getViewportProps(),zoom:o});return this._getUpdatedState({zoom:o,...s.panByPosition(r,e)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(e=2){return this._zoomFromCenter(e)}zoomOut(e=2){return this._zoomFromCenter(1/e)}moveLeft(e=100){return this._panFromCenter([e,0])}moveRight(e=100){return this._panFromCenter([-e,0])}moveUp(e=100){return this._panFromCenter([0,e])}moveDown(e=100){return this._panFromCenter([0,-e])}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}shortestPathFrom(e){const t=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:r}=n;return Math.abs(i-t.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(r-t.longitude)>180&&(n.longitude=r<0?r+360:r-360),n}applyConstraints(e){const{maxPitch:t,minPitch:n,pitch:i,longitude:r,bearing:o,normalize:s,maxBounds:a}=e;if(s&&((r<-180||r>180)&&(e.longitude=(0,Gn.zi)(r+180,360)-180),(o<-180||o>180)&&(e.bearing=(0,Gn.zi)(o+180,360)-180)),e.pitch=(0,cn.qE)(i,n,t),e.zoom=this._constrainZoom(e.zoom,e),a){const t=zn(a[0]),n=zn(a[1]),i=2**e.zoom,r=e.width/2/i,o=e.height/2/i,[s,l]=(0,_n.iV)([t[0]+r,t[1]+o]),[A,c]=(0,_n.iV)([n[0]-r,n[1]-o]);e.longitude=(0,cn.qE)(e.longitude,s,A),e.latitude=(0,cn.qE)(e.latitude,l,c)}return e}_constrainZoom(e,t){t||(t=this.getViewportProps());const{maxZoom:n,maxBounds:i}=t,r=null!==i&&t.width>0&&t.height>0;let{minZoom:o}=t;if(r){const e=zn(i[0]),r=zn(i[1]),s=r[0]-e[0],a=r[1]-e[1];Number.isFinite(s)&&s>0&&(o=Math.max(o,Math.log2(t.width/s))),Number.isFinite(a)&&a>0&&(o=Math.max(o,Math.log2(t.height/a))),o>n&&(o=n)}return(0,cn.qE)(e,o,n)}_zoomFromCenter(e){const{width:t,height:n}=this.getViewportProps();return this.zoom({pos:[t/2,n/2],scale:e})}_panFromCenter(e){const{width:t,height:n}=this.getViewportProps();return this.pan({startPos:[t/2,n/2],pos:[t/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}_unproject(e){const t=this.makeViewport(this.getViewportProps());return e&&t.unproject(e)}_unproject3D(e,t){return this.makeViewport(this.getViewportProps()).unproject(e,{targetZ:t})}_getNewRotation(e,t,n,i){const r=e[0]-t[0],o=e[1]-t[1],s=e[1],a=t[1],{width:l,height:A}=this.getViewportProps(),c=r/l;let u=0;o>0?Math.abs(A-a)>5&&(u=o/(a-A)*1.2):o<0&&a>5&&(u=1-s/a),u=(0,cn.qE)(u,-1,1);const{minPitch:h,maxPitch:d}=this.getViewportProps();let f=n;return u>0?f=n+u*(d-n):u<0&&(f=n-u*(h-n)),{pitch:f,bearing:i+180*c}}}class MapController extends Controller{constructor(){super(...arguments),this.ControllerState=MapState,this.transition={transitionDuration:300,transitionInterpolator:new LinearInterpolator({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})},this.dragMode="pan",this.rotationPivot="center",this._getAltitude=e=>{if("2d"===this.rotationPivot)return 0;if("3d"===this.rotationPivot&&this.pickPosition){const{x:t,y:n}=this.props,i=this.pickPosition(t+e[0],n+e[1]);if(i&&i.coordinate&&i.coordinate.length>=3)return i.coordinate[2]}}}setProps(e){"rotationPivot"in e&&(this.rotationPivot=e.rotationPivot||"center"),e.getAltitude=this._getAltitude,e.position=e.position||[0,0,0],e.maxBounds=e.maxBounds||(!1===e.normalize?null:Vn),super.setProps(e)}updateViewport(e,t=null,n={}){const i=e.getState();n.isDragging&&i.startRotateLngLat?n={...n,rotationPivotPosition:i.startRotateLngLat}:!1===n.isDragging&&(n={...n,rotationPivotPosition:void 0}),super.updateViewport(e,t,n)}}class MapView extends View{constructor(e={}){super(e)}getViewportType(){return An.A}get ControllerType(){return MapController}}MapView.displayName="MapView";const Hn=MapView,Wn=[255,255,255],jn=1;let Qn=0;class AmbientLight{constructor(e={}){this.type="ambient";const{color:t=Wn}=e,{intensity:n=jn}=e;this.id=e.id||"ambient-"+Qn++,this.color=t,this.intensity=n}}var Xn=n(87597);const Kn=[255,255,255],Jn=1,qn=[0,0,-1];let Yn=0;class DirectionalLight{constructor(e={}){this.type="directional";const{color:t=Kn}=e,{intensity:n=Jn}=e,{direction:i=qn}=e,{_shadow:r=!1}=e;this.id=e.id||"directional-"+Yn++,this.color=t,this.intensity=n,this.type="directional",this.direction=new Xn.P(i).normalize().toArray(),this.shadow=r}getProjectedLight(e){return this}}var Zn=n(25285);class ShadowPass extends Zn.A{constructor(e,t){super(e,t);const n=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=e.createTexture({format:"depth16unorm",width:1,height:1});this.fbo=e.createFramebuffer({id:"shadowmap",width:1,height:1,colorAttachments:[n],depthStencilAttachment:i})}delete(){this.fbo&&(this.fbo.destroy(),this.fbo=null)}getShadowMap(){return this.fbo.colorAttachments[0].texture}render(e){const t=this.fbo,n=this.device.canvasContext.cssToDeviceRatio(),i=e.viewports[0],r=i.width*n,o=i.height*n;r===t.width&&o===t.height||t.resize({width:r,height:o}),super.render({...e,clearColor:[1,1,1,1],target:t,pass:"shadow"})}getLayerParameters(e,t,n){return{...e.props.parameters,blend:!1,depthWriteEnabled:!0,depthCompare:"less-equal"}}shouldDrawLayer(e){return!1!==e.props.shadowEnabled}getShaderModuleProps(e,t,n){return{shadow:{project:n.project,drawToShadowMap:!0}}}}var $n=n(62029),ei=n(82417),ti=n(74334);const ni="\nlayout(std140) uniform shadowUniforms {\n bool drawShadowMap;\n bool useShadowMap;\n vec4 color;\n highp int lightId;\n float lightCount;\n mat4 viewProjectionMatrix0;\n mat4 viewProjectionMatrix1;\n vec4 projectCenter0;\n vec4 projectCenter1;\n} shadow;\n",ii=`\n${ni}\n\nconst int max_lights = 2;\n\nout vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n mat4 viewProjectionMatrices[max_lights];\n viewProjectionMatrices[0] = shadow.viewProjectionMatrix0;\n viewProjectionMatrices[1] = shadow.viewProjectionMatrix1;\n vec4 projectCenters[max_lights];\n projectCenters[0] = shadow.projectCenter0;\n projectCenters[1] = shadow.projectCenter1;\n\n if (shadow.drawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[shadow.lightId], projectCenters[shadow.lightId]);\n }\n if (shadow.useShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow.lightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[i], projectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n\n`,ri=`\n${ni}\n\nconst int max_lights = 2;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\n\nin vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow.drawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow.useShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow.lightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow.color.a / shadow.lightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow.color.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n\n`,oi=(0,ei.A)(function({viewport:e,center:t}){return new gn.k(e.viewProjectionMatrix).invert().transform(t)}),si=(0,ei.A)(function({viewport:e,shadowMatrices:t}){const n=[],i=e.pixelUnprojectionMatrix,r=e.isGeospatial?void 0:1,o=[[0,0,r],[e.width,0,r],[0,e.height,r],[e.width,e.height,r],[0,0,-1],[e.width,0,-1],[0,e.height,-1],[e.width,e.height,-1]].map(e=>function(e,t){const[n,i,r]=e,o=(0,_n.xJ)([n,i,r],t);if(Number.isFinite(r))return o;return[o[0],o[1],0]}(e,i));for(const i of t){const t=i.clone().translate(new Xn.P(e.center).negate()),r=o.map(e=>t.transform(e)),s=(new gn.k).ortho({left:Math.min(...r.map(e=>e[0])),right:Math.max(...r.map(e=>e[0])),bottom:Math.min(...r.map(e=>e[1])),top:Math.max(...r.map(e=>e[1])),near:Math.min(...r.map(e=>-e[2])),far:Math.max(...r.map(e=>-e[2]))});n.push(s.multiplyRight(i))}return n}),ai=[0,0,0,1],li=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];const Ai={name:"shadow",dependencies:[$n.A],vs:ii,fs:ri,inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n position = shadow_setVertexPosition(geometry.position);\n ","fs:DECKGL_FILTER_COLOR":"\n color = shadow_filterShadowColor(color);\n "},getUniforms:function(e){const{shadowEnabled:t=!0,project:n}=e;if(!(t&&n&&e.shadowMatrices&&e.shadowMatrices.length))return{drawShadowMap:!1,useShadowMap:!1,shadow_uShadowMap0:e.dummyShadowMap,shadow_uShadowMap1:e.dummyShadowMap};const i=$n.A.getUniforms(n),r=oi({viewport:n.viewport,center:i.center}),o=[],s=si({shadowMatrices:e.shadowMatrices,viewport:n.viewport}).slice();for(let t=0;t<e.shadowMatrices.length;t++){const e=s[t],a=e.clone().translate(new Xn.P(n.viewport.center).negate());i.coordinateSystem===(0,ti.LB)("lnglat")&&i.projectionMode===mn.Kx.WEB_MERCATOR?(s[t]=a,o[t]=r):(s[t]=e.clone().multiplyRight(li),o[t]=a.transform(r))}const a={drawShadowMap:Boolean(e.drawToShadowMap),useShadowMap:!!e.shadowMaps&&e.shadowMaps.length>0,color:e.shadowColor||ai,lightId:e.shadowLightId||0,lightCount:e.shadowMatrices.length,shadow_uShadowMap0:e.dummyShadowMap,shadow_uShadowMap1:e.dummyShadowMap};for(let e=0;e<s.length;e++)a[`viewProjectionMatrix${e}`]=s[e],a[`projectCenter${e}`]=o[e];for(let t=0;t<2;t++)a[`shadow_uShadowMap${t}`]=e.shadowMaps&&e.shadowMaps[t]||e.dummyShadowMap;return a},uniformTypes:{drawShadowMap:"f32",useShadowMap:"f32",color:"vec4<f32>",lightId:"i32",lightCount:"f32",viewProjectionMatrix0:"mat4x4<f32>",viewProjectionMatrix1:"mat4x4<f32>",projectCenter0:"vec4<f32>",projectCenter1:"vec4<f32>"}},ci={color:[255,255,255],intensity:1},ui=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],hi=[0,0,0,200/255];class LightingEffect{constructor(e={}){this.id="lighting-effect",this.shadowColor=hi,this.shadow=!1,this.directionalLights=[],this.pointLights=[],this.shadowPasses=[],this.dummyShadowMap=null,this.setProps(e)}setup(e){this.context=e;const{device:t,deck:n}=e;this.shadow&&!this.dummyShadowMap&&(this._createShadowPasses(t),n._addDefaultShaderModule(Ai),this.dummyShadowMap=t.createTexture({width:1,height:1}))}setProps(e){this.ambientLight=void 0,this.directionalLights=[],this.pointLights=[];for(const t in e){const n=e[t];switch(n.type){case"ambient":this.ambientLight=n;break;case"directional":this.directionalLights.push(n);break;case"point":this.pointLights.push(n)}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(e=>e.shadow),this.context&&this.setup(this.context),this.props=e}preRender({layers:e,layerFilter:t,viewports:n,onViewportActive:i,views:r}){if(this.shadow){this.shadowMatrices=this._calculateMatrices();for(let o=0;o<this.shadowPasses.length;o++){this.shadowPasses[o].render({layers:e,layerFilter:t,viewports:n,onViewportActive:i,views:r,shaderModuleProps:{shadow:{shadowLightId:o,dummyShadowMap:this.dummyShadowMap,shadowMatrices:this.shadowMatrices}}})}}}getShaderModuleProps(e,t){const n=this.shadow?{project:t.project,shadowMaps:this.shadowPasses.map(e=>e.getShadowMap()),dummyShadowMap:this.dummyShadowMap,shadowColor:this.shadowColor,shadowMatrices:this.shadowMatrices}:{},i={enabled:!0,lights:this._getLights(e)},r=e.props.material;return{shadow:n,lighting:i,phongMaterial:r,gouraudMaterial:r}}cleanup(e){for(const e of this.shadowPasses)e.delete();this.shadowPasses.length=0,this.dummyShadowMap&&(this.dummyShadowMap.destroy(),this.dummyShadowMap=null,e.deck._removeDefaultShaderModule(Ai))}_calculateMatrices(){const e=[];for(const t of this.directionalLights){const n=(new gn.k).lookAt({eye:new Xn.P(t.direction).negate()});e.push(n)}return e}_createShadowPasses(e){for(let t=0;t<this.directionalLights.length;t++){const n=new ShadowPass(e);this.shadowPasses[t]=n}}_applyDefaultLights(){const{ambientLight:e,pointLights:t,directionalLights:n}=this;e||0!==t.length||0!==n.length||(this.ambientLight=new AmbientLight(ci),this.directionalLights.push(new DirectionalLight(ui[0]),new DirectionalLight(ui[1])))}_getLights(e){const t=[];this.ambientLight&&t.push(this.ambientLight);for(const n of this.pointLights)t.push(n.getProjectedLight({layer:e}));for(const n of this.directionalLights)t.push(n.getProjectedLight({layer:e}));return t}}const di=new LightingEffect;class EffectManager{constructor(e){this._resolvedEffects=[],this._defaultEffects=[],this.effects=[],this._context=e,this._needsRedraw="Initial render",this._setEffects([])}addDefaultEffect(e){const t=this._defaultEffects;if(!t.find(t=>t.id===e.id)){const n=t.findIndex(t=>{return n=e,(t.order??1/0)-(n.order??1/0)>0;var n});n<0?t.push(e):t.splice(n,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&((0,$t.b)(e.effects,this.effects,1)||this._setEffects(e.effects))}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._resolvedEffects}_setEffects(e){const t={};for(const e of this.effects)t[e.id]=e;const n=[];for(const i of e){const e=t[i.id];let r=i;e&&e!==i?e.setProps?(e.setProps(i.props),r=e):e.cleanup(this._context):e||i.setup(this._context),n.push(r),delete t[i.id]}for(const e in t)t[e].cleanup(this._context);this.effects=n,this._resolvedEffects=n.concat(this._defaultEffects),e.some(e=>e instanceof LightingEffect)||this._resolvedEffects.push(di),this._needsRedraw="effects changed"}finalize(){for(const e of this._resolvedEffects)e.cleanup(this._context);this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}}class DrawLayersPass extends Zn.A{shouldDrawLayer(e){const{operation:t}=e.props;return t.includes("draw")||t.includes("terrain")}render(e){return this._render(e)}}var fi=n(92189);class DeckRenderer{constructor(e,t={}){this.device=e,this.stats=t.stats,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new DrawLayersPass(e),this.pickLayersPass=new fi.A(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(e){this.layerFilter!==e.layerFilter&&(this.layerFilter=e.layerFilter,this._needsRedraw="layerFilter changed"),this.drawPickingColors!==e.drawPickingColors&&(this.drawPickingColors=e.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(e){if(!e.viewports.length)return;const t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,n={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};n.effects&&this._preRender(n.effects,n);const i=this.lastPostProcessEffect?this.renderBuffers[0]:n.target;this.lastPostProcessEffect&&(n.clearColor=[0,0,0,0],n.clearCanvas=!0);const r=t.render({...n,target:i}),o="stats"in r?r.stats:r;n.effects&&(this.lastPostProcessEffect&&(n.clearCanvas=void 0===e.clearCanvas||e.clearCanvas),this._postRender(n.effects,n)),this.renderCount++,ye("deckRenderer.renderLayers",this,o,e),this._updateStats(o)}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}finalize(){const{renderBuffers:e}=this;for(const t of e)t.delete();e.length=0}_updateStats(e){if(!this.stats)return;let t=0;for(const{visibleCount:n}of e)t+=n;this.stats.get("Layers rendered").addCount(t)}_preRender(e,t){this.lastPostProcessEffect=null,t.preRenderStats=t.preRenderStats||{};for(const n of e)t.preRenderStats[n.id]=n.preRender(t),n.postRender&&(this.lastPostProcessEffect=n.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){const{renderBuffers:e}=this,t=this.device.canvasContext.getDrawingBufferSize(),[n,i]=t;0===e.length&&[0,1].map(t=>{const r=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"},width:n,height:i});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${t}`,colorAttachments:[r]}))});for(const n of e)n.resize(t)}_postRender(e,t){const{renderBuffers:n}=this,i={...t,inputBuffer:n[0],swapBuffer:n[1]};for(const r of e)if(r.postRender){i.target=r.id===this.lastPostProcessEffect?t.target:void 0;const e=r.postRender(i);i.inputBuffer=e,i.swapBuffer=e===n[0]?n[1]:n[0]}}}var pi=n(80698),gi=n(26839);const mi={pickedColor:null,pickedObjectIndex:-1};function _i({pickedColors:e,decodePickingColor:t,deviceX:n,deviceY:i,deviceRadius:r,deviceRect:o}){const{x:s,y:a,width:l,height:A}=o;let c=r*r,u=-1,h=0;for(let t=0;t<A;t++){const r=t+a-i,o=r*r;if(o>c)h+=4*l;else for(let t=0;t<l;t++){if(e[h+3]-1>=0){const e=t+s-n,i=e*e+o;i<=c&&(c=i,u=h)}h+=4}}if(u>=0){const n=e.slice(u,u+4),i=t(n);if(i){const e=Math.floor(u/4/l),t=u/4-e*l;return{...i,pickedColor:n,pickedX:s+t,pickedY:a+e}}_e.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}return mi}function bi({pickedColors:e,decodePickingColor:t}){const n=new Map;if(e)for(let i=0;i<e.length;i+=4){if(e[i+3]-1>=0){const r=e.slice(i,i+4),o=r.join(",");if(!n.has(o)){const e=t(r);e?n.set(o,{...e,color:r}):_e.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(n.values())}function vi({pickInfo:e,viewports:t,pixelRatio:n,x:i,y:r,z:o}){let s,a=t[0];if(t.length>1&&(a=function(e,t){for(let n=e.length-1;n>=0;n--){const i=e[n];if(i.containsPixel(t))return i}return e[0]}(e?.pickedViewports||t,{x:i,y:r})),a){const e=[i-a.x,r-a.y];void 0!==o&&(e[2]=o),s=a.unproject(e)}return{color:null,layer:null,viewport:a,index:-1,picked:!1,x:i,y:r,pixel:[i,r],coordinate:s,devicePixel:e&&"pickedX"in e?[e.pickedX,e.pickedY]:void 0,pixelRatio:n}}function yi(e){const{pickInfo:t,lastPickedInfo:n,mode:i,layers:r}=e,{pickedColor:o,pickedLayer:s,pickedObjectIndex:a}=t,l=s?[s]:[];if("hover"===i){const e=n.index,t=n.layerId,i=s?s.props.id:null;if(i!==t||a!==e){if(i!==t){const e=r.find(e=>e.props.id===t);e&&l.unshift(e)}n.layerId=i,n.index=a,n.info=null}}const A=vi(e),c=new Map;return c.set(null,A),l.forEach(e=>{let t={...A};e===s&&(t.color=o,t.index=a,t.picked=!0),t=Ci({layer:e,info:t,mode:i});const r=t.layer;e===s&&"hover"===i&&(n.info=t),c.set(r.id,t),"hover"===i&&r.updateAutoHighlight(t)}),c}function Ci({layer:e,info:t,mode:n}){for(;e&&t;){const i=t.layer||null;t.sourceLayer=i,t.layer=e,t=e.getPickingInfo({info:t,mode:n,sourceLayer:i}),e=e.parent}return t}class DeckPicker{constructor(e,t={}){this._pickable=!0,this.device=e,this.stats=t.stats,this.pickLayersPass=new fi.A(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.destroy(),this.depthFBO&&this.depthFBO.destroy()}pickObjectAsync(e){return this._pickClosestObjectAsync(e)}pickObjectsAsync(e){return this._pickVisibleObjectsAsync(e)}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:t,layers:n,viewports:i},r=this.lastPickedInfo.info){const o=r&&r.layer&&r.layer.id,s=r&&r.viewport&&r.viewport.id,a=o?n.find(e=>e.id===o):null,l=s&&i.find(e=>e.id===s)||i[0],A=l&&l.unproject([e-l.x,t-l.y]),c={x:e,y:t,viewport:l,coordinate:A,layer:a};return{...r,...c}}_resizeBuffer(e=this.device.getDefaultCanvasContext()){if(!this.pickingFBO){const e=this.device.createTexture({format:"rgba8unorm",width:1,height:1,usage:pi.g.RENDER_ATTACHMENT|pi.g.COPY_SRC});if(this.pickingFBO=this.device.createFramebuffer({colorAttachments:[e],depthStencilAttachment:"depth16unorm"}),this.device.isTextureFormatRenderable("rgba32float")){const e=this.device.createTexture({format:"rgba32float",width:1,height:1,usage:pi.g.RENDER_ATTACHMENT|pi.g.COPY_SRC}),t=this.device.createFramebuffer({colorAttachments:[e],depthStencilAttachment:"depth16unorm"});this.depthFBO=t}}const[t,n]=e.getDrawingBufferSize();this.pickingFBO?.resize({width:t,height:n}),this.depthFBO?.resize({width:t,height:n})}_getPickable(e){if(!1===this._pickable)return null;const t=e.filter(e=>this.pickLayersPass.shouldDrawLayer(e)&&!e.isComposite);return t.length?t:null}async _pickClosestObjectAsync({layers:e,views:t,viewports:n,x:i,y:r,radius:o=0,depth:s=1,mode:a="query",unproject3D:l,canvasContext:A=this.device.getDefaultCanvasContext(),onViewportActive:c,effects:u}){const h=A.cssToDeviceRatio(),d=this._getPickable(e);if(!d||0===n.length)return{result:[],emptyInfo:vi({viewports:n,x:i,y:r,pixelRatio:h})};this._resizeBuffer(A);const f=A.cssToDevicePixels([i,r],!0),p=[f.x+Math.floor(f.width/2),f.y+Math.floor(f.height/2)],g=Math.round(o*h),{width:m,height:_}=this.pickingFBO,b=this._getPickingRect({deviceX:p[0],deviceY:p[1],deviceRadius:g,deviceWidth:m,deviceHeight:_}),v={x:i-o,y:r-o,width:2*o+1,height:2*o+1};let y;const C=[],w=new Set;for(let e=0;e<s;e++){let o,A;if(b){o=_i({...await this._drawAndSampleAsync({layers:d,views:t,viewports:n,onViewportActive:c,deviceRect:b,cullRect:v,effects:u,pass:`picking:${a}`}),deviceX:p[0],deviceY:p[1],deviceRadius:g,deviceRect:b})}else o={pickedColor:null,pickedObjectIndex:-1};const f=this._getDepthLayers(o,d,l);if(f.length>0){const{pickedColors:e}=await this._drawAndSampleAsync({layers:f,views:t,viewports:n,onViewportActive:c,deviceRect:{x:o.pickedX??p[0],y:o.pickedY??p[1],width:1,height:1},cullRect:v,effects:u,pass:`picking:${a}:z`},!0);e[3]&&(A=e[0])}o.pickedLayer&&e+1<s&&(w.add(o.pickedLayer),o.pickedLayer.disablePickingIndex(o.pickedObjectIndex)),y=yi({pickInfo:o,lastPickedInfo:this.lastPickedInfo,mode:a,layers:d,viewports:n,x:i,y:r,z:A,pixelRatio:h});for(const e of y.values())e.layer&&C.push(e);if(!o.pickedColor)break}for(const e of w)e.restorePickingColors();return{result:C,emptyInfo:y.get(null)}}_pickClosestObject({layers:e,views:t,viewports:n,x:i,y:r,radius:o=0,depth:s=1,mode:a="query",unproject3D:l,canvasContext:A=this.device.getDefaultCanvasContext(),onViewportActive:c,effects:u}){const h=A.cssToDeviceRatio(),d=this._getPickable(e);if(!d||0===n.length)return{result:[],emptyInfo:vi({viewports:n,x:i,y:r,pixelRatio:h})};this._resizeBuffer(A);const f=A.cssToDevicePixels([i,r],!0),p=[f.x+Math.floor(f.width/2),f.y+Math.floor(f.height/2)],g=Math.round(o*h),{width:m,height:_}=this.pickingFBO,b=this._getPickingRect({deviceX:p[0],deviceY:p[1],deviceRadius:g,deviceWidth:m,deviceHeight:_}),v={x:i-o,y:r-o,width:2*o+1,height:2*o+1};let y;const C=[],w=new Set;for(let e=0;e<s;e++){let o,A;if(b){o=_i({...this._drawAndSample({layers:d,views:t,viewports:n,onViewportActive:c,deviceRect:b,cullRect:v,effects:u,pass:`picking:${a}`}),deviceX:p[0],deviceY:p[1],deviceRadius:g,deviceRect:b})}else o={pickedColor:null,pickedObjectIndex:-1};const f=this._getDepthLayers(o,d,l);if(f.length>0){const{pickedColors:e}=this._drawAndSample({layers:f,views:t,viewports:n,onViewportActive:c,deviceRect:{x:o.pickedX??p[0],y:o.pickedY??p[1],width:1,height:1},cullRect:v,effects:u,pass:`picking:${a}:z`},!0);e[3]&&(A=e[0])}o.pickedLayer&&e+1<s&&(w.add(o.pickedLayer),o.pickedLayer.disablePickingIndex(o.pickedObjectIndex)),y=yi({pickInfo:o,lastPickedInfo:this.lastPickedInfo,mode:a,layers:d,viewports:n,x:i,y:r,z:A,pixelRatio:h});for(const e of y.values())e.layer&&C.push(e);if(!o.pickedColor)break}for(const e of w)e.restorePickingColors();return{result:C,emptyInfo:y.get(null)}}async _pickVisibleObjectsAsync({layers:e,views:t,viewports:n,x:i,y:r,width:o=1,height:s=1,mode:a="query",maxObjects:l=null,canvasContext:A=this.device.getDefaultCanvasContext(),onViewportActive:c,effects:u}){const h=this._getPickable(e);if(!h||0===n.length)return[];this._resizeBuffer(A);const d=A.cssToDeviceRatio(),f=A.cssToDevicePixels([i,r],!0),p=f.x,g=f.y+f.height,m=A.cssToDevicePixels([i+o,r+s],!0),_=m.x+m.width,b=m.y,v={x:p,y:b,width:_-p,height:g-b},y=bi(await this._drawAndSampleAsync({layers:h,views:t,viewports:n,onViewportActive:c,deviceRect:v,cullRect:{x:i,y:r,width:o,height:s},effects:u,pass:`picking:${a}`})),C=new Map,w=[],E=Number.isFinite(l);for(let e=0;e<y.length&&!(E&&w.length>=l);e++){const t=y[e];let n={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:i,y:r,pixelRatio:d};n=Ci({layer:t.pickedLayer,info:n,mode:a});const o=n.layer.id;C.has(o)||C.set(o,new Set);const s=C.get(o),l=n.object??n.index;s.has(l)||(s.add(l),w.push(n))}return w}_pickVisibleObjects({layers:e,views:t,viewports:n,x:i,y:r,width:o=1,height:s=1,mode:a="query",maxObjects:l=null,canvasContext:A=this.device.getDefaultCanvasContext(),onViewportActive:c,effects:u}){const h=this._getPickable(e);if(!h||0===n.length)return[];this._resizeBuffer(A);const d=A.cssToDeviceRatio(),f=A.cssToDevicePixels([i,r],!0),p=f.x,g=f.y+f.height,m=A.cssToDevicePixels([i+o,r+s],!0),_=m.x+m.width,b=m.y,v={x:p,y:b,width:_-p,height:g-b},y=bi(this._drawAndSample({layers:h,views:t,viewports:n,onViewportActive:c,deviceRect:v,cullRect:{x:i,y:r,width:o,height:s},effects:u,pass:`picking:${a}`})),C=new Map,w=[],E=Number.isFinite(l);for(let e=0;e<y.length&&!(E&&w.length>=l);e++){const t=y[e];let n={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:i,y:r,pixelRatio:d};n=Ci({layer:t.pickedLayer,info:n,mode:a});const o=n.layer.id;C.has(o)||C.set(o,new Set);const s=C.get(o),l=n.object??n.index;s.has(l)||(s.add(l),w.push(n))}return w}async _drawAndSampleAsync({layers:e,views:t,viewports:n,onViewportActive:i,deviceRect:r,cullRect:o,effects:s,pass:a},l=!1){const A=l?this.depthFBO:this.pickingFBO,c={layers:e,layerFilter:this.layerFilter,views:t,viewports:n,onViewportActive:i,pickingFBO:A,deviceRect:r,cullRect:o,effects:s,pass:a,pickZ:l,preRenderStats:{},isPicking:!0};for(const e of s)e.useInPicking&&(c.preRenderStats[e.id]=e.preRender(c));const{decodePickingColor:u,stats:h}=this.pickLayersPass.render(c);this._updateStats(h);const{x:d,y:f,width:p,height:g}=r,m=A.colorAttachments[0]?.texture;if(!m)throw new Error("Picking framebuffer color attachment is missing");const _=await this._readTextureDataAsync(m,{x:d,y:f,width:p,height:g},l?Float32Array:Uint8Array);if(!l){let e=!1;for(let t=3;t<_.length;t+=4)if(0!==_[t]){e=!0;break}!e&&_.length>0&&_e.A.warn("Async pick readback returned only zero alpha values",{deviceRect:r,bytes:Array.from(_.subarray(0,Math.min(_.length,16)))})()}return{pickedColors:_,decodePickingColor:u}}async _readTextureDataAsync(e,t,n){const{width:i,height:r}=t,o=e.computeMemoryLayout(t),s=this.device.createBuffer({byteLength:o.byteLength,usage:gi.h.COPY_DST|gi.h.MAP_READ});try{e.readBuffer(t,s);const a=await s.readAsync(0,o.byteLength),l=n.BYTES_PER_ELEMENT;if(o.bytesPerRow%l!==0)throw new Error(`Texture readback row stride ${o.bytesPerRow} is not aligned to ${l}-byte elements.`);const A=new n(a.buffer,a.byteOffset,o.byteLength/l),c=4*i,u=o.bytesPerRow/l;if(u<c)throw new Error(`Texture readback row stride ${u} is smaller than packed row length ${c}.`);const h=new n(i*r*4);for(let e=0;e<r;e++){const t=e*u;h.set(A.subarray(t,t+c),e*c)}return h}finally{s.destroy()}}_drawAndSample({layers:e,views:t,viewports:n,onViewportActive:i,deviceRect:r,cullRect:o,effects:s,pass:a},l=!1){const A=l?this.depthFBO:this.pickingFBO,c={layers:e,layerFilter:this.layerFilter,views:t,viewports:n,onViewportActive:i,pickingFBO:A,deviceRect:r,cullRect:o,effects:s,pass:a,pickZ:l,preRenderStats:{},isPicking:!0};for(const e of s)e.useInPicking&&(c.preRenderStats[e.id]=e.preRender(c));const{decodePickingColor:u,stats:h}=this.pickLayersPass.render(c);this._updateStats(h);const{x:d,y:f,width:p,height:g}=r,m=new(l?Float32Array:Uint8Array)(p*g*4);return this.device.readPixelsToArrayWebGL(A,{sourceX:d,sourceY:f,sourceWidth:p,sourceHeight:g,target:m}),{pickedColors:m,decodePickingColor:u}}_updateStats(e){if(!this.stats)return;let t=0;for(const{visibleCount:n}of e)t+=n;this.stats.get("Layers picked").addCount(t)}_getDepthLayers(e,t,n){if(!n||!this.depthFBO)return[];const{pickedLayer:i}=e;return i&&!("drape"===i?.state?.terrainDrawMode)?[i]:t.filter(e=>e.props.operation.includes("terrain"))}_getPickingRect({deviceX:e,deviceY:t,deviceRadius:n,deviceWidth:i,deviceHeight:r}){const o=Math.max(0,e-n),s=Math.max(0,t-n),a=Math.min(i,e+n+1)-o,l=Math.min(r,t+n+1)-s;return a<=0||l<=0?null:{x:o,y:s,width:a,height:l}}}const wi={"top-left":{top:0,left:0},"top-right":{top:0,right:0},"bottom-left":{bottom:0,left:0},"bottom-right":{bottom:0,right:0},fill:{top:0,left:0,bottom:0,right:0}},Ei="top-left",xi="root";class WidgetManager{constructor({deck:e,parentElement:t}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,t?.classList.add("deck-widget-container"),this.parentElement=t}getWidgets(){return this.resolvedWidgets}setProps(e){if(e.widgets&&!(0,$t.b)(e.widgets,this.widgets,1)){const t=e.widgets.filter(Boolean);this._setWidgets(t)}}finalize(){for(const e of this.getWidgets())this._removeWidget(e);this.defaultWidgets.length=0,this.resolvedWidgets.length=0;for(const e in this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(t=>t.id===e.id)||(this._addWidget(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}onRedraw({viewports:e,layers:t}){const n=e.reduce((e,t)=>(e[t.id]=t,e),{});for(const i of this.getWidgets()){const{viewId:r}=i;if(r){const e=n[r];e&&(i.onViewportChange&&i.onViewportChange(e),i.onRedraw?.({viewports:[e],layers:t}))}else{if(i.onViewportChange)for(const t of e)i.onViewportChange(t);i.onRedraw?.({viewports:e,layers:t})}}this.lastViewports=n,this._updateContainers()}onHover(e,t){for(const n of this.getWidgets()){const{viewId:i}=n;i&&i!==e.viewport?.id||n.onHover?.(e,t)}}onEvent(e,t){const n=mn.tg[t.type];if(n)for(const i of this.getWidgets()){const{viewId:r}=i;r&&r!==e.viewport?.id||i[n]?.(e,t)}}_setWidgets(e){const t={};for(const e of this.resolvedWidgets)t[e.id]=e;this.resolvedWidgets.length=0;for(const e of this.defaultWidgets)t[e.id]=null,this.resolvedWidgets.push(e);for(let n of e){const e=t[n.id];e?e.viewId!==n.viewId||e.placement!==n.placement?(this._removeWidget(e),this._addWidget(n)):n!==e&&(e.setProps(n.props),n=e):this._addWidget(n),t[n.id]=null,this.resolvedWidgets.push(n)}for(const e in t){const n=t[e];n&&this._removeWidget(n)}this.widgets=e}_addWidget(e){const{viewId:t=null,placement:n=Ei}=e,i=e.props._container??t;e.widgetManager=this,e.deck=this.deck,e.rootElement=e._onAdd({deck:this.deck,viewId:t}),e.rootElement&&this._getContainer(i,n).append(e.rootElement),e.updateHTML()}_removeWidget(e){e.onRemove?.(),e.rootElement&&e.rootElement.remove(),e.rootElement=void 0,e.deck=void 0,e.widgetManager=void 0}_getContainer(e,t){if(e&&"string"!=typeof e)return e;const n=e||xi;let i=this.containers[n];i||(i=document.createElement("div"),i.style.pointerEvents="none",i.style.position="absolute",i.style.overflow="hidden",this.parentElement?.append(i),this.containers[n]=i);let r=i.querySelector(`.${t}`);return r||(r=globalThis.document.createElement("div"),r.className=t,r.style.position="absolute",r.style.zIndex="2",Object.assign(r.style,wi[t]),i.append(r)),r}_updateContainers(){const e=this.deck.width,t=this.deck.height;for(const n in this.containers){const i=this.lastViewports[n]||null,r=n===xi||i,o=this.containers[n];r?(o.style.display="block",o.style.left=`${i?i.x:0}px`,o.style.top=`${i?i.y:0}px`,o.style.width=`${i?i.width:e}px`,o.style.height=`${i?i.height:t}px`):o.style.display="none"}}}function Ti(e,t){t&&Object.entries(t).map(([t,n])=>{t.startsWith("--")?e.style.setProperty(t,n):e.style[t]=n})}class Widget{constructor(e){this.viewId=null,this.props={...this.constructor.defaultProps,...e},this.id=this.props.id}setProps(e){const t=this.props,n=this.rootElement;var i,r;n&&t.className!==e.className&&(t.className&&n.classList.remove(t.className),e.className&&n.classList.add(e.className)),n&&!(0,$t.b)(t.style,e.style,1)&&(i=n,(r=t.style)&&Object.keys(r).map(e=>{e.startsWith("--")?i.style.removeProperty(e):i.style[e]=""}),Ti(n,e.style)),Object.assign(this.props,e),this.updateHTML()}updateHTML(){this.rootElement&&this.onRenderHTML(this.rootElement)}get viewIds(){return this.viewId?[this.viewId]:this.deck?.getViews().map(e=>e.id)??[]}getViewState(e){return this.deck?.viewManager?.getViewState(e)||{}}setViewState(e,t){this.deck?._onViewStateChange({viewId:e,viewState:t,interactionState:{}})}onCreateRootElement(){const e=["deck-widget",this.className,this.props.className],t=document.createElement("div");return e.filter(e=>"string"==typeof e&&e.length>0).forEach(e=>t.classList.add(e)),Ti(t,this.props.style),t}_onAdd(e){return this.onAdd(e)??this.onCreateRootElement()}onAdd(e){}onRemove(){}onViewportChange(e){}onRedraw(e){}onHover(e,t){}onClick(e,t){}onDrag(e,t){}onDragStart(e,t){}onDragEnd(e,t){}}Widget.defaultProps={id:"widget",style:{},_container:null,className:""};const Si={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class TooltipWidget extends Widget{constructor(e={}){super(e),this.id="default-tooltip",this.placement="fill",this.className="deck-tooltip",this.isVisible=!1,this.setProps(e)}onCreateRootElement(){const e=document.createElement("div");return e.className=this.className,Object.assign(e.style,Si),e}onRenderHTML(e){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&!e.equals(this.lastViewport)&&this.setTooltip(null),this.lastViewport=e}onHover(e){const{deck:t}=this,n=t&&t.props.getTooltip;if(!n)return;const i=n(e);this.setTooltip(i,e.x,e.y)}setTooltip(e,t,n){const i=this.rootElement;if(i){if("string"==typeof e)i.innerText=e;else{if(!e)return this.isVisible=!1,void(i.style.display="none");e.text&&(i.innerText=e.text),e.html&&(i.innerHTML=e.html),e.className&&(i.className=e.className)}this.isVisible=!0,i.style.display="block",i.style.transform=`translate(${t}px, ${n}px)`,e&&"object"==typeof e&&"style"in e&&Object.assign(i.style,e.style)}}}TooltipWidget.defaultProps={...Widget.defaultProps};var Pi=n(23459),Mi=n(83909),Ri=n(76028),Bi=n(29651);const Ii="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.";class Luma{static defaultProps={...Mi.pF.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0};stats=Ri.d;log=Bi.R;VERSION="9.3.6";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw Bi.R.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),Bi.R.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");Bi.R.error("This version of luma.gl has already been initialized")()}Bi.R.log(1,`${this.VERSION} - set luma.log.level=1 (or higher) to trace rendering`)(),globalThis.luma=this}async createDevice(e={}){const t={...Luma.defaultProps,...e},n=this.selectAdapter(t.type,t.adapters);if(!n)throw new Error(Ii);return t.waitForPageLoad&&await n.pageLoaded,await n.create(t)}async attachDevice(e,t){const n=this._getTypeFromHandle(e,t.adapters),i=n&&this.selectAdapter(n,t.adapters);if(!i)throw new Error(Ii);return await(i?.attach?.(e,t))}registerAdapters(e){for(const t of e)this.preregisteredAdapters.set(t.type,t)}getSupportedAdapters(e=[]){const t=this._getAdapterMap(e);return Array.from(t).map(([,e])=>e).filter(e=>e.isSupported?.()).map(e=>e.type)}getBestAvailableAdapterType(e=[]){const t=["webgpu","webgl","null"],n=this._getAdapterMap(e);for(const e of t)if(n.get(e)?.isSupported?.())return e;return null}selectAdapter(e,t=[]){let n=e;"best-available"===e&&(n=this.getBestAvailableAdapterType(t));const i=this._getAdapterMap(t);return n&&i.get(n)||null}enforceWebGL2(e=!0,t=[]){const n=this._getAdapterMap(t).get("webgl");n||Bi.R.warn("enforceWebGL2: webgl adapter not found")(),n?.enforceWebGL2?.(e)}setDefaultDeviceProps(e){Object.assign(Luma.defaultProps,e)}_getAdapterMap(e=[]){const t=new Map(this.preregisteredAdapters);for(const n of e)t.set(n.type,n);return t}_getTypeFromHandle(e,t=[]){return e instanceof WebGL2RenderingContext?"webgl":"undefined"!=typeof GPUDevice&&e instanceof GPUDevice||e?.queue?"webgpu":null===e?"null":(e instanceof WebGLRenderingContext?Bi.R.warn("WebGL1 is not supported",e)():Bi.R.warn("Unknown handle type",e)(),null)}}const Li=new Luma;var Fi=n(16769);class Adapter{get pageLoaded(){return function(){Oi||(Oi=Di&&"complete"===document.readyState||"undefined"==typeof window?Promise.resolve():new Promise(e=>window.addEventListener("load",()=>e())));return Oi}()}}const Di=(0,Fi.B)()&&"undefined"!=typeof document;let Oi=null;const Ni={WEBGL_depth_texture:{UNSIGNED_INT_24_8_WEBGL:34042},OES_element_index_uint:{},OES_texture_float:{},OES_texture_half_float:{HALF_FLOAT_OES:5131},EXT_color_buffer_float:{},OES_standard_derivatives:{FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723},EXT_frag_depth:{},EXT_blend_minmax:{MIN_EXT:32775,MAX_EXT:32776},EXT_shader_texture_lod:{}},ki=e=>({drawBuffersWEBGL:t=>e.drawBuffers(t),COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067}),Ui=e=>({VERTEX_ARRAY_BINDING_OES:34229,createVertexArrayOES:()=>e.createVertexArray(),deleteVertexArrayOES:t=>e.deleteVertexArray(t),isVertexArrayOES:t=>e.isVertexArray(t),bindVertexArrayOES:t=>e.bindVertexArray(t)}),Gi=e=>({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,drawArraysInstancedANGLE:(...t)=>e.drawArraysInstanced(...t),drawElementsInstancedANGLE:(...t)=>e.drawElementsInstanced(...t),vertexAttribDivisorANGLE:(...t)=>e.vertexAttribDivisor(...t)});function Vi(e=!0){const t=HTMLCanvasElement.prototype;if(!e&&t.originalGetContext)return t.getContext=t.originalGetContext,void(t.originalGetContext=void 0);t.originalGetContext=t.getContext,t.getContext=function(e,t){if("webgl"===e||"experimental-webgl"===e){const e=this.originalGetContext("webgl2",t);return e instanceof HTMLElement&&function(e){e.getExtension("EXT_color_buffer_float");const t={...Ni,WEBGL_disjoint_timer_query:e.getExtension("EXT_disjoint_timer_query_webgl2"),WEBGL_draw_buffers:ki(e),OES_vertex_array_object:Ui(e),ANGLE_instanced_arrays:Gi(e)},n=e.getExtension;e.getExtension=function(i){const r=n.call(e,i);return r||(i in t?t[i]:null)};const i=e.getSupportedExtensions;e.getSupportedExtensions=function(){const n=i.apply(e)||[];return n?.concat(Object.keys(t))}}(e),e}return this.originalGetContext(e,t)}}var zi=n(25299),Hi=n(89869);const Wi=new class WebGLAdapter extends Adapter{type="webgl";constructor(){super(),Mi.pF.defaultProps={...Mi.pF.defaultProps,...zi.ic}}enforceWebGL2(e){Vi(e)}isSupported(){return"undefined"!=typeof WebGL2RenderingContext}isDeviceHandle(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||("undefined"!=typeof WebGLRenderingContext&&e instanceof WebGLRenderingContext&&Bi.R.warn("WebGL1 is not supported",e)(),!1)}async attach(e,t={}){const{WebGLDevice:i}=await Promise.resolve().then(n.bind(n,62738));if(e instanceof i)return e;const r=i.getDeviceFromContext(e);if(r)return r;if(!function(e){if("undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext)return!0;return Boolean(e&&"function"==typeof e.createVertexArray)}(e))throw new Error("Invalid WebGL2RenderingContext");const o=!0===t.createCanvasContext?{}:t.createCanvasContext;return new i({...t,_handle:e,createCanvasContext:{canvas:e.canvas,autoResize:!1,...o}})}async create(e={}){const{WebGLDevice:t}=await Promise.resolve().then(n.bind(n,62738)),i=[];(e.debugWebGL||e.debug)&&i.push((0,Hi.$)()),e.debugSpectorJS&&i.push((0,zi._G)(e));const r=await Promise.allSettled(i);for(const e of r)"rejected"===e.status&&Bi.R.error(`Failed to initialize debug libraries ${e.reason}`)();try{const n=new t(e);Bi.R.groupCollapsed(1,`WebGLDevice ${n.id} created`)();const i=`${n._reused?"Reusing":"Created"} device with WebGL2 ${n.props.debug?"debug ":""}context: ${n.info.vendor}, ${n.info.renderer} for canvas: ${n.canvasContext.id}`;return Bi.R.probe(1,i)(),Bi.R.table(1,n.info)(),n}finally{Bi.R.groupEnd(1)(),Bi.R.info(1,"%cWebGL call tracing: luma.log.set('debug-webgl') ","color: white; background: blue; padding: 2px 6px; border-radius: 3px;")()}}};let ji=0;class AnimationLoop{static defaultAnimationLoopProps={device:null,onAddHTML:()=>"",onInitialize:async()=>null,onRender:()=>{},onFinalize:()=>{},onError:e=>console.error(e),stats:void 0,autoResizeViewport:!1};device=null;canvas=null;props;animationProps=null;timeline=null;stats;sharedStats;cpuTime;gpuTime;frameRate;display;_needsRedraw="initialized";_initialized=!1;_running=!1;_animationFrameId=null;_nextFramePromise=null;_resolveNextFrame=null;_cpuStartTime=0;_error=null;_lastFrameTime=0;constructor(e){if(this.props={...AnimationLoop.defaultAnimationLoopProps,...e},!(e=this.props).device)throw new Error("No device provided");this.stats=e.stats||new Ke.A({id:"animation-loop-"+ji++}),this.sharedStats=Li.stats.get("Animation Loop"),this.frameRate=this.stats.get("Frame Rate"),this.frameRate.setSampleSize(1),this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.setProps({autoResizeViewport:e.autoResizeViewport}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}destroy(){this.stop(),this._setDisplay(null),this.device?._disableDebugGPUTime()}delete(){this.destroy()}reportError(e){this.props.onError(e),this._error=e}setNeedsRedraw(e){return this._needsRedraw=this._needsRedraw||e,this}needsRedraw(){const e=this._needsRedraw;return this._needsRedraw=!1,e}setProps(e){return"autoResizeViewport"in e&&(this.props.autoResizeViewport=e.autoResizeViewport||!1),this}async start(){if(this._running)return this;this._running=!0;try{let e;if(!this._initialized){if(this._initialized=!0,await this._initDevice(),this._initialize(),!this._running)return null;await this.props.onInitialize(this._getAnimationProps())}return this._running?(!1!==e&&(this._cancelAnimationFrame(),this._requestAnimationFrame()),this):null}catch(e){const t=e instanceof Error?e:new Error("Unknown error");throw this.props.onError(t),t}}stop(){return this._running&&(this.animationProps&&!this._error&&this.props.onFinalize(this.animationProps),this._cancelAnimationFrame(),this._nextFramePromise=null,this._resolveNextFrame=null,this._running=!1,this._lastFrameTime=0),this}redraw(e){return this.device?.isLost||this._error||(this._beginFrameTimers(e),this._setupFrame(),this._updateAnimationProps(),this._renderFrame(this._getAnimationProps()),this._clearNeedsRedraw(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endFrameTimers()),this}attachTimeline(e){return this.timeline=e,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise(e=>{this._resolveNextFrame=e})),this._nextFramePromise}async toDataURL(){if(this.setNeedsRedraw("toDataURL"),await this.waitForRender(),this.canvas instanceof HTMLCanvasElement)return this.canvas.toDataURL();throw new Error("OffscreenCanvas")}_initialize(){this._startEventHandling(),this._initializeAnimationProps(),this._updateAnimationProps(),this._resizeViewport(),this.device?._enableDebugGPUTime()}_setDisplay(e){this.display&&(this.display.destroy(),this.display.animationLoop=null),e&&(e.animationLoop=this),this.display=e}_requestAnimationFrame(){this._running&&(this._animationFrameId=function(e){const t="undefined"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame:null;return t?t.call(window,e):setTimeout(()=>e("undefined"!=typeof performance?performance.now():Date.now()),1e3/60)}(this._animationFrame.bind(this)))}_cancelAnimationFrame(){null!==this._animationFrameId&&(!function(e){const t="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame:null;t?t.call(window,e):clearTimeout(e)}(this._animationFrameId),this._animationFrameId=null)}_animationFrame(e){this._running&&(this.redraw(e),this._requestAnimationFrame())}_renderFrame(e){this.display?this.display._renderFrame(e):(this.props.onRender(this._getAnimationProps()),this.device?.submit())}_clearNeedsRedraw(){this._needsRedraw=!1}_setupFrame(){this._resizeViewport()}_initializeAnimationProps(){const e=this.device?.getDefaultCanvasContext();if(!this.device||!e)throw new Error("loop");const t=e?.canvas,n=e.props.useDevicePixels;this.animationProps={animationLoop:this,device:this.device,canvasContext:e,canvas:t,useDevicePixels:n,timeline:this.timeline,needsRedraw:!1,width:1,height:1,aspect:1,time:0,startTime:Date.now(),engineTime:0,tick:0,tock:0,_mousePosition:null}}_getAnimationProps(){if(!this.animationProps)throw new Error("animationProps");return this.animationProps}_updateAnimationProps(){if(!this.animationProps)return;const{width:e,height:t,aspect:n}=this._getSizeAndAspect();e===this.animationProps.width&&t===this.animationProps.height||this.setNeedsRedraw("drawing buffer resized"),n!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=e,this.animationProps.height=t,this.animationProps.aspect=n,this.animationProps.needsRedraw=this._needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime}async _initDevice(){if(this.device=await this.props.device,!this.device)throw new Error("No device provided");this.canvas=this.device.getDefaultCanvasContext().canvas||null}_createInfoDiv(){if(this.canvas&&this.props.onAddHTML){const e=document.createElement("div");document.body.appendChild(e),e.style.position="relative";const t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",this.canvas instanceof HTMLCanvasElement&&e.appendChild(this.canvas),e.appendChild(t);const n=this.props.onAddHTML(t);n&&(t.innerHTML=n)}}_getSizeAndAspect(){if(!this.device)return{width:1,height:1,aspect:1};const[e,t]=this.device.getDefaultCanvasContext().getDrawingBufferSize();return{width:e,height:t,aspect:e>0&&t>0?e/t:1}}_resizeViewport(){this.props.autoResizeViewport&&this.device.gl&&this.device.gl.viewport(0,0,this.device.gl.drawingBufferWidth,this.device.gl.drawingBufferHeight)}_beginFrameTimers(e){const t=e??("undefined"!=typeof performance?performance.now():Date.now());if(this._lastFrameTime){const e=t-this._lastFrameTime;e>0&&this.frameRate.addTime(e)}this._lastFrameTime=t,this.device?._isDebugGPUTimeEnabled()&&this._consumeEncodedGpuTime(),this.cpuTime.timeStart()}_endFrameTimers(){this.device?._isDebugGPUTimeEnabled()&&this._consumeEncodedGpuTime(),this.cpuTime.timeEnd(),this._updateSharedStats()}_consumeEncodedGpuTime(){if(!this.device)return;const e=this.device.commandEncoder._gpuTimeMs;void 0!==e&&(this.gpuTime.addTime(e),this.device.commandEncoder._gpuTimeMs=void 0)}_updateSharedStats(){if(this.stats!==this.sharedStats){for(const e of Object.keys(this.sharedStats.stats))this.stats.stats[e]||delete this.sharedStats.stats[e];this.stats.forEach(e=>{const t=this.sharedStats.get(e.name,e.type);t.sampleSize=e.sampleSize,t.time=e.time,t.count=e.count,t.samples=e.samples,t.lastTiming=e.lastTiming,t.lastSampleTime=e.lastSampleTime,t.lastSampleCount=e.lastSampleCount,t._count=e._count,t._time=e._time,t._samples=e._samples,t._startTime=e._startTime,t._timerPending=e._timerPending})}}_startEventHandling(){this.canvas&&(this.canvas.addEventListener("mousemove",this._onMousemove.bind(this)),this.canvas.addEventListener("mouseleave",this._onMouseleave.bind(this)))}_onMousemove(e){e instanceof MouseEvent&&(this._getAnimationProps()._mousePosition=[e.offsetX,e.offsetY])}_onMouseleave(e){this._getAnimationProps()._mousePosition=null}}var Qi=n(74647);function Xi(){}const Ki={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,pickAsync:"auto",layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{},gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:Xi,onWebGLInitialized:Xi,onResize:Xi,onViewStateChange:Xi,onInteractionStateChange:Xi,onBeforeRender:Xi,onAfterRender:Xi,onLoad:Xi,onError:e=>_e.A.error(e.message,e.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:({isDragging:e})=>e?"grabbing":"grab",getTooltip:null,debug:!1,drawPickingColors:!1};class Deck{constructor(e){this.width=0,this.height=0,this.userData={},this.device=null,this.canvas=null,this.viewManager=null,this.layerManager=null,this.effectManager=null,this.deckRenderer=null,this.deckPicker=null,this.eventManager=null,this.widgetManager=null,this.tooltip=null,this.animationLoop=null,this._canvasContext=null,this._deviceResizeHandler=null,this.cursorState={isHovering:!1,isDragging:!1},this.stats=new Ke.A({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,layersCount:0,drawLayersCount:0,updateLayersCount:0,updateAttributesCount:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,pickLayersCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this._hoverPickSequence=0,this._pointerDownPickSequence=0,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null,unproject3D:!1},this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=null,this._onPointerMove=e=>{const{_pickRequest:t}=this;if("pointerleave"===e.type)t.x=-1,t.y=-1,t.radius=0;else{if(e.leftButton||e.rightButton)return;{const n=e.offsetCenter;if(!n)return;t.x=n.x,t.y=n.y,t.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:t.x,y:t.y}),t.event=e},this._onEvent=e=>{const t=mn.tg[e.type],n=e.offsetCenter;if(!t||!n||!this.layerManager)return;const i=this.layerManager.getLayers(),r=this._getInternalPickingMode();if(!r)return;if("sync"===r){const t="click"===e.type&&this._shouldUnproject3D(i)?this._getFirstPickedInfo(this._pickPointSync(this._getPointPickOptions(n.x,n.y,{unproject3D:!0},i))):this._getLastPointerDownPickingInfo(n.x,n.y,i);return void this._dispatchPickingEvent(t,e)}(this._lastPointerDownInfoPromise||Promise.resolve(this._getLastPointerDownPickingInfo(n.x,n.y,i))).then(t=>{this._dispatchPickingEvent(t,e)}).catch(e=>this.props.onError?.(e))},this._onPointerDown=e=>{const t=e.offsetCenter;if(!t)return;const n=this._getInternalPickingMode();if(!n)return;const i=this.layerManager?.getLayers()||[],r=++this._pointerDownPickSequence;if("sync"===n){const e=this._pickPointSync({x:t.x,y:t.y,radius:this.props.pickingRadius}),n=this._getFirstPickedInfo(e);return this._lastPointerDownInfo=n,void(this._lastPointerDownInfoPromise=Promise.resolve(n))}const o=this._pickPointAsync(this._getPointPickOptions(t.x,t.y,{},i)).then(e=>this._getFirstPickedInfo(e)).then(e=>(r===this._pointerDownPickSequence&&(this._lastPointerDownInfo=e),e)).catch(e=>{this.props.onError?.(e);const n=this.deckPicker&&this.viewManager?this._getLastPointerDownPickingInfo(t.x,t.y,i):{};return r===this._pointerDownPickSequence&&(this._lastPointerDownInfo=n),n});this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=o};const t=e;this.props={...Ki,...e},(e=this.props).viewState&&e.initialViewState&&_e.A.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),this.viewState=this.props.initialViewState,e.device&&(this.device=e.device,this._setDeviceCanvasContext(e.device));let n=this.device;!n&&e.gl&&(e.gl instanceof WebGLRenderingContext&&_e.A.error("WebGL1 context not supported.")(),n=Wi.attach(e.gl,{_cacheShaders:!0,_cachePipelines:!0,...this.props.deviceProps})),n||(n=this._createDevice(e)),this.animationLoop=this._createAnimationLoop(n,e),this.setProps(t),e._typedArrayManagerProps&&Pi.A.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}finalize(){this._restoreDeviceResizeHandler(),this.animationLoop?.stop(),this.animationLoop?.destroy(),this.animationLoop=null,this._hoverPickSequence++,this._pointerDownPickSequence++,this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=null,this.layerManager?.finalize(),this.layerManager=null,this.viewManager?.finalize(),this.viewManager=null,this.effectManager?.finalize(),this.effectManager=null,this.deckRenderer?.finalize(),this.deckRenderer=null,this.deckPicker?.finalize(),this.deckPicker=null,this.eventManager?.destroy(),this.eventManager=null,this.widgetManager?.finalize(),this.widgetManager=null,this.props.canvas||this.props.device||this.props.gl||!this.canvas||(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null),this._canvasContext=null}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&_e.A.removed("onLayerHover","onHover")(),"onLayerClick"in e&&_e.A.removed("onLayerClick","onClick")(),e.initialViewState&&!(0,$t.b)(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),Object.assign(this.props,e),this._validateInternalPickingMode(),this._setCanvasSize(this.props);const t=Object.create(this.props);if(Object.assign(t,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),e.device&&e.device.id!==this.device?.id){const t=e.device.getDefaultCanvasContext();this.animationLoop?.stop(),this.canvas!==t.canvas&&(this.canvas?.remove(),this.eventManager?.destroy(),this.canvas=null),this._setDeviceCanvasContext(e.device),_e.A.log(`recreating animation loop for new device! id=${e.device.id}`)(),this.animationLoop=this._createAnimationLoop(e.device,e),this.animationLoop.start()}this.animationLoop?.setProps(t),void 0!==e.useDevicePixels&&this._canvasContext?.setProps&&this._canvasContext.setProps({useDevicePixels:e.useDevicePixels}),this.layerManager&&(this.viewManager.setProps(t),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(t),this.effectManager.setProps(t),this.deckRenderer.setProps(t),this.deckPicker.setProps(t),this.widgetManager.setProps(t)),this.stats.get("setProps Time").timeEnd()}needsRedraw(e={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);const n=this.viewManager.needsRedraw(e),i=this.layerManager.needsRedraw(e),r=this.effectManager.needsRedraw(e),o=this.deckRenderer.needsRedraw(e);return t=t||n||i||r||o,t}redraw(e){if(!this.layerManager)return;let t=this.needsRedraw({clearRedrawFlags:!0});t=e||t,t&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}get isInitialized(){return null!==this.viewManager}getViews(){return pn(this.viewManager),this.viewManager.views}getView(e){return pn(this.viewManager),this.viewManager.getView(e)}getViewports(e){return pn(this.viewManager),this.viewManager.getViewports(e)}getCanvas(){return this.canvas}async pickObjectAsync(e){const t=(await this._pickAsync("pickObjectAsync","pickObject Time",e)).result;return t.length?t[0]:null}async pickObjectsAsync(e){return await this._pickAsync("pickObjectsAsync","pickObjects Time",e)}pickObject(e){const t=this._pick("pickObject","pickObject Time",e).result;return t.length?t[0]:null}pickMultipleObjects(e){return e.depth=e.depth||10,this._pick("pickObject","pickMultipleObjects Time",e).result}pickObjects(e){return this._pick("pickObjects","pickObjects Time",e)}_pickPositionForController(e,t){return"sync"!==this._getInternalPickingMode()?null:this.pickObject({x:e,y:t,radius:0,unproject3D:!0})}_addResources(e,t=!1){for(const n in e)this.layerManager.resourceManager.add({resourceId:n,data:e[n],forceUpdate:t})}_removeResources(e){for(const t of e)this.layerManager.resourceManager.remove(t)}_addDefaultEffect(e){this.effectManager.addDefaultEffect(e)}_addDefaultShaderModule(e){this.layerManager.addDefaultShaderModule(e)}_removeDefaultShaderModule(e){this.layerManager?.removeDefaultShaderModule(e)}_resolveInternalPickingMode(){const{pickAsync:e}=this.props,t=this.device?.type||this.props.deviceProps?.type;if("auto"===e)return"webgpu"===t?"async":"sync";if("sync"===e&&"webgpu"===t)throw new Error('`pickAsync: "sync"` is not supported when Deck is using a WebGPU device.');return e}_getInternalPickingMode(){try{return this._resolveInternalPickingMode()}catch(e){return this.props.onError?.(e),null}}_validateInternalPickingMode(){this._getInternalPickingMode()}_getFirstPickedInfo({result:e,emptyInfo:t}){return e[0]||t}_shouldUnproject3D(e=this.layerManager?.getLayers()||[]){return e.some(e=>"3d"===e.props.pickable)}_getPointPickOptions(e,t,n={},i=this.layerManager?.getLayers()||[]){return{x:e,y:t,radius:this.props.pickingRadius,unproject3D:this._shouldUnproject3D(i),...n}}_pickPointSync(e){return this._pick("pickObject","pickObject Time",e)}_pickPointAsync(e){return this._pickAsync("pickObjectAsync","pickObject Time",e)}_getLastPointerDownPickingInfo(e,t,n=this.layerManager?.getLayers()||[]){return this.deckPicker.getLastPickedObject({x:e,y:t,layers:n,viewports:this.getViewports({x:e,y:t})},this._lastPointerDownInfo)}_applyHoverCallbacks({result:e,emptyInfo:t},n){if(!this.widgetManager)return;this.cursorState.isHovering=e.length>0;let i=t,r=!1;for(const t of e)i=t,r=t.layer?.onHover(t,n)||r;r||(this.props.onHover?.(i,n),this.widgetManager.onHover(i,n))}_dispatchPickingEvent(e,t){if(!this.layerManager||!this.widgetManager)return;const n=mn.tg[t.type];if(!n)return;const{layer:i}=e,r=i&&(i[n]||i.props[n]),o=this.props[n];let s=!1;r&&(s=r.call(i,e,t)),s||(o?.(e,t),this.widgetManager.onEvent(e,t))}_pickAsync(e,t,n){pn(this.deckPicker);const{stats:i}=this;i.get("Pick Count").incrementCount(),i.get(t).timeStart();const r=this.deckPicker[e]({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(n),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...n,canvasContext:this._canvasContext||void 0});return i.get(t).timeEnd(),r}_pick(e,t,n){pn(this.deckPicker);const{stats:i}=this;i.get("Pick Count").incrementCount(),i.get(t).timeStart();const r=this.deckPicker[e]({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(n),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...n,canvasContext:this._canvasContext||void 0});return i.get(t).timeEnd(),r}_createCanvas(e){let t=e.canvas;if("string"==typeof t&&(t=document.getElementById(t),pn(t)),!t){t=document.createElement("canvas"),t.id=e.id||"deckgl-overlay",e.width&&"number"==typeof e.width&&(t.width=e.width),e.height&&"number"==typeof e.height&&(t.height=e.height);(e.parent||document.body).appendChild(t)}return Object.assign(t.style,e.style),t}_setCanvasContext(e){this._canvasContext=e,"style"in e.canvas&&(this.canvas=e.canvas)}_setDeviceCanvasContext(e,t={}){const n=e.getDefaultCanvasContext();this._setCanvasContext(n),this._setDeviceResizeHandler(e,t)}_setDeviceResizeHandler(e,t={}){const n=Boolean(t.syncDrawingBuffer);if(this._deviceResizeHandler?.device===e)return void(this._deviceResizeHandler.syncDrawingBuffer=n);this._restoreDeviceResizeHandler();const i=e=>{e===this._canvasContext&&this._canvasContext&&this._onCanvasContextResize(this._canvasContext,{syncDrawingBuffer:this._deviceResizeHandler?.syncDrawingBuffer})};e.props.onResize=i,this._deviceResizeHandler={device:e,onResize:i,syncDrawingBuffer:n}}_restoreDeviceResizeHandler(){const e=this._deviceResizeHandler;e&&e.device.props?.onResize===e.onResize&&(e.device.props.onResize=Xi),this._deviceResizeHandler=null}_setCanvasSize(e){if(!this.canvas)return;const{width:t,height:n}=e;if(t||0===t){const e=Number.isFinite(t)?`${t}px`:t;this.canvas.style.width=e}if(n||0===n){const t=Number.isFinite(n)?`${n}px`:n;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=t}}_updateCanvasSize(e=this._canvasContext){const{canvas:t}=this,[n,i]=e?e.getCSSSize():[t?.clientWidth??t?.width??0,t?.clientHeight??t?.height??0];n===this.width&&i===this.height||(this.width=n,this.height=i,this.viewManager?.setProps({width:n,height:i}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:n,height:i},e||void 0))}_onCanvasContextResize(e,t={}){if(t.syncDrawingBuffer){const{width:t,height:n}=e.canvas;e.setDrawingBufferSize(t,n)}this._needsRedraw="Canvas resized",this._updateCanvasSize(e)}_createAnimationLoop(e,t){const{gl:n,onError:i}=t;return new AnimationLoop({device:e,autoResizeDrawingBuffer:!n,autoResizeViewport:!1,onInitialize:e=>this._setDevice(e.device),onRender:this._onRenderFrame.bind(this),onError:i})}_createDevice(e){const t=this.props.deviceProps?.createCanvasContext,n="object"==typeof t?t:void 0,i={adapters:[],_cacheShaders:!0,_cachePipelines:!0,...e.deviceProps};i.adapters.includes(Wi)||i.adapters.push(Wi);const r={alphaMode:"webgpu"===this.props.deviceProps?.type?"premultiplied":void 0};return Li.createDevice({_reuseDevices:!0,type:"webgl",...i,createCanvasContext:{...r,...n,canvas:this._createCanvas(e),useDevicePixels:this.props.useDevicePixels,autoResize:!0}})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){const{views:e}=this.props,t=Array.isArray(e)?e:e?[e]:[new Hn({id:"default-view"})];return t.length&&this.props.controller&&(t[0].props.controller=this.props.controller),t}_onContextLost(){const{onError:e}=this.props;this.animationLoop&&e&&e(new Error("WebGL context is lost"))}_pickAndCallback(){const{_pickRequest:e}=this;if(e.event){const t=e.event,n=this.layerManager?.getLayers()||[],i=this._getPointPickOptions(e.x,e.y,{radius:e.radius,mode:e.mode},n),r=this._getInternalPickingMode(),o=++this._hoverPickSequence;if(e.event=null,!r)return;if("sync"===r)return void this._applyHoverCallbacks(this._pickPointSync(i),t);this._pickPointAsync(i).then(({result:e,emptyInfo:n})=>{o===this._hoverPickSequence&&this._applyHoverCallbacks({result:e,emptyInfo:n},t)}).catch(e=>this.props.onError?.(e))}}_updateCursor(){const e=this.props.parent||this.canvas;e&&(e.style.cursor=this.props.getCursor(this.cursorState))}_setDevice(e){if(this.device=e,this._validateInternalPickingMode(),!this.animationLoop)return;this._setDeviceCanvasContext(e,{syncDrawingBuffer:Boolean(this.props.gl&&this.props.device!==e)}),this.canvas&&!this.canvas.isConnected&&this.props.parent&&this.props.parent.insertBefore(this.canvas,this.props.parent.firstChild),"webgl"===this.device.type&&this.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),"webgl"===this.device.type&&this.props.onWebGLInitialized(this.device.gl);const t=new Timeline;t.play(),this.animationLoop.attachTimeline(t);const n=this.props.parent?.querySelector(".deck-events-root")||this.canvas;this.eventManager=new Qi.EU(n,{touchAction:this.props.touchAction,recognizers:Object.keys(mn.We).map(e=>{const[t,n,i,r]=mn.We[e],o=this.props.eventRecognizerOptions?.[e];return{recognizer:new t({...n,...o,event:e}),recognizeWith:i,requireFailure:r}}),events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(const e in mn.tg)this.eventManager.on(e,this._onEvent);this.viewManager=new ViewManager({timeline:t,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),pickPosition:this._pickPositionForController.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});const i=this.viewManager.getViewports()[0];this.layerManager=new LayerManager(this.device,{deck:this,stats:this.stats,viewport:i,timeline:t}),this.effectManager=new EffectManager({deck:this,device:this.device}),this.deckRenderer=new DeckRenderer(this.device,{stats:this.stats}),this.deckPicker=new DeckPicker(this.device,{stats:this.stats});const r=this.props.parent?.querySelector(".deck-widgets-root")||this.canvas?.parentElement;this.widgetManager=new WidgetManager({deck:this,parentElement:r}),this.widgetManager.addDefault(new TooltipWidget),this.setProps({}),this._updateCanvasSize(this._canvasContext),this.props.onLoad()}_drawLayers(e,t){const{device:n,gl:i}=this.layerManager.context;this.props.onBeforeRender({device:n,gl:i});const r={target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",effects:this.effectManager.getEffects(),...t};this.deckRenderer?.renderLayers(r),"screen"===r.pass&&this.widgetManager.onRedraw({viewports:r.viewports,layers:r.layers}),this.props.onAfterRender({device:n,gl:i})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60==0&&(this._getMetrics(),this.stats.reset(),_e.A.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCursor(),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(e){const t=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState={...this.viewState,[e.viewId]:t},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(e){this.cursorState.isDragging=e.isDragging||!1,this.props.onInteractionStateChange(e)}_getFrameStats(){const{stats:e}=this;e.get("frameRate").timeEnd(),e.get("frameRate").timeStart();const t=this.animationLoop.stats;e.get("GPU Time").addTime(t.get("GPU Time").lastTiming),e.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}_getMetrics(){const{metrics:e,stats:t}=this;e.fps=t.get("frameRate").getHz(),e.setPropsTime=t.get("setProps Time").time,e.updateAttributesTime=t.get("Update Attributes").time,e.framesRedrawn=t.get("Redraw Count").count,e.pickTime=t.get("pickObject Time").time+t.get("pickMultipleObjects Time").time+t.get("pickObjects Time").time,e.pickCount=t.get("Pick Count").count,e.layersCount=this.layerManager?.layers.length??0,e.drawLayersCount=t.get("Layers rendered").lastSampleCount,e.pickLayersCount=t.get("Layers picked").lastSampleCount,e.updateAttributesCount=t.get("Layers updated").count,e.updateAttributesCount=t.get("Attributes updated").count,e.gpuTime=t.get("GPU Time").time,e.cpuTime=t.get("CPU Time").time,e.gpuTimePerFrame=t.get("GPU Time").getAverageTime(),e.cpuTimePerFrame=t.get("CPU Time").getAverageTime();const n=Li.stats.get("GPU Time and Memory");e.bufferMemory=n.get("Buffer Memory").count,e.textureMemory=n.get("Texture Memory").count,e.renderbufferMemory=n.get("Renderbuffer Memory").count,e.gpuMemory=n.get("GPU Memory").count}}Deck.defaultProps=Ki,Deck.VERSION=we;const Ji=Deck;var qi=n(62738),Yi=n(72246),Zi=n(57285);const $i=Zi.r.getDataType.bind(Zi.r);function er(e,t,n){if(t.size>4)return null;const i="webgpu"===n&&"uint8"===t.type?"unorm8":t.type;return{attribute:e,format:t.size>1?`${i}x${t.size}`:t.type,byteOffset:t.offset||0}}function tr(e){return e.stride||e.size*e.bytesPerElement}function nr(e,t){t.offset&&_e.A.removed("shaderAttribute.offset","vertexOffset, elementOffset")();const n=tr(e),i=(void 0!==t.vertexOffset?t.vertexOffset:e.vertexOffset||0)*n+(t.elementOffset||0)*e.bytesPerElement+(e.offset||0);return{...t,offset:i,stride:n}}class DataColumn{constructor(e,t,n){this._buffer=null,this.device=e,this.id=t.id||"",this.size=t.size||1;const i=t.logicalType||t.type,r="float64"===i;let o,{defaultValue:s}=t;s=Number.isFinite(s)?[s]:s||new Array(this.size).fill(0),o=r?"float32":!i&&t.isIndexed?"uint32":i||"float32";let a=function(e){switch(e){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return(0,Yi.Ak)(e)}}(i||o);this.doublePrecision=r,r&&!1===t.fp64&&(a=Float32Array),this.value=null,this.settings={...t,defaultType:a,defaultValue:s,logicalType:i,type:o,normalized:o.includes("norm"),size:this.size,bytesPerElement:a.BYTES_PER_ELEMENT},this.state={...n,externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1}}get isConstant(){return this.state.constant}get buffer(){return this._buffer}get byteOffset(){const e=this.getAccessor();return e.vertexOffset?e.vertexOffset*tr(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),Pi.A.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,t=null){const n={};if(this.state.constant){const i=this.value;if(t){const r=nr(this.getAccessor(),t),o=r.offset/i.BYTES_PER_ELEMENT,s=r.size||this.size;n[e]=i.subarray(o,o+s)}else n[e]=i}else n[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?n[`${e}64Low`]=n[e]:n[`${e}64Low`]=new Float32Array(this.size)),n}_getBufferLayout(e=this.id,t=null){const n=this.getAccessor(),i=[],r={name:this.id,byteStride:tr(n)};if(this.doublePrecision){const r=function(e,t){const n=nr(e,t);return{high:n,low:{...n,offset:n.offset+4*e.size}}}(n,t||{});i.push(er(e,{...n,...r.high},this.device.type),er(`${e}64Low`,{...n,...r.low},this.device.type))}else if(t){const r=nr(n,t);i.push(er(e,{...n,...r},this.device.type))}else i.push(er(e,n,this.device.type));return r.attributes=i.filter(Boolean),r}setAccessor(e){this.state.bufferAccessor=e}getAccessor(){return this.state.bufferAccessor}getBounds(){if(this.state.bounds)return this.state.bounds;let e=null;if(this.state.constant&&this.value){const t=Array.from(this.value);e=[t,t]}else{const{value:t,numInstances:n,size:i}=this,r=n*i;if(t&&r&&t.length>=r){const n=new Array(i).fill(1/0),o=new Array(i).fill(-1/0);for(let e=0;e<r;)for(let r=0;r<i;r++){const i=t[e++];i<n[r]&&(n[r]=i),i>o[r]&&(o[r]=i)}e=[n,o]}}return this.state.bounds=e,e}setData(e){const{state:t}=this;let n;n=ArrayBuffer.isView(e)?{value:e}:e instanceof gi.h?{buffer:e}:e;const i={...this.settings,...n};if(ArrayBuffer.isView(n.value)){if(!n.type){if(this.doublePrecision&&n.value instanceof Float64Array)i.type="float32";else{const e=$i(n.value);i.type=i.normalized?e.replace("int","norm"):e}}i.bytesPerElement=n.value.BYTES_PER_ELEMENT,i.stride=tr(i)}if(t.bounds=null,n.constant){let e=n.value;e=this._normalizeValue(e,[],0),this.settings.normalized&&(e=this.normalizeConstant(e));if(!(!t.constant||!this._areValuesEqual(e,this.value)))return!1;t.externalBuffer=null,t.constant=!0,this.value=ArrayBuffer.isView(e)?e:new Float32Array(e)}else if(n.buffer){const e=n.buffer;t.externalBuffer=e,t.constant=!1,this.value=n.value||null}else if(n.value){this._checkExternalBuffer(n);let e=n.value;t.externalBuffer=null,t.constant=!1,this.value=e;let{buffer:r}=this;const o=tr(i),s=(i.vertexOffset||0)*o;if(this.doublePrecision&&e instanceof Float64Array&&(e=(0,Gn.cT)(e,i)),this.settings.isIndexed){const t=this.settings.defaultType;e.constructor!==t&&(e=new t(e))}const a=e.byteLength+s+2*o;(!r||r.byteLength<a)&&(r=this._createBuffer(a)),r.write(e,s)}return this.setAccessor(i),!0}updateSubBuffer(e={}){this.state.bounds=null;const t=this.value,{startOffset:n=0,endOffset:i}=e;this.buffer.write(this.doublePrecision&&t instanceof Float64Array?(0,Gn.cT)(t,{size:this.size,startIndex:n,endIndex:i}):t.subarray(n,i),n*t.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,t=!1){const{state:n}=this,i=n.allocatedValue,r=Pi.A.allocate(i,e+1,{size:this.size,type:this.settings.defaultType,copy:t});this.value=r;const{byteOffset:o}=this;let{buffer:s}=this;return(!s||s.byteLength<r.byteLength+o)&&(s=this._createBuffer(r.byteLength+o),t&&i&&s.write(i instanceof Float64Array?(0,Gn.cT)(i,this):i,o)),n.allocatedValue=r,n.constant=!1,n.externalBuffer=null,this.setAccessor(this.settings),!0}_checkExternalBuffer(e){const{value:t}=e;if(!ArrayBuffer.isView(t))throw new Error(`Attribute ${this.id} value is not TypedArray`);const n=this.settings.defaultType;let i=!1;if(this.doublePrecision&&(i=t.BYTES_PER_ELEMENT<4),i)throw new Error(`Attribute ${this.id} does not support ${t.constructor.name}`);t instanceof n||!this.settings.normalized||"normalized"in e||_e.A.warn(`Attribute ${this.id} is normalized`)()}normalizeConstant(e){switch(this.settings.type){case"snorm8":return new Float32Array(e).map(e=>(e+128)/255*2-1);case"snorm16":return new Float32Array(e).map(e=>(e+32768)/65535*2-1);case"unorm8":return new Float32Array(e).map(e=>e/255);case"unorm16":return new Float32Array(e).map(e=>e/65535);default:return e}}_normalizeValue(e,t,n){const{defaultValue:i,size:r}=this.settings;if(Number.isFinite(e))return t[n]=e,t;if(!e){let e=r;for(;--e>=0;)t[n+e]=i[e];return t}switch(r){case 4:t[n+3]=Number.isFinite(e[3])?e[3]:i[3];case 3:t[n+2]=Number.isFinite(e[2])?e[2]:i[2];case 2:t[n+1]=Number.isFinite(e[1])?e[1]:i[1];case 1:t[n+0]=Number.isFinite(e[0])?e[0]:i[0];break;default:let o=r;for(;--o>=0;)t[n+o]=Number.isFinite(e[o])?e[o]:i[o]}return t}_areValuesEqual(e,t){if(!e||!t)return!1;const{size:n}=this;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();const{isIndexed:t,type:n}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:(t?gi.h.INDEX:gi.h.VERTEX)|gi.h.COPY_DST,indexType:t?n:void 0,byteLength:e}),this._buffer}}const ir=[],rr=[];function or(e,t=0,n=1/0){let i=ir;const r={index:-1,data:e,target:[]};return e?"function"==typeof e[Symbol.iterator]?i=e:e.length>0&&(rr.length=e.length,i=rr):i=ir,(t>0||Number.isFinite(n))&&(i=(Array.isArray(i)?i:Array.from(i)).slice(t,n),r.index=t-1),{iterable:i,objectInfo:r}}function sr(e){return e&&e[Symbol.asyncIterator]}function ar(e,t){const{size:n,stride:i,offset:r,startIndices:o,nested:s}=t,a=e.BYTES_PER_ELEMENT,l=i?i/a:n,A=r?r/a:0,c=Math.floor((e.length-A)/l);return(t,{index:i,target:r})=>{if(!o){const t=i*l+A;for(let i=0;i<n;i++)r[i]=e[t+i];return r}const a=o[i],u=o[i+1]||c;let h;if(s){h=new Array(u-a);for(let t=a;t<u;t++){const i=t*l+A;r=new Array(n);for(let t=0;t<n;t++)r[t]=e[i+t];h[t-a]=r}}else if(l===n)h=e.subarray(a*n+A,u*n+A);else{h=new e.constructor((u-a)*n);let t=0;for(let i=a;i<u;i++){const r=i*l+A;for(let i=0;i<n;i++)h[t++]=e[r+i]}}return h}}const lr=[],Ar=[[0,1/0]];const cr={interpolation:{duration:0,easing:e=>e},spring:{stiffness:.05,damping:.5}};function ur(e,t){if(!e)return null;Number.isFinite(e)&&(e={type:"interpolation",duration:e});const n=e.type||"interpolation";return{...cr[n],...t,...e,type:n}}class Attribute extends DataColumn{constructor(e,t){super(e,t,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:Ar}),this.constant=!1,this.settings.update=t.update||(t.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}get startIndices(){return this.state.startIndices}set startIndices(e){this.state.startIndices=e}needsUpdate(){return this.state.needsUpdate}needsRedraw({clearChangedFlags:e=!1}={}){const t=this.state.needsRedraw;return this.state.needsRedraw=t&&!e,t}layoutChanged(){return this.state.layoutChanged}setAccessor(e){var t,n,i;(t=this.state).layoutChanged||(t.layoutChanged=(n=e,i=this.getAccessor(),!(n.type===i.type&&n.size===i.size&&tr(n)===tr(i)&&(n.offset||0)===(i.offset||0)))),super.setAccessor(e)}getUpdateTriggers(){const{accessor:e}=this.settings;return[this.id].concat("function"!=typeof e&&e||[])}supportsTransition(){return Boolean(this.settings.transition)}getTransitionSetting(e){if(!e||!this.supportsTransition())return null;const{accessor:t}=this.settings,n=this.settings.transition,i=Array.isArray(t)?e[t.find(t=>e[t])]:e[t];return ur(i,n)}setNeedsUpdate(e=this.id,t){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),t){const{startRow:e=0,endRow:n=1/0}=t;this.state.updateRanges=function(e,t){if(e===Ar)return e;if(t[0]<0&&(t[0]=0),t[0]>=t[1])return e;const n=[],i=e.length;let r=0;for(let o=0;o<i;o++){const i=e[o];i[1]<t[0]?(n.push(i),r=o+1):i[0]>t[1]?n.push(i):t=[Math.min(i[0],t[0]),Math.max(i[1],t[1])]}return n.splice(r,0,t),n}(this.state.updateRanges,[e,n])}else this.state.updateRanges=Ar}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=lr}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){const{state:t,settings:n}=this;return!n.noAlloc&&(!!n.update&&(super.allocate(e,t.updateRanges!==Ar),!0))}updateBuffer({numInstances:e,data:t,props:n,context:i}){if(!this.needsUpdate())return!1;const{state:{updateRanges:r},settings:{update:o,noAlloc:s}}=this;let a=!0;if(o){for(const[s,a]of r)o.call(i,this,{data:t,startRow:s,endRow:a,props:n,numInstances:e});if(this.value)if(this.constant||!this.buffer||this.buffer.byteLength<this.value.byteLength+this.byteOffset)this.constant?this.setConstantValue(i,this.value):this.setData({value:this.value,constant:this.constant}),this.constant=!1;else for(const[t,n]of r){const i=Number.isFinite(t)?this.getVertexOffset(t):0,r=Number.isFinite(n)?this.getVertexOffset(n):s||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:i,endOffset:r})}else;this._checkAttributeArray()}else a=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),a}setConstantValue(e,t){if(void 0===t||"function"==typeof t)return!1;const n=this.settings.transform&&e?this.settings.transform.call(e,t):t;if("webgpu"===this.device.type)return this.setConstantBufferValue(n,this.numInstances);return this.setData({constant:!0,value:n})&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0}setConstantBufferValue(e,t){const n=this.settings.defaultType,i=this._normalizeValue(e,new n(this.size),0);if(this._hasConstantBufferValue(i,t))return this.constant=!1,this.clearNeedsUpdate(),!1;const r=new n(Math.max(t,1)*this.size);for(let e=0;e<r.length;e+=this.size)r.set(i,e);const o=this.setData({value:r});return this.constant=!1,this.clearNeedsUpdate(),o&&this.setNeedsRedraw(),o}_hasConstantBufferValue(e,t){const n=this.value,i=Math.max(t,1)*this.size;if(!ArrayBuffer.isView(n)||n.length!==i||n.length%this.size!==0)return!1;for(let t=0;t<n.length;t+=this.size)for(let i=0;i<this.size;i++)if(n[t+i]!==e[i])return!1;return!0}setExternalBuffer(e){const{state:t}=this;return e?(this.clearNeedsUpdate(),t.lastExternalBuffer===e||(t.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e)),!0):(t.lastExternalBuffer=null,!1)}setBinaryValue(e,t=null){const{state:n,settings:i}=this;if(!e)return n.binaryValue=null,n.binaryAccessor=null,!1;if(i.noAlloc)return!1;if(n.binaryValue===e)return this.clearNeedsUpdate(),!0;n.binaryValue=e,this.setNeedsRedraw();if(i.transform||t!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});const r=e;pn(ArrayBuffer.isView(r.value),`invalid ${i.accessor}`);const o=Boolean(r.size)&&r.size!==this.size;return n.binaryAccessor=ar(r.value,{size:r.size||this.size,stride:r.stride,offset:r.offset,startIndices:t,nested:o}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}getVertexOffset(e){const{startIndices:t}=this;return(t?e<t.length?t[e]:this.numInstances:e)*this.size}getValue(){const e=this.settings.shaderAttributes,t=super.getValue();if(!e)return t;for(const n in e)Object.assign(t,super.getValue(n,e[n]));return t}getBufferLayout(e){this.state.layoutChanged=!1;const t=this.settings.shaderAttributes,n=super._getBufferLayout(),{stepMode:i}=this.settings;if(n.stepMode="dynamic"===i?e?e.isInstanced?"instance":"vertex":"instance":i??"vertex",!t)return n;for(const e in t){const i=super._getBufferLayout(e,t[e]);n.attributes.push(...i.attributes)}return n}_autoUpdater(e,{data:t,startRow:n,endRow:i,props:r,numInstances:o}){const{settings:s,state:a,value:l,size:A,startIndices:c}=e,{accessor:u,transform:h}=s,d=a.binaryAccessor||("function"==typeof u?u:r[u]);pn("function"==typeof d,`accessor "${u}" is not a function`);let f=e.getVertexOffset(n);const{iterable:p,objectInfo:g}=or(t,n,i);for(const t of p){g.index++;let n=d(t,g);if(h&&(n=h.call(this,n)),c){const t=(g.index<c.length-1?c[g.index+1]:o)-c[g.index];if(n&&Array.isArray(n[0])){let t=f;for(const i of n)e._normalizeValue(i,l,t),t+=A}else n&&n.length>A?l.set(n,f):(e._normalizeValue(n,g.target,0),Xe({target:l,source:g.target,start:f,count:t}));f+=t*A}else e._normalizeValue(n,l,f),f+=A}}_validateAttributeUpdaters(){const{settings:e}=this;if(!(e.noAlloc||"function"==typeof e.update))throw new Error(`Attribute ${this.id} missing update or accessor`)}_checkAttributeArray(){const{value:e}=this,t=Math.min(4,this.size);if(e&&e.length>=t){let n=!0;switch(t){case 4:n=n&&Number.isFinite(e[3]);case 3:n=n&&Number.isFinite(e[2]);case 2:n=n&&Number.isFinite(e[1]);case 1:n=n&&Number.isFinite(e[0]);break;default:n=!1}if(!n)throw new Error(`Illegal attribute generated for ${this.id}`)}}}function hr(e){const{input:t,inputChannels:n,output:i}=e||{};if(!t)return"#version 300 es\nout vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}";if(!n)throw new Error("inputChannels");return`#version 300 es\nin ${function(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`invalid channels: ${e}`)}}(n)} ${t};\nout vec4 ${i};\nvoid main() {\n ${i} = ${function(e,t){switch(t){case 1:return`vec4(${e}, 0.0, 0.0, 1.0)`;case 2:return`vec4(${e}, 0.0, 1.0)`;case 3:return`vec4(${e}, 1.0)`;case 4:return e;default:throw new Error(`invalid channels: ${t}`)}}(t,n)};\n}`}var dr=n(62814);class BufferTransform{device;model;transformFeedback;static defaultProps={...dr.K.defaultProps,outputs:void 0,feedbackBuffers:void 0};static isSupported(e){return"webgl"===e?.info?.type}constructor(e,t=BufferTransform.defaultProps){if(!BufferTransform.isSupported(e))throw new Error("BufferTransform not yet implemented on WebGPU");this.device=e,this.model=new dr.K(this.device,{id:t.id||"buffer-transform-model",fs:t.fs||hr(),topology:t.topology||"point-list",varyings:t.outputs||t.varyings,...t}),this.transformFeedback=this.device.createTransformFeedback({layout:this.model.pipeline.shaderLayout,buffers:t.feedbackBuffers}),this.model.setTransformFeedback(this.transformFeedback),Object.seal(this)}destroy(){this.model&&this.model.destroy()}delete(){this.destroy()}run(e){e?.inputBuffers&&this.model.setAttributes(e.inputBuffers),e?.outputBuffers&&this.transformFeedback.setBuffers(e.outputBuffers);const t=this.device.beginRenderPass(e);this.model.draw(t),t.end()}getBuffer(e){return this.transformFeedback.getBuffer(e)}readAsync(e){const t=this.getBuffer(e);if(!t)throw new Error("BufferTransform#getBuffer");if(t instanceof gi.h)return t.readAsync();const{buffer:n,byteOffset:i=0,byteLength:r=n.byteLength}=t;return n.readAsync(i,r)}}var fr=n(54071);function pr(e){const{source:t,target:n,start:i=0,size:r,getData:o}=e,s=e.end||n.length,a=t.length,l=s-i;if(a>l)return void n.set(t.subarray(0,l),i);if(n.set(t,i),!o)return;let A=a;for(;A<l;){const e=o(A,t);for(let t=0;t<r;t++)n[i+A]=e[t]||0,A++}}function gr(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`No defined attribute type for size "${e}"`)}}function mr(e){switch(e){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4";default:throw new Error("invalid type size")}}function _r(e){e.push(e.shift())}function br({device:e,source:t,target:n}){return(!n||n.byteLength<t.byteLength)&&(n?.destroy(),n=e.createBuffer({byteLength:t.byteLength,usage:t.usage})),n}function vr({device:e,buffer:t,attribute:n,fromLength:i,toLength:r,fromStartIndices:o,getData:s=e=>e}){const a=n.doublePrecision&&n.value instanceof Float64Array?2:1,l=n.size*a,A=n.byteOffset,c=n.settings.bytesPerElement<4?A/n.settings.bytesPerElement*4:A,u=n.startIndices,h=o&&u,d=n.isConstant;if(!h&&t&&i>=r)return t;const f=n.value instanceof Float64Array?Float32Array:n.value.constructor,p=d?n.value:new f(n.getBuffer().readSyncWebGL(A,r*f.BYTES_PER_ELEMENT).buffer);if(n.settings.normalized&&!d){const e=s;s=(t,i)=>n.normalizeConstant(e(t,i))}const g=d?(e,t)=>s(p,t):(e,t)=>s(p.subarray(e+A,e+A+l),t),m=t?new Float32Array(t.readSyncWebGL(c,4*i).buffer):new Float32Array(0),_=new Float32Array(r);return function({source:e,target:t,size:n,getData:i,sourceStartIndices:r,targetStartIndices:o}){if(!r||!o)return pr({source:e,target:t,size:n,getData:i}),t;let s=0,a=0;const l=i&&((e,t)=>i(e+a,t)),A=Math.min(r.length,o.length);for(let i=1;i<A;i++){const A=r[i]*n,c=o[i]*n;pr({source:e.subarray(s,A),target:t,start:a,end:c,size:n,getData:l}),s=A,a=c}a<t.length&&pr({source:[],target:t,start:a,size:n,getData:l})}({source:m,target:_,sourceStartIndices:o,targetStartIndices:u,size:l,getData:g}),(!t||t.byteLength<_.byteLength+c)&&(t?.destroy(),t=e.createBuffer({byteLength:_.byteLength+c,usage:35050})),t.write(_,c),t}class GPUTransitionBase{constructor({device:e,attribute:t,timeline:n}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new Transition(n),this.attribute=t,this.attributeInTransition=function(e){const{device:t,settings:n,value:i}=e,r=new Attribute(t,n);return r.setData({value:i instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:n.normalized}),r}(t),this.currentStartIndices=t.startIndices}get inProgress(){return this.transition.inProgress}start(e,t,n=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=function(e,t){const{doublePrecision:n,settings:i,value:r,size:o}=e,s=n&&r instanceof Float64Array?2:1;let a=0;const{shaderAttributes:l}=e.settings;if(l)for(const e of Object.values(l))a=Math.max(a,e.vertexOffset??0);return(i.noAlloc?r.length:(t+a)*o)*s}(this.attribute,t),this.transition.start({...e,duration:n})}update(){const e=this.transition.update();return e&&this.onUpdate(),e}setBuffer(e){this.attributeInTransition.setData({buffer:e,normalized:this.attribute.settings.normalized,value:this.attributeInTransition.value})}cancel(){this.transition.cancel()}delete(){this.cancel();for(const e of this.buffers)e.destroy();this.buffers.length=0}}const yr={name:"interpolation",vs:"layout(std140) uniform interpolationUniforms {\n float time;\n} interpolation;\n",uniformTypes:{time:"f32"}},Cr="#version 300 es\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nin ATTRIBUTE_TYPE aFrom;\nin ATTRIBUTE_TYPE aTo;\nout ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, interpolation.time);\n gl_Position = vec4(0.0);\n}\n",wr="#version 300 es\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nin ATTRIBUTE_TYPE aFrom;\nin ATTRIBUTE_TYPE aFrom64Low;\nin ATTRIBUTE_TYPE aTo;\nin ATTRIBUTE_TYPE aTo64Low;\nout ATTRIBUTE_TYPE vCurrent;\nout ATTRIBUTE_TYPE vCurrent64Low;\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\nvoid main(void) {\n for (int i=0; i<ATTRIBUTE_SIZE; i++) {\n vec2 value = mix_fp64(vec2(aFrom[i], aFrom64Low[i]), vec2(aTo[i], aTo64Low[i]), interpolation.time);\n vCurrent[i] = value.x;\n vCurrent64Low[i] = value.y;\n }\n gl_Position = vec4(0.0);\n}\n";function Er(e){return e.doublePrecision&&e.value instanceof Float64Array}const xr={name:"spring",vs:"layout(std140) uniform springUniforms {\n float damping;\n float stiffness;\n} spring;\n",uniformTypes:{damping:"f32",stiffness:"f32"}},Tr="#version 300 es\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nin ATTRIBUTE_TYPE aPrev;\nin ATTRIBUTE_TYPE aCur;\nin ATTRIBUTE_TYPE aTo;\nout ATTRIBUTE_TYPE vNext;\nout float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE force = delta * spring.stiffness;\n ATTRIBUTE_TYPE resistance = velocity * spring.damping;\n return force - resistance + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n",Sr="#version 300 es\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nin float vIsTransitioningFlag;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n fragColor = vec4(1.0);\n}";const Pr={interpolation:class GPUInterpolationTransition extends GPUTransitionBase{constructor({device:e,attribute:t,timeline:n}){super({device:e,attribute:t,timeline:n}),this.type="interpolation",this.transform=function(e,t){const n=t.size,i=gr(n),r=mr(n),o=t.getBufferLayout();if(Er(t))return new BufferTransform(e,{vs:wr,bufferLayout:[{name:"aFrom",byteStride:8*n,attributes:[{attribute:"aFrom",format:r,byteOffset:0},{attribute:"aFrom64Low",format:r,byteOffset:4*n}]},{name:"aTo",byteStride:8*n,attributes:[{attribute:"aTo",format:r,byteOffset:0},{attribute:"aTo64Low",format:r,byteOffset:4*n}]}],modules:[fr.d,yr],defines:{ATTRIBUTE_TYPE:i,ATTRIBUTE_SIZE:n},moduleSettings:{},varyings:["vCurrent","vCurrent64Low"],bufferMode:35980,disableWarnings:!0});return new BufferTransform(e,{vs:Cr,bufferLayout:[{name:"aFrom",format:r},{name:"aTo",format:o.attributes[0].format}],modules:[yr],defines:{ATTRIBUTE_TYPE:i},varyings:["vCurrent"],disableWarnings:!0})}(e,t)}start(e,t){const n=this.currentLength,i=this.currentStartIndices;if(super.start(e,t,e.duration),e.duration<=0)return void this.transition.cancel();const{buffers:r,attribute:o}=this;_r(r),r[0]=vr({device:this.device,buffer:r[0],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter}),r[1]=br({device:this.device,source:r[0],target:r[1]}),this.setBuffer(r[1]);const{transform:s}=this,a=s.model;let l=Math.floor(this.currentLength/o.size);Er(o)&&(l/=2),a.setVertexCount(l),o.isConstant?(a.setAttributes({aFrom:r[0]}),a.setConstantAttributes({aTo:o.value})):a.setAttributes({aFrom:r[0],aTo:o.getBuffer()}),s.transformFeedback.setBuffers({vCurrent:r[1]})}onUpdate(){const{duration:e,easing:t}=this.settings,{time:n}=this.transition;let i=n/e;t&&(i=t(i));const{model:r}=this.transform,o={time:i};r.shaderInputs.setProps({interpolation:o}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}},spring:class GPUSpringTransition extends GPUTransitionBase{constructor({device:e,attribute:t,timeline:n}){super({device:e,attribute:t,timeline:n}),this.type="spring",this.texture=function(e){return e.createTexture({data:new Uint8Array(4),format:"rgba8unorm",width:1,height:1})}(e),this.framebuffer=function(e,t){return e.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[t]})}(e,this.texture),this.transform=function(e,t){const n=gr(t.size),i=mr(t.size);return new BufferTransform(e,{vs:Tr,fs:Sr,bufferLayout:[{name:"aPrev",format:i},{name:"aCur",format:i},{name:"aTo",format:t.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[xr],defines:{ATTRIBUTE_TYPE:n},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}(e,t)}start(e,t){const n=this.currentLength,i=this.currentStartIndices;super.start(e,t);const{buffers:r,attribute:o}=this;for(let t=0;t<2;t++)r[t]=vr({device:this.device,buffer:r[t],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter});r[2]=br({device:this.device,source:r[0],target:r[2]}),this.setBuffer(r[1]);const{model:s}=this.transform;s.setVertexCount(Math.floor(this.currentLength/o.size)),o.isConstant?s.setConstantAttributes({aTo:o.value}):s.setAttributes({aTo:o.getBuffer()})}onUpdate(){const{buffers:e,transform:t,framebuffer:n,transition:i}=this,r=this.settings;t.model.setAttributes({aPrev:e[0],aCur:e[1]}),t.transformFeedback.setBuffers({vNext:e[2]});const o={stiffness:r.stiffness,damping:r.damping};t.model.shaderInputs.setProps({spring:o}),t.run({framebuffer:n,discard:!1,parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]}),_r(e),this.setBuffer(e[1]);this.device.readPixelsToArrayWebGL(n)[0]>0||i.end()}delete(){super.delete(),this.transform.destroy(),this.texture.destroy(),this.framebuffer.destroy()}}};class AttributeTransitionManager{constructor(e,{id:t,timeline:n}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=t,this.device=e,this.timeline=n,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(const e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:t,numInstances:n}){this.numInstances=n||1;for(const n in e){const i=e[n],r=i.getTransitionSetting(t);r&&this._updateAttribute(n,i,r)}for(const n in this.transitions){const i=e[n];i&&i.getTransitionSetting(t)||this._removeTransition(n)}}hasAttribute(e){const t=this.transitions[e];return t&&t.inProgress}getAttributes(){const e={};for(const t in this.transitions){const n=this.transitions[t];n.inProgress&&(e[t]=n.attributeInTransition)}return e}run(){if(0===this.numInstances)return!1;for(const e in this.transitions){this.transitions[e].update()&&(this.needsRedraw=!0)}const e=this.needsRedraw;return this.needsRedraw=!1,e}_removeTransition(e){this.transitions[e].delete(),delete this.transitions[e]}_updateAttribute(e,t,n){const i=this.transitions[e];let r=!i||i.type!==n.type;if(r){i&&this._removeTransition(e);const o=Pr[n.type];o?this.transitions[e]=new o({attribute:t,timeline:this.timeline,device:this.device}):(_e.A.error(`unsupported transition type '${n.type}'`)(),r=!1)}(r||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(n,this.numInstances))}}const Mr="attributeManager.invalidate";class AttributeManager{constructor(e,{id:t="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=(0,ei.A)(Gn._Z),this.id=t,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new AttributeTransitionManager(e,{id:`${t}-transitions`,timeline:i}),Object.seal(this)}finalize(){for(const e in this.attributes)this.attributes[e].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(e={clearRedrawFlags:!1}){const t=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,t&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(e){this._add(e)}addInstanced(e){this._add(e,{stepMode:"instance"})}remove(e){for(const t of e)void 0!==this.attributes[t]&&(this.attributes[t].delete(),delete this.attributes[t])}invalidate(e,t){const n=this._invalidateTrigger(e,t);ye(Mr,this,e,n)}invalidateAll(e){for(const t in this.attributes)this.attributes[t].setNeedsUpdate(t,e);ye(Mr,this,"all")}update({data:e,numInstances:t,startIndices:n=null,transitions:i,props:r={},buffers:o={},context:s={}}){let a=!1;ye("attributeManager.updateStart",this),this.stats&&this.stats.get("Update Attributes").timeStart();for(const i in this.attributes){const l=this.attributes[i],A=l.settings.accessor;l.startIndices=n,l.numInstances=t,r[i]&&_e.A.removed(`props.${i}`,`data.attributes.${i}`)(),l.setExternalBuffer(o[i])||l.setBinaryValue("string"==typeof A?o[A]:void 0,e.startIndices)||"string"==typeof A&&!o[A]&&l.setConstantValue(s,r[A])||l.needsUpdate()&&(a=!0,this._updateAttribute({attribute:l,numInstances:t,data:e,props:r,context:s})),this.needsRedraw=this.needsRedraw||l.needsRedraw()}a&&ye("attributeManager.updateEnd",this,t),this.stats&&(this.stats.get("Update Attributes").timeEnd(),a&&this.stats.get("Attributes updated").incrementCount()),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:t,transitions:i})}updateTransition(){const{attributeTransitionManager:e}=this,t=e.run();return this.needsRedraw=this.needsRedraw||t,t}getAttributes(){return{...this.attributes,...this.attributeTransitionManager.getAttributes()}}getBounds(e){const t=e.map(e=>this.attributes[e]?.getBounds());return this.mergeBoundsMemoized(t)}getChangedAttributes(e={clearChangedFlags:!1}){const{attributes:t,attributeTransitionManager:n}=this,i={...n.getAttributes()};for(const r in t){const o=t[r];o.needsRedraw(e)&&!n.hasAttribute(r)&&(i[r]=o)}return i}getBufferLayouts(e){return Object.values(this.getAttributes()).map(t=>t.getBufferLayout(e))}_add(e,t){for(const n in e){const i=e[n],r={...i,id:n,size:(i.isIndexed?1:i.size)||1,...t};this.attributes[n]=new Attribute(this.device,r)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){const e={};for(const t in this.attributes){this.attributes[t].getUpdateTriggers().forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)})}this.updateTriggers=e}_invalidateTrigger(e,t){const{attributes:n,updateTriggers:i}=this,r=i[e];return r&&r.forEach(e=>{const i=n[e];i&&i.setNeedsUpdate(i.id,t)}),r}_updateAttribute(e){const{attribute:t,numInstances:n}=e;if(ye("attribute.updateStart",t),t.constant)return void t.setConstantValue(e.context,t.value);t.allocate(n)&&ye("attribute.allocate",t,n);t.updateBuffer(e)&&(this.needsRedraw=!0,ye("attribute.updateEnd",t,n))}}const Rr=1e-5;function Br(e,t,n,i,r){const o=t-e;return(n-t)*r+-o*i+o+t}function Ir(e,t){if(Array.isArray(e)){let n=0;for(let i=0;i<e.length;i++){const r=e[i]-t[i];n+=r*r}return Math.sqrt(n)}return Math.abs(e-t)}const Lr={interpolation:class CPUInterpolationTransition extends Transition{get value(){return this._value}_onUpdate(){const{time:e,settings:{fromValue:t,toValue:n,duration:i,easing:r}}=this,o=r(e/i);this._value=(0,cn.Cc)(t,n,o)}},spring:class CPUSpringTransition extends Transition{get value(){return this._currValue}_onUpdate(){const{fromValue:e,toValue:t,damping:n,stiffness:i}=this.settings,{_prevValue:r=e,_currValue:o=e}=this;let s=function(e,t,n,i,r){if(Array.isArray(n)){const o=[];for(let s=0;s<n.length;s++)o[s]=Br(e[s],t[s],n[s],i,r);return o}return Br(e,t,n,i,r)}(r,o,t,n,i);const a=Ir(s,t),l=Ir(s,o);a<Rr&&l<Rr&&(s=t,this.end()),this._prevValue=o,this._currValue=s}}};class UniformTransitionManager{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,t,n,i){const{transitions:r}=this;if(r.has(e)){const n=r.get(e),{value:i=n.settings.fromValue}=n;t=i,this.remove(e)}if(!(i=ur(i)))return;const o=Lr[i.type];if(!o)return void _e.A.error(`unsupported transition type '${i.type}'`)();const s=new o(this.timeline);s.start({...i,fromValue:t,toValue:n}),r.set(e,s)}remove(e){const{transitions:t}=this;t.has(e)&&(t.get(e).cancel(),t.delete(e))}update(){const e={};for(const[t,n]of this.transitions)n.update(),e[t]=n.value,n.inProgress||this.remove(t);return e}clear(){for(const e of this.transitions.keys())this.remove(e)}}function Fr(e,t){const n=Or({newProps:e,oldProps:t,propTypes:e[Ge],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),i=function(e,t){if(null===t)return"oldProps is null, initial diff";let n=!1;const{dataComparator:i,_dataDiff:r}=e;i?i(e.data,t.data)||(n="Data comparator detected a change"):e.data!==t.data&&(n="A new data container was supplied");n&&r&&(n=r(e.data,t.data)||n);return n}(e,t);let r=!1;return i||(r=function(e,t){if(null===t)return{all:!0};if("all"in e.updateTriggers){if(Ur(e,t,"all"))return{all:!0}}const n={};let i=!1;for(const r in e.updateTriggers)if("all"!==r){Ur(e,t,r)&&(n[r]=!0,i=!0)}return!!i&&n}(e,t)),{dataChanged:i,propsChanged:n,updateTriggersChanged:r,extensionsChanged:kr(e,t),transitionsChanged:Dr(e,t)}}function Dr(e,t){if(!e.transitions)return!1;const n={},i=e[Ge];let r=!1;for(const o in e.transitions){const s=i[o],a=s&&s.type;("number"===a||"color"===a||"array"===a)&&Nr(e[o],t[o],s)&&(n[o]=!0,r=!0)}return!!r&&n}function Or({newProps:e,oldProps:t,ignoreProps:n={},propTypes:i={},triggerName:r="props"}){if(t===e)return!1;if("object"!=typeof e||null===e)return`${r} changed shallowly`;if("object"!=typeof t||null===t)return`${r} changed shallowly`;for(const o of Object.keys(e))if(!(o in n)){if(!(o in t))return`${r}.${o} added`;const n=Nr(e[o],t[o],i[o]);if(n)return`${r}.${o} ${n}`}for(const o of Object.keys(t))if(!(o in n)){if(!(o in e))return`${r}.${o} dropped`;if(!Object.hasOwnProperty.call(e,o)){const n=Nr(e[o],t[o],i[o]);if(n)return`${r}.${o} ${n}`}}return!1}function Nr(e,t,n){let i=n&&n.equal;return i&&!i(e,t,n)?"changed deeply":i||(i=e&&t&&e.equals,!i||i.call(e,t))?i||t===e?null:"changed shallowly":"changed deeply"}function kr(e,t){if(null===t)return!0;const n=t.extensions,{extensions:i}=e;if(i===n)return!1;if(!n||!i)return!0;if(i.length!==n.length)return!0;for(let e=0;e<i.length;e++)if(!i[e].equals(n[e]))return!0;return!1}function Ur(e,t,n){let i=e.updateTriggers[n];i=i??{};let r=t.updateTriggers[n];r=r??{};return Or({oldProps:r,newProps:i,triggerName:n})}function Gr(e){if(null===(t=e)||"object"!=typeof t)throw new Error("count(): argument not an object");var t;if("function"==typeof e.count)return e.count();if(Number.isFinite(e.size))return e.size;if(Number.isFinite(e.length))return e.length;if(function(e){return null!==e&&"object"==typeof e&&e.constructor===Object}(e))return Object.keys(e).length;throw new Error("count(): argument not a container")}var Vr=n(66540);const zr=[0,0,0];function Hr(e,t,n=!1){const i=t.projectPosition(e);if(n&&t instanceof An.A){const[n,r,o=0]=e,s=t.getDistanceScales([n,r]);i[2]=o*s.unitsPerMeter[2]}return i}function Wr(e,{viewport:t,modelMatrix:n,coordinateSystem:i,coordinateOrigin:r,offsetMode:o}){let[s,a,l=0]=e;switch(n&&([s,a,l]=vn.Z0([],[s,a,l,1],n)),i){case"default":return Wr(e,{viewport:t,modelMatrix:n,coordinateSystem:t.isGeospatial?"lnglat":"cartesian",coordinateOrigin:r,offsetMode:o});case"lnglat":return Hr([s,a,l],t,o);case"lnglat-offsets":return Hr([s+r[0],a+r[1],l+(r[2]||0)],t,o);case"meter-offsets":return Hr((0,_n.dT)(r,[s,a,l]),t,o);case"cartesian":return t.isGeospatial?[s+r[0],a+r[1],l+r[2]]:t.projectPosition([s,a,l]);default:throw new Error(`Invalid coordinateSystem: ${i}`)}}function jr(e,t){const{viewport:n,coordinateSystem:i,coordinateOrigin:r,modelMatrix:o,fromCoordinateSystem:s,fromCoordinateOrigin:a}=function(e){const{viewport:t,modelMatrix:n,coordinateOrigin:i}=e;let{coordinateSystem:r,fromCoordinateSystem:o,fromCoordinateOrigin:s}=e;return"default"===r&&(r=t.isGeospatial?"lnglat":"cartesian"),void 0===o?o=r:"default"===o&&(o=t.isGeospatial?"lnglat":"cartesian"),void 0===s&&(s=i),{viewport:t,coordinateSystem:r,coordinateOrigin:i,modelMatrix:n,fromCoordinateSystem:o,fromCoordinateOrigin:s}}(t),{autoOffset:l=!0}=t,{geospatialOrigin:A=zr,shaderCoordinateOrigin:c=zr,offsetMode:u=!1}=l?(0,ti.ow)(n,i,r):{},h=Wr(e,{viewport:n,modelMatrix:o,coordinateSystem:s,coordinateOrigin:a,offsetMode:u});if(u){const e=n.projectPosition(A||c);bn.jb(h,h,e)}return h}const Qr={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},Xr={};const Kr={boolean:{validate:(e,t)=>!0,equal:(e,t,n)=>Boolean(e)===Boolean(t)},number:{validate:(e,t)=>Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)},color:{validate:(e,t)=>t.optional&&!e||Yr(e)&&(3===e.length||4===e.length),equal:(e,t,n)=>(0,$t.b)(e,t,1)},accessor:{validate(e,t){const n=Zr(e);return"function"===n||n===Zr(t.value)},equal:(e,t,n)=>"function"==typeof t||(0,$t.b)(e,t,1)},array:{validate:(e,t)=>t.optional&&!e||Yr(e),equal(e,t,n){const{compare:i}=n,r=Number.isInteger(i)?i:i?1:0;return i?(0,$t.b)(e,t,r):e===t}},object:{equal(e,t,n){if(n.ignore)return!0;const{compare:i}=n,r=Number.isInteger(i)?i:i?1:0;return i?(0,$t.b)(e,t,r):e===t}},function:{validate:(e,t)=>t.optional&&!e||"function"==typeof e,equal:(e,t,n)=>!n.compare&&!1!==n.ignore||e===t},data:{transform:(e,t,n)=>{if(!e)return e;const{dataTransform:i}=n.props;return i?i(e):"string"==typeof e.shape&&e.shape.endsWith("-table")&&Array.isArray(e.data)?e.data:e}},image:{transform:(e,t,n)=>{const i=n.context;return i&&i.device?function(e,t,n,i){if(n instanceof pi.g)return n;n.constructor&&"Object"!==n.constructor.name&&(n={data:n});let r=null;n.compressed&&(r={minFilter:"linear",mipmapFilter:n.data.length>1?"nearest":"linear"});const{width:o,height:s}=n.data,a=t.createTexture({...n,sampler:{...Qr,...r,...i},mipLevels:t.getMipLevelCount(o,s)});return"webgl"===t.type?a.generateMipmapsWebGL():"webgpu"===t.type&&t.generateMipmapsWebGPU(a),Xr[a.id]=e,a}(n.id,i.device,e,{...t.parameters,...n.props.textureParameters}):null},release:(e,t,n)=>{var i,r;i=n.id,(r=e)&&r instanceof pi.g&&Xr[r.id]===i&&(r.delete(),delete Xr[r.id])}}};function Jr(e,t){switch(Zr(t)){case"object":return qr(e,t);case"array":return qr(e,{type:"array",value:t,compare:!1});case"boolean":return qr(e,{type:"boolean",value:t});case"number":return qr(e,{type:"number",value:t});case"function":return qr(e,{type:"function",value:t,compare:!0});default:return{name:e,type:"unknown",value:t}}}function qr(e,t){return"type"in t?{name:e,...Kr[t.type],...t}:"value"in t?{name:e,type:Zr(t.value),...t}:{name:e,type:"object",value:t}}function Yr(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function Zr(e){return Yr(e)?"array":null===e?"null":typeof e}function $r(e,t){if(!(e instanceof ro.constructor))return{};let n="_mergedDefaultProps";if(t)for(const e of t){const t=e.constructor;t&&(n+=`:${t.extensionName||t.name}`)}const i=no(e,n);return i||(e[n]=function(e,t){const n=e.prototype;if(!n)return null;const i=Object.getPrototypeOf(e),r=$r(i),o=no(e,"defaultProps")||{},s=function(e){const t={},n={},i={};for(const[r,o]of Object.entries(e)){const e=o?.deprecatedFor;if(e)i[r]=Array.isArray(e)?e:[e];else{const e=Jr(r,o);t[r]=e,n[r]=e.value}}return{propTypes:t,defaultProps:n,deprecatedProps:i}}(o),a=Object.assign(Object.create(null),r,s.defaultProps),l=Object.assign(Object.create(null),r?.[Ge],s.propTypes),A=Object.assign(Object.create(null),r?.[Ve],s.deprecatedProps);for(const e of t){const t=$r(e.constructor);t&&(Object.assign(a,t),Object.assign(l,t[Ge]),Object.assign(A,t[Ve]))}(function(e,t){const n=function(e){const t=e.componentName;t||_e.A.warn(`${e.name}.componentName not specified`)();return t||e.name}(t);Object.defineProperties(e,{id:{writable:!0,value:n}})})(a,e),function(e,t){const n={},i={};for(const e in t){const r=t[e],{name:o,value:s}=r;r.async&&(n[o]=s,i[o]=eo(o))}e[ze]=n,e[He]={},Object.defineProperties(e,i)}(a,l),function(e,t){for(const n in t)Object.defineProperty(e,n,{enumerable:!1,set(e){const i=`${this.id}: ${n}`;for(const i of t[n])to(this,i)||(this[i]=e);_e.A.deprecated(i,t[n].join("/"))()}})}(a,A),a[Ge]=l,a[Ve]=A,0!==t.length||to(e,"_propTypes")||(e._propTypes=l);return a}(e,t||[]))}function eo(e){return{enumerable:!0,set(t){"string"==typeof t||t instanceof Promise||sr(t)?this[He][e]=t:this[We][e]=t},get(){if(this[We]){if(e in this[We]){return this[We][e]||this[ze][e]}if(e in this[He]){const t=this[Ue]&&this[Ue].internalState;if(t&&t.hasAsyncProp(e))return t.getAsyncProp(e)||this[ze][e]}}return this[ze][e]}}}function to(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function no(e,t){return to(e,t)&&e[t]}let io=0;class Component{constructor(...e){this.props=function(e,t){let n;for(let e=t.length-1;e>=0;e--){const i=t[e];"extensions"in i&&(n=i.extensions)}const i=$r(e.constructor,n),r=Object.create(i);r[Ue]=e,r[He]={},r[We]={};for(let e=0;e<t.length;++e){const n=t[e];for(const e in n)r[e]=n[e]}return Object.freeze(r),r}(this,e),this.id=this.props.id,this.count=io++}clone(e){const{props:t}=this,n={};for(const e in t[ze])e in t[We]?n[e]=t[We][e]:e in t[He]&&(n[e]=t[He][e]);return new this.constructor({...t,...n,...e})}}Component.componentName="Component",Component.defaultProps={};const ro=Component,oo=Object.freeze({});class ComponentState{constructor(e){this.component=e,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(const e in this.asyncProps){const t=this.asyncProps[e];t&&t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||oo}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(e){return e in this.asyncProps}getAsyncProp(e){const t=this.asyncProps[e];return t&&t.resolvedValue}isAsyncPropLoading(e){if(e){const t=this.asyncProps[e];return Boolean(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(const e in this.asyncProps)if(this.isAsyncPropLoading(e))return!0;return!1}reloadAsyncProp(e,t){this._watchPromise(e,Promise.resolve(t))}setAsyncProps(e){this.component=e[Ue]||this.component;const t=e[We]||{},n=e[He]||e,i=e[ze]||{};for(const e in t){const n=t[e];this._createAsyncPropData(e,i[e]),this._updateAsyncProp(e,n),t[e]=this.getAsyncProp(e)}for(const e in n){const t=n[e];this._createAsyncPropData(e,i[e]),this._updateAsyncProp(e,t)}}_fetch(e,t){return null}_onResolve(e,t){}_onError(e,t){}_updateAsyncProp(e,t){this._didAsyncInputValueChange(e,t)&&("string"==typeof t&&(t=this._fetch(e,t)),t instanceof Promise?this._watchPromise(e,t):sr(t)?this._resolveAsyncIterable(e,t):this._setPropValue(e,t))}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(const e in this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}}_didAsyncInputValueChange(e,t){const n=this.asyncProps[e];return t!==n.resolvedValue&&t!==n.lastValue&&(n.lastValue=t,!0)}_setPropValue(e,t){this._freezeAsyncOldProps();const n=this.asyncProps[e];n&&(t=this._postProcessValue(n,t),n.resolvedValue=t,n.pendingLoadCount++,n.resolvedLoadCount=n.pendingLoadCount)}_setAsyncPropValue(e,t,n){const i=this.asyncProps[e];i&&n>=i.resolvedLoadCount&&void 0!==t&&(this._freezeAsyncOldProps(),i.resolvedValue=t,i.resolvedLoadCount=n,this.onAsyncPropUpdated(e,t))}_watchPromise(e,t){const n=this.asyncProps[e];if(n){n.pendingLoadCount++;const i=n.pendingLoadCount;t.then(t=>{this.component&&(t=this._postProcessValue(n,t),this._setAsyncPropValue(e,t,i),this._onResolve(e,t))}).catch(t=>{this._onError(e,t)})}}async _resolveAsyncIterable(e,t){if("data"!==e)return void this._setPropValue(e,t);const n=this.asyncProps[e];if(!n)return;n.pendingLoadCount++;const i=n.pendingLoadCount;let r=[],o=0;for await(const n of t){if(!this.component)return;const{dataTransform:t}=this.component.props;r=t?t(n,r):r.concat(n),Object.defineProperty(r,"__diff",{enumerable:!1,value:[{startRow:o,endRow:r.length}]}),o=r.length,this._setAsyncPropValue(e,r,i)}this._onResolve(e,r)}_postProcessValue(e,t){const n=e.type;return n&&this.component&&(n.release&&n.release(e.resolvedValue,n,this.component),n.transform)?n.transform(t,n,this.component):t}_createAsyncPropData(e,t){if(!this.asyncProps[e]){const n=this.component&&this.component.props[Ge];this.asyncProps[e]={type:n&&n[e],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}}class LayerState extends ComponentState{constructor({attributeManager:e,layer:t}){super(t),this.attributeManager=e,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(e,t){const n=this.layer,i=n?.props.fetch;return i?i(t,{propName:e,layer:n}):super._fetch(e,t)}_onResolve(e,t){const n=this.layer;if(n){const i=n.props.onDataLoad;"data"===e&&i&&i(t,{propName:e,layer:n})}}_onError(e,t){const n=this.layer;n&&n.raiseError(t,`loading ${e} of ${this.layer}`)}}const so=2**24-1,ao=Object.freeze([]),lo=(0,ei.A)(({oldViewport:e,viewport:t})=>e.equals(t));let Ao=new Uint8ClampedArray(0);const co={data:{type:"data",value:ao,async:!0},dataComparator:{type:"function",value:null,optional:!0},_dataDiff:{type:"function",value:e=>e&&e.__diff,optional:!0},dataTransform:{type:"function",value:null,optional:!0},onDataLoad:{type:"function",value:null,optional:!0},onError:{type:"function",value:null,optional:!0},fetch:{type:"function",value:(e,{propName:t,layer:n,loaders:i,loadOptions:r,signal:o})=>{const{resourceManager:s}=n.context;r=r||n.getLoadOptions(),i=i||n.props.loaders,o&&(r={...r,core:{...r?.core,fetch:{...r?.core?.fetch,signal:o}}});let a=s.contains(e);return a||r||(s.add({resourceId:e,data:Yt(e,i),persistent:!1}),a=!0),a?s.subscribe({resourceId:e,onChange:e=>n.internalState?.reloadAsyncProp(t,e),consumerId:n.id,requestId:t}):Yt(e,i,r)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:"draw",onHover:{type:"function",value:null,optional:!0},onClick:{type:"function",value:null,optional:!0},onDragStart:{type:"function",value:null,optional:!0},onDrag:{type:"function",value:null,optional:!0},onDragEnd:{type:"function",value:null,optional:!0},coordinateSystem:"default",coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:2},loadOptions:{type:"object",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:"function",value:({layerIndex:e})=>[0,100*-e]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}};class Layer extends ro{constructor(){super(...arguments),this.internalState=null,this.lifecycle=Le,this.parent=null}static get componentName(){return Object.prototype.hasOwnProperty.call(this,"layerName")?this.layerName:""}get root(){let e=this;for(;e.parent;)e=e.parent;return e}toString(){return`${this.constructor.layerName||this.constructor.name}({id: '${this.props.id}'})`}project(e){pn(this.internalState);const t=this.internalState.viewport||this.context.viewport,n=Wr(e,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[i,r,o]=(0,_n.VJ)(n,t.pixelProjectionMatrix);return 2===e.length?[i,r]:[i,r,o]}unproject(e){pn(this.internalState);return(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,t){pn(this.internalState);return jr(e,{viewport:this.internalState.viewport||this.context.viewport,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...t})}get isComposite(){return!1}get isDrawable(){return!0}setState(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return!!this.internalState&&!this.internalState.isAsyncPropLoading()}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){const e=this.state;return e&&(e.models||e.model&&[e.model])||[]}setShaderModuleProps(...e){for(const t of this.getModels())t.shaderInputs.setProps(...e)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){const{coordinateSystem:e}=this.props;return"default"===e||"lnglat"===e||"cartesian"===e}onHover(e,t){return this.props.onHover&&this.props.onHover(e,t)||!1}onClick(e,t){return this.props.onClick&&this.props.onClick(e,t)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(e,t=[]){return t[0]=e+1&255,t[1]=e+1>>8&255,t[2]=e+1>>8>>8&255,t}decodePickingColor(e){pn(e instanceof Uint8Array);const[t,n,i]=e;return t+256*n+65536*i-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&void 0!==this.state.numInstances?this.state.numInstances:Gr(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){return this.getAttributeManager()?.getBounds(["positions","instancePositions"])}getShaders(e){e=(0,Vr.n)(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(const t of this.props.extensions)e=(0,Vr.n)(e,t.getShaders.call(this,t));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){const t=this.getAttributeManager(),{dataChanged:n}=e.changeFlags;if(n&&t)if(Array.isArray(n))for(const e of n)t.invalidateAll(e);else t.invalidateAll();if(t){const{props:n}=e,i=this.internalState.hasPickingBuffer,r=Number.isInteger(n.highlightedObjectIndex)||Boolean(n.pickable)||n.extensions.some(e=>e.getNeedsPickingBuffer.call(this,e));if(i!==r){this.internalState.hasPickingBuffer=r;const{pickingColors:e,instancePickingColors:n}=t.attributes,i=e||n;i&&(r&&i.constant&&(i.constant=!1,t.invalidate(i.id)),i.value||r||(i.constant=!0,i.value=[0,0,0]))}}}finalizeState(e){for(const e of this.getModels())e.destroy();const t=this.getAttributeManager();t&&t.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(e){for(const t of this.getModels())t.draw(e.renderPass)}getPickingInfo({info:e,mode:t,sourceLayer:n}){const{index:i}=e;return i>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[i]),e}raiseError(e,t){t&&(e=new Error(`${t}: ${e.message}`,{cause:e})),this.props.onError?.(e)||this.context?.onError?.(e,this)}getNeedsRedraw(e={clearRedrawFlags:!1}){return this._getNeedsRedraw(e)}needsUpdate(){return!!this.internalState&&(this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()))}hasUniformTransition(){return this.internalState?.uniformTransitions.active||!1}activateViewport(e){if(!this.internalState)return;const t=this.internalState.viewport;this.internalState.viewport=e,t&&lo({oldViewport:t,viewport:e})||(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(e="all"){const t=this.getAttributeManager();t&&("all"===e?t.invalidateAll():t.invalidate(e))}updateAttributes(e){let t=!1;for(const n in e)e[n].layoutChanged()&&(t=!0);for(const n of this.getModels())this._setModelAttributes(n,e,t)}_updateAttributes(){const e=this.getAttributeManager();if(!e)return;const t=this.props,n=this.getNumInstances(),i=this.getStartIndices();e.update({data:t.data,numInstances:n,startIndices:i,props:t,transitions:t.transitions,buffers:t.data.attributes,context:this});const r=e.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(r)}_updateAttributeTransition(){const e=this.getAttributeManager();e&&e.updateTransition()}_updateUniformTransition(){const{uniformTransitions:e}=this.internalState;if(e.active){const t=e.update(),n=Object.create(this.props);for(const e in t)Object.defineProperty(n,e,{value:t[e]});return n}return this.props}calculateInstancePickingColors(e,{numInstances:t}){if(e.constant)return;const n=Math.floor(Ao.length/4);this.internalState.usesPickingColorCache=!0;const i=t>0&&0===Ao[0];if(n<t||i){t>so&&_e.A.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),Ao=Pi.A.allocate(Ao,t,{size:4,copy:!0,maxCount:Math.max(t,so)});const e=Math.floor(Ao.length/4),r=[0,0,0];for(let t=i?0:n;t<e;t++)this.encodePickingColor(t,r),Ao[4*t+0]=r[0],Ao[4*t+1]=r[1],Ao[4*t+2]=r[2],Ao[4*t+3]=0}e.value=Ao.subarray(0,4*t)}_setModelAttributes(e,t,n=!1){if(!Object.keys(t).length)return;if(n){const n=this.getAttributeManager();e.setBufferLayout(n.getBufferLayouts(e)),t=n.getAttributes()}const i=e.userData?.excludeAttributes||{},r={},o={};for(const n in t){if(i[n])continue;const s=t[n].getValue();for(const i in s){const a=s[i];a instanceof gi.h?t[n].settings.isIndexed?e.setIndexBuffer(a):r[i]=a:a&&(o[i]=a)}}e.setAttributes(r),e.setConstantAttributes(o)}disablePickingIndex(e){const t=this.props.data;if(!("attributes"in t))return void this._disablePickingIndex(e);const{pickingColors:n,instancePickingColors:i}=this.getAttributeManager().attributes,r=n||i,o=r&&t.attributes&&t.attributes[r.id];if(o&&o.value){const n=o.value,i=this.encodePickingColor(e);for(let e=0;e<t.length;e++){const t=r.getVertexOffset(e);n[t]===i[0]&&n[t+1]===i[1]&&n[t+2]===i[2]&&this._disablePickingIndex(e)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){const{pickingColors:t,instancePickingColors:n}=this.getAttributeManager().attributes,i=t||n;if(!i)return;const r=i.getVertexOffset(e),o=i.getVertexOffset(e+1);i.buffer.write(new Uint8Array(o-r),r)}restorePickingColors(){const{pickingColors:e,instancePickingColors:t}=this.getAttributeManager().attributes,n=e||t;n&&(this.internalState.usesPickingColorCache&&n.value.buffer!==Ao.buffer&&(n.value=Ao.subarray(0,n.value.length)),n.updateSubBuffer({startOffset:0}))}_initialize(){pn(!this.internalState),ye("layer.initialize",this);const e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new LayerState({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(_e.A.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new UniformTransitionManager(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(const e of this.props.extensions)e.initializeState.call(this,this.context,e);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(e){ye("layer.matched",this,this===e);const{state:t,internalState:n}=e;this!==e&&(this.internalState=n,this.state=t,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){const e=this.needsUpdate();if(ye("layer.update",this,e),!e)return;this.context.stats.get("Layer updates").incrementCount();const t=this.props,n=this.context,i=this.internalState,r=n.viewport,o=this._updateUniformTransition();i.propsInTransition=o,n.viewport=i.viewport||r,this.props=o;try{const e=this._getUpdateParams(),t=this.getModels();if(n.device)this.updateState(e);else try{this.updateState(e)}catch(e){}for(const t of this.props.extensions)t.updateState.call(this,e,t);this.setNeedsRedraw(),this._updateAttributes();const i=this.getModels()[0]!==t[0];this._postUpdate(e,i)}finally{n.viewport=r,this.props=t,this._clearChangeFlags(),i.needsUpdate=!1,i.resetOldProps()}}_finalize(){ye("layer.finalize",this),this.finalizeState(this.context);for(const e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,shaderModuleProps:t=null,uniforms:n={},parameters:i={}}){this._updateAttributeTransition();const r=this.props,o=this.context;this.props=this.internalState.propsInTransition||r;try{t&&this.setShaderModuleProps(t);const{getPolygonOffset:r}=this.props,s=r&&r(n)||[0,0];o.device instanceof qi.WebGLDevice&&o.device.setParametersWebGL({polygonOffset:s});const a=o.device instanceof qi.WebGLDevice?null:function(e){const{blendConstant:t,...n}=e;return t?{pipelineParameters:n,renderPassParameters:{blendConstant:t}}:{pipelineParameters:n}}(i);if(function(e,t,n,i){for(const r of e)"webgpu"===r.device.type?(ho(r,t),r.setParameters({...r.parameters,...i?.pipelineParameters})):r.setParameters(n)}(this.getModels(),e,i,a),o.device instanceof qi.WebGLDevice)o.device.withParametersWebGL(i,()=>{const r={renderPass:e,shaderModuleProps:t,uniforms:n,parameters:i,context:o};for(const e of this.props.extensions)e.draw.call(this,r,e);this.draw(r)});else{a?.renderPassParameters&&e.setParameters(a.renderPassParameters);const r={renderPass:e,shaderModuleProps:t,uniforms:n,parameters:i,context:o};for(const e of this.props.extensions)e.draw.call(this,r,e);this.draw(r)}}finally{this.props=r}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;const{changeFlags:t}=this.internalState;for(const n in e)if(e[n]){let i=!1;if("dataChanged"===n){const r=e[n],o=t[n];r&&Array.isArray(o)&&(t.dataChanged=Array.isArray(r)?o.concat(r):r,i=!0)}t[n]||(t[n]=e[n],i=!0),i&&ye("layer.changeFlag",this,n,e)}const n=Boolean(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=n,t.somethingChanged=n||t.viewportChanged||t.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(e,t){const n=Fr(e,t);if(n.updateTriggersChanged)for(const e in n.updateTriggersChanged)n.updateTriggersChanged[e]&&this.invalidateAttribute(e);if(n.transitionsChanged)for(const i in n.transitionsChanged)this.internalState.uniformTransitions.add(i,t[i],e[i],e.transitions?.[i]);return this.setChangeFlags(n)}validateProps(){!function(e){const t=e[Ge];for(const n in t){const i=t[n],{validate:r}=i;if(r&&!r(e[n],i))throw new Error(`Invalid prop ${n}: ${e[n]}`)}}(this.props)}updateAutoHighlight(e){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(e)}_updateAutoHighlight(e){const t={highlightedObjectColor:e.picked?e.color:null},{highlightColor:n}=this.props;e.picked&&"function"==typeof n&&(t.highlightColor=n(e)),this.setShaderModuleProps({picking:t}),this.setNeedsRedraw()}_getAttributeManager(){const e=this.context;return new AttributeManager(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,t){const{props:n,oldProps:i}=e,r=this.state.model;r?.isInstanced&&r.setInstanceCount(this.getNumInstances());const{autoHighlight:o,highlightedObjectIndex:s,highlightColor:a}=n;if(t||i.autoHighlight!==o||i.highlightedObjectIndex!==s||i.highlightColor!==a){const e={};Array.isArray(a)&&(e.highlightColor=a),(t||i.autoHighlight!==o||s!==i.highlightedObjectIndex)&&(e.highlightedObjectColor=Number.isFinite(s)&&s>=0?this.encodePickingColor(s):null),this.setShaderModuleProps({picking:e})}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(e){if(!this.internalState)return!1;let t=!1;t=t||this.internalState.needsRedraw&&this.id;const n=this.getAttributeManager(),i=!!n&&n.getNeedsRedraw(e);if(t=t||i,t)for(const e of this.props.extensions)e.onNeedsRedraw.call(this,e);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags,t}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}}Layer.defaultProps=co,Layer.layerName="Layer";const uo=Layer;function ho(e,t){const n=t.props.framebuffer||(t.framebuffer??null);if(!n)return;const i=n.colorAttachments.map(e=>e?.texture?.format??null),r=n.depthStencilAttachment?.texture?.format,o=e;(function(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0})(o.props.colorAttachmentFormats,i)&&o.props.depthStencilAttachmentFormat===r||(o.props.colorAttachmentFormats=i,o.props.depthStencilAttachmentFormat=r,o._setPipelineNeedsUpdate("attachment formats"))}class CompositeLayer extends uo{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo({info:e}){const{object:t}=e;return t&&t.__source&&t.__source.parent&&t.__source.parent.id===this.id?(e.object=t.__source.object,e.index=t.__source.index,e):e}filterSubLayer(e){return!0}shouldRenderSubLayer(e,t){return t&&t.length}getSubLayerClass(e,t){const{_subLayerProps:n}=this.props;return n&&n[e]&&n[e].type||t}getSubLayerRow(e,t,n){return e.__source={parent:this,object:t,index:n},e}getSubLayerAccessor(e){if("function"==typeof e){const t={index:-1,data:this.props.data,target:[]};return(n,i)=>n&&n.__source?(t.index=n.__source.index,e(n.__source.object,t)):e(n,i)}return e}getSubLayerProps(e={}){const{opacity:t,pickable:n,visible:i,parameters:r,getPolygonOffset:o,highlightedObjectIndex:s,autoHighlight:a,highlightColor:l,coordinateSystem:A,coordinateOrigin:c,wrapLongitude:u,positionFormat:h,modelMatrix:d,extensions:f,fetch:p,operation:g,_subLayerProps:m}=this.props,_={id:"",updateTriggers:{},opacity:t,pickable:n,visible:i,parameters:r,getPolygonOffset:o,highlightedObjectIndex:s,autoHighlight:a,highlightColor:l,coordinateSystem:A,coordinateOrigin:c,wrapLongitude:u,positionFormat:h,modelMatrix:d,extensions:f,fetch:p,operation:g},b=m&&e.id&&m[e.id],v=b&&b.updateTriggers,y=e.id||"sublayer";if(b){const t=this.props[Ge],n=e.type?e.type._propTypes:{};for(const e in b){const i=n[e]||t[e];i&&"accessor"===i.type&&(b[e]=this.getSubLayerAccessor(b[e]))}}Object.assign(_,e,b),_.id=`${this.props.id}-${y}`,_.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...v};for(const e of f){const t=e.getSubLayerProps.call(this,e);t&&Object.assign(_,t,{updateTriggers:Object.assign(_.updateTriggers,t.updateTriggers)})}return _}_updateAutoHighlight(e){for(const t of this.getSubLayers())t.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,t){let n=this.internalState.subLayers;const i=!n||this.needsUpdate();if(i){n=je(this.renderLayers(),Boolean),this.internalState.subLayers=n}ye("compositeLayer.renderLayers",this,i,n);for(const e of n)e.parent=this}}CompositeLayer.layerName="CompositeLayer";const fo=CompositeLayer,po=1e-6;class SphericalCoordinates{constructor({phi:e=0,theta:t=0,radius:n=1,bearing:i,pitch:r,altitude:o,radiusScale:s=6371e3}={}){this.phi=e,this.theta=t,this.radius=n||o||1,this.radiusScale=s||1,void 0!==i&&(this.bearing=i),void 0!==r&&(this.pitch=r),this.check()}toString(){return this.formatString(cn.$W)}formatString({printTypes:e=!1}){const t=cn.Fl;return`${e?"Spherical":""}[rho:${t(this.radius)},theta:${t(this.theta)},phi:${t(this.phi)}]`}equals(e){return(0,cn.aI)(this.radius,e.radius)&&(0,cn.aI)(this.theta,e.theta)&&(0,cn.aI)(this.phi,e.phi)}exactEquals(e){return this.radius===e.radius&&this.theta===e.theta&&this.phi===e.phi}get bearing(){return 180-(0,cn.uj)(this.phi)}set bearing(e){this.phi=Math.PI-(0,cn.F2)(e)}get pitch(){return(0,cn.uj)(this.theta)}set pitch(e){this.theta=(0,cn.F2)(e)}get longitude(){return(0,cn.uj)(this.phi)}get latitude(){return(0,cn.uj)(this.theta)}get lng(){return(0,cn.uj)(this.phi)}get lat(){return(0,cn.uj)(this.theta)}get z(){return(this.radius-1)*this.radiusScale}set(e,t,n){return this.radius=e,this.phi=t,this.theta=n,this.check()}clone(){return(new SphericalCoordinates).copy(this)}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this.check()}fromLngLatZ([e,t,n]){return this.radius=1+n/this.radiusScale,this.phi=(0,cn.F2)(t),this.theta=(0,cn.F2)(e),this.check()}fromVector3(e){return this.radius=bn.Bw(e),this.radius>0&&(this.theta=Math.atan2(e[0],e[1]),this.phi=Math.acos((0,cn.qE)(e[2]/this.radius,-1,1))),this.check()}toVector3(){return new Xn.P(0,0,this.radius).rotateX({radians:this.theta}).rotateZ({radians:this.phi})}makeSafe(){return this.phi=Math.max(po,Math.min(Math.PI-po,this.phi)),this}check(){if(!(Number.isFinite(this.phi)&&Number.isFinite(this.theta)&&this.radius>0))throw new Error("SphericalCoordinates: some fields set to invalid numbers");return this}}class FirstPersonViewport extends Zt.A{constructor(e){const{longitude:t,latitude:n,modelMatrix:i,bearing:r=0,pitch:o=0,up:s=[0,0,1]}=e,a=new SphericalCoordinates({bearing:r,pitch:-90===o?1e-4:90+o}).toVector3().normalize(),l=i?new gn.k(i).transformAsVector(a):a,A=Number.isFinite(n)?(0,_n.fO)({latitude:n}):0,c=Math.pow(2,A),u=(new gn.k).lookAt({eye:[0,0,0],center:l,up:s}).scale(c);super({...e,zoom:A,viewMatrix:u}),this.latitude=n,this.longitude=t,this.pitch=o,this.bearing=r,this.up=s}}FirstPersonViewport.displayName="FirstPersonViewport";const go=FirstPersonViewport,mo=20;class FirstPersonState extends ViewState{constructor(e){const{width:t,height:n,position:i=[0,0,0],bearing:r=0,pitch:o=0,longitude:s=null,latitude:a=null,maxPitch:l=90,minPitch:A=-90,maxBounds:c=null,startRotatePos:u,startBearing:h,startPitch:d,startZoomPosition:f,startPanPos:p,startPanPosition:g}=e;super({width:t,height:n,position:i,bearing:r,pitch:o,longitude:s,latitude:a,maxPitch:l,minPitch:A,maxBounds:c},{startRotatePos:u,startBearing:h,startPitch:d,startZoomPosition:f,startPanPos:p,startPanPosition:g},e.makeViewport)}panStart({pos:e}){const{position:t}=this.getViewportProps();return this._getUpdatedState({startPanPos:e,startPanPosition:t})}pan({pos:e}){if(!e)return this;const{startPanPos:t=[0,0],startPanPosition:n=[0,0]}=this.getState(),{width:i,height:r,bearing:o,pitch:s}=this.getViewportProps(),a=500*(e[0]-t[0])/i,l=500*(e[1]-t[1])/r,A=new SphericalCoordinates({bearing:o,pitch:s}),c=new SphericalCoordinates({bearing:o,pitch:-90}),u=A.toVector3().normalize(),h=c.toVector3().cross(u).normalize();return this._getUpdatedState({position:new Xn.P(n).add(h.scale(a)).add(u.scale(l))})}panEnd(){return this._getUpdatedState({startPanPos:null,startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:t=0,deltaAngleY:n=0}){const{startRotatePos:i,startBearing:r,startPitch:o}=this.getState(),{width:s,height:a}=this.getViewportProps();if(!i||void 0===r||void 0===o)return this;let l;if(e){l={bearing:r-180*((e[0]-i[0])/s),pitch:o-90*((e[1]-i[1])/a)}}else l={bearing:r-t,pitch:o-n};return this._getUpdatedState(l)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:e,scale:t}){const n=this.getViewportProps(),i=this.getState().startZoomPosition||n.position,r=this.makeViewport(n),{projectionMatrix:o,width:s}=r,a=2*Math.atan(1/o[0])*(e[0]/s-.5),l=this.getDirection(!0);return this._move(l.rotateZ({radians:-a}),Math.log2(t)*mo,i)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(e=20){const t=this.getDirection(!0);return this._move(t.rotateZ({radians:Math.PI/2}),e)}moveRight(e=20){const t=this.getDirection(!0);return this._move(t.rotateZ({radians:-Math.PI/2}),e)}moveUp(e=20){const t=this.getDirection(!0);return this._move(t,e)}moveDown(e=20){const t=this.getDirection(!0);return this._move(t.negate(),e)}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}zoomIn(e=20){return this._move(new Xn.P(0,0,1),e)}zoomOut(e=20){return this._move(new Xn.P(0,0,-1),e)}shortestPathFrom(e){const t=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:r}=n;return Math.abs(i-t.bearing)>180&&(n.bearing=i<0?i+360:i-360),null!==r&&null!==t.longitude&&Math.abs(r-t.longitude)>180&&(n.longitude=r<0?r+360:r-360),n}_move(e,t,n=this.getViewportProps().position){const i=e.scale(t);return this._getUpdatedState({position:new Xn.P(n).add(i)})}getDirection(e=!1){return new SphericalCoordinates({bearing:this.getViewportProps().bearing,pitch:e?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(e){return new FirstPersonState({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){const{pitch:t,maxPitch:n,minPitch:i,longitude:r,position:o,bearing:s,maxBounds:a}=e;if(e.pitch=(0,cn.qE)(t,i,n),null!==r&&(r<-180||r>180)&&(e.longitude=(0,Gn.zi)(r+180,360)-180),(s<-180||s>180)&&(e.bearing=(0,Gn.zi)(s+180,360)-180),a){const t=(0,cn.qE)(o[0],a[0][0],a[1][0]),n=(0,cn.qE)(o[1],a[0][1],a[1][1]),i=(0,cn.qE)(o[2]??0,a[0][2]??0,a[1][2]??0);t===o[0]&&n===o[1]&&i===o[2]||(e.position=[t,n,i])}return e}}class FirstPersonController extends Controller{constructor(){super(...arguments),this.ControllerState=FirstPersonState,this.transition={transitionDuration:300,transitionInterpolator:new LinearInterpolator(["position","pitch","bearing"])}}}class FirstPersonView extends View{constructor(e={}){super(e)}getViewportType(){return go}get ControllerType(){return FirstPersonController}}FirstPersonView.displayName="FirstPersonView";const _o=FirstPersonView,bo=Math.PI/180;function vo({height:e,focalDistance:t,orbitAxis:n,rotationX:i,rotationOrbit:r,zoom:o}){const s="Z"===n?[0,0,1]:[0,1,0],a="Z"===n?[0,-t,0]:[0,0,t],l=(new gn.k).lookAt({eye:a,up:s});l.rotateX(i*bo),"Z"===n?l.rotateZ(r*bo):l.rotateY(r*bo);const A=Math.pow(2,o)/e;return l.scale(A),l}class OrbitViewport extends Zt.A{constructor(e){const{height:t,projectionMatrix:n,fovy:i=50,orbitAxis:r="Z",target:o=[0,0,0],rotationX:s=0,rotationOrbit:a=0,zoom:l=0}=e,A=n?n[5]/2:(0,_n.wZ)(i);super({...e,longitude:void 0,viewMatrix:vo({height:t||1,focalDistance:A,orbitAxis:r,rotationX:s,rotationOrbit:a,zoom:l}),fovy:i,focalDistance:A,position:o,zoom:l}),this.target=o,this.orbitAxis=r,this.rotationX=s,this.rotationOrbit=a,this.fovy=i,this.projectedCenter=this.project(this.center)}unproject(e,{topLeft:t=!0}={}){const[n,i,r=this.projectedCenter[2]]=e,o=t?i:this.height-i,[s,a,l]=(0,_n.xJ)([n,o,r],this.pixelUnprojectionMatrix);return[s,a,l]}panByPosition(e,t,n){const i=this.project(e),{near:r,far:o}=(0,Gn.om)(this.projectionMatrix),s=r*o/(o-i[2]*(o-r))/(r*o/(o-this.projectedCenter[2]*(o-r))),a=[this.width/2+(i[0]-t[0])*s,this.height/2+(i[1]-t[1])*s,this.projectedCenter[2]];return{target:this.unproject(a)}}}OrbitViewport.displayName="OrbitViewport";const yo=OrbitViewport;class OrbitState extends ViewState{constructor(e){const{width:t,height:n,rotationX:i=0,rotationOrbit:r=0,target:o=[0,0,0],zoom:s=0,minRotationX:a=-90,maxRotationX:l=90,minZoom:A=-1/0,maxZoom:c=1/0,maxBounds:u=null,startPanPosition:h,startRotatePos:d,startRotationX:f,startRotationOrbit:p,startZoomPosition:g,startZoom:m}=e;super({width:t,height:n,rotationX:i,rotationOrbit:r,target:o,zoom:s,minRotationX:a,maxRotationX:l,minZoom:A,maxZoom:c,maxBounds:u},{startPanPosition:h,startRotatePos:d,startRotationX:f,startRotationOrbit:p,startZoomPosition:g,startZoom:m},e.makeViewport),this.unproject3D=e.unproject3D}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:t}){const n=this.getState().startPanPosition||t;if(!n)return this;const i=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(i)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:e,deltaAngleX:t=0,deltaAngleY:n=0}){const{startRotatePos:i,startRotationX:r,startRotationOrbit:o}=this.getState(),{width:s,height:a}=this.getViewportProps();if(!i||void 0===r||void 0===o)return this;let l;if(e){let t=(e[0]-i[0])/s;(r<-90||r>90)&&(t*=-1),l={rotationX:r+180*((e[1]-i[1])/a),rotationOrbit:o+180*t}}else l={rotationX:r+n,rotationOrbit:o+t};return this._getUpdatedState(l)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){const t=e.getViewportProps(),n={...this.getViewportProps()},{rotationOrbit:i}=n;return Math.abs(i-t.rotationOrbit)>180&&(n.rotationOrbit=i<0?i+360:i-360),n}zoomStart({pos:e}){return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:t,scale:n}){let{startZoom:i,startZoomPosition:r}=this.getState();if(r||(i=this.getViewportProps().zoom,r=this._unproject(t||e)),!r)return this;const o=this._calculateNewZoom({scale:n,startZoom:i}),s=this.makeViewport({...this.getViewportProps(),zoom:o});return this._getUpdatedState({zoom:o,...s.panByPosition(r,e)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}zoomOut(e=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}moveLeft(e=50){return this._panFromCenter([-e,0])}moveRight(e=50){return this._panFromCenter([e,0])}moveUp(e=50){return this._panFromCenter([0,-e])}moveDown(e=50){return this._panFromCenter([0,e])}rotateLeft(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-e})}rotateRight(e=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+e})}rotateUp(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-e})}rotateDown(e=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+e})}_project(e){return this.makeViewport(this.getViewportProps()).project(e)}_unproject(e){const t=this.unproject3D?.(e);if(t)return t;return this.makeViewport(this.getViewportProps()).unproject(e)}_calculateNewZoom({scale:e,startZoom:t}){void 0===t&&(t=this.getViewportProps().zoom);const n=t+Math.log2(e);return this._constrainZoom(n)}_panFromCenter(e){const{target:t}=this.getViewportProps(),n=this._project(t);return this.pan({startPosition:t,pos:[n[0]+e[0],n[1]+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){const{maxRotationX:t,minRotationX:n,rotationOrbit:i}=e;return e.zoom=this._constrainZoom(e.zoom,e),e.rotationX=(0,cn.qE)(e.rotationX,n,t),(i<-180||i>180)&&(e.rotationOrbit=(0,Gn.zi)(i+180,360)-180),e.target=this._constrainTarget(e),e}_constrainZoom(e,t){t||(t=this.getViewportProps());const{maxZoom:n,maxBounds:i}=t;let{minZoom:r}=t;if(i&&t.width>0&&t.height>0){const e=i[1][0]-i[0][0],o=i[1][1]-i[0][1],s=(i[1][2]??0)-(i[0][2]??0),a=Math.sqrt(e*e+o*o+s*s);a>0&&(r=Math.max(r,Math.log2(Math.min(t.width,t.height)/a)),r>n&&(r=n))}return(0,cn.qE)(e,r,n)}_constrainTarget(e){const{target:t,maxBounds:n}=e;if(!n)return t;const[[i,r,o=0],[s,a,l=0]]=n;if(t[0]>=i&&t[0]<=s&&t[1]>=r&&t[1]<=a&&t[2]>=o&&t[2]<=l)return t;const A=this.makeViewport?.(e);if(A){const{cameraPosition:e}=A,n=e[0]-t[0],c=e[1]-t[1],u=e[2]-t[2],h=n*t[0]+c*t[1]+u*t[2];if((n||c||u)&&h>=n*(n>=0?i:s)+c*(c>=0?r:a)+u*(u>=0?o:l)&&h<=n*(n>=0?s:i)+c*(c>=0?a:r)+u*(u>=0?l:o)){const e=e=>(0,cn.qE)(e,i,s),A=e=>(0,cn.qE)(e,r,a),d=e=>(0,cn.qE)(e,o,l),f=i=>n*e(t[0]-i*n)+c*A(t[1]-i*c)+u*d(t[2]-i*u)-h;let p=-1,g=1,m=f(p),_=f(g);for(;m<0;)g=p,_=m,p*=2,m=f(p);for(;_>0;)p=g,m=_,g*=2,_=f(g);for(let e=0;e<30;e++){const e=(p+g)/2;f(e)>0?p=e:g=e}const b=(p+g)/2;return[e(t[0]-b*n),A(t[1]-b*c),d(t[2]-b*u)]}}return[(0,cn.qE)(t[0],i,s),(0,cn.qE)(t[1],r,a),(0,cn.qE)(t[2],o,l)]}}class OrbitController extends Controller{constructor(){super(...arguments),this.ControllerState=OrbitState,this.transition={transitionDuration:300,transitionInterpolator:new LinearInterpolator({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})},this._unproject3D=e=>{if(this.pickPosition){const{x:t,y:n}=this.props,i=this.pickPosition(t+e[0],n+e[1]);if(i&&i.coordinate)return i.coordinate}return null}}setProps(e){e.unproject3D=this._unproject3D,super.setProps(e)}}class OrbitView extends View{constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}getViewportType(){return yo}get ControllerType(){return OrbitController}}OrbitView.displayName="OrbitView";const Co=OrbitView;var wo=n(95896);function Eo({zoom:e=0,zoomX:t,zoomY:n}){return{zoomX:t=t??(Array.isArray(e)?e[0]:e),zoomY:n=n??(Array.isArray(e)?e[1]:e)}}class OrthographicState extends ViewState{constructor(e){const{width:t,height:n,target:i=[0,0,0],zoom:r=0,zoomAxis:o="all",minZoom:s=-1/0,maxZoom:a=1/0,minZoomX:l=s,maxZoomX:A=a,minZoomY:c=s,maxZoomY:u=a,maxBounds:h=null,startPanPosition:d,startZoomPosition:f,startZoom:p}=e,{zoomX:g,zoomY:m}=Eo(e);super({width:t,height:n,target:i,zoom:r,zoomX:g,zoomY:m,zoomAxis:o,minZoomX:l,maxZoomX:A,minZoomY:c,maxZoomY:u,maxBounds:h},{startPanPosition:d,startZoomPosition:f,startZoom:p},e.makeViewport)}panStart({pos:e}){return this._getUpdatedState({startPanPosition:this._unproject(e)})}pan({pos:e,startPosition:t}){const n=this.getState().startPanPosition||t;if(!n)return this;const i=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(i)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart(){return this}rotate(){return this}rotateEnd(){return this}shortestPathFrom(e){e.getViewportProps();return{...this.getViewportProps()}}zoomStart({pos:e}){const{zoomX:t,zoomY:n}=this.getViewportProps();return this._getUpdatedState({startZoomPosition:this._unproject(e),startZoom:[t,n]})}zoom({pos:e,startPos:t,scale:n}){let{startZoom:i,startZoomPosition:r}=this.getState();if(!r){const{zoomX:n,zoomY:o}=this.getViewportProps();i=[n,o],r=this._unproject(t||e)}if(!r)return this;const o=this._constrainZoom(this._calculateNewZoom({scale:n,startZoom:i})),s=this.makeViewport({...this.getViewportProps(),...o});return this._getUpdatedState({...o,...s.panByPosition(r,e)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(e=2){return this._getUpdatedState(this._calculateNewZoom({scale:e}))}zoomOut(e=2){return this._getUpdatedState(this._calculateNewZoom({scale:1/e}))}moveLeft(e=50){return this._panFromCenter([-e,0])}moveRight(e=50){return this._panFromCenter([e,0])}moveUp(e=50){return this._panFromCenter([0,-e])}moveDown(e=50){return this._panFromCenter([0,e])}rotateLeft(e=15){return this}rotateRight(e=15){return this}rotateUp(e=10){return this}rotateDown(e=10){return this}_project(e){return this.makeViewport(this.getViewportProps()).project(e)}_unproject(e){return this.makeViewport(this.getViewportProps()).unproject(e)}_calculateNewZoom({scale:e,startZoom:t}){const{zoomX:n,zoomY:i,zoomAxis:r}=this.getViewportProps();void 0===t&&(t=[n,i]);const o=Math.log2(e);let[s,a]=t;switch(r){case"X":s+=o;break;case"Y":a+=o;break;default:s+=o,a+=o}return{zoomX:s,zoomY:a}}_panFromCenter(e){const{target:t}=this.getViewportProps(),n=this._project(t);return this.pan({startPosition:t,pos:[n[0]+e[0],n[1]+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}applyConstraints(e){const{zoomX:t,zoomY:n}=this._constrainZoom(e,e);e.zoomX=t,e.zoomY=n,e.zoom=Array.isArray(e.zoom)||e.zoomX!==e.zoomY?[e.zoomX,e.zoomY]:e.zoomX;const{maxBounds:i,target:r}=e;if(i){const o=e.width/2/2**t,s=e.height/2/2**n,a=i[0][0]+o,l=i[1][0]-o,A=i[0][1]+s,c=i[1][1]-s,u=(0,cn.qE)(r[0],a,l),h=(0,cn.qE)(r[1],A,c);u===r[0]&&h===r[1]||(e.target=r.slice(),e.target[0]=u,e.target[1]=h)}return e}_constrainZoom({zoomX:e,zoomY:t},n){n||(n=this.getViewportProps());const{zoomAxis:i,maxZoomX:r,maxZoomY:o,maxBounds:s}=n;let{minZoomX:a,minZoomY:l}=n;if(null!==s&&n.width>0&&n.height>0){const e=s[0],t=s[1],i=t[0]-e[0],A=t[1]-e[1];Number.isFinite(i)&&i>0&&(a=Math.max(a,Math.log2(n.width/i)),a>r&&(a=r)),Number.isFinite(A)&&A>0&&(l=Math.max(l,Math.log2(n.height/A)),l>o&&(l=o))}switch(i){case"X":e=(0,cn.qE)(e,a,r);break;case"Y":t=(0,cn.qE)(t,l,o);break;default:let n=Math.min(r-e,o-t,0);0===n&&(n=Math.max(a-e,l-t,0)),0!==n&&(e+=n,t+=n)}return{zoomX:e,zoomY:t}}}class OrthographicController extends Controller{constructor(){super(...arguments),this.ControllerState=OrthographicState,this.transition={transitionDuration:300,transitionInterpolator:new LinearInterpolator(["target","zoomX","zoomY"])},this.dragMode="pan"}setProps(e){Object.assign(e,Eo(e)),super.setProps(e)}_onPanRotate(){return!1}}class OrthographicView extends View{constructor(e={}){super(e)}getViewportType(){return wo.A}get ControllerType(){return OrthographicController}}OrthographicView.displayName="OrthographicView";const xo=OrthographicView,To=Math.PI/180,So=180/Math.PI;function Po(e,t=0){const n=Math.min(180,e)*To;return 512*Math.sin(n/2)*Math.pow(2,t)}function Mo(e,t=0){const n=e/Math.pow(2,t);return 2*Math.asin(Math.min(1,n/256/2))*So}class GlobeState extends MapState{constructor(e){const{startPanPos:t,...n}=e;n.normalize=!1,super(n),void 0!==t&&(this._state.startPanPos=t)}panStart({pos:e}){const{latitude:t,longitude:n,zoom:i}=this.getViewportProps();return this._getUpdatedState({startPanLngLat:[n,t],startPanPos:e,startZoom:i})}pan({pos:e,startPos:t}){const n=this.getState(),i=n.startPanLngLat||this._unproject(t);if(!i)return this;const r=n.startZoom??this.getViewportProps().zoom,o=n.startPanPos||t,s=[i[0],i[1],r],a=this.makeViewport(this.getViewportProps()).panByPosition(s,e,o);return this._getUpdatedState(a)}panEnd(){return this._getUpdatedState({startPanLngLat:null,startPanPos:null,startZoom:null})}zoom({scale:e}){const t=(this.getState().startZoom||this.getViewportProps().zoom)+Math.log2(e);return this._getUpdatedState({zoom:t})}applyConstraints(e){const{longitude:t,latitude:n,maxBounds:i}=e;if(e.zoom=this._constrainZoom(e.zoom,e),(t<-180||t>180)&&(e.longitude=(0,Gn.zi)(t+180,360)-180),e.latitude=(0,cn.qE)(n,-_n.aH,_n.aH),i&&(e.longitude=(0,cn.qE)(e.longitude,i[0][0],i[1][0]),e.latitude=(0,cn.qE)(e.latitude,i[0][1],i[1][1])),i){const t=e.zoom-Sn(n),r=i[1][0]-i[0][0],o=i[1][1]-i[0][1];if(o>0&&o<2*_n.aH){const n=Math.min(Mo(e.height,t),o)/2;e.latitude=(0,cn.qE)(e.latitude,i[0][1]+n,i[1][1]-n)}if(r>0&&r<360){const n=Math.min(Mo(e.width/Math.cos(e.latitude*To),t),r)/2;e.longitude=(0,cn.qE)(e.longitude,i[0][0]+n,i[1][0]-n)}}return e.latitude!==n&&(e.zoom+=Sn(e.latitude)-Sn(n)),e}_constrainZoom(e,t){t||(t=this.getViewportProps());const{latitude:n,maxZoom:i,maxBounds:r}=t;let{minZoom:o}=t;const s=Sn(0),a=Sn(n)-s;if(null!==r&&t.width>0&&t.height>0){const e=r[0][1],n=r[1][1],a=Math.sign(e)===Math.sign(n)?Math.min(Math.abs(e),Math.abs(n)):0,l=Po(r[1][0]-r[0][0])*Math.cos(a*To),A=Po(r[1][1]-r[0][1]);l>0&&(o=Math.max(o,Math.log2(t.width/l)+s)),A>0&&(o=Math.max(o,Math.log2(t.height/A)+s)),o>i&&(o=i)}return(0,cn.qE)(e,o+a,i+a)}}class GlobeController extends Controller{constructor(){super(...arguments),this.ControllerState=GlobeState,this.transition={transitionDuration:300,transitionInterpolator:new LinearInterpolator(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(e){super.setProps(e),this.dragRotate=!1,this.touchRotate=!1}}const Ro={cullMode:"back"};class GlobeView extends View{constructor(e={}){super({...e,parameters:{...Ro,...e.parameters}})}getViewportType(e){return e.zoom>12?An.A:Tn}get ControllerType(){return GlobeController}}GlobeView.displayName="GlobeView";const Bo=GlobeView;class TerrainController extends MapController{constructor(){super(...arguments),this._terrainAltitude=void 0,this._terrainAltitudeTarget=void 0,this._pickFrameId=null,this._lastPickTime=0}setProps(e){if(super.setProps({rotationPivot:"3d",...e}),null===this._pickFrameId){const e=()=>{const t=Date.now();if(t-this._lastPickTime>500&&!this.isDragging()&&(this._lastPickTime=t,this._pickTerrainCenterAltitude(),void 0===this._terrainAltitude&&void 0!==this._terrainAltitudeTarget)){this._terrainAltitude=this._terrainAltitudeTarget;const e=new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),t=this._rebaseViewport(this._terrainAltitudeTarget,e);if(t){const e=new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state,...t});super.updateViewport(e)}}this._pickFrameId=requestAnimationFrame(e)};this._pickFrameId=requestAnimationFrame(e)}}finalize(){null!==this._pickFrameId&&(cancelAnimationFrame(this._pickFrameId),this._pickFrameId=null),super.finalize()}updateViewport(e,t=null,n={}){if(void 0===this._terrainAltitude)return void super.updateViewport(e,t,n);this._terrainAltitude+=.05*(this._terrainAltitudeTarget-this._terrainAltitude);const i=e.getViewportProps().position||[0,0,0];t={...t,position:[i[0],i[1],this._terrainAltitude]},super.updateViewport(e,t,n)}_pickTerrainCenterAltitude(){if(!this.pickPosition)return;const{x:e,y:t,width:n,height:i}=this.props,r=this.pickPosition(e+n/2,t+i/2);r?.coordinate&&r.coordinate.length>=3&&(this._terrainAltitudeTarget=r.coordinate[2])}_rebaseViewport(e,t){const n=t.getViewportProps(),i=this.makeViewport({...n,position:[0,0,0]}),r=i.cameraPosition,o=e*i.distanceScales.unitsPerMeter[2],s=r[2],a=s-o;if(a<=0)return null;const l=Math.log2(s/a),A=n.zoom+l,c=this.makeViewport({...n,zoom:A,position:[0,0,e]}),{width:u,height:h}=n,d=[u/2,h/2],f=i.unproject(d,{targetZ:e});if(f&&"panByPosition3D"in c&&"function"==typeof c.panByPosition3D){return{position:[0,0,e],zoom:A,...c.panByPosition3D(f,d)}}return null}}const Io={name:"color",dependencies:[],source:"\n\n@must_use\nfn deckgl_premultiplied_alpha(fragColor: vec4<f32>) -> vec4<f32> {\n return vec4(fragColor.rgb * fragColor.a, fragColor.a); \n};\n",getUniforms:e=>({})};function Lo(e,t=!0){return e??t}function Fo(e=[0,0,0],t=!0){return t?e.map(e=>e/255):[...e]}const Do={props:{},uniforms:{},name:"picking",uniformTypes:{isActive:"f32",isAttribute:"f32",isHighlightActive:"f32",useByteColors:"f32",highlightedObjectColor:"vec3<f32>",highlightColor:"vec4<f32>"},defaultUniforms:{isActive:!1,isAttribute:!1,isHighlightActive:!1,useByteColors:!0,highlightedObjectColor:[0,0,0],highlightColor:[0,1,1,1]},vs:"layout(std140) uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float useByteColors;\n vec3 highlightedObjectColor;\n vec4 highlightColor;\n} picking;\n\nout vec4 picking_vRGBcolor_Avalid;\n\n// Normalize unsigned byte color to 0-1 range\nvec3 picking_normalizeColor(vec3 color) {\n return picking.useByteColors > 0.5 ? color / 255.0 : color;\n}\n\n// Normalize unsigned byte color to 0-1 range\nvec4 picking_normalizeColor(vec4 color) {\n return picking.useByteColors > 0.5 ? color / 255.0 : color;\n}\n\nbool picking_isColorZero(vec3 color) {\n return dot(color, vec3(1.0)) < 0.00001;\n}\n\nbool picking_isColorValid(vec3 color) {\n return dot(color, vec3(1.0)) > 0.00001;\n}\n\n// Check if this vertex is highlighted \nbool isVertexHighlighted(vec3 vertexColor) {\n vec3 highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n return\n bool(picking.isHighlightActive) && picking_isColorZero(abs(vertexColor - highlightedObjectColor));\n}\n\n// Set the current picking color\nvoid picking_setPickingColor(vec3 pickingColor) {\n pickingColor = picking_normalizeColor(pickingColor);\n\n if (bool(picking.isActive)) {\n // Use alpha as the validity flag. If pickingColor is [0, 0, 0] fragment is non-pickable\n picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor));\n\n if (!bool(picking.isAttribute)) {\n // Stores the picking color so that the fragment shader can render it during picking\n picking_vRGBcolor_Avalid.rgb = pickingColor;\n }\n } else {\n // Do the comparison with selected item color in vertex shader as it should mean fewer compares\n picking_vRGBcolor_Avalid.a = float(isVertexHighlighted(pickingColor));\n }\n}\n\nvoid picking_setPickingAttribute(float value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.r = value;\n }\n}\n\nvoid picking_setPickingAttribute(vec2 value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.rg = value;\n }\n}\n\nvoid picking_setPickingAttribute(vec3 value) {\n if (bool(picking.isAttribute)) {\n picking_vRGBcolor_Avalid.rgb = value;\n }\n}\n",fs:"layout(std140) uniform pickingUniforms {\n float isActive;\n float isAttribute;\n float isHighlightActive;\n float useByteColors;\n vec3 highlightedObjectColor;\n vec4 highlightColor;\n} picking;\n\nin vec4 picking_vRGBcolor_Avalid;\n\n/*\n * Returns highlight color if this item is selected.\n */\nvec4 picking_filterHighlightColor(vec4 color) {\n // If we are still picking, we don't highlight\n if (picking.isActive > 0.5) {\n return color;\n }\n\n bool selected = bool(picking_vRGBcolor_Avalid.a);\n\n if (selected) {\n // Blend in highlight color based on its alpha value\n float highLightAlpha = picking.highlightColor.a;\n float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha);\n float highLightRatio = highLightAlpha / blendedAlpha;\n\n vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n } else {\n return color;\n }\n}\n\n/*\n * Returns picking color if picking enabled else unmodified argument.\n */\nvec4 picking_filterPickingColor(vec4 color) {\n if (bool(picking.isActive)) {\n if (picking_vRGBcolor_Avalid.a == 0.0) {\n discard;\n }\n return picking_vRGBcolor_Avalid;\n }\n return color;\n}\n\n/*\n * Returns picking color if picking is enabled if not\n * highlight color if this item is selected, otherwise unmodified argument.\n */\nvec4 picking_filterColor(vec4 color) {\n vec4 highlightColor = picking_filterHighlightColor(color);\n return picking_filterPickingColor(highlightColor);\n}\n",getUniforms:function(e={},t){const n={},i=Lo(e.useByteColors,!0);if(void 0===e.highlightedObjectColor);else if(null===e.highlightedObjectColor)n.isHighlightActive=!1;else{n.isHighlightActive=!0;const t=e.highlightedObjectColor.slice(0,3);n.highlightedObjectColor=t}e.highlightColor&&(n.highlightColor=function(e,t=!0){const n=Fo(e.slice(0,3),t),i=Number.isFinite(e[3]),r=i?e[3]:1;return[n[0],n[1],n[2],t&&i?r/255:r]}(e.highlightColor,i));void 0!==e.isActive&&(n.isActive=Boolean(e.isActive),n.isAttribute=Boolean(e.isAttribute));void 0!==e.useByteColors&&(n.useByteColors=Boolean(e.useByteColors));return n}};const Oo={...Do,source:"struct pickingUniforms {\n isActive: f32,\n isAttribute: f32,\n isHighlightActive: f32,\n useByteColors: f32,\n highlightedObjectColor: vec3<f32>,\n highlightColor: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n\nfn picking_normalizeColor(color: vec3<f32>) -> vec3<f32> {\n return select(color, color / 255.0, picking.useByteColors > 0.5);\n}\n\nfn picking_normalizeColor4(color: vec4<f32>) -> vec4<f32> {\n return select(color, color / 255.0, picking.useByteColors > 0.5);\n}\n\nfn picking_isColorZero(color: vec3<f32>) -> bool {\n return dot(color, vec3<f32>(1.0)) < 0.00001;\n}\n\nfn picking_isColorValid(color: vec3<f32>) -> bool {\n return dot(color, vec3<f32>(1.0)) > 0.00001;\n}\n",defaultUniforms:{...Do.defaultUniforms,useByteColors:!0},inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n // for picking depth values\n picking_setPickingAttribute(position.z / position.w);\n ","vs:DECKGL_FILTER_COLOR":"\n picking_setPickingColor(geometry.pickingColor);\n ","fs:DECKGL_FILTER_COLOR":{order:99,injection:"\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n "}}},No={name:"project32",dependencies:[$n.A],source:"// Define a structure to hold both the clip-space position and the common position.\nstruct ProjectResult {\n clipPosition: vec4<f32>,\n commonPosition: vec4<f32>,\n};\n\n// This function mimics the GLSL version with the 'out' parameter by returning both values.\nfn project_position_to_clipspace_and_commonspace(\n position: vec3<f32>,\n position64Low: vec3<f32>,\n offset: vec3<f32>\n) -> ProjectResult {\n // Compute the projected position.\n let projectedPosition: vec3<f32> = project_position_vec3_f64(position, position64Low);\n\n // Start with the provided offset.\n var finalOffset: vec3<f32> = offset;\n\n // Get whether a rotation is needed and the rotation matrix.\n let rotationResult = project_needs_rotation(projectedPosition);\n\n // If rotation is needed, update the offset.\n if (rotationResult.needsRotation) {\n finalOffset = rotationResult.transform * offset;\n }\n\n // Compute the common position.\n let commonPosition: vec4<f32> = vec4<f32>(projectedPosition + finalOffset, 1.0);\n\n // Convert to clip-space.\n let clipPosition: vec4<f32> = project_common_position_to_clipspace(commonPosition);\n\n return ProjectResult(clipPosition, commonPosition);\n}\n\n// A convenience overload that returns only the clip-space position.\nfn project_position_to_clipspace(\n position: vec3<f32>,\n position64Low: vec3<f32>,\n offset: vec3<f32>\n) -> vec4<f32> {\n return project_position_to_clipspace_and_commonspace(position, position64Low, offset).clipPosition;\n}\n",vs:"vec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n mat3 rotation;\n if (project_needs_rotation(projectedPosition, rotation)) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n"},ko="layout(std140) uniform floatColorsUniforms {\n float useByteColors;\n} floatColors;\n\nvec3 floatColors_normalize(vec3 inputColor) {\n return floatColors.useByteColors > 0.5 ? inputColor / 255.0 : inputColor;\n}\n\nvec4 floatColors_normalize(vec4 inputColor) {\n return floatColors.useByteColors > 0.5 ? inputColor / 255.0 : inputColor;\n}\n\nvec4 floatColors_premultiplyAlpha(vec4 inputColor) {\n return vec4(inputColor.rgb * inputColor.a, inputColor.a);\n}\n\nvec4 floatColors_unpremultiplyAlpha(vec4 inputColor) {\n return inputColor.a > 0.0 ? vec4(inputColor.rgb / inputColor.a, inputColor.a) : vec4(0.0);\n}\n\nvec4 floatColors_premultiply_alpha(vec4 inputColor) {\n return floatColors_premultiplyAlpha(inputColor);\n}\n\nvec4 floatColors_unpremultiply_alpha(vec4 inputColor) {\n return floatColors_unpremultiplyAlpha(inputColor);\n}\n",Uo={name:"floatColors",props:{},uniforms:{},vs:ko,fs:ko,source:"struct floatColorsUniforms {\n useByteColors: f32\n};\n\n@group(0) @binding(auto) var<uniform> floatColors : floatColorsUniforms;\n\nfn floatColors_normalize(inputColor: vec3<f32>) -> vec3<f32> {\n return select(inputColor, inputColor / 255.0, floatColors.useByteColors > 0.5);\n}\n\nfn floatColors_normalize4(inputColor: vec4<f32>) -> vec4<f32> {\n return select(inputColor, inputColor / 255.0, floatColors.useByteColors > 0.5);\n}\n\nfn floatColors_premultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> {\n return vec4<f32>(inputColor.rgb * inputColor.a, inputColor.a);\n}\n\nfn floatColors_unpremultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> {\n return select(\n vec4<f32>(0.0),\n vec4<f32>(inputColor.rgb / inputColor.a, inputColor.a),\n inputColor.a > 0.0\n );\n}\n\nfn floatColors_premultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> {\n return floatColors_premultiplyAlpha(inputColor);\n}\n\nfn floatColors_unpremultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> {\n return floatColors_unpremultiplyAlpha(inputColor);\n}\n",uniformTypes:{useByteColors:"f32"},defaultUniforms:{useByteColors:!0}},Go="precision highp int;\n\n// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation; // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct UniformLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nlayout(std140) uniform lightingUniforms {\n int enabled;\n int directionalLightCount;\n int pointLightCount;\n int spotLightCount;\n vec3 ambientColor;\n UniformLight lights[5];\n} lighting;\n\nPointLight lighting_getPointLight(int index) {\n UniformLight light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nSpotLight lighting_getSpotLight(int index) {\n UniformLight light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nDirectionalLight lighting_getDirectionalLight(int index) {\n UniformLight light =\n lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfloat getSpotLightAttenuation(SpotLight spotLight, vec3 positionWorldspace) {\n vec3 light_direction = normalize(positionWorldspace - spotLight.position);\n float coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), light_direction)\n );\n float distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n\n// #endif\n",Vo={props:{},uniforms:{},name:"lighting",defines:{},uniformTypes:{enabled:"i32",directionalLightCount:"i32",pointLightCount:"i32",spotLightCount:"i32",ambientColor:"vec3<f32>",lights:[{color:"vec3<f32>",position:"vec3<f32>",direction:"vec3<f32>",attenuation:"vec3<f32>",coneCos:"vec2<f32>"},5]},defaultUniforms:jo(),bindingLayout:[{name:"lighting",group:2}],firstBindingSlot:0,source:"// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nconst MAX_LIGHTS: i32 = 5;\n\nstruct AmbientLight {\n color: vec3<f32>,\n};\n\nstruct PointLight {\n color: vec3<f32>,\n position: vec3<f32>,\n attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct DirectionalLight {\n color: vec3<f32>,\n direction: vec3<f32>,\n};\n\nstruct UniformLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct lightingUniforms {\n enabled: i32,\n directionalLightCount: i32,\n pointLightCount: i32,\n spotLightCount: i32,\n ambientColor: vec3<f32>,\n lights: array<UniformLight, 5>,\n};\n\n@group(2) @binding(auto) var<uniform> lighting : lightingUniforms;\n\nfn lighting_getPointLight(index: i32) -> PointLight {\n let light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nfn lighting_getSpotLight(index: i32) -> SpotLight {\n let light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nfn lighting_getDirectionalLight(index: i32) -> DirectionalLight {\n let light = lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>) -> f32 {\n let lightDirection = normalize(positionWorldspace - spotLight.position);\n let coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), lightDirection)\n );\n let distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n",vs:Go,fs:Go,getUniforms:function(e,t={}){if(!(e=e?{...e}:e))return jo();e.lights&&(e={...e,...Ho(e.lights),lights:void 0});const{useByteColors:n,ambientLight:i,pointLights:r,spotLights:o,directionalLights:s}=e||{};if(!(i||r&&r.length>0||o&&o.length>0||s&&s.length>0))return{...jo(),enabled:0};const a={...jo(),...zo({useByteColors:n,ambientLight:i,pointLights:r,spotLights:o,directionalLights:s})};void 0!==e.enabled&&(a.enabled=e.enabled?1:0);return a}};function zo({useByteColors:e,ambientLight:t,pointLights:n=[],spotLights:i=[],directionalLights:r=[]}){const o=Qo();let s=0,a=0,l=0,A=0;for(const t of n){if(s>=5)break;o[s]={...o[s],color:Wo(t,e),position:t.position,attenuation:t.attenuation||[1,0,0]},s++,a++}for(const t of i){if(s>=5)break;o[s]={...o[s],color:Wo(t,e),position:t.position,direction:t.direction,attenuation:t.attenuation||[1,0,0],coneCos:Xo(t)},s++,l++}for(const t of r){if(s>=5)break;o[s]={...o[s],color:Wo(t,e),direction:t.direction},s++,A++}return n.length+i.length+r.length>5&&Bi.R.warn("MAX_LIGHTS exceeded, truncating to 5")(),{ambientColor:Wo(t,e),directionalLightCount:A,pointLightCount:a,spotLightCount:l,lights:o}}function Ho(e){const t={pointLights:[],spotLights:[],directionalLights:[]};for(const n of e||[])switch(n.type){case"ambient":t.ambientLight=n;break;case"directional":t.directionalLights?.push(n);break;case"point":t.pointLights?.push(n);break;case"spot":t.spotLights?.push(n)}return t}function Wo(e={},t){const{color:n=[0,0,0],intensity:i=1}=e;return Fo(n,Lo(t,!0)).map(e=>e*i)}function jo(){return{enabled:1,directionalLightCount:0,pointLightCount:0,spotLightCount:0,ambientColor:[.1,.1,.1],lights:Qo()}}function Qo(){return Array.from({length:5},()=>({color:[1,1,1],position:[1,1,2],direction:[1,1,1],attenuation:[1,0,0],coneCos:[1,0]}))}function Xo(e){const t=e.innerConeAngle??0,n=e.outerConeAngle??Math.PI/4;return[Math.cos(t),Math.cos(n)]}const Ko="layout(std140) uniform phongMaterialUniforms {\n uniform bool unlit;\n uniform float ambient;\n uniform float diffuse;\n uniform float shininess;\n uniform vec3 specularColor;\n} material;\n",Jo="layout(std140) uniform phongMaterialUniforms {\n uniform bool unlit;\n uniform float ambient;\n uniform float diffuse;\n uniform float shininess;\n uniform vec3 specularColor;\n} material;\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) {\n vec3 halfway_direction = normalize(light_direction + view_direction);\n float lambertian = dot(light_direction, normal_worldspace);\n float specular = 0.0;\n if (lambertian > 0.0) {\n float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, material.shininess);\n }\n lambertian = max(lambertian, 0.0);\n return (lambertian * material.diffuse * surfaceColor + specular * floatColors_normalize(material.specularColor)) * color;\n}\n\nvec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) {\n vec3 lightColor = surfaceColor;\n\n if (material.unlit) {\n return surfaceColor;\n }\n\n if (lighting.enabled == 0) {\n return lightColor;\n }\n\n vec3 view_direction = normalize(cameraPosition - position_worldspace);\n lightColor = material.ambient * surfaceColor * lighting.ambientColor;\n\n for (int i = 0; i < lighting.pointLightCount; i++) {\n PointLight pointLight = lighting_getPointLight(i);\n vec3 light_position_worldspace = pointLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n float light_attenuation = getPointLightAttenuation(pointLight, distance(light_position_worldspace, position_worldspace));\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color / light_attenuation);\n }\n\n for (int i = 0; i < lighting.spotLightCount; i++) {\n SpotLight spotLight = lighting_getSpotLight(i);\n vec3 light_position_worldspace = spotLight.position;\n vec3 light_direction = normalize(light_position_worldspace - position_worldspace);\n float light_attenuation = getSpotLightAttenuation(spotLight, position_worldspace);\n lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, spotLight.color / light_attenuation);\n }\n\n for (int i = 0; i < lighting.directionalLightCount; i++) {\n DirectionalLight directionalLight = lighting_getDirectionalLight(i);\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n \n return lightColor;\n}\n",qo="struct phongMaterialUniforms {\n unlit: u32,\n ambient: f32,\n diffuse: f32,\n shininess: f32,\n specularColor: vec3<f32>,\n};\n\n@group(3) @binding(auto) var<uniform> phongMaterial : phongMaterialUniforms;\n\nfn lighting_getLightColor(surfaceColor: vec3<f32>, light_direction: vec3<f32>, view_direction: vec3<f32>, normal_worldspace: vec3<f32>, color: vec3<f32>) -> vec3<f32> {\n let halfway_direction: vec3<f32> = normalize(light_direction + view_direction);\n var lambertian: f32 = dot(light_direction, normal_worldspace);\n var specular: f32 = 0.0;\n if (lambertian > 0.0) {\n let specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0);\n specular = pow(specular_angle, phongMaterial.shininess);\n }\n lambertian = max(lambertian, 0.0);\n return (\n lambertian * phongMaterial.diffuse * surfaceColor +\n specular * floatColors_normalize(phongMaterial.specularColor)\n ) * color;\n}\n\nfn lighting_getLightColor2(surfaceColor: vec3<f32>, cameraPosition: vec3<f32>, position_worldspace: vec3<f32>, normal_worldspace: vec3<f32>) -> vec3<f32> {\n var lightColor: vec3<f32> = surfaceColor;\n\n if (phongMaterial.unlit != 0u) {\n return surfaceColor;\n }\n\n if (lighting.enabled == 0) {\n return lightColor;\n }\n\n let view_direction: vec3<f32> = normalize(cameraPosition - position_worldspace);\n lightColor = phongMaterial.ambient * surfaceColor * lighting.ambientColor;\n\n for (var i: i32 = 0; i < lighting.pointLightCount; i++) {\n let pointLight: PointLight = lighting_getPointLight(i);\n let light_position_worldspace: vec3<f32> = pointLight.position;\n let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace);\n let light_attenuation = getPointLightAttenuation(\n pointLight,\n distance(light_position_worldspace, position_worldspace)\n );\n lightColor += lighting_getLightColor(\n surfaceColor,\n light_direction,\n view_direction,\n normal_worldspace,\n pointLight.color / light_attenuation\n );\n }\n\n for (var i: i32 = 0; i < lighting.spotLightCount; i++) {\n let spotLight: SpotLight = lighting_getSpotLight(i);\n let light_position_worldspace: vec3<f32> = spotLight.position;\n let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace);\n let light_attenuation = getSpotLightAttenuation(spotLight, position_worldspace);\n lightColor += lighting_getLightColor(\n surfaceColor,\n light_direction,\n view_direction,\n normal_worldspace,\n spotLight.color / light_attenuation\n );\n }\n\n for (var i: i32 = 0; i < lighting.directionalLightCount; i++) {\n let directionalLight: DirectionalLight = lighting_getDirectionalLight(i);\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n } \n \n return lightColor;\n}\n\nfn lighting_getSpecularLightColor(cameraPosition: vec3<f32>, position_worldspace: vec3<f32>, normal_worldspace: vec3<f32>) -> vec3<f32>{\n var lightColor = vec3<f32>(0, 0, 0);\n let surfaceColor = vec3<f32>(0, 0, 0);\n\n if (lighting.enabled != 0) {\n let view_direction = normalize(cameraPosition - position_worldspace);\n\n for (var i: i32 = 0; i < lighting.pointLightCount; i++) {\n let pointLight: PointLight = lighting_getPointLight(i);\n let light_position_worldspace: vec3<f32> = pointLight.position;\n let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace);\n let light_attenuation = getPointLightAttenuation(\n pointLight,\n distance(light_position_worldspace, position_worldspace)\n );\n lightColor += lighting_getLightColor(\n surfaceColor,\n light_direction,\n view_direction,\n normal_worldspace,\n pointLight.color / light_attenuation\n );\n }\n\n for (var i: i32 = 0; i < lighting.spotLightCount; i++) {\n let spotLight: SpotLight = lighting_getSpotLight(i);\n let light_position_worldspace: vec3<f32> = spotLight.position;\n let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace);\n let light_attenuation = getSpotLightAttenuation(spotLight, position_worldspace);\n lightColor += lighting_getLightColor(\n surfaceColor,\n light_direction,\n view_direction,\n normal_worldspace,\n spotLight.color / light_attenuation\n );\n }\n\n for (var i: i32 = 0; i < lighting.directionalLightCount; i++) {\n let directionalLight: DirectionalLight = lighting_getDirectionalLight(i);\n lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color);\n }\n }\n return lightColor;\n}\n",Yo={props:{},name:"gouraudMaterial",bindingLayout:[{name:"gouraudMaterial",group:3}],vs:Jo.replace("phongMaterial","gouraudMaterial"),fs:Ko.replace("phongMaterial","gouraudMaterial"),source:qo.replaceAll("phongMaterial","gouraudMaterial"),defines:{LIGHTING_VERTEX:!0},dependencies:[Vo,Uo],uniformTypes:{unlit:"i32",ambient:"f32",diffuse:"f32",shininess:"f32",specularColor:"vec3<f32>"},defaultUniforms:{unlit:!1,ambient:.35,diffuse:.6,shininess:32,specularColor:[38.25,38.25,38.25]},getUniforms:e=>({...Yo.defaultUniforms,...e})},Zo={name:"phongMaterial",firstBindingSlot:0,bindingLayout:[{name:"phongMaterial",group:3}],dependencies:[Vo,Uo],source:qo,vs:Ko,fs:Jo,defines:{LIGHTING_FRAGMENT:!0},uniformTypes:{unlit:"i32",ambient:"f32",diffuse:"f32",shininess:"f32",specularColor:"vec3<f32>"},defaultUniforms:{unlit:!1,ambient:.35,diffuse:.6,shininess:32,specularColor:[38.25,38.25,38.25]},getUniforms:e=>({...Zo.defaultUniforms,...e})},$o={bearing:0,pitch:0,position:[0,0,0]},es={speed:1.2,curve:1.414};class FlyToInterpolator extends TransitionInterpolator{constructor(e={}){super({compare:["longitude","latitude","zoom","bearing","pitch","position"],extract:["width","height","longitude","latitude","zoom","bearing","pitch","position"],required:["width","height","latitude","longitude","zoom"]}),this.opts={...es,...e}}interpolateProps(e,t,n){const i=(0,_n.rj)(e,t,n,this.opts);for(const r in $o)i[r]=(0,cn.Cc)(e[r]||$o[r],t[r]||$o[r],n);return i}getDuration(e,t){let{transitionDuration:n}=t;return"auto"===n&&(n=(0,_n.v7)(e,t,this.opts)),n}}var ts=n(16094),ns=n(4500);class Geometry{id;topology;vertexCount;indices;attributes;userData={};constructor(e){const{attributes:t={},indices:n=null,vertexCount:i=null}=e;this.id=e.id||(0,ns.L)("geometry"),this.topology=e.topology,n&&(this.indices=ArrayBuffer.isView(n)?{value:n,size:1}:n),this.attributes={};for(const[e,n]of Object.entries(t)){const t=ArrayBuffer.isView(n)?{value:n}:n;if(!ArrayBuffer.isView(t.value))throw new Error(`${this._print(e)}: must be typed array or object with value as typed array`);if("POSITION"!==e&&"positions"!==e||t.size||(t.size=3),"indices"===e){if(this.indices)throw new Error("Multiple indices detected");this.indices=t}else this.attributes[e]=t}this.indices&&void 0!==this.indices.isIndexed&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this.vertexCount=i||this._calculateVertexCount(this.attributes,this.indices)}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(e){return`Geometry ${this.id} attribute ${e}`}_setAttributes(e,t){return this}_calculateVertexCount(e,t){if(t)return t.value.length;let n=1/0;for(const t of Object.values(e)){const{value:e,size:i,constant:r}=t;!r&&e&&void 0!==i&&i>=1&&(n=Math.min(n,e.length/i))}return n}}const is=[-1,-1,1,-1,-1,1,1,1];class ClipSpace extends dr.K{constructor(e,t){const n=is.map(e=>-1===e?0:e);t.source&&(t={...t,source:`struct VertexInputs {\n @location(0) clipSpacePositions: vec2<f32>,\n @location(1) texCoords: vec2<f32>,\n @location(2) coordinates: vec2<f32>\n}\n\nstruct FragmentInputs {\n @builtin(position) Position : vec4<f32>,\n @location(0) position : vec2<f32>,\n @location(1) coordinate : vec2<f32>,\n @location(2) uv : vec2<f32>\n};\n\n@vertex\nfn vertexMain(inputs: VertexInputs) -> FragmentInputs {\n var outputs: FragmentInputs;\n outputs.Position = vec4(inputs.clipSpacePositions, 0., 1.);\n outputs.position = inputs.clipSpacePositions;\n outputs.coordinate = inputs.coordinates;\n outputs.uv = inputs.texCoords;\n return outputs;\n}\n\n${t.source}`}),super(e,{id:t.id||(0,ns.L)("clip-space"),...t,vs:"#version 300 es\nin vec2 clipSpacePositions;\nin vec2 texCoords;\nin vec2 coordinates;\n\nout vec2 position;\nout vec2 coordinate;\nout vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(clipSpacePositions, 0., 1.);\n position = clipSpacePositions;\n coordinate = coordinates;\n uv = texCoords;\n}\n",vertexCount:4,geometry:new Geometry({topology:"triangle-strip",vertexCount:4,attributes:{clipSpacePositions:{size:2,value:new Float32Array(is)},texCoords:{size:2,value:new Float32Array(n)},coordinates:{size:2,value:new Float32Array(n)}}})})}}var rs=n(8036);const os={name:"screen",fs:"layout(std140) uniform screenUniforms {\n vec2 texSize;\n} screen;\n",uniformTypes:{texSize:"vec2<f32>"}};class ScreenPass extends rs.A{constructor(e,t){super(e,t);const{module:n,fs:i,id:r}=t;this.model=new ClipSpace(e,{id:r,fs:i,modules:[n,os],parameters:{depthWriteEnabled:!1,depthCompare:"always",depthBias:0,blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"}})}render(e){this._renderPass(this.device,e)}delete(){this.model.destroy(),this.model=null}_renderPass(e,t){const{clearCanvas:n,inputBuffer:i,outputBuffer:r}=t,o=[i.width,i.height],s={texSrc:i.colorAttachments[0],texSize:o};this.model.shaderInputs.setProps({screen:s,...t.moduleProps});const a=this.device.beginRenderPass({framebuffer:r,parameters:{viewport:[0,0,...o]},clearColor:!!n&&[0,0,0,0],clearDepth:1,clearStencil:!1});this.model.draw(a),a.end()}}class PostProcessEffect{constructor(e,t){this.id=`${e.name}-pass`,this.props=t,(0,ts.UK)(e),this.module=e}setup({device:e}){this.passes=function(e,t,n){return t.passes.map((i,r)=>{const o=function(e,t){if(t.filter){return(e=>`${ss}\nvoid main() {\n fragColor = texture(texSrc, coordinate);\n fragColor = ${e}(fragColor, screen.texSize, coordinate);\n}\n`)("string"==typeof t.filter?t.filter:`${e.name}_filterColor_ext`)}if(t.sampler){return(e=>`${ss}\nvoid main() {\n fragColor = ${e}(texSrc, screen.texSize, coordinate);\n}\n`)("string"==typeof t.sampler?t.sampler:`${e.name}_sampleColor`)}return""}(t,i);return new ScreenPass(e,{id:`${n}-${r}`,module:t,fs:o})})}(e,this.module,this.id)}setProps(e){this.props=e}preRender(){}postRender(e){const t=this.passes,{target:n}=e;let i=e.inputBuffer,r=e.swapBuffer;for(let o=0;o<t.length;o++){const s=o===t.length-1,a=void 0!==n&&s;a&&(r=n);const l=!a||Boolean(e.clearCanvas),A={},c=this.module.passes[o].uniforms;A[this.module.name]={...this.props,...c},t[o].render({clearCanvas:l,inputBuffer:i,outputBuffer:r,moduleProps:A});const u=r;r=i,i=u}return i}cleanup(){if(this.passes){for(const e of this.passes)e.delete();this.passes=void 0}}}const ss="#version 300 es\nuniform sampler2D texSrc;\n\nin vec2 position;\nin vec2 coordinate;\nin vec2 uv;\n\nout vec4 fragColor;\n";const as=[255,255,255],ls=1,As=[1,0,0],cs=[0,0,1];let us=0;class PointLight{constructor(e={}){this.type="point";const{color:t=as}=e,{intensity:n=ls}=e,{position:i=cs}=e;this.id=e.id||"point-"+us++,this.color=t,this.intensity=n,this.type="point",this.position=i,this.attenuation=function(e){if(e.attenuation)return e.attenuation;return As}(e),this.projectedLight={...this}}getProjectedLight({layer:e}){const{projectedLight:t}=this,n=e.context.viewport,{coordinateSystem:i,coordinateOrigin:r}=e.props,o=jr(this.position,{viewport:n,coordinateSystem:i,coordinateOrigin:r,fromCoordinateSystem:n.isGeospatial?mn.rf.LNGLAT:mn.rf.CARTESIAN,fromCoordinateOrigin:[0,0,0]});return t.color=this.color,t.intensity=this.intensity,t.position=o,t}}class Tesselator{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;const{attributes:t={}}=e;this.typedArrayManager=Pi.A,this.attributes={},this._attributeDefs=t,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);const{data:t,buffers:n={},getGeometry:i,geometryBuffer:r,positionFormat:o,dataChanged:s,normalize:a=!0}=this.opts;if(this.data=t,this.getGeometry=i,this.positionSize=r&&r.size||("XY"===o?2:3),this.buffers=n,this.normalize=a,r&&(pn(t.startIndices),this.getGeometry=this.getGeometryFromBuffer(r),a||(n.vertexPositions=r)),this.geometryBuffer=n.vertexPositions,Array.isArray(s))for(const e of s)this._rebuildGeometry(e);else this._rebuildGeometry()}updatePartialGeometry({startRow:e,endRow:t}){this._rebuildGeometry({startRow:e,endRow:t})}getGeometryFromBuffer(e){const t=e.value||e;return ArrayBuffer.isView(t)?ar(t,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,t){const{attributes:n,buffers:i,_attributeDefs:r,typedArrayManager:o}=this;for(const s in r)if(s in i)o.release(n[s]),n[s]=null;else{const i=r[s];i.copy=t,n[s]=o.allocate(n[s],e,i)}}_forEachGeometry(e,t,n){const{data:i,getGeometry:r}=this,{iterable:o,objectInfo:s}=or(i,t,n);for(const t of o){s.index++;e(r?r(t,s):null,s.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:t,vertexStarts:n,instanceCount:i}=this;const{data:r,geometryBuffer:o}=this,{startRow:s=0,endRow:a=1/0}=e||{},l={};if(e||(t=[0],n=[0]),this.normalize||!o)this._forEachGeometry((e,t)=>{const i=e&&this.normalizeGeometry(e);l[t]=i,n[t+1]=n[t]+(i?this.getGeometrySize(i):0)},s,a),i=n[n.length-1];else if(n=r.startIndices,i=n[r.length]||0,ArrayBuffer.isView(o))i=i||o.length/this.positionSize;else if(o instanceof gi.h){const e=4*this.positionSize;i=i||o.byteLength/e}else if(o.buffer){const e=o.stride||4*this.positionSize;i=i||o.buffer.byteLength/e}else if(o.value){const e=o.value,t=o.stride/e.BYTES_PER_ELEMENT||this.positionSize;i=i||e.length/t}this._allocate(i,Boolean(e)),this.indexStarts=t,this.vertexStarts=n,this.instanceCount=i;const A={};this._forEachGeometry((e,r)=>{const o=l[r]||e;A.vertexStart=n[r],A.indexStart=t[r];const s=r<n.length-1?n[r+1]:i;A.geometrySize=s-n[r],A.geometryIndex=r,this.updateGeometryAttributes(o,A)},s,a),this.vertexCount=t[t.length-1]}}var hs=n(18742);const ds="layout(std140) uniform arcUniforms {\n bool greatCircle;\n bool useShortestPath;\n float numSegments;\n float widthScale;\n float widthMinPixels;\n float widthMaxPixels;\n highp int widthUnits;\n} arc;\n",fs={name:"arc",vs:ds,fs:ds,uniformTypes:{greatCircle:"f32",useShortestPath:"f32",numSegments:"f32",widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",widthUnits:"i32"}},ps=[0,0,0,255],gs={getSourcePosition:{type:"accessor",value:e=>e.sourcePosition},getTargetPosition:{type:"accessor",value:e=>e.targetPosition},getSourceColor:{type:"accessor",value:ps},getTargetColor:{type:"accessor",value:ps},getWidth:{type:"accessor",value:1},getHeight:{type:"accessor",value:1},getTilt:{type:"accessor",value:0},greatCircle:!1,numSegments:{type:"number",value:50,min:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class ArcLayer extends uo{getBounds(){return this.getAttributeManager()?.getBounds(["instanceSourcePositions","instanceTargetPositions"])}getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME arc-layer-vertex-shader\nin vec4 instanceSourceColors;\nin vec4 instanceTargetColors;\nin vec3 instanceSourcePositions;\nin vec3 instanceSourcePositions64Low;\nin vec3 instanceTargetPositions;\nin vec3 instanceTargetPositions64Low;\nin vec3 instancePickingColors;\nin float instanceWidths;\nin float instanceHeights;\nin float instanceTilts;\nout vec4 vColor;\nout vec2 uv;\nout float isValid;\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\nfloat deltaZ = targetZ - sourceZ;\nfloat dh = distance * instanceHeights;\nif (dh == 0.0) {\nreturn sourceZ + deltaZ * ratio;\n}\nfloat unitZ = deltaZ / dh;\nfloat p2 = unitZ * unitZ + 1.0;\nfloat dir = step(deltaZ, 0.0);\nfloat z0 = mix(sourceZ, targetZ, dir);\nfloat r = mix(ratio, 1.0 - ratio, dir);\nreturn sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\nvec2 dir_screenspace = normalize(line_clipspace * project.viewportSize);\ndir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\nreturn dir_screenspace * offset_direction * width / 2.0;\n}\nfloat getSegmentRatio(float index) {\nreturn smoothstep(0.0, 1.0, index / (arc.numSegments - 1.0));\n}\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\nfloat distance = length(source.xy - target.xy);\nfloat z = paraboloid(distance, source.z, target.z, segmentRatio);\nfloat tiltAngle = radians(instanceTilts);\nvec2 tiltDirection = normalize(target.xy - source.xy);\nvec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\nreturn vec3(\nmix(source.xy, target.xy, segmentRatio) + tilt,\nz * cos(tiltAngle)\n);\n}\nfloat getAngularDist (vec2 source, vec2 target) {\nvec2 sourceRadians = radians(source);\nvec2 targetRadians = radians(target);\nvec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\nvec2 shd_sq = sin_half_delta * sin_half_delta;\nfloat a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\nreturn 2.0 * asin(sqrt(a));\n}\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\nvec2 lngLat;\nif(abs(angularDist - PI) < 0.001) {\nlngLat = (1.0 - t) * source.xy + t * target.xy;\n} else {\nfloat a = sin((1.0 - t) * angularDist);\nfloat b = sin(t * angularDist);\nvec3 p = source3D.yxz * a + target3D.yxz * b;\nlngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n}\nfloat z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\nreturn vec3(lngLat, z);\n}\nvoid main(void) {\ngeometry.worldPosition = instanceSourcePositions;\ngeometry.worldPositionAlt = instanceTargetPositions;\nfloat segmentIndex = float(gl_VertexID / 2);\nfloat segmentSide = mod(float(gl_VertexID), 2.) == 0. ? -1. : 1.;\nfloat segmentRatio = getSegmentRatio(segmentIndex);\nfloat prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\nfloat nextSegmentRatio = getSegmentRatio(min(arc.numSegments - 1.0, segmentIndex + 1.0));\nfloat indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\nisValid = 1.0;\nuv = vec2(segmentRatio, segmentSide);\ngeometry.uv = uv;\ngeometry.pickingColor = instancePickingColors;\nvec4 curr;\nvec4 next;\nvec3 source;\nvec3 target;\nif ((arc.greatCircle || project.projectionMode == PROJECTION_MODE_GLOBE) && project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\nsource = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\ntarget = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\nfloat angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\nvec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\nvec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\nvec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\nif (abs(currPos.x - prevPos.x) > 180.0) {\nindexDir = -1.0;\nisValid = 0.0;\n} else if (abs(currPos.x - nextPos.x) > 180.0) {\nindexDir = 1.0;\nisValid = 0.0;\n}\nnextPos = indexDir < 0.0 ? prevPos : nextPos;\nnextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\nif (isValid == 0.0) {\nnextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\nfloat t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\ncurrPos = mix(currPos, nextPos, t);\nsegmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n}\nvec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\nvec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\ncurr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\nnext = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n} else {\nvec3 source_world = instanceSourcePositions;\nvec3 target_world = instanceTargetPositions;\nif (arc.useShortestPath) {\nsource_world.x = mod(source_world.x + 180., 360.0) - 180.;\ntarget_world.x = mod(target_world.x + 180., 360.0) - 180.;\nfloat deltaLng = target_world.x - source_world.x;\nif (deltaLng > 180.) target_world.x -= 360.;\nif (deltaLng < -180.) source_world.x -= 360.;\n}\nsource = project_position(source_world, instanceSourcePositions64Low);\ntarget = project_position(target_world, instanceTargetPositions64Low);\nfloat antiMeridianX = 0.0;\nif (arc.useShortestPath) {\nif (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\nantiMeridianX = -(project.coordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n}\nfloat thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\nif (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\nisValid = 0.0;\nindexDir = sign(segmentRatio - thresholdRatio);\nsegmentRatio = thresholdRatio;\n}\n}\nnextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\nvec3 currPos = interpolateFlat(source, target, segmentRatio);\nvec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\nif (arc.useShortestPath) {\nif (nextPos.x < antiMeridianX) {\ncurrPos.x += TILE_SIZE;\nnextPos.x += TILE_SIZE;\n}\n}\ncurr = project_common_position_to_clipspace(vec4(currPos, 1.0));\nnext = project_common_position_to_clipspace(vec4(nextPos, 1.0));\ngeometry.position = vec4(currPos, 1.0);\n}\nfloat widthPixels = clamp(\nproject_size_to_pixel(instanceWidths * arc.widthScale, arc.widthUnits),\narc.widthMinPixels, arc.widthMaxPixels\n);\nvec3 offset = vec3(\ngetExtrusionOffset((next.xy - curr.xy) * indexDir, segmentSide, widthPixels),\n0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\nDECKGL_FILTER_GL_POSITION(curr, geometry);\ngl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\nvec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\nvColor = vec4(color.rgb, color.a * layer.opacity);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME arc-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 uv;\nin float isValid;\nout vec4 fragColor;\nvoid main(void) {\nif (isValid == 0.0) {\ndiscard;\n}\nfragColor = vColor;\ngeometry.uv = uv;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:[No,Oo,fs]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceSourceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getSourceColor",defaultValue:ps},instanceTargetColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getTargetColor",defaultValue:ps},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:"getHeight",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:"getTilt",defaultValue:0}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{widthUnits:t,widthScale:n,widthMinPixels:i,widthMaxPixels:r,greatCircle:o,wrapLongitude:s,numSegments:a}=this.props,l={numSegments:a,widthUnits:mn.p5[t],widthScale:n,widthMinPixels:i,widthMaxPixels:r,greatCircle:o,useShortestPath:s},A=this.state.model;A.shaderInputs.setProps({arc:l}),A.setVertexCount(2*a),A.draw(this.context.renderPass)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-strip",isInstanced:!0})}}ArcLayer.layerName="ArcLayer",ArcLayer.defaultProps=gs;const ms=ArcLayer,_s=new Uint32Array([0,2,1,0,3,2]),bs=new Float32Array([0,1,0,0,1,0,1,1]);function vs(e,t){if(!t)return function(e){const t=new Float64Array(12);for(let n=0;n<e.length;n++)t[3*n+0]=e[n][0],t[3*n+1]=e[n][1],t[3*n+2]=e[n][2]||0;return{vertexCount:6,positions:t,indices:_s,texCoords:bs}}(e);const n=Math.max(Math.abs(e[0][0]-e[3][0]),Math.abs(e[1][0]-e[2][0])),i=Math.max(Math.abs(e[1][1]-e[0][1]),Math.abs(e[2][1]-e[3][1])),r=Math.ceil(n/t)+1,o=Math.ceil(i/t)+1,s=(r-1)*(o-1)*6,a=new Uint32Array(s),l=new Float32Array(r*o*2),A=new Float64Array(r*o*3);let c=0,u=0;for(let t=0;t<r;t++){const n=t/(r-1);for(let i=0;i<o;i++){const r=i/(o-1),s=ys(e,n,r);A[3*c+0]=s[0],A[3*c+1]=s[1],A[3*c+2]=s[2]||0,l[2*c+0]=n,l[2*c+1]=1-r,t>0&&i>0&&(a[u++]=c-o,a[u++]=c-o-1,a[u++]=c-1,a[u++]=c-o,a[u++]=c-1,a[u++]=c),c++}}return{vertexCount:s,positions:A,indices:a,texCoords:l}}function ys(e,t,n){return(0,cn.Cc)((0,cn.Cc)(e[0],e[1],n),(0,cn.Cc)(e[3],e[2],n),t)}const Cs="layout(std140) uniform bitmapUniforms {\n vec4 bounds;\n float coordinateConversion;\n float desaturate;\n vec3 tintColor;\n vec4 transparentColor;\n} bitmap;\n",ws={name:"bitmap",vs:Cs,fs:Cs,uniformTypes:{bounds:"vec4<f32>",coordinateConversion:"f32",desaturate:"f32",tintColor:"vec3<f32>",transparentColor:"vec4<f32>"}};class BitmapLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME bitmap-layer-vertex-shader\n\nin vec2 texCoords;\nin vec3 positions;\nin vec3 positions64Low;\n\nout vec2 vTexCoord;\nout vec2 vTexPos;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n\n if (bitmap.coordinateConversion < -0.5) {\n vTexPos = geometry.position.xy + project.commonOrigin.xy;\n } else if (bitmap.coordinateConversion > 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME bitmap-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nuniform sampler2D bitmapTexture;\n\nin vec2 vTexCoord;\nin vec2 vTexPos;\n\nout vec4 fragColor;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), bitmap.desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * bitmap.tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (bitmap.transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + bitmap.transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(bitmap.transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bitmap.bounds[0]) / (bitmap.bounds[2] - bitmap.bounds[0]),\n (pos.y - bitmap.bounds[3]) / (bitmap.bounds[1] - bitmap.bounds[3])\n );\n}\n\n\nvec3 packUVsIntoRGB(vec2 uv) {\n // Extract the top 8 bits. We want values to be truncated down so we can add a fraction\n vec2 uv8bit = floor(uv * 256.);\n\n // Calculate the normalized remainders of u and v parts that do not fit into 8 bits\n // Scale and clamp to 0-1 range\n vec2 uvFraction = fract(uv * 256.);\n vec2 uvFraction4bit = floor(uvFraction * 16.);\n\n // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates\n float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.;\n\n return vec3(uv8bit, fractions) / 255.;\n}\n\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (bitmap.coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (bitmap.coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n vec4 bitmapColor = texture(bitmapTexture, uv);\n\n fragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * layer.opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(fragColor, geometry);\n\n if (bool(picking.isActive) && !bool(picking.isAttribute)) {\n // Since instance information is not used, we can use picking color for pixel index\n fragColor.rgb = packUVsIntoRGB(uv);\n }\n}\n",modules:[No,Oo,ws]})}initializeState(){const e=this.getAttributeManager();e.remove(["instancePickingColors"]);const t=!0;e.add({indices:{size:1,isIndexed:!0,update:e=>e.value=this.state.mesh.indices,noAlloc:t},positions:{size:3,type:"float64",fp64:this.use64bitPositions(),update:e=>e.value=this.state.mesh.positions,noAlloc:t},texCoords:{size:2,update:e=>e.value=this.state.mesh.texCoords,noAlloc:t}})}updateState({props:e,oldProps:t,changeFlags:n}){const i=this.getAttributeManager();if(n.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),i.invalidateAll()),e.bounds!==t.bounds){const e=this.state.mesh,t=this._createMesh();this.state.model.setVertexCount(t.vertexCount);for(const n in t)e&&e[n]!==t[n]&&i.invalidate(n);this.setState({mesh:t,...this._getCoordinateUniforms()})}else e._imageCoordinateSystem!==t._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(e){const{image:t}=this.props,n=e.info;if(!n.color||!t)return n.bitmap=null,n;const{width:i,height:r}=t;n.index=0;const o=function(e){const[t,n,i]=e;return[(t+(15&i)/16)/256,(n+(240&i)/256)/256]}(n.color);return n.bitmap={size:{width:i,height:r},uv:o,pixel:[Math.floor(o[0]*i),Math.floor(o[1]*r)]},n}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(e){super._updateAutoHighlight({...e,color:this.encodePickingColor(0)})}_createMesh(){const{bounds:e}=this.props;let t=e;return xs(e)&&(t=[[e[0],e[1]],[e[0],e[3]],[e[2],e[3]],[e[2],e[1]]]),vs(t,this.context.viewport.resolution)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-list",isInstanced:!1})}draw(e){const{shaderModuleProps:t}=e,{model:n,coordinateConversion:i,bounds:r,disablePicking:o}=this.state,{image:s,desaturate:a,transparentColor:l,tintColor:A}=this.props;if((!t.picking.isActive||!o)&&s&&n){const e={bitmapTexture:s,bounds:r,coordinateConversion:i,desaturate:a,tintColor:A.slice(0,3).map(e=>e/255),transparentColor:l.map(e=>e/255)};n.shaderInputs.setProps({bitmap:e}),n.draw(this.context.renderPass)}}_getCoordinateUniforms(){let{_imageCoordinateSystem:e}=this.props;if("default"!==e){const{bounds:t}=this.props;if(!xs(t))throw new Error("_imageCoordinateSystem only supports rectangular bounds");const n=this.context.viewport.resolution?"lnglat":"cartesian";if(e="lnglat"===e?"lnglat":"cartesian","lnglat"===e&&"cartesian"===n)return{coordinateConversion:-1,bounds:t};if("cartesian"===e&&"lnglat"===n){const e=(0,_n.Gw)([t[0],t[1]]),n=(0,_n.Gw)([t[2],t[3]]);return{coordinateConversion:1,bounds:[e[0],e[1],n[0],n[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}}BitmapLayer.layerName="BitmapLayer",BitmapLayer.defaultProps={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:"default",desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]},textureParameters:{type:"object",ignore:!0,value:null}};const Es=BitmapLayer;function xs(e){return Number.isFinite(e[0])}const Ts="layout(std140) uniform iconUniforms {\n float sizeScale;\n vec2 iconsTextureDim;\n float sizeBasis;\n float sizeMinPixels;\n float sizeMaxPixels;\n bool billboard;\n highp int sizeUnits;\n float alphaCutoff;\n} icon;\n",Ss={name:"icon",vs:Ts,fs:Ts,uniformTypes:{sizeScale:"f32",iconsTextureDim:"vec2<f32>",sizeBasis:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",billboard:"f32",sizeUnits:"i32",alphaCutoff:"f32"}},Ps=()=>{},Ms={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},Rs={x:0,y:0,width:0,height:0};function Bs(e,t,n,i){const r=Math.min(n/t.width,i/t.height),o=Math.floor(t.width*r),s=Math.floor(t.height*r);return 1===r?{image:t,width:o,height:s}:(e.canvas.height=s,e.canvas.width=o,e.clearRect(0,0,o,s),e.drawImage(t,0,0,t.width,t.height,0,0,o,s),{image:e.canvas,width:o,height:s})}function Is(e){return e&&(e.id||e.url)}function Ls(e){const{device:t}=e;"webgl"===t.type?e.generateMipmapsWebGL():"webgpu"===t.type&&t.generateMipmapsWebGPU(e)}function Fs(e,t,n){for(let i=0;i<t.length;i++){const{icon:r,xOffset:o}=t[i];e[Is(r)]={...r,x:o,y:n}}}class IconManager{constructor(e,{onUpdate:t=Ps,onError:n=Ps}){this._loadOptions=null,this._texture=null,this._externalTexture=null,this._mapping={},this._samplerParameters=null,this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=4,this._canvasWidth=1024,this._canvasHeight=0,this._canvas=null,this.device=e,this.onUpdate=t,this.onError=n}finalize(){this._texture?.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(e){const t=this._autoPacking?Is(e):e;return this._mapping[t]||Rs}setProps({loadOptions:e,autoPacking:t,iconAtlas:n,iconMapping:i,textureParameters:r}){e&&(this._loadOptions=e),void 0!==t&&(this._autoPacking=t),i&&(this._mapping=i),n&&(this._texture?.delete(),this._texture=null,this._externalTexture=n),r&&(this._samplerParameters=r)}get isLoaded(){return 0===this._pendingCount}packIcons(e,t){if(!this._autoPacking||"undefined"==typeof document)return;const n=Object.values(function(e,t,n){if(!e||!t)return null;n=n||{};const i={},{iterable:r,objectInfo:o}=or(e);for(const e of r){o.index++;const r=t(e,o),s=Is(r);if(!r)throw new Error("Icon is missing.");if(!r.url)throw new Error("Icon url is missing.");i[s]||n[s]&&r.url===n[s].url||(i[s]={...r,source:e,sourceIndex:o.index})}return i}(e,t,this._mapping)||{});if(n.length>0){const{mapping:e,xOffset:t,yOffset:i,rowHeight:r,canvasHeight:o}=function({icons:e,buffer:t,mapping:n={},xOffset:i=0,yOffset:r=0,rowHeight:o=0,canvasWidth:s}){let a=[];for(let l=0;l<e.length;l++){const A=e[l];if(!n[Is(A)]){const{height:e,width:l}=A;i+l+t>s&&(Fs(n,a,r),i=0,r=o+r+t,o=0,a=[]),a.push({icon:A,xOffset:i}),i=i+l+t,o=Math.max(o,e)}}return a.length>0&&Fs(n,a,r),{mapping:n,rowHeight:o,xOffset:i,yOffset:r,canvasWidth:s,canvasHeight:(l=o+r+t,Math.pow(2,Math.ceil(Math.log2(l))))};var l}({icons:n,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=r,this._mapping=e,this._xOffset=t,this._yOffset=i,this._canvasHeight=o,this._texture||(this._texture=this.device.createTexture({format:"rgba8unorm",data:null,width:this._canvasWidth,height:this._canvasHeight,sampler:this._samplerParameters||Ms,mipLevels:this.device.getMipLevelCount(this._canvasWidth,this._canvasHeight)})),this._texture.height!==this._canvasHeight&&(this._texture=function(e,t,n,i){const{width:r,height:o,device:s}=e,a=s.createTexture({format:"rgba8unorm",width:t,height:n,sampler:i,mipLevels:s.getMipLevelCount(t,n)}),l=s.createCommandEncoder();l.copyTextureToTexture({sourceTexture:e,destinationTexture:a,width:r,height:o});const A=l.finish();return s.submit(A),Ls(a),e.destroy(),a}(this._texture,this._canvasWidth,this._canvasHeight,this._samplerParameters||Ms)),this.onUpdate(!0),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(n)}}_loadIcons(e){const t=this._canvas.getContext("2d",{willReadFrequently:!0});for(const n of e)this._pendingCount++,Yt(n.url,this._loadOptions).then(e=>{const i=Is(n),r=this._mapping[i],{x:o,y:s,width:a,height:l}=r,{image:A,width:c,height:u}=Bs(t,e,a,l),h=o+(a-c)/2,d=s+(l-u)/2;this._texture?.copyExternalImage({image:A,x:h,y:d,width:c,height:u}),r.x=h,r.y=d,r.width=c,r.height=u,this._texture&&Ls(this._texture),this.onUpdate(c!==a||u!==l)}).catch(e=>{this.onError({url:n.url,source:n.source,sourceIndex:n.sourceIndex,loadOptions:this._loadOptions,error:e})}).finally(()=>{this._pendingCount--})}}const Ds=[0,0,0,255],Os={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeBasis:"height",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:e=>e.position},getIcon:{type:"accessor",value:e=>e.icon},getColor:{type:"accessor",value:Ds},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,optional:!0},textureParameters:{type:"object",ignore:!0,value:null}};class IconLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME icon-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceSizes;\nin float instanceAngles;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec4 instanceIconFrames;\nin float instanceColorModes;\nin vec2 instanceOffsets;\nin vec2 instancePixelOffset;\nout float vColorMode;\nout vec4 vColor;\nout vec2 vTextureCoords;\nout vec2 uv;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = angle * PI / 180.0;\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\ngeometry.pickingColor = instancePickingColors;\nuv = positions;\nvec2 iconSize = instanceIconFrames.zw;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),\nicon.sizeMinPixels, icon.sizeMaxPixels\n);\nfloat iconConstraint = icon.sizeBasis == 0.0 ? iconSize.x : iconSize.y;\nfloat instanceScale = iconConstraint == 0.0 ? 0.0 : sizePixels / iconConstraint;\nvec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\npixelOffset += instancePixelOffset;\npixelOffset.y *= -1.0;\nif (icon.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nDECKGL_FILTER_SIZE(offset_common, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nvTextureCoords = mix(\ninstanceIconFrames.xy,\ninstanceIconFrames.xy + iconSize,\n(positions.xy + 1.0) / 2.0\n) / icon.iconsTextureDim;\nvColor = instanceColors;\nDECKGL_FILTER_COLOR(vColor, geometry);\nvColorMode = instanceColorModes;\n}\n",fs:"#version 300 es\n#define SHADER_NAME icon-layer-fragment-shader\nprecision highp float;\nuniform sampler2D iconsTexture;\nin float vColorMode;\nin vec4 vColor;\nin vec2 vTextureCoords;\nin vec2 uv;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = uv;\nvec4 texColor = texture(iconsTexture, vTextureCoords);\nvec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\nfloat a = texColor.a * layer.opacity * vColor.a;\nif (a < icon.alphaCutoff) {\ndiscard;\n}\nfragColor = vec4(color, a);\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:'struct IconUniforms {\n sizeScale: f32,\n iconsTextureDim: vec2<f32>,\n sizeBasis: f32,\n sizeMinPixels: f32,\n sizeMaxPixels: f32,\n billboard: i32,\n sizeUnits: i32,\n alphaCutoff: f32\n};\n\n@group(0) @binding(auto) var<uniform> icon: IconUniforms;\n@group(0) @binding(auto) var iconsTexture : texture_2d<f32>;\n@group(0) @binding(auto) var iconsTextureSampler : sampler;\n\nfn rotate_by_angle(vertex: vec2<f32>, angle_deg: f32) -> vec2<f32> {\n let angle_radian = angle_deg * PI / 180.0;\n let c = cos(angle_radian);\n let s = sin(angle_radian);\n let rotation = mat2x2<f32>(vec2<f32>(c, s), vec2<f32>(-s, c));\n return rotation * vertex;\n}\n\nstruct Attributes {\n @location(0) positions: vec2<f32>,\n\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceSizes: f32,\n @location(4) instanceAngles: f32,\n @location(5) instanceColors: vec4<f32>,\n @location(6) instancePickingColors: vec3<f32>,\n @location(7) instanceIconFrames: vec4<f32>,\n @location(8) instanceColorModes: f32,\n @location(9) instanceOffsets: vec2<f32>,\n @location(10) instancePixelOffset: vec2<f32>,\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n\n @location(0) vColorMode: f32,\n @location(1) vColor: vec4<f32>,\n @location(2) vTextureCoords: vec2<f32>,\n @location(3) uv: vec2<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(inp: Attributes) -> Varyings {\n // write geometry fields used by filters + FS\n geometry.worldPosition = inp.instancePositions;\n geometry.uv = inp.positions;\n geometry.pickingColor = inp.instancePickingColors;\n\n var outp: Varyings;\n outp.uv = inp.positions;\n\n let iconSize = inp.instanceIconFrames.zw;\n\n // convert size in meters to pixels, then clamp\n let sizePixels = clamp(\n project_unit_size_to_pixel(inp.instanceSizes * icon.sizeScale, icon.sizeUnits),\n icon.sizeMinPixels, icon.sizeMaxPixels\n );\n\n // scale icon height to match instanceSize\n let iconConstraint = select(iconSize.y, iconSize.x, icon.sizeBasis == 0.0);\n let instanceScale = select(sizePixels / iconConstraint, 0.0, iconConstraint == 0.0);\n\n // scale and rotate vertex in "pixel" units; then add per-instance pixel offset\n var pixelOffset = inp.positions / 2.0 * iconSize + inp.instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, inp.instanceAngles) * instanceScale;\n pixelOffset = pixelOffset + inp.instancePixelOffset;\n pixelOffset.y = pixelOffset.y * -1.0;\n\n if (icon.billboard != 0) {\n var pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, vec3<f32>(0.0)); // TODO, &geometry.position);\n // DECKGL_FILTER_GL_POSITION(pos, geometry);\n\n var offset = vec3<f32>(pixelOffset, 0.0);\n // DECKGL_FILTER_SIZE(offset, geometry);\n let clipOffset = project_pixel_size_to_clipspace(offset.xy);\n pos = vec4<f32>(pos.x + clipOffset.x, pos.y + clipOffset.y, pos.z, pos.w);\n outp.position = pos;\n } else {\n var offset_common = vec3<f32>(project_pixel_size_vec2(pixelOffset), 0.0);\n // DECKGL_FILTER_SIZE(offset_common, geometry);\n var pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, offset_common); // TODO, &geometry.position);\n // DECKGL_FILTER_GL_POSITION(pos, geometry);\n outp.position = pos;\n }\n\n let uvMix = (inp.positions.xy + vec2<f32>(1.0, 1.0)) * 0.5;\n outp.vTextureCoords = mix(inp.instanceIconFrames.xy, inp.instanceIconFrames.xy + iconSize, uvMix) / icon.iconsTextureDim;\n\n outp.vColor = inp.instanceColors;\n // DECKGL_FILTER_COLOR(outp.vColor, geometry);\n\n outp.vColorMode = inp.instanceColorModes;\n outp.pickingColor = inp.instancePickingColors;\n\n return outp;\n}\n\n@fragment\nfn fragmentMain(inp: Varyings) -> @location(0) vec4<f32> {\n // expose to deck.gl filter hooks\n geometry.uv = inp.uv;\n\n let texColor = textureSample(iconsTexture, iconsTextureSampler, inp.vTextureCoords);\n\n // if colorMode == 0, use pixel color from the texture\n // if colorMode == 1 (or picking), use texture as transparency mask\n let rgb = mix(texColor.rgb, inp.vColor.rgb, inp.vColorMode);\n let a = texColor.a * layer.opacity * inp.vColor.a;\n\n if (a < icon.alphaCutoff) {\n discard;\n }\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inp.pickingColor)) {\n discard;\n }\n return vec4<f32>(inp.pickingColor, 1.0);\n }\n\n var fragColor = deckgl_premultiplied_alpha(vec4<f32>(rgb, a));\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inp.pickingColor - highlightedObjectColor))) {\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + fragColor.a * (1.0 - highLightAlpha);\n if (blendedAlpha > 0.0) {\n let highLightRatio = highLightAlpha / blendedAlpha;\n fragColor = vec4<f32>(\n mix(fragColor.rgb, picking.highlightColor.rgb, highLightRatio),\n blendedAlpha\n );\n } else {\n fragColor = vec4<f32>(fragColor.rgb, 0.0);\n }\n }\n }\n\n return fragColor;\n}\n',modules:[No,Io,Oo,Ss]})}initializeState(){this.state={iconManager:new IconManager(this.context.device,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})};this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceIconDefs:{size:7,accessor:"getIcon",transform:this.getInstanceIconDef,shaderAttributes:{instanceOffsets:{size:2,elementOffset:0},instanceIconFrames:{size:4,elementOffset:2},instanceColorModes:{size:1,elementOffset:6}}},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:Ds},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,r=this.getAttributeManager(),{iconAtlas:o,iconMapping:s,data:a,getIcon:l,textureParameters:A}=t,{iconManager:c}=this.state;if("string"==typeof o)return;const u=o||this.internalState.isAsyncPropLoading("iconAtlas");c.setProps({loadOptions:t.loadOptions,autoPacking:!u,iconAtlas:o,iconMapping:u?s:null,textureParameters:A}),u?n.iconMapping!==t.iconMapping&&r.invalidate("getIcon"):(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getIcon))&&c.packIcons(a,l),i.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),r.invalidateAll())}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(e){super.finalizeState(e),this.state.iconManager.finalize()}draw({uniforms:e}){const{sizeScale:t,sizeBasis:n,sizeMinPixels:i,sizeMaxPixels:r,sizeUnits:o,billboard:s,alphaCutoff:a}=this.props,{iconManager:l}=this.state,A=l.getTexture();if(A){const e=this.state.model,l={iconsTexture:A,iconsTextureDim:[A.width,A.height],sizeUnits:mn.p5[o],sizeScale:t,sizeBasis:"height"===n?1:0,sizeMinPixels:i,sizeMaxPixels:r,billboard:s,alphaCutoff:a};e.shaderInputs.setProps({icon:l}),e.draw(this.context.renderPass)}}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array([-1,-1,1,-1,-1,1,1,1])}}}),isInstanced:!0})}_onUpdate(e){e?(this.getAttributeManager()?.invalidate("getIcon"),this.setNeedsUpdate()):this.setNeedsRedraw()}_onError(e){const t=this.getCurrentLayer()?.props.onIconError;t?t(e):_e.A.error(e.error.message)()}getInstanceIconDef(e){const{x:t,y:n,width:i,height:r,mask:o,anchorX:s=i/2,anchorY:a=r/2}=this.state.iconManager.getIconMapping(e);return[i/2-s,r/2-a,t,n,i,r,o?1:0]}}IconLayer.defaultProps=Os,IconLayer.layerName="IconLayer";const Ns=IconLayer,ks="layout(std140) uniform lineUniforms {\n float widthScale;\n float widthMinPixels;\n float widthMaxPixels;\n float useShortestPath;\n highp int widthUnits;\n} line;\n",Us={name:"line",source:"",vs:ks,fs:ks,uniformTypes:{widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",useShortestPath:"f32",widthUnits:"i32"}},Gs={getSourcePosition:{type:"accessor",value:e=>e.sourcePosition},getTargetPosition:{type:"accessor",value:e=>e.targetPosition},getColor:{type:"accessor",value:[0,0,0,255]},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class LineLayer extends uo{getBounds(){return this.getAttributeManager()?.getBounds(["instanceSourcePositions","instanceTargetPositions"])}getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME line-layer-vertex-shader\nin vec3 positions;\nin vec3 instanceSourcePositions;\nin vec3 instanceTargetPositions;\nin vec3 instanceSourcePositions64Low;\nin vec3 instanceTargetPositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin float instanceWidths;\nout vec4 vColor;\nout vec2 uv;\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\nvec2 dir_screenspace = normalize(line_clipspace * project.viewportSize);\ndir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\nreturn dir_screenspace * offset_direction * width / 2.0;\n}\nvec3 splitLine(vec3 a, vec3 b, float x) {\nfloat t = (x - a.x) / (b.x - a.x);\nreturn vec3(x, mix(a.yz, b.yz, t));\n}\nvoid main(void) {\ngeometry.worldPosition = instanceSourcePositions;\ngeometry.worldPositionAlt = instanceTargetPositions;\nvec3 source_world = instanceSourcePositions;\nvec3 target_world = instanceTargetPositions;\nvec3 source_world_64low = instanceSourcePositions64Low;\nvec3 target_world_64low = instanceTargetPositions64Low;\nif (line.useShortestPath > 0.5 || line.useShortestPath < -0.5) {\nsource_world.x = mod(source_world.x + 180., 360.0) - 180.;\ntarget_world.x = mod(target_world.x + 180., 360.0) - 180.;\nfloat deltaLng = target_world.x - source_world.x;\nif (deltaLng * line.useShortestPath > 180.) {\nsource_world.x += 360. * line.useShortestPath;\nsource_world = splitLine(source_world, target_world, 180. * line.useShortestPath);\nsource_world_64low = vec3(0.0);\n} else if (deltaLng * line.useShortestPath < -180.) {\ntarget_world.x += 360. * line.useShortestPath;\ntarget_world = splitLine(source_world, target_world, 180. * line.useShortestPath);\ntarget_world_64low = vec3(0.0);\n} else if (line.useShortestPath < 0.) {\ngl_Position = vec4(0.);\nreturn;\n}\n}\nvec4 source_commonspace;\nvec4 target_commonspace;\nvec4 source = project_position_to_clipspace(source_world, source_world_64low, vec3(0.), source_commonspace);\nvec4 target = project_position_to_clipspace(target_world, target_world_64low, vec3(0.), target_commonspace);\nfloat segmentIndex = positions.x;\nvec4 p = mix(source, target, segmentIndex);\ngeometry.position = mix(source_commonspace, target_commonspace, segmentIndex);\nuv = positions.xy;\ngeometry.uv = uv;\ngeometry.pickingColor = instancePickingColors;\nfloat widthPixels = clamp(\nproject_size_to_pixel(instanceWidths * line.widthScale, line.widthUnits),\nline.widthMinPixels, line.widthMaxPixels\n);\nvec3 offset = vec3(\ngetExtrusionOffset(target.xy - source.xy, positions.y, widthPixels),\n0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\nDECKGL_FILTER_GL_POSITION(p, geometry);\ngl_Position = p + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\nvColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME line-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 uv;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = uv;\nfragColor = vColor;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:'// ---------- Helper Structures & Functions ----------\n\n// Placeholder filter functions.\nfn deckgl_filter_size(offset: vec3<f32>, geometry: Geometry) -> vec3<f32> {\n return offset;\n}\nfn deckgl_filter_gl_position(p: vec4<f32>, geometry: Geometry) -> vec4<f32> {\n if (picking.isAttribute > 0.5) {\n // For depth picking, write normalized depth into the picking payload.\n // This mirrors the legacy DECKGL_FILTER_GL_POSITION hook on WebGL.\n }\n return p;\n}\n\n// Compute an extrusion offset given a line direction (in clipspace),\n// an offset direction (-1 or 1), and a width in pixels.\n// Assumes a uniform "project" with a viewportSize field is available.\nfn getExtrusionOffset(line_clipspace: vec2<f32>, offset_direction: f32, width: f32) -> vec2<f32> {\n // project.viewportSize should be provided as a uniform (not shown here)\n let dir_screenspace = normalize(line_clipspace * project.viewportSize);\n // Rotate by 90°: (x,y) becomes (-y,x)\n let rotated = vec2<f32>(-dir_screenspace.y, dir_screenspace.x);\n return rotated * offset_direction * width / 2.0;\n}\n\n// Splits the line between two points at a given x coordinate.\n// Interpolates the y and z components.\nfn splitLine(a: vec3<f32>, b: vec3<f32>, x: f32) -> vec3<f32> {\n let t: f32 = (x - a.x) / (b.x - a.x);\n return vec3<f32>(x, a.yz + t * (b.yz - a.yz));\n}\n\n// ---------- Uniforms & Global Structures ----------\n\nstruct LineUniforms {\n widthScale: f32,\n widthMinPixels: f32,\n widthMaxPixels: f32,\n useShortestPath: f32,\n widthUnits: i32,\n};\n\n@group(0) @binding(0)\nvar<uniform> line: LineUniforms;\n\n\n\n// ---------- Vertex Output Structure ----------\n\nstruct Varyings {\n @builtin(position) gl_Position: vec4<f32>,\n @location(0) vColor: vec4<f32>,\n @location(1) uv: vec2<f32>,\n @location(2) pickingColor: vec3<f32>,\n};\n\n// ---------- Vertex Shader Entry Point ----------\n\n@vertex\nfn vertexMain(\n @location(0) positions: vec3<f32>,\n @location(1) instanceSourcePositions: vec3<f32>,\n @location(2) instanceTargetPositions: vec3<f32>,\n @location(3) instanceSourcePositions64Low: vec3<f32>,\n @location(4) instanceTargetPositions64Low: vec3<f32>,\n @location(5) instanceColors: vec4<f32>,\n @location(6) instancePickingColors: vec3<f32>,\n @location(7) instanceWidths: f32\n) -> Varyings {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n\n var source_world: vec3<f32> = instanceSourcePositions;\n var target_world: vec3<f32> = instanceTargetPositions;\n var source_world_64low: vec3<f32> = instanceSourcePositions64Low;\n var target_world_64low: vec3<f32> = instanceTargetPositions64Low;\n\n // Apply shortest-path adjustments if needed.\n if (line.useShortestPath > 0.5 || line.useShortestPath < -0.5) {\n source_world.x = (source_world.x + 180.0 % 360.0) - 180.0;\n target_world.x = (target_world.x + 180.0 % 360.0) - 180.0;\n let deltaLng: f32 = target_world.x - source_world.x;\n\n if (deltaLng * line.useShortestPath > 180.0) {\n source_world.x = source_world.x + 360.0 * line.useShortestPath;\n source_world = splitLine(source_world, target_world, 180.0 * line.useShortestPath);\n source_world_64low = vec3<f32>(0.0, 0.0, 0.0);\n } else if (deltaLng * line.useShortestPath < -180.0) {\n target_world.x = target_world.x + 360.0 * line.useShortestPath;\n target_world = splitLine(source_world, target_world, 180.0 * line.useShortestPath);\n target_world_64low = vec3<f32>(0.0, 0.0, 0.0);\n } else if (line.useShortestPath < 0.0) {\n var abortOut: Varyings;\n abortOut.gl_Position = vec4<f32>(0.0);\n abortOut.vColor = vec4<f32>(0.0);\n abortOut.uv = vec2<f32>(0.0);\n return abortOut;\n }\n }\n\n // Project Pos and target positions to clip space.\n let sourceResult = project_position_to_clipspace_and_commonspace(source_world, source_world_64low, vec3<f32>(0.0));\n let targetResult = project_position_to_clipspace_and_commonspace(target_world, target_world_64low, vec3<f32>(0.0));\n let sourcePos: vec4<f32> = sourceResult.clipPosition;\n let targetPos: vec4<f32> = targetResult.clipPosition;\n let source_commonspace: vec4<f32> = sourceResult.commonPosition;\n let target_commonspace: vec4<f32> = targetResult.commonPosition;\n\n // Interpolate along the line segment.\n let segmentIndex: f32 = positions.x;\n let p: vec4<f32> = sourcePos + segmentIndex * (targetPos - sourcePos);\n geometry.position = source_commonspace + segmentIndex * (target_commonspace - source_commonspace);\n let uv: vec2<f32> = positions.xy;\n geometry.uv = uv;\n geometry.pickingColor = instancePickingColors;\n\n // Determine width in pixels.\n let widthPixels: f32 = clamp(\n project_unit_size_to_pixel(instanceWidths * line.widthScale, line.widthUnits),\n line.widthMinPixels, line.widthMaxPixels\n );\n\n // Compute extrusion offset.\n let extrusion: vec2<f32> = getExtrusionOffset(targetPos.xy - sourcePos.xy, positions.y, widthPixels);\n let offset: vec3<f32> = vec3<f32>(extrusion, 0.0);\n\n // Apply deck.gl filter functions.\n let filteredOffset = deckgl_filter_size(offset, geometry);\n let filteredP = deckgl_filter_gl_position(p, geometry);\n\n let clipOffset: vec2<f32> = project_pixel_size_to_clipspace(filteredOffset.xy);\n let finalPosition: vec4<f32> = filteredP + vec4<f32>(clipOffset, 0.0, 0.0);\n\n // Compute color.\n var vColor: vec4<f32> = vec4<f32>(instanceColors.rgb, instanceColors.a * layer.opacity);\n // vColor = deckgl_filter_color(vColor, geometry);\n\n var output: Varyings;\n output.gl_Position = finalPosition;\n output.vColor = vColor;\n output.uv = uv;\n output.pickingColor = instancePickingColors;\n return output;\n}\n\n@fragment\nfn fragmentMain(\n @location(0) vColor: vec4<f32>,\n @location(1) uv: vec2<f32>,\n @location(2) pickingColor: vec3<f32>\n) -> @location(0) vec4<f32> {\n // Create and initialize geometry with the provided uv.\n var geometry: Geometry;\n geometry.uv = uv;\n\n // Start with the input color.\n var fragColor: vec4<f32> = vColor;\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(pickingColor)) {\n discard;\n }\n return vec4<f32>(pickingColor, 1.0);\n }\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(pickingColor - highlightedObjectColor))) {\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + fragColor.a * (1.0 - highLightAlpha);\n if (blendedAlpha > 0.0) {\n let highLightRatio = highLightAlpha / blendedAlpha;\n fragColor = vec4<f32>(\n mix(fragColor.rgb, picking.highlightColor.rgb, highLightRatio),\n blendedAlpha\n );\n } else {\n fragColor = vec4<f32>(fragColor.rgb, 0.0);\n }\n }\n }\n\n // Apply premultiplied alpha as required by transparent canvas\n fragColor = deckgl_premultiplied_alpha(fragColor);\n\n return fragColor;\n}\n',modules:[No,Io,Oo,Us]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{widthUnits:t,widthScale:n,widthMinPixels:i,widthMaxPixels:r,wrapLongitude:o}=this.props,s=this.state.model,a={widthUnits:mn.p5[t],widthScale:n,widthMinPixels:i,widthMaxPixels:r,useShortestPath:o?1:0};s.shaderInputs.setProps({line:a}),s.draw(this.context.renderPass),o&&(s.shaderInputs.setProps({line:{...a,useShortestPath:-1}}),s.draw(this.context.renderPass))}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-strip",attributes:{positions:{size:3,value:new Float32Array([0,-1,0,0,1,0,1,-1,0,1,1,0])}}}),isInstanced:!0})}}LineLayer.layerName="LineLayer",LineLayer.defaultProps=Gs;const Vs=LineLayer,zs="layout(std140) uniform pointCloudUniforms {\n float radiusPixels;\n highp int sizeUnits;\n} pointCloud;\n",Hs={name:"pointCloud",source:"",vs:zs,fs:zs,uniformTypes:{radiusPixels:"f32",sizeUnits:"i32"}},Ws=[0,0,0,255],js=[0,0,1],Qs={sizeUnits:"pixels",pointSize:{type:"number",min:0,value:10},getPosition:{type:"accessor",value:e=>e.position},getNormal:{type:"accessor",value:js},getColor:{type:"accessor",value:Ws},material:!0,radiusPixels:{deprecatedFor:"pointSize"}};class PointCloudLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME point-cloud-layer-vertex-shader\nin vec3 positions;\nin vec3 instanceNormals;\nin vec4 instanceColors;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec3 instancePickingColors;\nout vec4 vColor;\nout vec2 unitPosition;\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.normal = project_normal(instanceNormals);\nunitPosition = positions.xy;\ngeometry.uv = unitPosition;\ngeometry.pickingColor = instancePickingColors;\nvec3 offset = vec3(positions.xy * project_size_to_pixel(pointCloud.radiusPixels, pointCloud.sizeUnits), 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\nvec3 lightColor = lighting_getLightColor(instanceColors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\nvColor = vec4(lightColor, instanceColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME point-cloud-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 unitPosition;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = unitPosition.xy;\nfloat distToCenter = length(unitPosition);\nif (distToCenter > 1.0) {\ndiscard;\n}\nfragColor = vColor;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"struct PointCloudUniforms {\n radiusPixels: f32,\n sizeUnits: i32,\n};\n\n@group(0) @binding(0)\nvar<uniform> pointCloudUniforms: PointCloudUniforms;\n\nstruct ConstantAttributes {\n instanceNormals: vec3<f32>,\n instanceColors: vec4<f32>,\n instancePositions: vec3<f32>,\n instancePositions64Low: vec3<f32>,\n instancePickingColors: vec3<f32>\n};\n\nconst constants = ConstantAttributes(\n vec3<f32>(1.0, 0.0, 0.0),\n vec4<f32>(0.0, 0.0, 0.0, 1.0),\n vec3<f32>(0.0),\n vec3<f32>(0.0),\n vec3<f32>(0.0)\n);\n\nstruct Attributes {\n @builtin(instance_index) instanceIndex : u32,\n @builtin(vertex_index) vertexIndex : u32,\n @location(0) positions: vec3<f32>,\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceNormals: vec3<f32>,\n @location(4) instanceColors: vec4<f32>,\n @location(5) instancePickingColors: vec3<f32>\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) vColor: vec4<f32>,\n @location(1) unitPosition: vec2<f32>,\n @location(2) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var varyings: Varyings;\n\n geometry.worldPosition = attributes.instancePositions;\n\n let centerResult = project_position_to_clipspace_and_commonspace(\n attributes.instancePositions,\n attributes.instancePositions64Low,\n vec3<f32>(0.0)\n );\n geometry.position = centerResult.commonPosition;\n geometry.normal = project_normal(attributes.instanceNormals);\n\n // position on the containing square in [-1, 1] space\n varyings.unitPosition = attributes.positions.xy;\n geometry.uv = varyings.unitPosition;\n geometry.pickingColor = attributes.instancePickingColors;\n\n // Find the center of the point and add the current vertex\n let offset = vec3<f32>(\n attributes.positions.xy *\n project_unit_size_to_pixel(pointCloudUniforms.radiusPixels, pointCloudUniforms.sizeUnits),\n 0.0\n );\n // DECKGL_FILTER_SIZE(offset, geometry);\n\n varyings.position = centerResult.clipPosition;\n // DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n let clipPixels = project_pixel_size_to_clipspace(offset.xy);\n varyings.position.x += clipPixels.x;\n varyings.position.y += clipPixels.y;\n\n // Apply lighting\n let lightColor = lighting_getLightColor2(attributes.instanceColors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n\n // Apply opacity to instance color, or return instance picking color\n varyings.vColor = vec4(lightColor, attributes.instanceColors.a * layer.opacity);\n // DECKGL_FILTER_COLOR(vColor, geometry);\n varyings.pickingColor = attributes.instancePickingColors;\n\n return varyings;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n // var geometry: Geometry;\n // geometry.uv = unitPosition.xy;\n\n let distToCenter = length(varyings.unitPosition);\n if (distToCenter > 1.0) {\n discard;\n }\n\n var fragColor: vec4<f32>;\n\n fragColor = varyings.vColor;\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(varyings.pickingColor)) {\n discard;\n }\n return vec4<f32>(varyings.pickingColor, 1.0);\n }\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + fragColor.a * (1.0 - highLightAlpha);\n if (blendedAlpha > 0.0) {\n let highLightRatio = highLightAlpha / blendedAlpha;\n fragColor = vec4<f32>(\n mix(fragColor.rgb, picking.highlightColor.rgb, highLightRatio),\n blendedAlpha\n );\n } else {\n fragColor = vec4<f32>(fragColor.rgb, 0.0);\n }\n }\n }\n\n // Apply premultiplied alpha as required by transparent canvas\n fragColor = deckgl_premultiplied_alpha(fragColor);\n\n return fragColor;\n}\n",modules:[No,Io,Yo,Oo,Hs]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceNormals:{size:3,transition:!0,accessor:"getNormal",defaultValue:js},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:Ws}})}updateState(e){const{changeFlags:t,props:n}=e;super.updateState(e),t.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll()),t.dataChanged&&function(e){const{header:t,attributes:n}=e;if(t&&n&&(e.length=t.vertexCount,n.POSITION&&(n.instancePositions=n.POSITION),n.NORMAL&&(n.instanceNormals=n.NORMAL),n.COLOR_0)){const{size:e,value:t}=n.COLOR_0;n.instanceColors={size:e,type:"unorm8",value:t}}}(n.data)}draw({uniforms:e}){const{pointSize:t,sizeUnits:n}=this.props,i=this.state.model,r={sizeUnits:mn.p5[n],radiusPixels:t};i.shaderInputs.setProps({pointCloud:r}),i.draw(this.context.renderPass)}_getModel(){const e=[];for(let t=0;t<3;t++){const n=t/3*Math.PI*2;e.push(2*Math.cos(n),2*Math.sin(n),0)}return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-list",attributes:{positions:new Float32Array(e)}}),isInstanced:!0})}}PointCloudLayer.layerName="PointCloudLayer",PointCloudLayer.defaultProps=Qs;const Xs=PointCloudLayer,Ks="layout(std140) uniform scatterplotUniforms {\n float radiusScale;\n float radiusMinPixels;\n float radiusMaxPixels;\n float lineWidthScale;\n float lineWidthMinPixels;\n float lineWidthMaxPixels;\n float stroked;\n float filled;\n bool antialiasing;\n bool billboard;\n highp int radiusUnits;\n highp int lineWidthUnits;\n} scatterplot;\n",Js={name:"scatterplot",vs:Ks,fs:Ks,source:"",uniformTypes:{radiusScale:"f32",radiusMinPixels:"f32",radiusMaxPixels:"f32",lineWidthScale:"f32",lineWidthMinPixels:"f32",lineWidthMaxPixels:"f32",stroked:"f32",filled:"f32",antialiasing:"f32",billboard:"f32",radiusUnits:"i32",lineWidthUnits:"i32"}},qs=[0,0,0,255],Ys={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:e=>e.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:qs},getLineColor:{type:"accessor",value:qs},getLineWidth:{type:"accessor",value:1},getPixelOffset:{type:"accessor",value:[0,0]},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ScatterplotLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME scatterplot-layer-vertex-shader\nin vec3 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceRadius;\nin float instanceLineWidths;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\nin vec3 instancePickingColors;\nin vec2 instancePixelOffset;\nout vec4 vFillColor;\nout vec4 vLineColor;\nout vec2 unitPosition;\nout float innerUnitRadius;\nout float outerRadiusPixels;\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\nouterRadiusPixels = clamp(\nproject_size_to_pixel(scatterplot.radiusScale * instanceRadius, scatterplot.radiusUnits),\nscatterplot.radiusMinPixels, scatterplot.radiusMaxPixels\n);\nfloat lineWidthPixels = clamp(\nproject_size_to_pixel(scatterplot.lineWidthScale * instanceLineWidths, scatterplot.lineWidthUnits),\nscatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels\n);\nouterRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0;\nfloat edgePadding = scatterplot.antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0;\nunitPosition = edgePadding * positions.xy;\ngeometry.uv = unitPosition;\ngeometry.pickingColor = instancePickingColors;\ninnerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / outerRadiusPixels;\nif (scatterplot.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = edgePadding * positions * outerRadiusPixels;\noffset.xy += instancePixelOffset;\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels);\noffset.xy += project_pixel_size(instancePixelOffset);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nvFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vFillColor, geometry);\nvLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME scatterplot-layer-fragment-shader\nprecision highp float;\nin vec4 vFillColor;\nin vec4 vLineColor;\nin vec2 unitPosition;\nin float innerUnitRadius;\nin float outerRadiusPixels;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = unitPosition;\nfloat distToCenter = length(unitPosition) * outerRadiusPixels;\nfloat inCircle = scatterplot.antialiasing ?\nsmoothedge(distToCenter, outerRadiusPixels) :\nstep(distToCenter, outerRadiusPixels);\nif (inCircle == 0.0) {\ndiscard;\n}\nif (scatterplot.stroked > 0.5) {\nfloat isLine = scatterplot.antialiasing ?\nsmoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\nstep(innerUnitRadius * outerRadiusPixels, distToCenter);\nif (scatterplot.filled > 0.5) {\nfragColor = mix(vFillColor, vLineColor, isLine);\n} else {\nif (isLine == 0.0) {\ndiscard;\n}\nfragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n}\n} else if (scatterplot.filled < 0.5) {\ndiscard;\n} else {\nfragColor = vFillColor;\n}\nfragColor.a *= inCircle;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"// Main shaders\n\nstruct ScatterplotUniforms {\n radiusScale: f32,\n radiusMinPixels: f32,\n radiusMaxPixels: f32,\n lineWidthScale: f32,\n lineWidthMinPixels: f32,\n lineWidthMaxPixels: f32,\n stroked: f32,\n filled: i32,\n antialiasing: i32,\n billboard: i32,\n radiusUnits: i32,\n lineWidthUnits: i32,\n};\n\nstruct ConstantAttributeUniforms {\n instancePositions: vec3<f32>,\n instancePositions64Low: vec3<f32>,\n instanceRadius: f32,\n instanceLineWidths: f32,\n instanceFillColors: vec4<f32>,\n instanceLineColors: vec4<f32>,\n instancePickingColors: vec3<f32>,\n instancePixelOffset: vec2<f32>,\n\n instancePositionsConstant: i32,\n instancePositions64LowConstant: i32,\n instanceRadiusConstant: i32,\n instanceLineWidthsConstant: i32,\n instanceFillColorsConstant: i32,\n instanceLineColorsConstant: i32,\n instancePickingColorsConstant: i32,\n instancePixelOffsetConstant: i32\n};\n\n@group(0) @binding(0) var<uniform> scatterplot: ScatterplotUniforms;\n\nstruct ConstantAttributes {\n instancePositions: vec3<f32>,\n instancePositions64Low: vec3<f32>,\n instanceRadius: f32,\n instanceLineWidths: f32,\n instanceFillColors: vec4<f32>,\n instanceLineColors: vec4<f32>,\n instancePickingColors: vec3<f32>,\n instancePixelOffset: vec2<f32>\n};\n\nconst constants = ConstantAttributes(\n vec3<f32>(0.0),\n vec3<f32>(0.0),\n 0.0,\n 0.0,\n vec4<f32>(0.0, 0.0, 0.0, 1.0),\n vec4<f32>(0.0, 0.0, 0.0, 1.0),\n vec3<f32>(0.0),\n vec2<f32>(0.0)\n);\n\nstruct Attributes {\n @builtin(instance_index) instanceIndex : u32,\n @builtin(vertex_index) vertexIndex : u32,\n @location(0) positions: vec3<f32>,\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceRadius: f32,\n @location(4) instanceLineWidths: f32,\n @location(5) instanceFillColors: vec4<f32>,\n @location(6) instanceLineColors: vec4<f32>,\n @location(7) instancePickingColors: vec3<f32>,\n @location(8) instancePixelOffset: vec2<f32>\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) vFillColor: vec4<f32>,\n @location(1) vLineColor: vec4<f32>,\n @location(2) unitPosition: vec2<f32>,\n @location(3) innerUnitRadius: f32,\n @location(4) outerRadiusPixels: f32,\n @location(5) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var varyings: Varyings;\n\n // Draw an inline geometry constant array clip space triangle to verify that rendering works.\n // var positions = array<vec2<f32>, 3>(vec2(0.0, 0.5), vec2(-0.5, -0.5), vec2(0.5, -0.5));\n // if (attributes.instanceIndex == 0) {\n // varyings.position = vec4<f32>(positions[attributes.vertexIndex], 0.0, 1.0);\n // return varyings;\n // }\n\n geometry.worldPosition = attributes.instancePositions;\n\n // Multiply out radius and clamp to limits\n varyings.outerRadiusPixels = clamp(\n project_unit_size_to_pixel(scatterplot.radiusScale * attributes.instanceRadius, scatterplot.radiusUnits),\n scatterplot.radiusMinPixels, scatterplot.radiusMaxPixels\n );\n\n // Multiply out line width and clamp to limits\n let lineWidthPixels = clamp(\n project_unit_size_to_pixel(scatterplot.lineWidthScale * attributes.instanceLineWidths, scatterplot.lineWidthUnits),\n scatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels\n );\n\n // outer radius needs to offset by half stroke width\n varyings.outerRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0;\n // Expand geometry to accommodate edge smoothing\n let edgePadding = select(\n (varyings.outerRadiusPixels + SMOOTH_EDGE_RADIUS) / varyings.outerRadiusPixels,\n 1.0,\n scatterplot.antialiasing != 0\n );\n\n // position on the containing square in [-1, 1] space\n varyings.unitPosition = edgePadding * attributes.positions.xy;\n geometry.uv = varyings.unitPosition;\n geometry.pickingColor = attributes.instancePickingColors;\n\n varyings.innerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / varyings.outerRadiusPixels;\n\n if (scatterplot.billboard != 0) {\n varyings.position = project_position_to_clipspace(attributes.instancePositions, attributes.instancePositions64Low, vec3<f32>(0.0)); // TODO , geometry.position);\n // DECKGL_FILTER_GL_POSITION(varyings.position, geometry);\n var offset = edgePadding * attributes.positions * varyings.outerRadiusPixels;\n offset = vec3<f32>(offset.xy + attributes.instancePixelOffset, offset.z);\n // DECKGL_FILTER_SIZE(offset, geometry);\n let clipPixels = project_pixel_size_to_clipspace(offset.xy);\n varyings.position = vec4<f32>(varyings.position.x + clipPixels.x, varyings.position.y + clipPixels.y, varyings.position.z, varyings.position.w);\n } else {\n var offset = edgePadding * attributes.positions * project_pixel_size_float(varyings.outerRadiusPixels);\n offset = vec3<f32>(offset.xy + project_pixel_size_vec2(attributes.instancePixelOffset), offset.z);\n // DECKGL_FILTER_SIZE(offset, geometry);\n varyings.position = project_position_to_clipspace(attributes.instancePositions, attributes.instancePositions64Low, offset); // TODO , geometry.position);\n // DECKGL_FILTER_GL_POSITION(varyings.position, geometry);\n }\n\n // Apply opacity to instance color, or return instance picking color\n varyings.vFillColor = vec4<f32>(attributes.instanceFillColors.rgb, attributes.instanceFillColors.a * layer.opacity);\n // DECKGL_FILTER_COLOR(varyings.vFillColor, geometry);\n varyings.vLineColor = vec4<f32>(attributes.instanceLineColors.rgb, attributes.instanceLineColors.a * layer.opacity);\n // DECKGL_FILTER_COLOR(varyings.vLineColor, geometry);\n varyings.pickingColor = attributes.instancePickingColors;\n\n return varyings;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n // var geometry: Geometry;\n // geometry.uv = unitPosition;\n\n let distToCenter = length(varyings.unitPosition) * varyings.outerRadiusPixels;\n let inCircle = select(\n smoothedge(distToCenter, varyings.outerRadiusPixels),\n step(distToCenter, varyings.outerRadiusPixels),\n scatterplot.antialiasing != 0\n );\n\n if (inCircle == 0.0) {\n discard;\n }\n\n var fragColor: vec4<f32>;\n\n if (scatterplot.stroked != 0) {\n let isLine = select(\n smoothedge(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter),\n step(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter),\n scatterplot.antialiasing != 0\n );\n\n if (scatterplot.filled != 0) {\n fragColor = mix(varyings.vFillColor, varyings.vLineColor, isLine);\n } else {\n if (isLine == 0.0) {\n discard;\n }\n fragColor = vec4<f32>(varyings.vLineColor.rgb, varyings.vLineColor.a * isLine);\n }\n } else if (scatterplot.filled == 0) {\n discard;\n } else {\n fragColor = varyings.vFillColor;\n }\n\n fragColor.a *= inCircle;\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(varyings.pickingColor)) {\n discard;\n }\n return vec4<f32>(varyings.pickingColor, 1.0);\n }\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n let highLightAlpha = picking.highlightColor.a;\n let blendedAlpha = highLightAlpha + fragColor.a * (1.0 - highLightAlpha);\n if (blendedAlpha > 0.0) {\n let highLightRatio = highLightAlpha / blendedAlpha;\n fragColor = vec4<f32>(\n mix(fragColor.rgb, picking.highlightColor.rgb, highLightRatio),\n blendedAlpha\n );\n } else {\n fragColor = vec4<f32>(fragColor.rgb, 0.0);\n }\n }\n }\n\n // Apply premultiplied alpha as required by transparent canvas\n fragColor = deckgl_premultiplied_alpha(fragColor);\n\n return fragColor;\n // return vec4<f32>(0, 0, 1, 1);\n}\n",modules:[No,Io,Oo,Js]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{radiusUnits:t,radiusScale:n,radiusMinPixels:i,radiusMaxPixels:r,stroked:o,filled:s,billboard:a,antialiasing:l,lineWidthUnits:A,lineWidthScale:c,lineWidthMinPixels:u,lineWidthMaxPixels:h}=this.props,d={stroked:o,filled:s,billboard:a,antialiasing:l,radiusUnits:mn.p5[t],radiusScale:n,radiusMinPixels:i,radiusMaxPixels:r,lineWidthUnits:mn.p5[A],lineWidthScale:c,lineWidthMinPixels:u,lineWidthMaxPixels:h},f=this.state.model;f.shaderInputs.setProps({scatterplot:d}),f.draw(this.context.renderPass)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-strip",attributes:{positions:{size:3,value:new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0])}}}),isInstanced:!0})}}ScatterplotLayer.defaultProps=Ys,ScatterplotLayer.layerName="ScatterplotLayer";const Zs=ScatterplotLayer;class CubeGeometry extends Geometry{constructor(e={}){const{id:t=(0,ns.L)("cube-geometry"),indices:n=!0}=e;super(n?{...e,id:t,topology:"triangle-list",indices:{size:1,value:$s},attributes:{...sa,...e.attributes}}:{...e,id:t,topology:"triangle-list",indices:void 0,attributes:{...aa,...e.attributes}})}}const $s=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),ea=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),ta=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),na=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),ia=new Float32Array([1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,1,1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1]),ra=new Float32Array([1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0]),oa=new Float32Array([1,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1]),sa={POSITION:{size:3,value:ea},NORMAL:{size:3,value:ta},TEXCOORD_0:{size:2,value:na}},aa={POSITION:{size:3,value:ia},TEXCOORD_0:{size:2,value:ra},COLOR_0:{size:3,value:oa}};var la=n(18135);class ColumnGeometry extends Geometry{constructor(e){const{indices:t,attributes:n}=function(e){const{radius:t,height:n=1,nradial:i=10}=e;let{vertices:r}=e;r&&(_e.A.assert(r.length>=i),r=r.flatMap(e=>[e[0],e[1]]),(0,la.UD)(r,la.rJ.COUNTER_CLOCKWISE));const o=n>0,s=i+1,a=o?3*s+1:i,l=2*Math.PI/i,A=new Uint16Array(o?3*i*2:0),c=new Float32Array(3*a),u=new Float32Array(3*a);let h=0;if(o){for(let e=0;e<s;e++){const o=e*l,s=e%i,a=Math.sin(o),A=Math.cos(o);for(let e=0;e<2;e++)c[h+0]=r?r[2*s]:A*t,c[h+1]=r?r[2*s+1]:a*t,c[h+2]=(.5-e)*n,u[h+0]=r?r[2*s]:A,u[h+1]=r?r[2*s+1]:a,h+=3}c[h+0]=c[h-3],c[h+1]=c[h-2],c[h+2]=c[h-1],h+=3}for(let e=o?0:1;e<s;e++){const o=Math.floor(e/2)*Math.sign(.5-e%2),s=o*l,a=(o+i)%i,A=Math.sin(s),d=Math.cos(s);c[h+0]=r?r[2*a]:d*t,c[h+1]=r?r[2*a+1]:A*t,c[h+2]=n/2,u[h+2]=1,h+=3}if(o){let e=0;for(let t=0;t<i;t++)A[e++]=2*t+0,A[e++]=2*t+2,A[e++]=2*t+0,A[e++]=2*t+1,A[e++]=2*t+1,A[e++]=2*t+3}return{indices:A,attributes:{POSITION:{size:3,value:c},NORMAL:{size:3,value:u}}}}(e);super({...e,indices:t,attributes:n})}}const Aa="layout(std140) uniform columnUniforms {\n float radius;\n float angle;\n vec2 offset;\n bool extruded;\n bool stroked;\n bool isStroke;\n float coverage;\n float elevationScale;\n float edgeDistance;\n float widthScale;\n float widthMinPixels;\n float widthMaxPixels;\n highp int radiusUnits;\n highp int widthUnits;\n} column;\n",ca={name:"column",vs:Aa,fs:Aa,uniformTypes:{radius:"f32",angle:"f32",offset:"vec2<f32>",extruded:"f32",stroked:"f32",isStroke:"f32",coverage:"f32",elevationScale:"f32",edgeDistance:"f32",widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",radiusUnits:"i32",widthUnits:"i32"}},ua=[0,0,0,255],ha={diskResolution:{type:"number",min:4,value:20},vertices:null,radius:{type:"number",min:0,value:1e3},angle:{type:"number",value:0},offset:{type:"array",value:[0,0]},coverage:{type:"number",min:0,max:1,value:1},elevationScale:{type:"number",min:0,value:1},radiusUnits:"meters",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,flatShading:!1,getPosition:{type:"accessor",value:e=>e.position},getFillColor:{type:"accessor",value:ua},getLineColor:{type:"accessor",value:ua},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0,getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ColumnLayer extends uo{getShaders(){const e={},{flatShading:t}=this.props;return t&&(e.FLAT_SHADING=1),super.getShaders({vs:"#version 300 es\n#define SHADER_NAME column-layer-vertex-shader\nin vec3 positions;\nin vec3 normals;\nin vec3 instancePositions;\nin float instanceElevations;\nin vec3 instancePositions64Low;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\nin float instanceStrokeWidths;\nin vec3 instancePickingColors;\nout vec4 vColor;\n#ifdef FLAT_SHADING\nout vec3 cameraPosition;\nout vec4 position_commonspace;\n#endif\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\nvec4 color = column.isStroke ? instanceLineColors : instanceFillColors;\nmat2 rotationMatrix = mat2(cos(column.angle), sin(column.angle), -sin(column.angle), cos(column.angle));\nfloat elevation = 0.0;\nfloat strokeOffsetRatio = 1.0;\nif (column.extruded) {\nelevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale;\n} else if (column.stroked) {\nfloat widthPixels = clamp(\nproject_size_to_pixel(instanceStrokeWidths * column.widthScale, column.widthUnits),\ncolumn.widthMinPixels, column.widthMaxPixels) / 2.0;\nfloat halfOffset = project_pixel_size(widthPixels) / project_size(column.edgeDistance * column.coverage * column.radius);\nif (column.isStroke) {\nstrokeOffsetRatio -= sign(positions.z) * halfOffset;\n} else {\nstrokeOffsetRatio -= halfOffset;\n}\n}\nfloat shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);\nfloat dotRadius = column.radius * column.coverage * shouldRender;\ngeometry.pickingColor = instancePickingColors;\nvec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation);\nvec3 centroidPosition64Low = instancePositions64Low;\nvec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + column.offset) * dotRadius;\nif (column.radiusUnits == UNIT_METERS) {\noffset = project_size(offset);\n} else if (column.radiusUnits == UNIT_PIXELS) {\noffset = project_pixel_size(offset);\n}\nvec3 pos = vec3(offset, 0.);\nDECKGL_FILTER_SIZE(pos, geometry);\ngl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position);\ngeometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z));\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nif (column.extruded && !column.isStroke) {\n#ifdef FLAT_SHADING\ncameraPosition = project.cameraPosition;\nposition_commonspace = geometry.position;\nvColor = vec4(color.rgb, color.a * layer.opacity);\n#else\nvec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\nvColor = vec4(lightColor, color.a * layer.opacity);\n#endif\n} else {\nvColor = vec4(color.rgb, color.a * layer.opacity);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME column-layer-fragment-shader\nprecision highp float;\nout vec4 fragColor;\nin vec4 vColor;\n#ifdef FLAT_SHADING\nin vec3 cameraPosition;\nin vec4 position_commonspace;\n#endif\nvoid main(void) {\nfragColor = vColor;\ngeometry.uv = vec2(0.);\n#ifdef FLAT_SHADING\nif (column.extruded && !column.isStroke && !bool(picking.isActive)) {\nvec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\nfragColor.rgb = lighting_getLightColor(vColor.rgb, cameraPosition, position_commonspace.xyz, normal);\n}\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",defines:e,modules:[No,t?Zo:Yo,Oo,ca]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceElevations:{size:1,transition:!0,accessor:"getElevation"},instanceFillColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getFillColor",defaultValue:ua},instanceLineColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getLineColor",defaultValue:ua},instanceStrokeWidths:{size:1,accessor:"getLineWidth",transition:!0}})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,r=i.extensionsChanged||t.flatShading!==n.flatShading;r&&(this.state.models?.forEach(e=>e.destroy()),this.setState(this._getModels()),this.getAttributeManager().invalidateAll());const o=this.getNumInstances();this.state.fillModel.setInstanceCount(o),this.state.wireframeModel.setInstanceCount(o),(r||t.diskResolution!==n.diskResolution||t.vertices!==n.vertices||(t.extruded||t.stroked)!==(n.extruded||n.stroked))&&this._updateGeometry(t)}getGeometry(e,t,n){const i=new ColumnGeometry({radius:1,height:n?2:0,vertices:t,nradial:e});let r=0;if(t)for(let n=0;n<e;n++){const i=t[n];r+=Math.sqrt(i[0]*i[0]+i[1]*i[1])/e}else r=1;return this.setState({edgeDistance:Math.cos(Math.PI/e)*r}),i}_getModels(){const e=this.getShaders(),t=this.getAttributeManager().getBufferLayouts(),n=new dr.K(this.context.device,{...e,id:`${this.props.id}-fill`,bufferLayout:t,isInstanced:!0}),i=new dr.K(this.context.device,{...e,id:`${this.props.id}-wireframe`,bufferLayout:t,isInstanced:!0});return{fillModel:n,wireframeModel:i,models:[i,n]}}_updateGeometry({diskResolution:e,vertices:t,extruded:n,stroked:i}){const r=this.getGeometry(e,t,n||i);this.setState({fillVertexCount:r.attributes.POSITION.value.length/3});const o=this.state.fillModel,s=this.state.wireframeModel,{POSITION:a,NORMAL:l}=r.attributes,A=new Geometry({topology:"triangle-strip",attributes:{POSITION:a,NORMAL:l}});o.setGeometry(A),s.setGeometry(r),s.setTopology("line-list")}draw({uniforms:e}){const{lineWidthUnits:t,lineWidthScale:n,lineWidthMinPixels:i,lineWidthMaxPixels:r,radiusUnits:o,elevationScale:s,extruded:a,filled:l,stroked:A,wireframe:c,offset:u,coverage:h,radius:d,angle:f}=this.props,p=this.state.fillModel,g=this.state.wireframeModel,{fillVertexCount:m,edgeDistance:_}=this.state,b={radius:d,angle:f/180*Math.PI,offset:u,extruded:a,stroked:A,coverage:h,elevationScale:s,edgeDistance:_,radiusUnits:mn.p5[o],widthUnits:mn.p5[t],widthScale:n,widthMinPixels:i,widthMaxPixels:r};a&&c&&(g.shaderInputs.setProps({column:{...b,isStroke:!0}}),g.draw(this.context.renderPass)),l&&(p.setVertexCount(m),p.shaderInputs.setProps({column:{...b,isStroke:!1}}),p.draw(this.context.renderPass)),!a&&A&&(p.setVertexCount(2*m/3),p.shaderInputs.setProps({column:{...b,isStroke:!0}}),p.draw(this.context.renderPass))}}ColumnLayer.layerName="ColumnLayer",ColumnLayer.defaultProps=ha;const da=ColumnLayer;class GridCellLayer extends da{_updateGeometry(){const e=new CubeGeometry;this.state.fillModel.setGeometry(e)}draw({uniforms:e}){const{elevationScale:t,extruded:n,offset:i,coverage:r,cellSize:o,angle:s,radiusUnits:a}=this.props,l=this.state.fillModel,A={radius:o/2,radiusUnits:mn.p5[a],angle:s,offset:i,extruded:n,stroked:!1,coverage:r,elevationScale:t,edgeDistance:1,isStroke:!1,widthUnits:0,widthScale:0,widthMinPixels:0,widthMaxPixels:0};l.shaderInputs.setProps({column:A}),l.draw(this.context.renderPass)}}GridCellLayer.layerName="GridCellLayer",GridCellLayer.defaultProps={cellSize:{type:"number",min:0,value:1e3},offset:{type:"array",value:[1,1]}};const fa=GridCellLayer;function pa(e,t,n,i,r=[]){let o,s;if(8&n)o=(i[3]-e[1])/(t[1]-e[1]),s=3;else if(4&n)o=(i[1]-e[1])/(t[1]-e[1]),s=1;else if(2&n)o=(i[2]-e[0])/(t[0]-e[0]),s=2;else{if(!(1&n))return null;o=(i[0]-e[0])/(t[0]-e[0]),s=0}for(let n=0;n<e.length;n++)r[n]=(1&s)===n?i[s]:o*(t[n]-e[n])+e[n];return r}function ga(e,t){let n=0;return e[0]<t[0]?n|=1:e[0]>t[2]&&(n|=2),e[1]<t[1]?n|=4:e[1]>t[3]&&(n|=8),n}function ma(e,t){const n=t.length,i=e.length;if(i>0){let r=!0;for(let o=0;o<n;o++)if(e[i-n+o]!==t[o]){r=!1;break}if(r)return!1}for(let r=0;r<n;r++)e[i+r]=t[r];return!0}function _a(e,t){const n=t.length;for(let i=0;i<n;i++)e[i]=t[i]}function ba(e,t,n,i,r=[]){const o=i+t*n;for(let t=0;t<n;t++)r[t]=e[o+t];return r}function va(e,t){const{size:n=2,broken:i=!1,gridResolution:r=10,gridOffset:o=[0,0],startIndex:s=0,endIndex:a=e.length}=t||{},l=(a-s)/n;let A=[];const c=[A],u=ba(e,0,n,s);let h,d;const f=wa(u,r,o,[]),p=[];ma(A,u);for(let t=1;t<l;t++){for(h=ba(e,t,n,s,h),d=ga(h,f);d;){pa(u,h,d,f,p);const e=ga(p,f);e&&(pa(u,p,e,f,p),d=e),ma(A,p),_a(u,p),Ea(f,r,d),i&&A.length>n&&(A=[],c.push(A),ma(A,u)),d=ga(h,f)}ma(A,h),_a(u,h)}return i?c:c[0]}function ya(e,t=null,n){if(!e.length)return[];const{size:i=2,gridResolution:r=10,gridOffset:o=[0,0],edgeTypes:s=!1}=n||{},a=[],l=[{pos:e,types:s?new Array(e.length/i).fill(1):null,holes:t||[]}],A=[[],[]];let c=[];for(;l.length;){const{pos:e,types:t,holes:n}=l.shift();xa(e,i,n[0]||e.length,A),c=wa(A[0],r,o,c);const u=ga(A[1],c);if(u){let r=Ca(e,t,i,0,n[0]||e.length,c,u);const o={pos:r[0].pos,types:r[0].types,holes:[]},a={pos:r[1].pos,types:r[1].types,holes:[]};l.push(o,a);for(let l=0;l<n.length;l++)r=Ca(e,t,i,n[l],n[l+1]||e.length,c,u),r[0]&&(o.holes.push(o.pos.length),o.pos=Ta(o.pos,r[0].pos),s&&(o.types=Ta(o.types,r[0].types))),r[1]&&(a.holes.push(a.pos.length),a.pos=Ta(a.pos,r[1].pos),s&&(a.types=Ta(a.types,r[1].types)))}else{const i={positions:e};s&&(i.edgeTypes=t),n.length&&(i.holeIndices=n),a.push(i)}}return a}function Ca(e,t,n,i,r,o,s){const a=(r-i)/n,l=[],A=[],c=[],u=[],h=[];let d,f,p;const g=ba(e,a-1,n,i);let m=Math.sign(8&s?g[1]-o[3]:g[0]-o[2]),_=t&&t[a-1],b=0,v=0;for(let r=0;r<a;r++)d=ba(e,r,n,i,d),f=Math.sign(8&s?d[1]-o[3]:d[0]-o[2]),p=t&&t[i/n+r],f&&m&&m!==f&&(pa(g,d,s,o,h),ma(l,h)&&c.push(_),ma(A,h)&&u.push(_)),f<=0?(ma(l,d)&&c.push(p),b-=f):c.length&&(c[c.length-1]=0),f>=0?(ma(A,d)&&u.push(p),v+=f):u.length&&(u[u.length-1]=0),_a(g,d),m=f,_=p;return[b?{pos:l,types:t&&c}:null,v?{pos:A,types:t&&u}:null]}function wa(e,t,n,i){const r=Math.floor((e[0]-n[0])/t)*t+n[0],o=Math.floor((e[1]-n[1])/t)*t+n[1];return i[0]=r,i[1]=o,i[2]=r+t,i[3]=o+t,i}function Ea(e,t,n){8&n?(e[1]+=t,e[3]+=t):4&n?(e[1]-=t,e[3]-=t):2&n?(e[0]+=t,e[2]+=t):1&n&&(e[0]-=t,e[2]-=t)}function xa(e,t,n,i){let r=1/0,o=-1/0,s=1/0,a=-1/0;for(let i=0;i<n;i+=t){const t=e[i],n=e[i+1];r=t<r?t:r,o=t>o?t:o,s=n<s?n:s,a=n>a?n:a}return i[0][0]=r,i[0][1]=s,i[1][0]=o,i[1][1]=a,i}function Ta(e,t){for(let n=0;n<t.length;n++)e.push(t[n]);return e}function Sa(e,t,n,i){let r=-1,o=-1;for(let s=n+1;s<i;s+=t){const t=Math.abs(e[s]);t>r&&(r=t,o=s-1)}return o}function Pa(e,t,n,i,r=85.051129){const o=e[n],s=e[i-t];if(Math.abs(o-s)>180){const i=ba(e,0,t,n);i[0]+=360*Math.round((s-o)/360),ma(e,i),i[1]=Math.sign(i[1])*r,ma(e,i),i[0]=o,ma(e,i)}}function Ma(e,t,n,i){let r,o=e[0];for(let s=n;s<i;s+=t){r=e[s];const t=r-o;(t>180||t<-180)&&(r-=360*Math.round(t/360)),e[s]=o=r}}function Ra(e,t){let n;const i=e.length/t;for(let r=0;r<i&&(n=e[r*t],(n+180)%360==0);r++);const r=360*-Math.round(n/360);if(0!==r)for(let n=0;n<i;n++)e[n*t]+=r}function Ba(e,t,n,i){let r;if(Array.isArray(e[0])){const n=e.length*t;r=new Array(n);for(let n=0;n<e.length;n++)for(let i=0;i<t;i++)r[n*t+i]=e[n][i]||0}else r=e;return n?va(r,{size:t,gridResolution:n}):i?function(e,t){const{size:n=2,startIndex:i=0,endIndex:r=e.length,normalize:o=!0}=t||{},s=e.slice(i,r);Ma(s,n,0,r-i);const a=va(s,{size:n,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(o)for(const e of a)Ra(e,n);return a}(r,{size:t}):r}class PathTesselator extends Tesselator{constructor(e){super({...e,attributes:{positions:{size:3,padding:18,initialize:!0,type:e.fp64?Float64Array:Float32Array},segmentTypes:{size:1,type:Uint8ClampedArray}}})}get(e){return this.attributes[e]}getGeometryFromBuffer(e){return this.normalize?super.getGeometryFromBuffer(e):null}normalizeGeometry(e){return this.normalize?Ba(e,this.positionSize,this.opts.resolution,this.opts.wrapLongitude):e}getGeometrySize(e){if(Ia(e)){let t=0;for(const n of e)t+=this.getGeometrySize(n);return t}const t=this.getPathLength(e);return t<2?0:this.isClosed(e)?t<3?0:t+2:t}updateGeometryAttributes(e,t){if(0!==t.geometrySize)if(e&&Ia(e))for(const n of e){const e=this.getGeometrySize(n);t.geometrySize=e,this.updateGeometryAttributes(n,t),t.vertexStart+=e}else this._updateSegmentTypes(e,t),this._updatePositions(e,t)}_updateSegmentTypes(e,t){const n=this.attributes.segmentTypes,i=!!e&&this.isClosed(e),{vertexStart:r,geometrySize:o}=t;n.fill(0,r,r+o),i?(n[r]=4,n[r+o-2]=4):(n[r]+=1,n[r+o-2]+=2),n[r+o-1]=4}_updatePositions(e,t){const{positions:n}=this.attributes;if(!n||!e)return;const{vertexStart:i,geometrySize:r}=t,o=new Array(3);for(let t=i,s=0;s<r;t++,s++)this.getPointOnPath(e,s,o),n[3*t]=o[0],n[3*t+1]=o[1],n[3*t+2]=o[2]}getPathLength(e){return e.length/this.positionSize}getPointOnPath(e,t,n=[]){const{positionSize:i}=this;t*i>=e.length&&(t+=1-e.length/i);const r=t*i;return n[0]=e[r],n[1]=e[r+1],n[2]=3===i&&e[r+2]||0,n}isClosed(e){if(!this.normalize)return Boolean(this.opts.loop);const{positionSize:t}=this,n=e.length-t;return e[0]===e[n]&&e[1]===e[n+1]&&(2===t||e[2]===e[n+2])}}function Ia(e){return Array.isArray(e[0])}const La="layout(std140) uniform pathUniforms {\n float widthScale;\n float widthMinPixels;\n float widthMaxPixels;\n float jointType;\n float capType;\n float miterLimit;\n bool billboard;\n highp int widthUnits;\n} path;\n",Fa={name:"path",vs:La,fs:La,uniformTypes:{widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",jointType:"f32",capType:"f32",miterLimit:"f32",billboard:"f32",widthUnits:"i32"}},Da=[0,0,0,255],Oa={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:e=>e.path},getColor:{type:"accessor",value:Da},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},Na={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e};class PathLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME path-layer-vertex-shader\nin vec2 positions;\nin float instanceTypes;\nin vec3 instanceStartPositions;\nin vec3 instanceEndPositions;\nin vec3 instanceLeftPositions;\nin vec3 instanceRightPositions;\nin vec3 instanceLeftPositions64Low;\nin vec3 instanceStartPositions64Low;\nin vec3 instanceEndPositions64Low;\nin vec3 instanceRightPositions64Low;\nin float instanceStrokeWidths;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nuniform float opacity;\nout vec4 vColor;\nout vec2 vCornerOffset;\nout float vMiterLength;\nout vec2 vPathPosition;\nout float vPathLength;\nout float vJointType;\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\nfloat flipIfTrue(bool flag) {\nreturn -(float(flag) * 2. - 1.);\n}\nvec3 getLineJoinOffset(\nvec3 prevPoint, vec3 currPoint, vec3 nextPoint,\nvec2 width\n) {\nbool isEnd = positions.x > 0.0;\nfloat sideOfPath = positions.y;\nfloat isJoint = float(sideOfPath == 0.0);\nvec3 deltaA3 = (currPoint - prevPoint);\nvec3 deltaB3 = (nextPoint - currPoint);\nmat3 rotationMatrix;\nbool needsRotation = !path.billboard && project_needs_rotation(currPoint, rotationMatrix);\nif (needsRotation) {\ndeltaA3 = deltaA3 * rotationMatrix;\ndeltaB3 = deltaB3 * rotationMatrix;\n}\nvec2 deltaA = deltaA3.xy / width;\nvec2 deltaB = deltaB3.xy / width;\nfloat lenA = length(deltaA);\nfloat lenB = length(deltaB);\nvec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\nvec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\nvec2 perpA = vec2(-dirA.y, dirA.x);\nvec2 perpB = vec2(-dirB.y, dirB.x);\nvec2 tangent = dirA + dirB;\ntangent = length(tangent) > 0. ? normalize(tangent) : perpA;\nvec2 miterVec = vec2(-tangent.y, tangent.x);\nvec2 dir = isEnd ? dirA : dirB;\nvec2 perp = isEnd ? perpA : perpB;\nfloat L = isEnd ? lenA : lenB;\nfloat sinHalfA = abs(dot(miterVec, perp));\nfloat cosHalfA = abs(dot(dirA, miterVec));\nfloat turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\nfloat cornerPosition = sideOfPath * turnDirection;\nfloat miterSize = 1.0 / max(sinHalfA, EPSILON);\nmiterSize = mix(\nmin(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\nmiterSize,\nstep(0.0, cornerPosition)\n);\nvec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n* (sideOfPath + isJoint * turnDirection);\nbool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\nbool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\nbool isCap = isStartCap || isEndCap;\nif (isCap) {\noffsetVec = mix(perp * sideOfPath, dir * path.capType * 4.0 * flipIfTrue(isStartCap), isJoint);\nvJointType = path.capType;\n} else {\nvJointType = path.jointType;\n}\nvPathLength = L;\nvCornerOffset = offsetVec;\nvMiterLength = dot(vCornerOffset, miterVec * turnDirection);\nvMiterLength = isCap ? isJoint : vMiterLength;\nvec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\nvPathPosition = vec2(\ndot(offsetFromStartOfPath, perp),\ndot(offsetFromStartOfPath, dir)\n);\ngeometry.uv = vPathPosition;\nfloat isValid = step(instanceTypes, 3.5);\nvec3 offset = vec3(offsetVec * width * isValid, 0.0);\nif (needsRotation) {\noffset = rotationMatrix * offset;\n}\nreturn offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\nif (position.w < EPSILON) {\nfloat r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\nposition = refPosition + (position - refPosition) * r;\n}\n}\nvoid main() {\ngeometry.pickingColor = instancePickingColors;\nvColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity);\nfloat isEnd = positions.x;\nvec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\nvec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\nvec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\nvec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\nvec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\nvec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\ngeometry.worldPosition = currPosition;\nvec2 widthPixels = vec2(clamp(\nproject_size_to_pixel(instanceStrokeWidths * path.widthScale, path.widthUnits),\npath.widthMinPixels, path.widthMaxPixels) / 2.0);\nvec3 width;\nif (path.billboard) {\nvec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET);\nvec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\nvec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\nclipLine(prevPositionScreen, currPositionScreen);\nclipLine(nextPositionScreen, currPositionScreen);\nclipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\nwidth = vec3(widthPixels, 0.0);\nDECKGL_FILTER_SIZE(width, geometry);\nvec3 offset = getLineJoinOffset(\nprevPositionScreen.xyz / prevPositionScreen.w,\ncurrPositionScreen.xyz / currPositionScreen.w,\nnextPositionScreen.xyz / nextPositionScreen.w,\nproject_pixel_size_to_clipspace(width.xy)\n);\nDECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);\ngl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);\n} else {\nprevPosition = project_position(prevPosition, prevPosition64Low);\ncurrPosition = project_position(currPosition, currPosition64Low);\nnextPosition = project_position(nextPosition, nextPosition64Low);\nwidth = vec3(project_pixel_size(widthPixels), 0.0);\nDECKGL_FILTER_SIZE(width, geometry);\nvec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy);\ngeometry.position = vec4(currPosition + offset, 1.0);\ngl_Position = project_common_position_to_clipspace(geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME path-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 vCornerOffset;\nin float vMiterLength;\nin vec2 vPathPosition;\nin float vPathLength;\nin float vJointType;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = vPathPosition;\nif (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\nif (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\ndiscard;\n}\nif (vJointType < 0.5 && vMiterLength > path.miterLimit + 1.0) {\ndiscard;\n}\n}\nfragColor = vColor;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:[No,Oo,Fa]})}get wrapLongitude(){return!1}getBounds(){return this.getAttributeManager()?.getBounds(["vertexPositions"])}initializeState(){const e=!0;this.getAttributeManager().addInstanced({vertexPositions:{size:3,vertexOffset:1,type:"float64",fp64:this.use64bitPositions(),transition:Na,accessor:"getPath",update:this.calculatePositions,noAlloc:e,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:"uint8",update:this.calculateSegmentTypes,noAlloc:e},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:Na,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",accessor:"getColor",transition:Na,defaultValue:Da},instancePickingColors:{size:4,type:"uint8",accessor:(e,{index:t,target:n})=>this.encodePickingColor(e&&e.__source?e.__source.index:t,n)}}),this.setState({pathTesselator:new PathTesselator({fp64:this.use64bitPositions()})})}updateState(e){super.updateState(e);const{props:t,changeFlags:n}=e,i=this.getAttributeManager();if(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPath)){const{pathTesselator:e}=this.state,r=t.data.attributes||{};e.updateGeometry({data:t.data,geometryBuffer:r.getPath,buffers:r,normalize:!t._pathType,loop:"loop"===t._pathType,getGeometry:t.getPath,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:n.dataChanged}),this.setState({numInstances:e.instanceCount,startIndices:e.vertexStarts}),n.dataChanged||i.invalidateAll()}n.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),i.invalidateAll())}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(e=>e.__source.index===n)),t}disablePickingIndex(e){const t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw({uniforms:e}){const{jointRounded:t,capRounded:n,billboard:i,miterLimit:r,widthUnits:o,widthScale:s,widthMinPixels:a,widthMaxPixels:l}=this.props,A=this.state.model,c={jointType:Number(t),capType:Number(n),billboard:i,widthUnits:mn.p5[o],widthScale:s,miterLimit:r,widthMinPixels:a,widthMaxPixels:l};A.shaderInputs.setProps({path:c}),A.draw(this.context.renderPass)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-list",attributes:{indices:new Uint16Array([0,1,2,1,4,2,1,3,4,3,5,4]),positions:{value:new Float32Array([0,0,0,-1,0,1,1,-1,1,1,1,0]),size:2}}}),isInstanced:!0})}calculatePositions(e){const{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("positions")}calculateSegmentTypes(e){const{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("segmentTypes")}}PathLayer.defaultProps=Oa,PathLayer.layerName="PathLayer";const ka=PathLayer;var Ua=n.cjs(function(e,t){function n(e,t,n){n=n||2;var r,s,a,l,A,h,d,p=t&&t.length,g=p?t[0]*n:e.length,m=i(e,0,g,n,!0),_=[];if(!m||m.next===m.prev)return _;if(p&&(m=function(e,t,n,r){var o,s,a,l=[];for(o=0,s=t.length;o<s;o++)(a=i(e,t[o]*r,o<s-1?t[o+1]*r:e.length,r,!1))===a.next&&(a.steiner=!0),l.push(f(a));for(l.sort(c),o=0;o<l.length;o++)n=u(l[o],n);return n}(e,t,m,n)),e.length>80*n){r=a=e[0],s=l=e[1];for(var b=n;b<g;b+=n)(A=e[b])<r&&(r=A),(h=e[b+1])<s&&(s=h),A>a&&(a=A),h>l&&(l=h);d=0!==(d=Math.max(a-r,l-s))?32767/d:0}return o(m,_,n,r,s,d,0),_}function i(e,t,n,i,r){var o,s;if(r===S(e,t,n,i)>0)for(o=t;o<n;o+=i)s=E(o,e[o],e[o+1],s);else for(o=n-i;o>=t;o-=i)s=E(o,e[o],e[o+1],s);return s&&_(s,s.next)&&(x(s),s=s.next),s}function r(e,t){if(!e)return e;t||(t=e);var n,i=e;do{if(n=!1,i.steiner||!_(i,i.next)&&0!==m(i.prev,i,i.next))i=i.next;else{if(x(i),(i=t=i.prev)===i.next)break;n=!0}}while(n||i!==t);return t}function o(e,t,n,i,c,u,h){if(e){!h&&u&&function(e,t,n,i){var r=e;do{0===r.z&&(r.z=d(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,function(e){var t,n,i,r,o,s,a,l,A=1;do{for(n=e,e=null,o=null,s=0;n;){for(s++,i=n,a=0,t=0;t<A&&(a++,i=i.nextZ);t++);for(l=A;a>0||l>0&&i;)0!==a&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,a--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:e=r,r.prevZ=o,o=r;n=i}o.nextZ=null,A*=2}while(s>1)}(r)}(e,i,c,u);for(var f,p,g=e;e.prev!==e.next;)if(f=e.prev,p=e.next,u?a(e,i,c,u):s(e))t.push(f.i/n|0),t.push(e.i/n|0),t.push(p.i/n|0),x(e),e=p.next,g=p.next;else if((e=p)===g){h?1===h?o(e=l(r(e),t,n),t,n,i,c,u,2):2===h&&A(e,t,n,i,c,u):o(r(e),t,n,i,c,u,1);break}}}function s(e){var t=e.prev,n=e,i=e.next;if(m(t,n,i)>=0)return!1;for(var r=t.x,o=n.x,s=i.x,a=t.y,l=n.y,A=i.y,c=r<o?r<s?r:s:o<s?o:s,u=a<l?a<A?a:A:l<A?l:A,h=r>o?r>s?r:s:o>s?o:s,d=a>l?a>A?a:A:l>A?l:A,f=i.next;f!==t;){if(f.x>=c&&f.x<=h&&f.y>=u&&f.y<=d&&p(r,a,o,l,s,A,f.x,f.y)&&m(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function a(e,t,n,i){var r=e.prev,o=e,s=e.next;if(m(r,o,s)>=0)return!1;for(var a=r.x,l=o.x,A=s.x,c=r.y,u=o.y,h=s.y,f=a<l?a<A?a:A:l<A?l:A,g=c<u?c<h?c:h:u<h?u:h,_=a>l?a>A?a:A:l>A?l:A,b=c>u?c>h?c:h:u>h?u:h,v=d(f,g,t,n,i),y=d(_,b,t,n,i),C=e.prevZ,w=e.nextZ;C&&C.z>=v&&w&&w.z<=y;){if(C.x>=f&&C.x<=_&&C.y>=g&&C.y<=b&&C!==r&&C!==s&&p(a,c,l,u,A,h,C.x,C.y)&&m(C.prev,C,C.next)>=0)return!1;if(C=C.prevZ,w.x>=f&&w.x<=_&&w.y>=g&&w.y<=b&&w!==r&&w!==s&&p(a,c,l,u,A,h,w.x,w.y)&&m(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;C&&C.z>=v;){if(C.x>=f&&C.x<=_&&C.y>=g&&C.y<=b&&C!==r&&C!==s&&p(a,c,l,u,A,h,C.x,C.y)&&m(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;w&&w.z<=y;){if(w.x>=f&&w.x<=_&&w.y>=g&&w.y<=b&&w!==r&&w!==s&&p(a,c,l,u,A,h,w.x,w.y)&&m(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function l(e,t,n){var i=e;do{var o=i.prev,s=i.next.next;!_(o,s)&&b(o,i,i.next,s)&&C(o,s)&&C(s,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(s.i/n|0),x(i),x(i.next),i=e=s),i=i.next}while(i!==e);return r(i)}function A(e,t,n,i,s,a){var l=e;do{for(var A=l.next.next;A!==l.prev;){if(l.i!==A.i&&g(l,A)){var c=w(l,A);return l=r(l,l.next),c=r(c,c.next),o(l,t,n,i,s,a,0),void o(c,t,n,i,s,a,0)}A=A.next}l=l.next}while(l!==e)}function c(e,t){return e.x-t.x}function u(e,t){var n=function(e,t){var n,i=t,r=e.x,o=e.y,s=-1/0;do{if(o<=i.y&&o>=i.next.y&&i.next.y!==i.y){var a=i.x+(o-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(a<=r&&a>s&&(s=a,n=i.x<i.next.x?i:i.next,a===r))return n}i=i.next}while(i!==t);if(!n)return null;var l,A=n,c=n.x,u=n.y,d=1/0;i=n;do{r>=i.x&&i.x>=c&&r!==i.x&&p(o<u?r:s,o,c,u,o<u?s:r,o,i.x,i.y)&&(l=Math.abs(o-i.y)/(r-i.x),C(i,e)&&(l<d||l===d&&(i.x>n.x||i.x===n.x&&h(n,i)))&&(n=i,d=l)),i=i.next}while(i!==A);return n}(e,t);if(!n)return t;var i=w(n,e);return r(i,i.next),r(n,n.next)}function h(e,t){return m(e.prev,e,t.prev)<0&&m(t.next,e,e.next)<0}function d(e,t,n,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function f(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function p(e,t,n,i,r,o,s,a){return(r-s)*(t-a)>=(e-s)*(o-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(o-a)>=(r-s)*(i-a)}function g(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&b(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(C(e,t)&&C(t,e)&&function(e,t){var n=e,i=!1,r=(e.x+t.x)/2,o=(e.y+t.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&r<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==e);return i}(e,t)&&(m(e.prev,e,t.prev)||m(e,t.prev,t))||_(e,t)&&m(e.prev,e,e.next)>0&&m(t.prev,t,t.next)>0)}function m(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function _(e,t){return e.x===t.x&&e.y===t.y}function b(e,t,n,i){var r=y(m(e,t,n)),o=y(m(e,t,i)),s=y(m(n,i,e)),a=y(m(n,i,t));return r!==o&&s!==a||(!(0!==r||!v(e,n,t))||(!(0!==o||!v(e,i,t))||(!(0!==s||!v(n,e,i))||!(0!==a||!v(n,t,i)))))}function v(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function y(e){return e>0?1:e<0?-1:0}function C(e,t){return m(e.prev,e,e.next)<0?m(e,t,e.next)>=0&&m(e,e.prev,t)>=0:m(e,t,e.prev)<0||m(e,e.next,t)<0}function w(e,t){var n=new T(e.i,e.x,e.y),i=new T(t.i,t.x,t.y),r=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,o.next=i,i.prev=o,i}function E(e,t,n,i){var r=new T(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function x(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function T(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function S(e,t,n,i){for(var r=0,o=t,s=n-i;o<n;o+=i)r+=(e[s]-e[o])*(e[o+1]+e[s+1]),s=o;return r}e.exports=n,e.exports.default=n,n.deviation=function(e,t,n,i){var r=t&&t.length,o=r?t[0]*n:e.length,s=Math.abs(S(e,0,o,n));if(r)for(var a=0,l=t.length;a<l;a++){var A=t[a]*n,c=a<l-1?t[a+1]*n:e.length;s-=Math.abs(S(e,A,c,n))}var u=0;for(a=0;a<i.length;a+=3){var h=i[a]*n,d=i[a+1]*n,f=i[a+2]*n;u+=Math.abs((e[h]-e[f])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[f+1]-e[h+1]))}return 0===s&&0===u?0:Math.abs((u-s)/s)},n.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},i=0,r=0;r<e.length;r++){for(var o=0;o<e[r].length;o++)for(var s=0;s<t;s++)n.vertices.push(e[r][o][s]);r>0&&(i+=e[r-1].length,n.holes.push(i))}return n}});const Ga=la.rJ.CLOCKWISE,Va=la.rJ.COUNTER_CLOCKWISE,za={isClosed:!0};function Ha(e){return"positions"in e?e.positions:e}function Wa(e){return"holeIndices"in e?e.holeIndices:null}function ja(e,t,n,i,r){let o=t;const s=n.length;for(let t=0;t<s;t++)for(let r=0;r<i;r++)e[o++]=n[t][r]||0;if(!function(e){const t=e[0],n=e[e.length-1];return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]}(n))for(let t=0;t<i;t++)e[o++]=n[0][t]||0;return za.start=t,za.end=o,za.size=i,(0,la.UD)(e,r,za),o}function Qa(e,t,n,i,r=0,o,s){const a=(o=o||n.length)-r;if(a<=0)return t;let l=t;for(let t=0;t<a;t++)e[l++]=n[r+t];if(!function(e,t,n,i){for(let r=0;r<t;r++)if(e[n+r]!==e[i-t+r])return!1;return!0}(n,i,r,o))for(let t=0;t<i;t++)e[l++]=n[r+t];return za.start=t,za.end=l,za.size=i,(0,la.UD)(e,s,za),l}function Xa(e,t){!function(e){if(e=e&&e.positions||e,!Array.isArray(e)&&!ArrayBuffer.isView(e))throw new Error("invalid polygon")}(e);const n=[],i=[];if("positions"in e){const{positions:r,holeIndices:o}=e;if(o){let e=0;for(let s=0;s<=o.length;s++)e=Qa(n,e,r,t,o[s-1],o[s],0===s?Ga:Va),i.push(e);return i.pop(),{positions:n,holeIndices:i}}e=r}if(!function(e){return Array.isArray(e[0])}(e))return Qa(n,0,e,t,0,n.length,Ga),n;if(!function(e){return e.length>=1&&e[0].length>=2&&Number.isFinite(e[0][0])}(e)){let r=0;for(const[o,s]of e.entries())r=ja(n,r,s,t,0===o?Ga:Va),i.push(r);return i.pop(),{positions:n,holeIndices:i}}return ja(n,0,e,t,Ga),n}function Ka(e,t,n){const i=e.length/3;let r=0;for(let o=0;o<i;o++){const s=(o+1)%i;r+=e[3*o+t]*e[3*s+n],r-=e[3*s+t]*e[3*o+n]}return Math.abs(r/2)}function Ja(e,t,n,i){const r=e.length/3;for(let o=0;o<r;o++){const r=3*o,s=e[r+0],a=e[r+1],l=e[r+2];e[r+t]=s,e[r+n]=a,e[r+i]=l}}class PolygonTesselator extends Tesselator{constructor(e){const{fp64:t,IndexType:n=Uint32Array}=e;super({...e,attributes:{positions:{size:3,type:t?Float64Array:Float32Array},vertexValid:{type:Uint16Array,size:1},indices:{type:n,size:1}}})}get(e){const{attributes:t}=this;return"indices"===e?t.indices&&t.indices.subarray(0,this.vertexCount):t[e]}updateGeometry(e){super.updateGeometry(e);const t=this.buffers.indices;if(t)this.vertexCount=(t.value||t).length;else if(this.data&&!this.getGeometry)throw new Error("missing indices buffer")}normalizeGeometry(e){if(this.normalize){const t=Xa(e,this.positionSize);return this.opts.resolution?ya(Ha(t),Wa(t),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?function(e,t=null,n){const{size:i=2,normalize:r=!0,edgeTypes:o=!1}=n||{};t=t||[];const s=[],a=[];let l=0,A=0;for(let r=0;r<=t.length;r++){const o=t[r]||e.length,c=A,u=Sa(e,i,l,o);for(let t=u;t<o;t++)s[A++]=e[t];for(let t=l;t<u;t++)s[A++]=e[t];Ma(s,i,c,A),Pa(s,i,c,A,n?.maxLatitude),l=o,a[r]=A}a.pop();const c=ya(s,a,{size:i,gridResolution:360,gridOffset:[-180,-180],edgeTypes:o});if(r)for(const e of c)Ra(e.positions,i);return c}(Ha(t),Wa(t),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):t}return e}getGeometrySize(e){if(qa(e)){let t=0;for(const n of e)t+=this.getGeometrySize(n);return t}return Ha(e).length/this.positionSize}getGeometryFromBuffer(e){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(e):null}updateGeometryAttributes(e,t){if(e&&qa(e))for(const n of e){const e=this.getGeometrySize(n);t.geometrySize=e,this.updateGeometryAttributes(n,t),t.vertexStart+=e,t.indexStart=this.indexStarts[t.geometryIndex+1]}else{const n=e;this._updateIndices(n,t),this._updatePositions(n,t),this._updateVertexValid(n,t)}}_updateIndices(e,{geometryIndex:t,vertexStart:n,indexStart:i}){const{attributes:r,indexStarts:o,typedArrayManager:s}=this;let a=r.indices;if(!a||!e)return;let l=i;const A=function(e,t,n,i){let r=Wa(e);r&&(r=r.map(e=>e/t));let o=Ha(e);const s=i&&3===t;if(n){const e=o.length;o=o.slice();const i=[];for(let r=0;r<e;r+=t){i[0]=o[r],i[1]=o[r+1],s&&(i[2]=o[r+2]);const e=n(i);o[r]=e[0],o[r+1]=e[1],s&&(o[r+2]=e[2])}}if(s){const e=Ka(o,0,1),t=Ka(o,0,2),i=Ka(o,1,2);if(!e&&!t&&!i)return[];e>t&&e>i||(t>i?(n||(o=o.slice()),Ja(o,0,2,1)):(n||(o=o.slice()),Ja(o,2,0,1)))}return Ua(o,r,t)}(e,this.positionSize,this.opts.preproject,this.opts.full3d);a=s.allocate(a,i+A.length,{copy:!0});for(let e=0;e<A.length;e++)a[l++]=A[e]+n;o[t+1]=i+A.length,r.indices=a}_updatePositions(e,{vertexStart:t,geometrySize:n}){const{attributes:{positions:i},positionSize:r}=this;if(!i||!e)return;const o=Ha(e);for(let e=t,s=0;s<n;e++,s++){const t=o[s*r],n=o[s*r+1],a=r>2?o[s*r+2]:0;i[3*e]=t,i[3*e+1]=n,i[3*e+2]=a}}_updateVertexValid(e,{vertexStart:t,geometrySize:n}){const{positionSize:i}=this,r=this.attributes.vertexValid,o=e&&Wa(e);if(e&&e.edgeTypes?r.set(e.edgeTypes,t):r.fill(1,t,t+n),o)for(let e=0;e<o.length;e++)r[t+o[e]/i-1]=0;r[t+n-1]=0}}function qa(e){return Array.isArray(e)&&e.length>0&&!Number.isFinite(e[0])}const Ya="layout(std140) uniform solidPolygonUniforms {\n bool extruded;\n bool isWireframe;\n float elevationScale;\n} solidPolygon;\n",Za={name:"solidPolygon",vs:Ya,fs:Ya,uniformTypes:{extruded:"f32",isWireframe:"f32",elevationScale:"f32"}},$a="in vec4 fillColors;\nin vec4 lineColors;\nin vec3 pickingColors;\nout vec4 vColor;\nstruct PolygonProps {\nvec3 positions;\nvec3 positions64Low;\nvec3 normal;\nfloat elevations;\n};\nvec3 project_offset_normal(vec3 vector) {\nif (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\nproject.coordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\nreturn normalize(vector * project.commonUnitsPerWorldUnit);\n}\nreturn project_normal(vector);\n}\nvoid calculatePosition(PolygonProps props) {\nvec3 pos = props.positions;\nvec3 pos64Low = props.positions64Low;\nvec3 normal = props.normal;\nvec4 colors = solidPolygon.isWireframe ? lineColors : fillColors;\ngeometry.worldPosition = props.positions;\ngeometry.pickingColor = pickingColors;\nif (solidPolygon.extruded) {\npos.z += props.elevations * solidPolygon.elevationScale;\n}\ngl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nif (solidPolygon.extruded) {\n#ifdef IS_SIDE_VERTEX\nnormal = project_offset_normal(normal);\n#else\nnormal = project_normal(normal);\n#endif\ngeometry.normal = normal;\nvec3 lightColor = lighting_getLightColor(colors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\nvColor = vec4(lightColor, colors.a * layer.opacity);\n} else {\nvColor = vec4(colors.rgb, colors.a * layer.opacity);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",el=`#version 300 es\n#define SHADER_NAME solid-polygon-layer-vertex-shader\nin vec3 vertexPositions;\nin vec3 vertexPositions64Low;\nin float elevations;\n${$a}\nvoid main(void) {\nPolygonProps props;\nprops.positions = vertexPositions;\nprops.positions64Low = vertexPositions64Low;\nprops.elevations = elevations;\nprops.normal = vec3(0.0, 0.0, 1.0);\ncalculatePosition(props);\n}\n`,tl=`#version 300 es\n#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\nin vec2 positions;\nin vec3 vertexPositions;\nin vec3 nextVertexPositions;\nin vec3 vertexPositions64Low;\nin vec3 nextVertexPositions64Low;\nin float elevations;\nin float instanceVertexValid;\n${$a}\nvoid main(void) {\nif(instanceVertexValid < 0.5){\ngl_Position = vec4(0.);\nreturn;\n}\nPolygonProps props;\nvec3 pos;\nvec3 pos64Low;\nvec3 nextPos;\nvec3 nextPos64Low;\n#if RING_WINDING_ORDER_CW == 1\npos = vertexPositions;\npos64Low = vertexPositions64Low;\nnextPos = nextVertexPositions;\nnextPos64Low = nextVertexPositions64Low;\n#else\npos = nextVertexPositions;\npos64Low = nextVertexPositions64Low;\nnextPos = vertexPositions;\nnextPos64Low = vertexPositions64Low;\n#endif\nprops.positions = mix(pos, nextPos, positions.x);\nprops.positions64Low = mix(pos64Low, nextPos64Low, positions.x);\nprops.normal = vec3(\npos.y - nextPos.y + (pos64Low.y - nextPos64Low.y),\nnextPos.x - pos.x + (nextPos64Low.x - pos64Low.x),\n0.0);\nprops.elevations = elevations * positions.y;\ncalculatePosition(props);\n}\n`,nl=[0,0,0,255],il={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",_full3d:!1,elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:e=>e.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:nl},getLineColor:{type:"accessor",value:nl},material:!0},rl={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e};class SolidPolygonLayer extends uo{getShaders(e){return super.getShaders({vs:"top"===e?el:tl,fs:"#version 300 es\n#define SHADER_NAME solid-polygon-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\nfragColor = vColor;\ngeometry.uv = vec2(0.);\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",defines:{RING_WINDING_ORDER_CW:this.props._normalize||"CCW"!==this.props._windingOrder?1:0},modules:[No,Yo,Oo,Za]})}get wrapLongitude(){return!1}getBounds(){return this.getAttributeManager()?.getBounds(["vertexPositions"])}initializeState(){const{viewport:e}=this.context;let{coordinateSystem:t}=this.props;const{_full3d:n}=this.props;let i;e.isGeospatial&&"default"===t&&(t="lnglat"),"lnglat"===t&&(i=n?e.projectPosition.bind(e):e.projectFlat.bind(e)),this.setState({numInstances:0,polygonTesselator:new PolygonTesselator({preproject:i,fp64:this.use64bitPositions(),IndexType:Uint32Array})});const r=this.getAttributeManager(),o=!0;r.remove(["instancePickingColors"]),r.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:o},vertexPositions:{size:3,type:"float64",stepMode:"dynamic",fp64:this.use64bitPositions(),transition:rl,accessor:"getPolygon",update:this.calculatePositions,noAlloc:o,shaderAttributes:{nextVertexPositions:{vertexOffset:1}}},instanceVertexValid:{size:1,type:"uint16",stepMode:"instance",update:this.calculateVertexValid,noAlloc:o},elevations:{size:1,stepMode:"dynamic",transition:rl,accessor:"getElevation"},fillColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:rl,accessor:"getFillColor",defaultValue:nl},lineColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:rl,accessor:"getLineColor",defaultValue:nl},pickingColors:{size:4,type:"uint8",stepMode:"dynamic",accessor:(e,{index:t,target:n})=>this.encodePickingColor(e&&e.__source?e.__source.index:t,n)}})}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(e=>e.__source.index===n)),t}disablePickingIndex(e){const t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw({uniforms:e}){const{extruded:t,filled:n,wireframe:i,elevationScale:r}=this.props,{topModel:o,sideModel:s,wireframeModel:a,polygonTesselator:l}=this.state,A={extruded:Boolean(t),elevationScale:r,isWireframe:!1};a&&i&&(a.setInstanceCount(l.instanceCount-1),a.shaderInputs.setProps({solidPolygon:{...A,isWireframe:!0}}),a.draw(this.context.renderPass)),s&&n&&(s.setInstanceCount(l.instanceCount-1),s.shaderInputs.setProps({solidPolygon:A}),s.draw(this.context.renderPass)),o&&n&&(o.setVertexCount(l.vertexCount),o.shaderInputs.setProps({solidPolygon:A}),o.draw(this.context.renderPass))}updateState(e){super.updateState(e),this.updateGeometry(e);const{props:t,oldProps:n,changeFlags:i}=e,r=this.getAttributeManager();(i.extensionsChanged||t.filled!==n.filled||t.extruded!==n.extruded)&&(this.state.models?.forEach(e=>e.destroy()),this.setState(this._getModels()),r.invalidateAll())}updateGeometry({props:e,oldProps:t,changeFlags:n}){if(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPolygon)){const{polygonTesselator:t}=this.state,i=e.data.attributes||{};t.updateGeometry({data:e.data,normalize:e._normalize,geometryBuffer:i.getPolygon,buffers:i,getGeometry:e.getPolygon,positionFormat:e.positionFormat,wrapLongitude:e.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:n.dataChanged,full3d:e._full3d}),this.setState({numInstances:t.instanceCount,startIndices:t.vertexStarts}),n.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(){const{id:e,filled:t,extruded:n}=this.props;let i,r,o;if(t){const t=this.getShaders("top");t.defines.NON_INSTANCED_MODEL=1;const n=this.getAttributeManager().getBufferLayouts({isInstanced:!1});i=new dr.K(this.context.device,{...t,id:`${e}-top`,topology:"triangle-list",bufferLayout:n,isIndexed:!0,userData:{excludeAttributes:{instanceVertexValid:!0}}})}if(n){const t=this.getAttributeManager().getBufferLayouts({isInstanced:!0});r=new dr.K(this.context.device,{...this.getShaders("side"),id:`${e}-side`,bufferLayout:t,geometry:new Geometry({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,1,1,0,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}}),o=new dr.K(this.context.device,{...this.getShaders("side"),id:`${e}-wireframe`,bufferLayout:t,geometry:new Geometry({topology:"line-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}})}return{models:[r,o,i].filter(Boolean),topModel:i,sideModel:r,wireframeModel:o}}calculateIndices(e){const{polygonTesselator:t}=this.state;e.startIndices=t.indexStarts,e.value=t.get("indices")}calculatePositions(e){const{polygonTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("positions")}calculateVertexValid(e){e.value=this.state.polygonTesselator.get("vertexValid")}}SolidPolygonLayer.defaultProps=il,SolidPolygonLayer.layerName="SolidPolygonLayer";const ol=SolidPolygonLayer;function sl({data:e,getIndex:t,dataRange:n,replace:i}){const{startRow:r=0,endRow:o=1/0}=n,s=e.length;let a=s,l=s;for(let n=0;n<s;n++){const i=t(e[n]);if(a>n&&i>=r&&(a=n),i>=o){l=n;break}}let A=a;const c=l-a!==i.length?e.slice(l):void 0;for(let t=0;t<i.length;t++)e[A++]=i[t];if(c){for(let t=0;t<c.length;t++)e[A++]=c[t];e.length=A}return{startRow:a,endRow:a+i.length}}const al=[0,0,0,255],ll={stroked:!0,filled:!0,extruded:!1,elevationScale:1,wireframe:!1,_normalize:!0,_windingOrder:"CW",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineJointRounded:!1,lineMiterLimit:4,getPolygon:{type:"accessor",value:e=>e.polygon},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:al},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0};class PolygonLayer extends fo{initializeState(){this.state={paths:[],pathsDiff:null},this.props.getLineDashArray&&_e.A.removed("getLineDashArray","PathStyleExtension")()}updateState({changeFlags:e}){const t=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getPolygon);if(t&&Array.isArray(e.dataChanged)){const t=this.state.paths.slice(),n=e.dataChanged.map(e=>sl({data:t,getIndex:e=>e.__source.index,dataRange:e,replace:this._getPaths(e)}));this.setState({paths:t,pathsDiff:n})}else t&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(e={}){const{data:t,getPolygon:n,positionFormat:i,_normalize:r}=this.props,o=[],s="XY"===i?2:3,{startRow:a,endRow:l}=e,{iterable:A,objectInfo:c}=or(t,a,l);for(const e of A){c.index++;let t=n(e,c);r&&(t=Xa(t,s));const{holeIndices:i}=t,a=t.positions||t;if(i)for(let t=0;t<=i.length;t++){const n=a.slice(i[t-1]||0,i[t]||a.length);o.push(this.getSubLayerRow({path:n},e,c.index))}else o.push(this.getSubLayerRow({path:a},e,c.index))}return o}renderLayers(){const{data:e,_dataDiff:t,stroked:n,filled:i,extruded:r,wireframe:o,_normalize:s,_windingOrder:a,elevationScale:l,transitions:A,positionFormat:c}=this.props,{lineWidthUnits:u,lineWidthScale:h,lineWidthMinPixels:d,lineWidthMaxPixels:f,lineJointRounded:p,lineMiterLimit:g,lineDashJustified:m}=this.props,{getFillColor:_,getLineColor:b,getLineWidth:v,getLineDashArray:y,getElevation:C,getPolygon:w,updateTriggers:E,material:x}=this.props,{paths:T,pathsDiff:S}=this.state,P=this.getSubLayerClass("fill",ol),M=this.getSubLayerClass("stroke",ka),R=this.shouldRenderSubLayer("fill",T)&&new P({_dataDiff:t,extruded:r,elevationScale:l,filled:i,wireframe:o,_normalize:s,_windingOrder:a,getElevation:C,getFillColor:_,getLineColor:r&&o?b:al,material:x,transitions:A},this.getSubLayerProps({id:"fill",updateTriggers:E&&{getPolygon:E.getPolygon,getElevation:E.getElevation,getFillColor:E.getFillColor,lineColors:r&&o,getLineColor:E.getLineColor}}),{data:e,positionFormat:c,getPolygon:w}),B=!r&&n&&this.shouldRenderSubLayer("stroke",T)&&new M({_dataDiff:S&&(()=>S),widthUnits:u,widthScale:h,widthMinPixels:d,widthMaxPixels:f,jointRounded:p,miterLimit:g,dashJustified:m,_pathType:"loop",transitions:A&&{getWidth:A.getLineWidth,getColor:A.getLineColor,getPath:A.getPolygon},getColor:this.getSubLayerAccessor(b),getWidth:this.getSubLayerAccessor(v),getDashArray:this.getSubLayerAccessor(y)},this.getSubLayerProps({id:"stroke",updateTriggers:E&&{getWidth:E.getLineWidth,getColor:E.getLineColor,getDashArray:E.getLineDashArray}}),{data:T,positionFormat:c,getPath:e=>e.path});return[!r&&R,B,r&&R]}}PolygonLayer.layerName="PolygonLayer",PolygonLayer.defaultProps=ll;const Al=PolygonLayer;const cl="layout(std140) uniform sdfUniforms {\n float gamma;\n bool enabled;\n float buffer;\n float outlineBuffer;\n vec4 outlineColor;\n} sdf;\n",ul={name:"sdf",vs:cl,fs:cl,uniformTypes:{gamma:"f32",enabled:"f32",buffer:"f32",outlineBuffer:"f32",outlineColor:"vec4<f32>"}},hl={none:0,start:1,center:2,end:3},dl={name:"text",vs:`layout(std140) uniform textUniforms {\n highp vec2 cutoffPixels;\n highp ivec2 align;\n highp float fontSize;\n bool flipY;\n} text;\n\n#define ALIGN_MODE_START ${hl.start}\n#define ALIGN_MODE_CENTER ${hl.center}\n#define ALIGN_MODE_END ${hl.end}\n`,getUniforms:({contentCutoffPixels:e=[0,0],contentAlignHorizontal:t="none",contentAlignVertical:n="none",fontSize:i,viewport:r})=>({cutoffPixels:e,align:[hl[t],hl[n]],fontSize:i,flipY:r?.flipY??!1}),uniformTypes:{cutoffPixels:"vec2<f32>",align:"vec2<i32>",fontSize:"f32",flipY:"f32"}},fl=.75;class MultiIconLayer extends Ns{getShaders(){const e=super.getShaders();return{...e,modules:[...e.modules,dl,ul],vs:"#version 300 es\n#define SHADER_NAME multi-icon-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceSizes;\nin float instanceAngles;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec4 instanceIconFrames;\nin float instanceColorModes;\nin vec2 instanceOffsets;\nin vec2 instancePixelOffset;\nin vec4 instanceClipRect;\nout float vColorMode;\nout vec4 vColor;\nout vec2 vTextureCoords;\nout vec2 uv;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = angle * PI / 180.0;\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nfloat getPixelOffsetFromAlignment(float anchor, float extent, float clipStart, float clipEnd, int mode) {\nif (clipEnd < clipStart) return 0.0;\nif (mode == ALIGN_MODE_START) {\nreturn max(- (anchor + clipStart), 0.0);\n}\nif (mode == ALIGN_MODE_CENTER) {\nfloat _min = max(0., anchor + clipStart);\nfloat _max = min(extent, anchor + clipEnd);\nreturn _min < _max ? (_min + _max) / 2.0 - anchor : 0.0;\n}\nif (mode == ALIGN_MODE_END) {\nreturn min(extent - (anchor + clipEnd), 0.);\n}\nreturn 0.0;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\ngeometry.pickingColor = instancePickingColors;\nuv = positions;\nvec2 iconSize = instanceIconFrames.zw;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),\nicon.sizeMinPixels, icon.sizeMaxPixels\n);\nfloat instanceScale = sizePixels / text.fontSize;\nvec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\npixelOffset += instancePixelOffset;\npixelOffset.y *= -1.0;\nvec2 anchorPosScreen;\nif (icon.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nanchorPosScreen = gl_Position.xy / gl_Position.w;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nif (text.flipY) {\noffset_common.y *= -1.;\n}\nDECKGL_FILTER_SIZE(offset_common, geometry);\nvec4 anchorPos = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0));\nanchorPosScreen = anchorPos.xy / anchorPos.w;\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nanchorPosScreen = vec2(anchorPosScreen.x + 1.0, 1.0 - anchorPosScreen.y) / 2.0 * project.viewportSize / project.devicePixelRatio;\nvec2 xy = project_size_to_pixel(instanceClipRect.xy);\nvec2 wh = project_size_to_pixel(instanceClipRect.zw);\nif (text.flipY) {\nxy.y = -xy.y - wh.y;\n}\nif (text.align.x > 0 || text.align.y > 0) {\nvec2 viewportPixels = project.viewportSize / project.devicePixelRatio;\nvec2 scrollPixels = vec2(\ngetPixelOffsetFromAlignment(anchorPosScreen.x, viewportPixels.x, xy.x, xy.x + wh.x, text.align.x),\n-getPixelOffsetFromAlignment(anchorPosScreen.y, viewportPixels.y, -xy.y - wh.y, -xy.y, text.align.y)\n);\npixelOffset += scrollPixels;\ngl_Position.xy += project_pixel_size_to_clipspace(scrollPixels);\n}\nif (instanceClipRect.z >= 0.) {\nif (pixelOffset.x < xy.x || pixelOffset.x > xy.x + wh.x) {\ngl_Position = vec4(0.0);\n}\nelse if (text.cutoffPixels.x > 0.) {\nfloat vpWidth = project.viewportSize.x / project.devicePixelRatio;\nfloat l = max(anchorPosScreen.x + xy.x, 0.0);\nfloat r = min(anchorPosScreen.x + xy.x + wh.x, vpWidth);\nif (r - l < text.cutoffPixels.x) {\ngl_Position = vec4(0.0);\n}\n}\n}\nif (instanceClipRect.w >= 0.) {\nif (pixelOffset.y < xy.y || pixelOffset.y > xy.y + wh.y) {\ngl_Position = vec4(0.0);\n}\nelse if (text.cutoffPixels.y > 0.) {\nfloat vpHeight = project.viewportSize.y / project.devicePixelRatio;\nfloat t = max(anchorPosScreen.y - xy.y - wh.y, 0.0);\nfloat b = min(anchorPosScreen.y - xy.y, vpHeight);\nif (b - t < text.cutoffPixels.y) {\ngl_Position = vec4(0.0);\n}\n}\n}\nvTextureCoords = mix(\ninstanceIconFrames.xy,\ninstanceIconFrames.xy + iconSize,\n(positions.xy + 1.0) / 2.0\n) / icon.iconsTextureDim;\nvColor = instanceColors;\nDECKGL_FILTER_COLOR(vColor, geometry);\nvColorMode = instanceColorModes;\n}\n",fs:"#version 300 es\n#define SHADER_NAME multi-icon-layer-fragment-shader\nprecision highp float;\nuniform sampler2D iconsTexture;\nin vec4 vColor;\nin vec2 vTextureCoords;\nin vec2 uv;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = uv;\nif (!bool(picking.isActive)) {\nfloat alpha = texture(iconsTexture, vTextureCoords).a;\nvec4 color = vColor;\nif (sdf.enabled) {\nfloat distance = alpha;\nalpha = smoothstep(sdf.buffer - sdf.gamma, sdf.buffer + sdf.gamma, distance);\nif (sdf.outlineBuffer > 0.0) {\nfloat inFill = alpha;\nfloat inBorder = smoothstep(sdf.outlineBuffer - sdf.gamma, sdf.outlineBuffer + sdf.gamma, distance);\ncolor = mix(sdf.outlineColor, vColor, inFill);\nalpha = inBorder;\n}\n}\nfloat a = alpha * color.a;\nif (a < icon.alphaCutoff) {\ndiscard;\n}\nfragColor = vec4(color.rgb, a * layer.opacity);\n}\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n"}}initializeState(){super.initializeState();const e=this.getAttributeManager();e.attributes.instanceIconDefs.settings.update=this.calculateInstanceIconDefs,e.addInstanced({instancePickingColors:{type:"uint8",size:4,accessor:(e,{index:t,target:n})=>this.encodePickingColor(t,n)},instanceClipRect:{size:4,accessor:"getContentBox",defaultValue:[0,0,-1,-1]}})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,{outlineColor:r}=t;if(i.updateTriggersChanged&&(i.updateTriggersChanged.getIcon||i.updateTriggersChanged.getIconOffsets)&&this.getAttributeManager().invalidate("instanceIconDefs"),r!==n.outlineColor){const e=[r[0]/255,r[1]/255,r[2]/255,(r[3]??255)/255];this.setState({outlineColor:e})}!t.sdf&&t.outlineWidth&&_e.A.warn(`${this.id}: fontSettings.sdf is required to render outline`)()}draw(e){const{sdf:t,smoothing:n,fontSize:i,outlineWidth:r,contentCutoffPixels:o,contentAlignHorizontal:s,contentAlignVertical:a}=this.props,{outlineColor:l}=this.state,A=r?Math.max(n,fl*(1-r)):-1,c=this.state.model,u={buffer:fl,outlineBuffer:A,gamma:n,enabled:Boolean(t),outlineColor:l},h={contentCutoffPixels:o,contentAlignHorizontal:s,contentAlignVertical:a,fontSize:i,viewport:this.context.viewport};if(c.shaderInputs.setProps({sdf:u,text:h}),super.draw(e),t&&r){const{iconManager:e}=this.state;e.getTexture()&&(c.shaderInputs.setProps({sdf:{...u,outlineBuffer:fl}}),c.draw(this.context.renderPass))}}calculateInstanceIconDefs(e,{startRow:t,endRow:n}){const{data:i,getIcon:r,getIconOffsets:o}=this.props;let s=e.getVertexOffset(t);const a=e.value,{iterable:l,objectInfo:A}=or(i,t,n);for(const t of l){A.index++;const n=r(t,A),i=o(t,A);if(n){let t=0;for(const r of Array.from(n)){const n=super.getInstanceIconDef(r);n[0]=i[2*t],n[1]+=i[2*t+1],n[6]=1,a.set(n,s),s+=e.size,t++}}}}}MultiIconLayer.defaultProps={getIconOffsets:{type:"accessor",value:e=>e.offsets},getContentBox:{type:"accessor",value:[0,0,-1,-1]},fontSize:1,alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]},contentCutoffPixels:{type:"array",value:[0,0]},contentAlignHorizontal:"none",contentAlignVertical:"none"},MultiIconLayer.layerName="MultiIconLayer";const pl=MultiIconLayer,gl=1e20,ml=new Float64Array(256);for(let e=0;e<256;e++){const t=.5-Math.pow(e/255,1/2.2);ml[e]=t*Math.abs(t)}ml[255]=-gl;class TinySDF{constructor({fontSize:e=24,buffer:t=3,radius:n=8,cutoff:i=.25,fontFamily:r="sans-serif",fontWeight:o="normal",fontStyle:s="normal",lang:a=null}={}){this.buffer=t,this.radius=n,this.cutoff=i,this.lang=a;const l=this.size=e+4*t,A=this._createCanvas(l),c=this.ctx=A.getContext("2d",{willReadFrequently:!0});c.font=`${s} ${o} ${e}px ${r}`,c.textBaseline="alphabetic",c.textAlign="left",c.fillStyle="black",this.gridOuter=new Float64Array(l*l),this.gridInner=new Float64Array(l*l),this.f=new Float64Array(l),this.z=new Float64Array(l+1),this.v=new Uint16Array(l)}_createCanvas(e){if("undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(e,e);const t=document.createElement("canvas");return t.width=t.height=e,t}draw(e){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:i,actualBoundingBoxLeft:r,actualBoundingBoxRight:o}=this.ctx.measureText(e),s=Math.ceil(n),a=Math.floor(-r),l=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o)-a)),A=Math.max(0,Math.min(this.size-this.buffer,s+Math.ceil(i))),c=l+2*this.buffer,u=A+2*this.buffer,h=Math.max(c*u,0),d=new Uint8ClampedArray(h),f={data:d,width:c,height:u,glyphWidth:l,glyphHeight:A,glyphTop:s,glyphLeft:a,glyphAdvance:t};if(0===l||0===A)return f;const{ctx:p,buffer:g,gridInner:m,gridOuter:_}=this;this.lang&&(p.lang=this.lang),p.clearRect(g,g,l,A),p.fillText(e,g-a,g+s);const b=p.getImageData(g,g,l,A);_.fill(gl,0,h),m.fill(0,0,h);let v=3;for(let e=0;e<A;e++){let t=(e+g)*c+g;for(let e=0;e<l;e++,v+=4,t++){const e=b.data[v];if(0===e)continue;const n=ml[e];_[t]=Math.max(0,n),m[t]=Math.max(0,-n)}}_l(_,0,0,c,u,c,this.f,this.v,this.z);const y=Math.min(g,1);_l(m,g-y,g-y,l+2*y,A+2*y,c,this.f,this.v,this.z);const C=255/this.radius,w=255*(1-this.cutoff);for(let e=0;e<h;e++){const t=Math.sqrt(_[e])-Math.sqrt(m[e]);d[e]=Math.round(w-C*t)}return f}}function _l(e,t,n,i,r,o,s,a,l){for(let A=t;A<t+i;A++)bl(e,n*o+A,o,r,s,a,l);for(let A=n;A<n+r;A++)bl(e,A*o+t,1,i,s,a,l)}function bl(e,t,n,i,r,o,s){o[0]=0,s[0]=-gl,s[1]=gl,r[0]=e[t];for(let a=1,l=0,A=0;a<i;a++){r[a]=e[t+a*n];const i=a*a;do{const e=o[l];A=(r[a]-r[e]+i-e*e)/(a-e)/2}while(A<=s[l]&&--l>-1);l++,o[l]=a,s[l]=A,s[l+1]=gl}for(let a=0,l=0;a<i;a++){for(;s[l+1]<a;)l++;const i=o[l],A=a-i;e[t+a*n]=r[i]+A*A}}const vl=[];function yl(e,t,n,i){let r=0;for(let o=t;o<n;o++){const t=e[o];r+=i[t]?.advance||0}return r}function Cl(e,t,n,i,r,o){let s=t,a=0;for(let l=t;l<n;l++){const t=yl(e,l,l+1,r);a+t>i&&(s<l&&o.push(l),s=l,a=0),a+=t}return a}function wl(e,t,n,i,r=0,o){void 0===o&&(o=e.length);const s=[];return"break-all"===t?Cl(e,r,o,n,i,s):function(e,t,n,i,r,o){let s=t,a=t,l=t,A=0;for(let c=t;c<n;c++)if(" "===e[c]?l=c+1:" "!==e[c+1]&&c+1!==n||(l=c+1),l>a){let t=yl(e,a,l,r);A+t>i&&(s<a&&(o.push(a),s=a,A=0),t>i&&(t=Cl(e,a,l,i,r,o),s=o[o.length-1])),a=l,A+=t}}(e,r,o,n,i,s),s}function El(e,t,n,i,r,o){let s=0,a=0;for(let r=t;r<n;r++){const t=i[e[r]];t&&(a=Math.max(a,t.height))}for(let o=t;o<n;o++){const t=e[o],n=i[t];n?(r[o]=s+n.anchorX,s+=n.advance):(_e.A.warn(`Missing character: ${t} (${t.codePointAt(0)})`)(),r[o]=s,s+=32)}o[0]=s,o[1]=a}class LRUCache{constructor(e=5){this._cache={},this._order=[],this.limit=e}get(e){const t=this._cache[e];return t&&(this._deleteOrder(e),this._appendOrder(e)),t}set(e,t){this._cache[e]?(this.delete(e),this._cache[e]=t,this._appendOrder(e)):(Object.keys(this._cache).length===this.limit&&this.delete(this._order[0]),this._cache[e]=t,this._appendOrder(e))}delete(e){this._cache[e]&&(delete this._cache[e],this._deleteOrder(e))}_deleteOrder(e){const t=this._order.indexOf(e);t>=0&&this._order.splice(t,1)}_appendOrder(e){this._order.push(e)}}const xl={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:function(){const e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1};let Tl=new LRUCache(3);function Sl(e,t,n,i){e.font=`${i} ${n}px ${t}`,e.fillStyle="#000",e.textBaseline="alphabetic",e.textAlign="left"}class FontAtlasManager{constructor(){this.props={...xl}}get atlas(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}setProps(e={}){Object.assign(this.props,e),e._getFontRenderer&&(this._getFontRenderer=e._getFontRenderer),this._key=this._getKey();const t=function(e,t){let n;n="string"==typeof t?new Set(Array.from(t)):new Set(t);const i=Tl.get(e);if(!i)return n;for(const e in i.mapping)n.has(e)&&n.delete(e);return n}(this._key,this.props.characterSet),n=Tl.get(this._key);if(n&&0===t.size)return void(this._atlas!==n&&(this._atlas=n));const i=this._generateFontAtlas(t,n);this._atlas=i,Tl.set(this._key,i)}_generateFontAtlas(e,t){const{fontFamily:n,fontWeight:i,fontSize:r,buffer:o,sdf:s,radius:a,cutoff:l}=this.props;let A=t&&t.data;A||(A=document.createElement("canvas"),A.width=1024);const c=A.getContext("2d",{willReadFrequently:!0});Sl(c,n,r,i);const u=e=>function(e,t,n){if(void 0===n){const n=e.measureText("A");return n.fontBoundingBoxAscent?{advance:0,width:0,ascent:Math.ceil(n.fontBoundingBoxAscent),descent:Math.ceil(n.fontBoundingBoxDescent)}:{advance:0,width:0,ascent:.9*t,descent:.3*t}}const i=e.measureText(n);return i.actualBoundingBoxAscent?{advance:i.width,width:Math.ceil(i.actualBoundingBoxRight-i.actualBoundingBoxLeft),ascent:Math.ceil(i.actualBoundingBoxAscent),descent:Math.ceil(i.actualBoundingBoxDescent)}:{advance:i.width,width:i.width,ascent:.9*t,descent:.3*t}}(c,r,e);let h;this._getFontRenderer?h=this._getFontRenderer(this.props):s&&(h={measure:u,draw:Pl(this.props)});const{mapping:d,canvasHeight:f,xOffset:p,yOffsetMin:g,yOffsetMax:m}=function({characterSet:e,measureText:t,buffer:n,maxCanvasWidth:i,mapping:r={},xOffset:o=0,yOffsetMin:s=0,yOffsetMax:a=0}){let l=o,A=s,c=a;for(const o of e)if(!r[o]){const{advance:e,width:s,ascent:a,descent:u}=t(o),h=a+u;l+s+2*n>i&&(l=0,A=c),r[o]={x:l+n,y:A+n,width:s,height:h,advance:e,anchorX:s/2,anchorY:a},l+=s+2*n,c=Math.max(c,A+h+2*n)}return{mapping:r,xOffset:l,yOffsetMin:A,yOffsetMax:c,canvasHeight:(u=c,Math.pow(2,Math.ceil(Math.log2(u))))};var u}({measureText:e=>h?h.measure(e):u(e),buffer:o,characterSet:e,maxCanvasWidth:1024,...t&&{mapping:t.mapping,xOffset:t.xOffset,yOffsetMin:t.yOffsetMin,yOffsetMax:t.yOffsetMax}});if(A.height!==f){const e=A.height>0?c.getImageData(0,0,A.width,A.height):null;A.height=f,e&&c.putImageData(e,0,0)}if(Sl(c,n,r,i),h)for(const t of e){const e=d[t],{data:n,left:i=0,top:r=0}=h.draw(t),o=e.x-i,s=e.y-r,a=Math.max(0,Math.round(o)),l=Math.max(0,Math.round(s)),u=Math.min(n.width,A.width-a),f=Math.min(n.height,A.height-l);c.putImageData(n,a,l,0,0,u,f),e.x+=a-o,e.y+=l-s}else for(const t of e){const e=d[t];c.fillText(t,e.x,e.y+e.anchorY)}const _=h?h.measure():u();return{baselineOffset:(_.ascent-_.descent)/2,xOffset:p,yOffsetMin:g,yOffsetMax:m,mapping:d,data:A,width:A.width,height:A.height}}_getKey(){const{fontFamily:e,fontWeight:t,fontSize:n,buffer:i,sdf:r,radius:o,cutoff:s}=this.props;return r?`${e} ${t} ${n} ${i} ${o} ${s}`:`${e} ${t} ${n} ${i}`}}function Pl({fontSize:e,buffer:t,radius:n,cutoff:i,fontFamily:r,fontWeight:o}){const s=new TinySDF({fontSize:e,buffer:t,radius:n,cutoff:i,fontFamily:r,fontWeight:`${o}`});return e=>{const{data:n,width:i,height:r}=s.draw(e),o=new ImageData(i,r);return function(e,t){for(let n=0;n<e.length;n++)t.data[4*n+3]=e[n]}(n,o),{data:o,left:t,top:t}}}const Ml="layout(std140) uniform textBackgroundUniforms {\n bool billboard;\n float sizeScale;\n float sizeMinPixels;\n float sizeMaxPixels;\n vec4 borderRadius;\n vec4 padding;\n highp int sizeUnits;\n bool stroked;\n} textBackground;\n",Rl={name:"textBackground",vs:Ml,fs:Ml,uniformTypes:{billboard:"f32",sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",borderRadius:"vec4<f32>",padding:"vec4<f32>",sizeUnits:"i32",stroked:"f32"}},Bl={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,fontSize:1,borderRadius:{type:"object",value:0},padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:e=>e.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getClipRect:{type:"accessor",value:[0,0,-1,-1]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class TextBackgroundLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME text-background-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceRects;\nin vec4 instanceClipRect;\nin float instanceSizes;\nin float instanceAngles;\nin vec2 instancePixelOffsets;\nin float instanceLineWidths;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\nin vec3 instancePickingColors;\nout vec4 vFillColor;\nout vec4 vLineColor;\nout float vLineWidth;\nout vec2 uv;\nout vec2 dimensions;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = radians(angle);\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\ngeometry.pickingColor = instancePickingColors;\nuv = positions;\nvLineWidth = instanceLineWidths;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * textBackground.sizeScale, textBackground.sizeUnits),\ntextBackground.sizeMinPixels, textBackground.sizeMaxPixels\n);\nfloat instanceScale = sizePixels / text.fontSize;\ndimensions = instanceRects.zw * instanceScale + textBackground.padding.xy + textBackground.padding.zw;\nvec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * instanceScale + mix(-textBackground.padding.xy, textBackground.padding.zw, positions);\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\npixelOffset += instancePixelOffsets;\npixelOffset.y *= -1.0;\nvec2 xy = project_size_to_pixel(instanceClipRect.xy);\nvec2 wh = project_size_to_pixel(instanceClipRect.zw);\nif (text.flipY) {\nxy.y = -xy.y - wh.y;\n}\nif (instanceClipRect.z >= 0.0) {\ndimensions.x = wh.x;\npixelOffset.x = xy.x + uv.x * wh.x + mix(-textBackground.padding.x, textBackground.padding.z, uv.x);\n}\nif (instanceClipRect.w >= 0.0) {\ndimensions.y = wh.y;\npixelOffset.y = xy.y + uv.y * wh.y + mix(-textBackground.padding.y, textBackground.padding.w, uv.y);\n}\nif (textBackground.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nif (text.flipY) {\noffset_common.y *= -1.;\n}\nDECKGL_FILTER_SIZE(offset_common, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nvFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vFillColor, geometry);\nvLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME text-background-layer-fragment-shader\nprecision highp float;\nin vec4 vFillColor;\nin vec4 vLineColor;\nin float vLineWidth;\nin vec2 uv;\nin vec2 dimensions;\nout vec4 fragColor;\nfloat round_rect(vec2 p, vec2 size, vec4 radii) {\nvec2 pixelPositionCB = (p - 0.5) * size;\nvec2 sizeCB = size * 0.5;\nfloat maxBorderRadius = min(size.x, size.y) * 0.5;\nvec4 borderRadius = vec4(min(radii, maxBorderRadius));\nborderRadius.xy =\n(pixelPositionCB.x > 0.0) ? borderRadius.xy : borderRadius.zw;\nborderRadius.x = (pixelPositionCB.y > 0.0) ? borderRadius.x : borderRadius.y;\nvec2 q = abs(pixelPositionCB) - sizeCB + borderRadius.x;\nreturn -(min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - borderRadius.x);\n}\nfloat rect(vec2 p, vec2 size) {\nvec2 pixelPosition = p * size;\nreturn min(min(pixelPosition.x, size.x - pixelPosition.x),\nmin(pixelPosition.y, size.y - pixelPosition.y));\n}\nvec4 get_stroked_fragColor(float dist) {\nfloat isBorder = smoothedge(dist, vLineWidth);\nreturn mix(vFillColor, vLineColor, isBorder);\n}\nvoid main(void) {\ngeometry.uv = uv;\nif (textBackground.borderRadius != vec4(0.0)) {\nfloat distToEdge = round_rect(uv, dimensions, textBackground.borderRadius);\nfloat shapeAlpha = smoothedge(-distToEdge, 0.0);\nif (shapeAlpha == 0.0) {\ndiscard;\n}\nif (textBackground.stroked) {\nfragColor = get_stroked_fragColor(distToEdge);\n} else {\nfragColor = vFillColor;\n}\nfragColor.a *= shapeAlpha;\n} else {\nif (textBackground.stroked) {\nfloat distToEdge = rect(uv, dimensions);\nfragColor = get_stroked_fragColor(distToEdge);\n} else {\nfragColor = vFillColor;\n}\n}\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:[No,Oo,Rl,dl]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instanceClipRect:{size:4,accessor:"getClipRect",defaultValue:[0,0,-1,-1]},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e);const{changeFlags:t}=e;t.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{billboard:t,sizeScale:n,sizeUnits:i,sizeMinPixels:r,sizeMaxPixels:o,getLineWidth:s,fontSize:a}=this.props;let{padding:l,borderRadius:A}=this.props;l.length<4&&(l=[l[0],l[1],l[0],l[1]]),Array.isArray(A)||(A=[A,A,A,A]);const c=this.state.model,u={billboard:t,stroked:Boolean(s),borderRadius:A,padding:l,sizeUnits:mn.p5[i],sizeScale:n,sizeMinPixels:r,sizeMaxPixels:o},h={fontSize:a,viewport:this.context.viewport};c.shaderInputs.setProps({textBackground:u,text:h}),c.draw(this.context.renderPass)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-strip",vertexCount:4,attributes:{positions:{size:2,value:new Float32Array([0,0,1,0,0,1,1,1])}}}),isInstanced:!0})}}TextBackgroundLayer.defaultProps=Bl,TextBackgroundLayer.layerName="TextBackgroundLayer";const Il=TextBackgroundLayer,Ll={start:1,middle:0,end:-1},Fl={top:1,center:0,bottom:-1},Dl=[0,0,0,255],Ol={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:Dl},getBorderWidth:{type:"accessor",value:0},backgroundBorderRadius:{type:"object",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:xl.characterSet},fontFamily:xl.fontFamily,fontWeight:xl.fontWeight,lineHeight:1,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:Dl},fontSettings:{type:"object",value:{},compare:1},wordBreak:"break-word",maxWidth:{type:"number",value:-1},contentCutoffPixels:{type:"array",value:[0,0]},contentAlignHorizontal:"none",contentAlignVertical:"none",getText:{type:"accessor",value:e=>e.text},getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:Dl},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},getContentBox:{type:"accessor",value:[0,0,-1,-1]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class TextLayer extends fo{constructor(){super(...arguments),this.getBoundingRect=(e,t)=>{const{size:[n,i]}=this.transformParagraph(e,t),{getTextAnchor:r,getAlignmentBaseline:o}=this.props;return[(Ll["function"==typeof r?r(e,t):r]-1)*n/2,(Fl["function"==typeof o?o(e,t):o]-1)*i/2,n,i]},this.getIconOffsets=(e,t)=>{const{getTextAnchor:n,getAlignmentBaseline:i}=this.props,{x:r,y:o,rowWidth:s,size:[,a]}=this.transformParagraph(e,t),l=Ll["function"==typeof n?n(e,t):n],A=Fl["function"==typeof i?i(e,t):i],c=r.length,u=new Array(2*c);let h=0;for(let e=0;e<c;e++)u[h++]=(l-1)*s[e]/2+r[e],u[h++]=(A-1)*a/2+o[e];return u}}initializeState(){this.state={styleVersion:0,fontAtlasManager:new FontAtlasManager},this.props.maxWidth>0&&_e.A.once(1,"v8.9 breaking change: TextLayer maxWidth is now relative to text size")()}updateState(e){const{props:t,oldProps:n,changeFlags:i}=e;(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getText))&&this._updateText();(this._updateFontAtlas()||t.lineHeight!==n.lineHeight||t.wordBreak!==n.wordBreak||t.maxWidth!==n.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:e}){return e.object=e.index>=0?this.props.data[e.index]:null,e}_updateFontAtlas(){const{fontSettings:e,fontFamily:t,fontWeight:n,_getFontRenderer:i}=this.props,{fontAtlasManager:r,characterSet:o}=this.state,s={...e,characterSet:o,fontFamily:t,fontWeight:n,_getFontRenderer:i};if(!r.mapping)return r.setProps(s),!0;for(const e in s)if(s[e]!==r.props[e])return r.setProps(s),!0;return!1}_updateText(){const{data:e,characterSet:t}=this.props,n=e.attributes?.getText;let i,{getText:r}=this.props,o=e.startIndices;const s="auto"===t&&new Set;if(n&&o){const{texts:t,characterCount:a}=function({value:e,length:t,stride:n,offset:i,startIndices:r,characterSet:o}){const s=e.BYTES_PER_ELEMENT,a=n?n/s:1,l=i?i/s:0,A=r[t]||Math.ceil((e.length-l)/a),c=o&&new Set,u=new Array(t);let h=e;if(a>1||l>0){h=new(0,e.constructor)(A);for(let t=0;t<A;t++)h[t]=e[t*a+l]}for(let e=0;e<t;e++){const t=r[e],n=r[e+1]||A,i=h.subarray(t,n);u[e]=String.fromCodePoint.apply(null,i),c&&i.forEach(c.add,c)}if(c)for(const e of c)o.add(String.fromCodePoint(e));return{texts:u,characterCount:A}}({...ArrayBuffer.isView(n)?{value:n}:n,length:e.length,startIndices:o,characterSet:s});i=a,r=(e,{index:n})=>t[n]}else{const{iterable:t,objectInfo:n}=or(e);o=[0],i=0;for(const e of t){n.index++;const t=Array.from(r(e,n)||"");s&&t.forEach(s.add,s),i+=t.length,o.push(i)}}this.setState({getText:r,startIndices:o,numInstances:i,characterSet:s||t})}transformParagraph(e,t){const{fontAtlasManager:n}=this.state,i=n.mapping,{baselineOffset:r}=n.atlas,{fontSize:o}=n.props,s=this.state.getText,{wordBreak:a,lineHeight:l,maxWidth:A}=this.props;return function(e,t,n,i,r,o){const s=Array.from(e),a=s.length,l=new Array(a),A=new Array(a),c=new Array(a),u=("break-word"===i||"break-all"===i)&&isFinite(r)&&r>0,h=[0,0],d=[0,0];let f=0,p=t+n/2,g=0,m=0;for(let e=0;e<=a;e++){const t=s[e];if("\n"!==t&&e!==a||(m=e),m>g){const e=u?wl(s,i,r,o,g,m):vl;for(let t=0;t<=e.length;t++){const i=0===t?g:e[t-1],r=t<e.length?e[t]:m;El(s,i,r,o,l,d);for(let e=i;e<r;e++)A[e]=p,c[e]=d[0];f++,p+=n,h[0]=Math.max(h[0],d[0])}g=m}"\n"===t&&(l[g]=0,A[g]=0,c[g]=0,g++)}return h[1]=f*n,{x:l,y:A,rowWidth:c,size:h}}(s(e,t)||"",r,l*o,a,A*o,i)}renderLayers(){const{startIndices:e,numInstances:t,getText:n,fontAtlasManager:{atlas:i,mapping:r},styleVersion:o}=this.state,{data:s,_dataDiff:a,getPosition:l,getColor:A,getSize:c,getAngle:u,getPixelOffset:h,getBackgroundColor:d,getBorderColor:f,getBorderWidth:p,getContentBox:g,backgroundBorderRadius:m,backgroundPadding:_,background:b,billboard:v,fontSettings:y,outlineWidth:C,outlineColor:w,sizeScale:E,sizeUnits:x,sizeMinPixels:T,sizeMaxPixels:S,contentCutoffPixels:P,contentAlignHorizontal:M,contentAlignVertical:R,transitions:B,updateTriggers:I}=this.props,L=this.getSubLayerClass("characters",pl),F=this.getSubLayerClass("background",Il),{fontSize:D}=this.state.fontAtlasManager.props;return[b&&new F({getFillColor:d,getLineColor:f,getLineWidth:p,borderRadius:m,padding:_,getPosition:l,getSize:c,getAngle:u,getPixelOffset:h,getClipRect:g,billboard:v,sizeScale:E,sizeUnits:x,sizeMinPixels:T,sizeMaxPixels:S,fontSize:D,transitions:B&&{getPosition:B.getPosition,getAngle:B.getAngle,getSize:B.getSize,getFillColor:B.getBackgroundColor,getLineColor:B.getBorderColor,getLineWidth:B.getBorderWidth,getPixelOffset:B.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:I.getPosition,getAngle:I.getAngle,getSize:I.getSize,getFillColor:I.getBackgroundColor,getLineColor:I.getBorderColor,getLineWidth:I.getBorderWidth,getPixelOffset:I.getPixelOffset,getBoundingRect:{getText:I.getText,getTextAnchor:I.getTextAnchor,getAlignmentBaseline:I.getAlignmentBaseline,styleVersion:o}}}),{data:s.attributes&&s.attributes.background?{length:s.length,attributes:s.attributes.background}:s,_dataDiff:a,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new L({sdf:y.sdf,smoothing:Number.isFinite(y.smoothing)?y.smoothing:xl.smoothing,outlineWidth:C/(y.radius||xl.radius),outlineColor:w,iconAtlas:i,iconMapping:r,getPosition:l,getColor:A,getSize:c,getAngle:u,getPixelOffset:h,getContentBox:g,billboard:v,sizeScale:E,sizeUnits:x,sizeMinPixels:T,sizeMaxPixels:S,fontSize:D,contentCutoffPixels:P,contentAlignHorizontal:M,contentAlignVertical:R,transitions:B&&{getPosition:B.getPosition,getAngle:B.getAngle,getColor:B.getColor,getSize:B.getSize,getPixelOffset:B.getPixelOffset,getContentBox:B.getContentBox}},this.getSubLayerProps({id:"characters",updateTriggers:{all:I.getText,getPosition:I.getPosition,getAngle:I.getAngle,getColor:I.getColor,getSize:I.getSize,getPixelOffset:I.getPixelOffset,getContentBox:I.getContentBox,getIconOffsets:{getTextAnchor:I.getTextAnchor,getAlignmentBaseline:I.getAlignmentBaseline,styleVersion:o}}}),{data:s,_dataDiff:a,startIndices:e,numInstances:t,getIconOffsets:this.getIconOffsets,getIcon:n})]}static set fontAtlasCacheLimit(e){!function(e){_e.A.assert(Number.isFinite(e)&&e>=3,"Invalid cache limit"),Tl=new LRUCache(e)}(e)}}TextLayer.defaultProps=Ol,TextLayer.layerName="TextLayer";const Nl=TextLayer,kl={circle:{type:Zs,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:Ns,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:Nl,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},Ul={type:ka,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},Gl={type:ol,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",_full3d:"_full3d",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function Vl({type:e,props:t}){const n={};for(const i in t)n[i]=e.defaultProps[t[i]];return n}function zl(e,t){const{transitions:n,updateTriggers:i}=e.props,r={updateTriggers:{},transitions:n&&{getPosition:n.geometry}};for(const o in t){const s=t[o];let a=e.props[o];o.startsWith("get")&&(a=e.getSubLayerAccessor(a),r.updateTriggers[s]=i[o],n&&(r.transitions[s]=n[o])),r[s]=a}return r}function Hl(e,t,n={}){const i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:r=0,endRow:o=e.length}=n;for(let n=r;n<o;n++){const r=e[n],{geometry:o}=r;if(o)if("GeometryCollection"===o.type){_e.A.assert(Array.isArray(o.geometries),"GeoJSON does not have geometries array");const{geometries:e}=o;for(let o=0;o<e.length;o++){Wl(e[o],i,t,r,n)}}else Wl(o,i,t,r,n)}return i}function Wl(e,t,n,i,r){const{type:o,coordinates:s}=e,{pointFeatures:a,lineFeatures:l,polygonFeatures:A,polygonOutlineFeatures:c}=t;if(function(e,t){let n=jl[e];_e.A.assert(n,`Unknown GeoJSON type ${e}`);for(;t&&--n>0;)t=t[0];return t&&Number.isFinite(t[0])}(o,s))switch(o){case"Point":a.push(n({geometry:e},i,r));break;case"MultiPoint":s.forEach(e=>{a.push(n({geometry:{type:"Point",coordinates:e}},i,r))});break;case"LineString":l.push(n({geometry:e},i,r));break;case"MultiLineString":s.forEach(e=>{l.push(n({geometry:{type:"LineString",coordinates:e}},i,r))});break;case"Polygon":A.push(n({geometry:e},i,r)),s.forEach(e=>{c.push(n({geometry:{type:"LineString",coordinates:e}},i,r))});break;case"MultiPolygon":s.forEach(e=>{A.push(n({geometry:{type:"Polygon",coordinates:e}},i,r)),e.forEach(e=>{c.push(n({geometry:{type:"LineString",coordinates:e}},i,r))})})}else _e.A.warn(`${o} coordinates are malformed`)()}const jl={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function Ql(e){return e.geometry.coordinates}function Xl(e,t){const n={points:{},lines:{},polygons:{},polygonsOutline:{}},{points:i,lines:r,polygons:o}=e,s=function(e,t){const n={points:null,lines:null,polygons:null};for(const i in n){const r=e[i].globalFeatureIds.value;n[i]=new Uint8ClampedArray(4*r.length);const o=[];for(let e=0;e<r.length;e++)t(r[e],o),n[i][4*e+0]=o[0],n[i][4*e+1]=o[1],n[i][4*e+2]=o[2],n[i][4*e+3]=255}return n}(e,t);n.points.data={length:i.positions.value.length/i.positions.size,attributes:{...i.attributes,getPosition:i.positions,instancePickingColors:{size:4,value:s.points}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},n.lines.data={length:r.pathIndices.value.length-1,startIndices:r.pathIndices.value,attributes:{...r.attributes,getPath:r.positions,instancePickingColors:{size:4,value:s.lines}},properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},n.lines._pathType="open";const a=o.positions.value.length/o.positions.size,l=Array(a).fill(1);for(const e of o.primitivePolygonIndices.value)l[e-1]=0;return n.polygons.data={length:o.polygonIndices.value.length-1,startIndices:o.polygonIndices.value,attributes:{...o.attributes,getPolygon:o.positions,instanceVertexValid:{size:1,value:new Uint16Array(l)},pickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},n.polygons._normalize=!1,o.triangles&&(n.polygons.data.attributes.indices=o.triangles.value),n.polygonsOutline.data={length:o.primitivePolygonIndices.value.length-1,startIndices:o.primitivePolygonIndices.value,attributes:{...o.attributes,getPath:o.positions,instancePickingColors:{size:4,value:s.polygons}},properties:o.properties,numericProps:o.numericProps,featureIds:o.featureIds},n.polygonsOutline._pathType="open",n}const Kl=["points","linestrings","polygons"],Jl={...Vl(kl.circle),...Vl(kl.icon),...Vl(kl.text),...Vl(Ul),...Vl(Gl),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:e=>e.properties.icon},getText:{type:"accessor",value:e=>e.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}};class GeoJsonLayer extends fo{initializeState(){this.state={layerProps:{},features:{},featuresDiff:{}}}updateState({props:e,changeFlags:t}){if(!t.dataChanged)return;const{data:n}=this.props,i=n&&"points"in n&&"polygons"in n&&"lines"in n;this.setState({binary:i}),i?this._updateStateBinary({props:e,changeFlags:t}):this._updateStateJSON({props:e,changeFlags:t})}_updateStateBinary({props:e,changeFlags:t}){const n=Xl(e.data,this.encodePickingColor);this.setState({layerProps:n})}_updateStateJSON({props:e,changeFlags:t}){const n=function(e){if(Array.isArray(e))return e;switch(_e.A.assert(e.type,"GeoJSON does not have type"),e.type){case"Feature":return[e];case"FeatureCollection":return _e.A.assert(Array.isArray(e.features),"GeoJSON does not have features array"),e.features;default:return[{geometry:e}]}}(e.data),i=this.getSubLayerRow.bind(this);let r={};const o={};if(Array.isArray(t.dataChanged)){const e=this.state.features;for(const t in e)r[t]=e[t].slice(),o[t]=[];for(const s of t.dataChanged){const t=Hl(n,i,s);for(const n in e)o[n].push(sl({data:r[n],getIndex:e=>e.__source.index,dataRange:s,replace:t[n]}))}}else r=Hl(n,i);const s=function(e,t){const n={points:{},lines:{},polygons:{},polygonsOutline:{}},{pointFeatures:i,lineFeatures:r,polygonFeatures:o,polygonOutlineFeatures:s}=e;return n.points.data=i,n.points._dataDiff=t.pointFeatures&&(()=>t.pointFeatures),n.points.getPosition=Ql,n.lines.data=r,n.lines._dataDiff=t.lineFeatures&&(()=>t.lineFeatures),n.lines.getPath=Ql,n.polygons.data=o,n.polygons._dataDiff=t.polygonFeatures&&(()=>t.polygonFeatures),n.polygons.getPolygon=Ql,n.polygonsOutline.data=s,n.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&(()=>t.polygonOutlineFeatures),n.polygonsOutline.getPath=Ql,n}(r,o);this.setState({features:r,featuresDiff:o,layerProps:s})}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n,sourceLayer:i}=t;return t.featureType=Kl.find(e=>i.id.startsWith(`${this.id}-${e}-`)),n>=0&&i.id.startsWith(`${this.id}-points-text`)&&this.state.binary&&(t.index=this.props.data.points.globalFeatureIds.value[n]),t}_updateAutoHighlight(e){const t=`${this.id}-points-`,n="points"===e.featureType;for(const i of this.getSubLayers())i.id.startsWith(t)===n&&i.updateAutoHighlight(e)}_renderPolygonLayer(){const{extruded:e,wireframe:t}=this.props,{layerProps:n}=this.state,i="polygons-fill",r=this.shouldRenderSubLayer(i,n.polygons?.data)&&this.getSubLayerClass(i,Gl.type);if(r){const o=zl(this,Gl.props),s=e&&t;return s||delete o.getLineColor,o.updateTriggers.lineColors=s,new r(o,this.getSubLayerProps({id:i,updateTriggers:o.updateTriggers}),n.polygons)}return null}_renderLineLayers(){const{extruded:e,stroked:t}=this.props,{layerProps:n}=this.state,i="polygons-stroke",r="linestrings",o=!e&&t&&this.shouldRenderSubLayer(i,n.polygonsOutline?.data)&&this.getSubLayerClass(i,Ul.type),s=this.shouldRenderSubLayer(r,n.lines?.data)&&this.getSubLayerClass(r,Ul.type);if(o||s){const e=zl(this,Ul.props);return[o&&new o(e,this.getSubLayerProps({id:i,updateTriggers:e.updateTriggers}),n.polygonsOutline),s&&new s(e,this.getSubLayerProps({id:r,updateTriggers:e.updateTriggers}),n.lines)]}return null}_renderPointLayers(){const{pointType:e}=this.props,{layerProps:t,binary:n}=this.state;let{highlightedObjectIndex:i}=this.props;!n&&Number.isFinite(i)&&(i=t.points.data.findIndex(e=>e.__source.index===i));const r=new Set(e.split("+")),o=[];for(const e of r){const r=`points-${e}`,s=kl[e],a=s&&this.shouldRenderSubLayer(r,t.points?.data)&&this.getSubLayerClass(r,s.type);if(a){const l=zl(this,s.props);let A=t.points;if("text"===e&&n){const{instancePickingColors:e,...t}=A.data.attributes;A={...A,data:{...A.data,attributes:t}}}o.push(new a(l,this.getSubLayerProps({id:r,updateTriggers:l.updateTriggers,highlightedObjectIndex:i}),A))}}return o}renderLayers(){const{extruded:e}=this.props,t=this._renderPolygonLayer();return[!e&&t,this._renderLineLayers(),this._renderPointLayers(),e&&t]}getSubLayerAccessor(e){const{binary:t}=this.state;return t&&"function"==typeof e?(t,n)=>{const{data:i,index:r}=n,o=function(e,t){if(!e)return null;const n="startIndices"in e?e.startIndices[t]:t,i=e.featureIds.value[n];return-1!==n?function(e,t,n){const i={properties:{...e.properties[t]}};for(const t in e.numericProps)i.properties[t]=e.numericProps[t].value[n];return i}(e,i,n):null}(i,r);return e(o,n)}:super.getSubLayerAccessor(e)}}GeoJsonLayer.layerName="GeoJsonLayer",GeoJsonLayer.defaultProps=Jl;const ql=GeoJsonLayer;function Yl(e,t,n){return e.createFramebuffer({width:t,height:n,colorAttachments:[e.createTexture({width:t,height:n,format:"rgba32float",sampler:{minFilter:"nearest",magFilter:"nearest"}})]})}const Zl={name:"binSorter",vs:"layout(std140) uniform binSorterUniforms {\n ivec4 binIdRange;\n ivec2 targetSize;\n} binSorter;\n",uniformTypes:{binIdRange:"vec4<i32>",targetSize:"vec2<i32>"}},$l=[1,2,4,8],eA=3e38,tA={SUM:0,MEAN:0,MIN:0,MAX:0,COUNT:0},nA=1024;class WebGLBinSorter{constructor(e,t){this.binsFBO=null,this.device=e,this.model=function(e,t){let n=t.vs;2===t.dimensions&&(n+="\nvoid getBin(out int binId) {\n ivec2 binId2;\n getBin(binId2);\n if (binId2.x < binSorter.binIdRange.x || binId2.x >= binSorter.binIdRange.y) {\n binId = -1;\n } else {\n binId = (binId2.y - binSorter.binIdRange.z) * (binSorter.binIdRange.y - binSorter.binIdRange.x) + binId2.x;\n }\n}\n");const i=`#version 300 es\n#define SHADER_NAME gpu-aggregation-sort-bins-vertex\n\n${n}\n\nout vec3 v_Value;\n\nvoid main() {\n int binIndex;\n getBin(binIndex);\n binIndex = binIndex - binSorter.binIdRange.x;\n if (binIndex < 0) {\n gl_Position = vec4(0.);\n return;\n }\n int row = binIndex / binSorter.targetSize.x;\n int col = binIndex - row * binSorter.targetSize.x;\n vec2 position = (vec2(col, row) + 0.5) / vec2(binSorter.targetSize) * 2.0 - 1.0;\n gl_Position = vec4(position, 0.0, 1.0);\n gl_PointSize = 1.0;\n\n#if NUM_CHANNELS == 3\n getValue(v_Value);\n#elif NUM_CHANNELS == 2\n getValue(v_Value.xy);\n#else\n getValue(v_Value.x);\n#endif\n}\n`,r="#version 300 es\n#define SHADER_NAME gpu-aggregation-sort-bins-fragment\n\nprecision highp float;\n\nin vec3 v_Value;\nout vec4 fragColor;\n\nvoid main() {\n fragColor.xyz = v_Value;\n\n #ifdef MODULE_GEOMETRY\n geometry.uv = vec2(0.);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n #endif\n\n fragColor.w = 1.0;\n}\n",o=new dr.K(e,{bufferLayout:t.bufferLayout,modules:[...t.modules||[],Zl],defines:{...t.defines,NON_INSTANCED_MODEL:1,NUM_CHANNELS:t.channelCount},isInstanced:!1,vs:i,fs:r,topology:"point-list",disableWarnings:!0});return o}(e,t)}get texture(){return this.binsFBO?this.binsFBO.colorAttachments[0].texture:null}destroy(){this.model.destroy(),this.binsFBO?.colorAttachments[0].texture.destroy(),this.binsFBO?.destroy()}getBinValues(e){if(!this.binsFBO)return null;const t=e%nA,n=Math.floor(e/nA),i=this.device.readPixelsToArrayWebGL(this.binsFBO,{sourceX:t,sourceY:n,sourceWidth:1,sourceHeight:1}).buffer;return new Float32Array(i)}setDimensions(e,t){const n=nA,i=Math.ceil(e/n);this.binsFBO?this.binsFBO.height<i&&this.binsFBO.resize({width:n,height:i}):this.binsFBO=Yl(this.device,n,i);const r={binIdRange:[t[0][0],t[0][1],t[1]?.[0]||0,t[1]?.[1]||0],targetSize:[this.binsFBO.width,this.binsFBO.height]};this.model.shaderInputs.setProps({binSorter:r})}setModelProps(e){const t=this.model;e.attributes&&t.setAttributes(e.attributes),e.constantAttributes&&t.setConstantAttributes(e.constantAttributes),void 0!==e.vertexCount&&t.setVertexCount(e.vertexCount),e.shaderModuleProps&&t.shaderInputs.setProps(e.shaderModuleProps)}update(e){if(!this.binsFBO)return;const t=function(e){const t={...tA};for(let n=0;n<e.length;n++){const i=e[n];i&&(t[i]+=$l[n])}return t}(e);this._updateBins("SUM",t.SUM+t.MEAN),this._updateBins("MIN",t.MIN),this._updateBins("MAX",t.MAX)}_updateBins(e,t){if(0===t)return;t|=$l[3];const n=this.model,i=this.binsFBO,r="MAX"===e?-eA:"MIN"===e?eA:0,o=this.device.beginRenderPass({id:`gpu-aggregation-${e}`,framebuffer:i,parameters:{viewport:[0,0,i.width,i.height],colorMask:t},clearColor:[r,r,r,0],clearDepth:!1,clearStencil:!1});n.setParameters({blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one",blendColorOperation:"MAX"===e?"max":"MIN"===e?"min":"add",blendAlphaOperation:"add"}),n.draw(o),o.end()}}const iA={name:"aggregatorTransform",vs:"layout(std140) uniform aggregatorTransformUniforms {\n ivec4 binIdRange;\n bvec3 isCount;\n bvec3 isMean;\n float naN;\n} aggregatorTransform;\n",uniformTypes:{binIdRange:"vec4<i32>",isCount:"vec3<f32>",isMean:"vec3<f32>",naN:"f32"}};class WebGLAggregationTransform{constructor(e,t){this.binBuffer=null,this.valueBuffer=null,this._domains=null,this.device=e,this.channelCount=t.channelCount,this.transform=function(e,t){const n="#version 300 es\n#define SHADER_NAME gpu-aggregation-domain-vertex\n\nuniform sampler2D bins;\n\n#if NUM_DIMS == 1\nout float binIds;\n#else\nout vec2 binIds;\n#endif\n\n#if NUM_CHANNELS == 1\nflat out float values;\n#elif NUM_CHANNELS == 2\nflat out vec2 values;\n#else\nflat out vec3 values;\n#endif\n\nconst float NAN = intBitsToFloat(-1);\n\nvoid main() {\n int row = gl_VertexID / SAMPLER_WIDTH;\n int col = gl_VertexID - row * SAMPLER_WIDTH;\n vec4 weights = texelFetch(bins, ivec2(col, row), 0);\n vec3 value3 = mix(\n mix(weights.rgb, vec3(weights.a), aggregatorTransform.isCount),\n weights.rgb / max(weights.a, 1.0),\n aggregatorTransform.isMean\n );\n if (weights.a == 0.0) {\n value3 = vec3(NAN);\n }\n\n#if NUM_DIMS == 1\n binIds = float(gl_VertexID + aggregatorTransform.binIdRange.x);\n#else\n int y = gl_VertexID / (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x);\n int x = gl_VertexID - y * (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x);\n binIds.y = float(y + aggregatorTransform.binIdRange.z);\n binIds.x = float(x + aggregatorTransform.binIdRange.x);\n#endif\n\n#if NUM_CHANNELS == 3\n values = value3;\n#elif NUM_CHANNELS == 2\n values = value3.xy;\n#else\n values = value3.x;\n#endif\n\n gl_Position = vec4(0., 0., 0., 1.);\n // This model renders into a 2x1 texture to obtain min and max simultaneously.\n // See comments in fragment shader\n gl_PointSize = 2.0;\n}\n",i="#version 300 es\n#define SHADER_NAME gpu-aggregation-domain-fragment\n\nprecision highp float;\n\n#if NUM_CHANNELS == 1\nflat in float values;\n#elif NUM_CHANNELS == 2\nflat in vec2 values;\n#else\nflat in vec3 values;\n#endif\n\nout vec4 fragColor;\n\nvoid main() {\n vec3 value3;\n#if NUM_CHANNELS == 3\n value3 = values;\n#elif NUM_CHANNELS == 2\n value3.xy = values;\n#else\n value3.x = values;\n#endif\n if (isnan(value3.x)) discard;\n // This shader renders into a 2x1 texture with blending=max\n // The left pixel yields the max value of each channel\n // The right pixel yields the min value of each channel\n if (gl_FragCoord.x < 1.0) {\n fragColor = vec4(value3, 1.0);\n } else {\n fragColor = vec4(-value3, 1.0);\n }\n}\n";"webgl"===e.type&&e.getExtension("GL_ARB_shader_bit_encoding");return new BufferTransform(e,{vs:n,fs:i,topology:"point-list",modules:[iA],parameters:{blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one",blendColorOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one",blendAlphaOperation:"max"},defines:{NUM_DIMS:t.dimensions,NUM_CHANNELS:t.channelCount,SAMPLER_WIDTH:1024},varyings:["binIds","values"],disableWarnings:!0})}(e,t),this.domainFBO=Yl(e,2,1)}destroy(){this.transform.destroy(),this.binBuffer?.destroy(),this.valueBuffer?.destroy(),this.domainFBO.colorAttachments[0].texture.destroy(),this.domainFBO.destroy()}get domains(){if(!this._domains){const e=this.device.readPixelsToArrayWebGL(this.domainFBO).buffer,t=new Float32Array(e);this._domains=[[-t[4],t[0]],[-t[5],t[1]],[-t[6],t[2]]].slice(0,this.channelCount)}return this._domains}setDimensions(e,t){const{model:n,transformFeedback:i}=this.transform;n.setVertexCount(e);const r={binIdRange:[t[0][0],t[0][1],t[1]?.[0]||0,t[1]?.[1]||0]};n.shaderInputs.setProps({aggregatorTransform:r});const o=e*t.length*4;(!this.binBuffer||this.binBuffer.byteLength<o)&&(this.binBuffer?.destroy(),this.binBuffer=this.device.createBuffer({byteLength:o}),i.setBuffer("binIds",this.binBuffer));const s=e*this.channelCount*4;(!this.valueBuffer||this.valueBuffer.byteLength<s)&&(this.valueBuffer?.destroy(),this.valueBuffer=this.device.createBuffer({byteLength:s}),i.setBuffer("values",this.valueBuffer))}update(e,t){if(!e)return;const n=this.transform,i=this.domainFBO,r=[0,1,2].map(e=>"COUNT"===t[e]?1:0),o=[0,1,2].map(e=>"MEAN"===t[e]?1:0),s={isCount:r,isMean:o,bins:e};n.model.shaderInputs.setProps({aggregatorTransform:s}),n.run({id:"gpu-aggregation-domain",framebuffer:i,parameters:{viewport:[0,0,2,1]},clearColor:[-3e38,-3e38,-3e38,0],clearDepth:!1,clearStencil:!1}),this._domains=null}}class WebGLAggregator{static isSupported(e){return e.features.has("float32-renderable-webgl")&&e.features.has("texture-blend-float-webgl")}constructor(e,t){this.binCount=0,this.binIds=null,this.results=[],this.device=e,this.dimensions=t.dimensions,this.channelCount=t.channelCount,this.props={...t,pointCount:0,binIdRange:[[0,0]],operations:[],attributes:{},binOptions:{}},this.needsUpdate=new Array(this.channelCount).fill(!0),this.binSorter=new WebGLBinSorter(e,t),this.aggregationTransform=new WebGLAggregationTransform(e,t),this.setProps(t)}getBins(){const e=this.aggregationTransform.binBuffer;return e?(this.binIds?.buffer!==e&&(this.binIds={buffer:e,type:"float32",size:this.dimensions}),this.binIds):null}getResult(e){const t=this.aggregationTransform.valueBuffer;return!t||e>=this.channelCount?null:(this.results[e]?.buffer!==t&&(this.results[e]={buffer:t,type:"float32",size:1,stride:4*this.channelCount,offset:4*e}),this.results[e])}getResultDomain(e){return this.aggregationTransform.domains[e]}getBin(e){if(e<0||e>=this.binCount)return null;const{binIdRange:t}=this.props;let n;if(1===this.dimensions)n=[e+t[0][0]];else{const[[i,r],[o]]=t,s=r-i;n=[e%s+i,Math.floor(e/s)+o]}const i=this.binSorter.getBinValues(e);if(!i)return null;const r=i[3],o=[];for(let e=0;e<this.channelCount;e++){const t=this.props.operations[e];o[e]="COUNT"===t?r:0===r?NaN:"MEAN"===t?i[e]/r:i[e]}return{id:n,value:o,count:r}}destroy(){this.binSorter.destroy(),this.aggregationTransform.destroy()}setProps(e){const t=this.props;if("binIdRange"in e&&!(0,$t.b)(e.binIdRange,t.binIdRange,2)){const t=e.binIdRange;if(_e.A.assert(t.length===this.dimensions),1===this.dimensions){const[[e,n]]=t;this.binCount=n-e}else{const[[e,n],[i,r]]=t;this.binCount=(n-e)*(r-i)}this.binSorter.setDimensions(this.binCount,t),this.aggregationTransform.setDimensions(this.binCount,t),this.setNeedsUpdate()}if(e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==t.operations[n]&&this.setNeedsUpdate(n);if(void 0!==e.pointCount&&e.pointCount!==t.pointCount&&(this.binSorter.setModelProps({vertexCount:e.pointCount}),this.setNeedsUpdate()),e.binOptions&&((0,$t.b)(e.binOptions,t.binOptions,2)||this.setNeedsUpdate(),this.binSorter.model.shaderInputs.setProps({binOptions:e.binOptions})),e.attributes){const t={},n={};for(const i of Object.values(e.attributes))for(const[e,r]of Object.entries(i.getValue()))ArrayBuffer.isView(r)?n[e]=r:r&&(t[e]=r);this.binSorter.setModelProps({attributes:t,constantAttributes:n})}e.shaderModuleProps&&this.binSorter.setModelProps({shaderModuleProps:e.shaderModuleProps}),Object.assign(this.props,e)}setNeedsUpdate(e){void 0===e?this.needsUpdate.fill(!0):this.needsUpdate[e]=!0}update(){}preDraw(){if(!this.needsUpdate.some(Boolean))return;const{operations:e}=this.props,t=this.needsUpdate.map((t,n)=>t?e[n]:null);this.binSorter.update(t),this.aggregationTransform.update(this.binSorter.texture,e);for(let e=0;e<this.channelCount;e++)this.needsUpdate[e]&&(this.needsUpdate[e]=!1,this.props.onUpdate?.({channel:e}))}}const rA=(e,t)=>{let n=0;for(const i of e)n+=t(i);return n},oA={COUNT:e=>e.length,SUM:rA,MEAN:(e,t)=>0===e.length?NaN:rA(e,t)/e.length,MIN:(e,t)=>{let n=1/0;for(const i of e){const e=t(i);e<n&&(n=e)}return n},MAX:(e,t)=>{let n=-1/0;for(const i of e){const e=t(i);e>n&&(n=e)}return n}};function sA({bins:e,getValue:t,operation:n,target:i}){(!i||i.length<e.length)&&(i=new Float32Array(e.length));let r=1/0,o=-1/0;for(let s=0;s<e.length;s++){const{points:a}=e[s];i[s]=n(a,t),i[s]<r&&(r=i[s]),i[s]>o&&(o=i[s])}return{value:i,domain:[r,o]}}function aA(e,t,n){const i={};for(const n of e.sources||[]){const e=t[n];if(!e)throw new Error(`Cannot find attribute ${n}`);i[n]=lA(e)}const r={};return t=>{for(const e in i)r[e]=i[e](t);return e.getValue(r,t,n)}}function lA(e){const t=e.value,{offset:n=0,stride:i,size:r}=e.getAccessor(),o=t.BYTES_PER_ELEMENT,s=n/o,a=i?i/o:r;if(1===r)return e.isConstant?()=>t[0]:e=>t[s+a*e];let l;return e.isConstant?(l=Array.from(t),()=>l):(l=new Array(r),e=>{const n=s+a*e;for(let e=0;e<r;e++)l[e]=t[n+e];return l})}class CPUAggregator{constructor(e){this.bins=[],this.binIds=null,this.results=[],this.dimensions=e.dimensions,this.channelCount=e.getValue.length,this.props={...e,binOptions:{},pointCount:0,operations:[],customOperations:[],attributes:{}},this.needsUpdate=!0,this.setProps(e)}destroy(){}get binCount(){return this.bins.length}setProps(e){const t=this.props;if(e.binOptions&&((0,$t.b)(e.binOptions,t.binOptions,2)||this.setNeedsUpdate()),e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==t.operations[n]&&this.setNeedsUpdate(n);if(e.customOperations)for(let n=0;n<this.channelCount;n++)Boolean(e.customOperations[n])!==Boolean(t.customOperations[n])&&this.setNeedsUpdate(n);void 0!==e.pointCount&&e.pointCount!==t.pointCount&&this.setNeedsUpdate(),e.attributes&&(e.attributes={...t.attributes,...e.attributes}),Object.assign(this.props,e)}setNeedsUpdate(e){void 0===e?this.needsUpdate=!0:!0!==this.needsUpdate&&(this.needsUpdate=this.needsUpdate||[],this.needsUpdate[e]=!0)}update(){if(!0===this.needsUpdate){this.bins=function({pointCount:e,getBinId:t}){const n=new Map;for(let i=0;i<e;i++){const e=t(i);if(null===e)continue;let r=n.get(String(e));r?r.points.push(i):(r={id:e,index:n.size,points:[i]},n.set(String(e),r))}return Array.from(n.values())}({pointCount:this.props.pointCount,getBinId:aA(this.props.getBin,this.props.attributes,this.props.binOptions)});const e=function({bins:e,dimensions:t,target:n}){const i=e.length*t;(!n||n.length<i)&&(n=new Float32Array(i));for(let i=0;i<e.length;i++){const{id:r}=e[i];Array.isArray(r)?n.set(r,i*t):n[i]=r}return n}({bins:this.bins,dimensions:this.dimensions,target:this.binIds?.value});this.binIds={value:e,type:"float32",size:this.dimensions}}for(let e=0;e<this.channelCount;e++)if(!0===this.needsUpdate||this.needsUpdate[e]){const t=this.props.customOperations[e]||oA[this.props.operations[e]],{value:n,domain:i}=sA({bins:this.bins,getValue:aA(this.props.getValue[e],this.props.attributes,void 0),operation:t,target:this.results[e]?.value});this.results[e]={value:n,domain:i,type:"float32",size:1},this.props.onUpdate?.({channel:e})}this.needsUpdate=!1}preDraw(){}getBins(){return this.binIds}getResult(e){return this.results[e]}getResultDomain(e){return this.results[e]?.domain??[1/0,-1/0]}getBin(e){const t=this.bins[e];if(!t)return null;const n=new Array(this.channelCount);for(let t=0;t<n.length;t++){const i=this.results[t];n[t]=i?.value[e]}return{id:t.id,value:n,count:t.points.length,pointIndices:t.points}}}class AggregationLayer extends fo{get isDrawable(){return!0}initializeState(){this.getAttributeManager().remove(["instancePickingColors"])}updateState(e){super.updateState(e);const t=this.getAggregatorType();if(e.changeFlags.extensionsChanged||this.state.aggregatorType!==t){this.state.aggregator?.destroy();const e=this.createAggregator(t);return e.setProps({attributes:this.getAttributeManager()?.attributes}),this.setState({aggregator:e,aggregatorType:t}),!0}return!1}finalizeState(e){super.finalizeState(e),this.state.aggregator.destroy()}updateAttributes(e){const{aggregator:t}=this.state;t.setProps({attributes:e});for(const t in e)this.onAttributeChange(t);t.update()}draw({shaderModuleProps:e}){const{aggregator:t}=this.state;t.setProps({shaderModuleProps:e}),t.preDraw()}_getAttributeManager(){return new AttributeManager(this.context.device,{id:this.props.id,stats:this.context.stats})}}AggregationLayer.layerName="AggregationLayer";const AA=AggregationLayer,cA=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function uA(e,t=!1,n=Float32Array){let i;if(Number.isFinite(e[0]))i=new n(e);else{i=new n(4*e.length);let t=0;for(let n=0;n<e.length;n++){const r=e[n];i[t++]=r[0],i[t++]=r[1],i[t++]=r[2],i[t++]=Number.isFinite(r[3])?r[3]:255}}if(t)for(let e=0;e<i.length;e++)i[e]/=255;return i}const hA={linear:"linear",quantile:"nearest",quantize:"nearest",ordinal:"nearest"};function dA(e,t){e.setSampler({minFilter:hA[t],magFilter:hA[t]})}function fA(e,t,n="linear"){const i=uA(t,!1,Uint8Array);return e.createTexture({format:"rgba8unorm",sampler:{minFilter:hA[n],magFilter:hA[n],addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},data:i,width:i.length/4,height:1})}const pA={name:"screenGrid",vs:"layout(std140) uniform screenGridUniforms {\n vec2 cellSizeClipspace;\n vec2 gridSizeClipspace;\n vec2 colorDomain;\n} screenGrid;\n",uniformTypes:{cellSizeClipspace:"vec2<f32>",gridSizeClipspace:"vec2<f32>",colorDomain:"vec2<f32>"}};class ScreenGridCellLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME screen-grid-layer-vertex-shader\n#define RANGE_COUNT 6\nin vec2 positions;\nin vec2 instancePositions;\nin float instanceWeights;\nin vec3 instancePickingColors;\nuniform sampler2D colorRange;\nout vec4 vColor;\nvec4 interp(float value, vec2 domain, sampler2D range) {\nfloat r = (value - domain.x) / (domain.y - domain.x);\nreturn texture(range, vec2(r, 0.5));\n}\nvoid main(void) {\nif (isnan(instanceWeights)) {\ngl_Position = vec4(0.);\nreturn;\n}\nvec2 pos = instancePositions * screenGrid.gridSizeClipspace + positions * screenGrid.cellSizeClipspace;\npos.x = pos.x - 1.0;\npos.y = 1.0 - pos.y;\ngl_Position = vec4(pos, 0., 1.);\nvColor = interp(instanceWeights, screenGrid.colorDomain, colorRange);\nvColor.a *= layer.opacity;\npicking_setPickingColor(instancePickingColors);\n}\n",fs:"#version 300 es\n#define SHADER_NAME screen-grid-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\nfragColor = vColor;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:[Oo,pA]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceWeights:{size:1,type:"float32",accessor:"getWeight"}}),this.state.model=this._getModel()}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,r=this.state.model;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=fA(this.context.device,t.colorRange,t.colorScaleType);const e={colorRange:this.state.colorTexture};r.shaderInputs.setProps({screenGrid:e})}else n.colorScaleType!==t.colorScaleType&&dA(this.state.colorTexture,t.colorScaleType);if(n.cellMarginPixels!==t.cellMarginPixels||n.cellSizePixels!==t.cellSizePixels||i.viewportChanged){const{width:e,height:t}=this.context.viewport,{cellSizePixels:n,cellMarginPixels:i}=this.props,o=Math.max(n-i,0),s={gridSizeClipspace:[n/e*2,n/t*2],cellSizeClipspace:[o/e*2,o/t*2]};r.shaderInputs.setProps({screenGrid:s})}}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}draw({uniforms:e}){const t=this.props.colorDomain(),n=this.state.model,i={colorDomain:t};n.shaderInputs.setProps({screenGrid:i}),n.draw(this.context.renderPass)}_getModel(){return new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Geometry({topology:"triangle-strip",attributes:{positions:{value:new Float32Array([0,0,1,0,0,1,1,1]),size:2}}}),isInstanced:!0})}}ScreenGridCellLayer.layerName="ScreenGridCellLayer";const gA=ScreenGridCellLayer,mA={name:"binOptions",vs:"layout(std140) uniform binOptionsUniforms {\n float cellSizePixels;\n} binOptions;\n",uniformTypes:{cellSizePixels:"f32"}},_A={cellSizePixels:{type:"number",value:100,min:1},cellMarginPixels:{type:"number",value:2,min:0},colorRange:cA,colorScaleType:"linear",getPosition:{type:"accessor",value:e=>e.position},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"};class ScreenGridLayer extends AA{getAggregatorType(){return this.props.gpuAggregation&&WebGLAggregator.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){return"cpu"!==e&&WebGLAggregator.isSupported(this.context.device)?new WebGLAggregator(this.context.device,{dimensions:2,channelCount:1,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[No,mA],vs:"\n in vec3 positions;\n in vec3 positions64Low;\n in float counts;\n \n void getBin(out ivec2 binId) {\n vec4 pos = project_position_to_clipspace(positions, positions64Low, vec3(0.0));\n vec2 screenCoords = vec2(pos.x / pos.w + 1.0, 1.0 - pos.y / pos.w) / 2.0 * project.viewportSize.xy / project.devicePixelRatio;\n vec2 gridCoords = floor(screenCoords / binOptions.cellSizePixels);\n binId = ivec2(gridCoords);\n }\n void getValue(out float weight) {\n weight = counts;\n }\n "})}):new CPUAggregator({dimensions:2,getBin:{sources:["positions"],getValue:({positions:e},t,n)=>{const i=this.context.viewport,r=i.project(e),o=n.cellSizePixels;return r[0]<0||r[0]>=i.width||r[1]<0||r[1]>=i.height?null:[Math.floor(r[0]/o),Math.floor(r[1]/o)]}},getValue:[{sources:["counts"],getValue:({counts:e})=>e}]})}initializeState(){super.initializeState();this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},counts:{size:1,accessor:"getWeight"}})}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:r}=e,{cellSizePixels:o,aggregation:s}=n;if(t||r.dataChanged||r.updateTriggersChanged||r.viewportChanged||s!==i.aggregation||o!==i.cellSizePixels){const{width:e,height:t}=this.context.viewport,{aggregator:n}=this.state;n instanceof WebGLAggregator&&n.setProps({binIdRange:[[0,Math.ceil(e/o)],[0,Math.ceil(t/o)]]}),n.setProps({pointCount:this.getNumInstances(),operations:[s],binOptions:{cellSizePixels:o}})}return r.viewportChanged&&this.state.aggregator.setNeedsUpdate(),t}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate();break;case"counts":t.setNeedsUpdate(0)}}renderLayers(){const{aggregator:e}=this.state,t=this.getSubLayerClass("cells",gA),n=e.getBins(),i=e.getResult(0);return new t(this.props,this.getSubLayerProps({id:"cell-layer"}),{data:{length:e.binCount,attributes:{getBin:n,getWeight:i}},dataComparator:(e,t)=>e.length===t.length,updateTriggers:{getBin:[n],getWeight:[i]},parameters:{depthWriteEnabled:!1,...this.props.parameters},colorDomain:()=>this.props.colorDomain||e.getResultDomain(0),extensions:[]})}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const e=this.state.aggregator.getBin(n);let i;e&&(i={col:e.id[0],row:e.id[1],value:e.value[0],count:e.count},e.pointIndices&&(i.pointIndices=e.pointIndices,i.points=Array.isArray(this.props.data)?e.pointIndices.map(e=>this.props.data[e]):[])),t.object=i}return t}}ScreenGridLayer.layerName="ScreenGridLayer",ScreenGridLayer.defaultProps=_A;const bA=ScreenGridLayer;class AttributeWithScale{constructor(e,t){this.props={scaleType:"linear",lowerPercentile:0,upperPercentile:100},this.domain=null,this.cutoff=null,this.input=e,this.inputLength=t,this.attribute=e}getScalePercentile(){if(!this._percentile){const e=vA(this.input,this.inputLength);this._percentile=function(e,t=100){const n=Array.from(e).filter(Number.isFinite).sort(yA);let i=0;const r=Math.max(1,t),o=new Array(r-1);for(;++i<r;)o[i-1]=CA(n,i/r);return{attribute:{value:e.map(e=>Number.isFinite(e)?function(e,t){let n=0,i=e.length;for(;n<i;){const r=n+i>>>1;e[r]>t?i=r:n=r+1}return n}(o,e):NaN),type:"float32",size:1},domain:o}}(e)}return this._percentile}getScaleOrdinal(){if(!this._ordinal){const e=vA(this.input,this.inputLength);this._ordinal=function(e){const t=new Set;for(const n of e)Number.isFinite(n)&&t.add(n);const n=Array.from(t).sort(),i=new Map;for(let e=0;e<n.length;e++)i.set(n[e],e);return{attribute:{value:e.map(e=>Number.isFinite(e)?i.get(e):NaN),type:"float32",size:1},domain:n}}(e)}return this._ordinal}getCutoff({scaleType:e,lowerPercentile:t,upperPercentile:n}){if("quantile"===e)return[t,n-1];if(t>0||n<100){const{domain:i}=this.getScalePercentile();let r=i[Math.floor(t)-1]??-1/0,o=i[Math.floor(n)-1]??1/0;if("ordinal"===e){const{domain:e}=this.getScaleOrdinal();r=e.findIndex(e=>e>=r),o=e.findIndex(e=>e>o)-1,-2===o&&(o=e.length-1)}return[r,o]}return null}update(e){const t=this.props;if(e.scaleType!==t.scaleType)switch(e.scaleType){case"quantile":{const{attribute:e}=this.getScalePercentile();this.attribute=e,this.domain=[0,99];break}case"ordinal":{const{attribute:e,domain:t}=this.getScaleOrdinal();this.attribute=e,this.domain=[0,t.length-1];break}default:this.attribute=this.input,this.domain=null}return e.scaleType===t.scaleType&&e.lowerPercentile===t.lowerPercentile&&e.upperPercentile===t.upperPercentile||(this.cutoff=this.getCutoff(e)),this.props=e,this}}function vA(e,t){const n=(e.stride??4)/4,i=(e.offset??0)/4;let r=e.value;if(!r){const i=e.buffer?.readSyncWebGL(0,4*n*t);i&&(r=new Float32Array(i.buffer),e.value=r)}if(1===n)return r.subarray(0,t);const o=new Float32Array(t);for(let e=0;e<t;e++)o[e]=r[e*n+i];return o}function yA(e,t){return e-t}function CA(e,t){const n=e.length;if(t<=0||n<2)return e[0];if(t>=1)return e[n-1];const i=(n-1)*t,r=Math.floor(i),o=e[r];return o+(e[r+1]-o)*(i-r)}function wA({dataBounds:e,getBinId:t,padding:n=0}){const i=[e[0],e[1],[e[0][0],e[1][1]],[e[1][0],e[0][1]]].map(e=>t(e)),r=Math.min(...i.map(e=>e[0]))-n,o=Math.min(...i.map(e=>e[1]))-n,s=Math.max(...i.map(e=>e[0]))+n+1,a=Math.max(...i.map(e=>e[1]))+n+1;return[[r,s],[o,a]]}const EA=Math.PI/3,xA=2*Math.sin(EA),TA=1.5,SA=Array.from({length:6},(e,t)=>{const n=t*EA;return[Math.sin(n),-Math.cos(n)]});function PA([e,t],n){let i=Math.round(t=t/n/TA),r=Math.round(e=e/n/xA-(1&i)/2);const o=t-i;if(3*Math.abs(o)>1){const n=e-r,s=r+(e<r?-1:1)/2,a=i+(t<i?-1:1),l=e-s,A=t-a;n*n+o*o>l*l+A*A&&(r=s+(1&i?1:-1)/2,i=a)}return[r,i]}const MA=`\nconst vec2 DIST = vec2(${xA}, 1.5);\n\nivec2 pointToHexbin(vec2 p, float radius) {\n p /= radius * DIST;\n float pj = round(p.y);\n float pjm2 = mod(pj, 2.0);\n p.x -= pjm2 * 0.5;\n float pi = round(p.x);\n vec2 d1 = p - vec2(pi, pj);\n\n if (abs(d1.y) * 3. > 1.) {\n vec2 v2 = step(0.0, d1) - 0.5;\n v2.y *= 2.0;\n vec2 d2 = d1 - v2;\n if (dot(d1, d1) > dot(d2, d2)) {\n pi += v2.x + pjm2 - 0.5;\n pj += v2.y;\n }\n }\n return ivec2(pi, pj);\n}\n`;function RA([e,t],n){return[(e+(1&t)/2)*n*xA,t*n*TA]}const BA=`#version 300 es\n#define SHADER_NAME hexagon-cell-layer-vertex-shader\nin vec3 positions;\nin vec3 normals;\nin vec2 instancePositions;\nin float instanceElevationValues;\nin float instanceColorValues;\nin vec3 instancePickingColors;\nuniform sampler2D colorRange;\nout vec4 vColor;\n${`\nconst vec2 DIST = vec2(${xA}, 1.5);\n\nvec2 hexbinCentroid(vec2 binId, float radius) {\n binId.x += fract(binId.y * 0.5);\n return binId * DIST * radius;\n}\n`}\nfloat interp(float value, vec2 domain, vec2 range) {\nfloat r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.);\nreturn mix(range.x, range.y, r);\n}\nvec4 interp(float value, vec2 domain, sampler2D range) {\nfloat r = (value - domain.x) / (domain.y - domain.x);\nreturn texture(range, vec2(r, 0.5));\n}\nvoid main(void) {\ngeometry.pickingColor = instancePickingColors;\nif (isnan(instanceColorValues) ||\ninstanceColorValues < hexagon.colorDomain.z ||\ninstanceColorValues > hexagon.colorDomain.w ||\ninstanceElevationValues < hexagon.elevationDomain.z ||\ninstanceElevationValues > hexagon.elevationDomain.w\n) {\ngl_Position = vec4(0.);\nreturn;\n}\nvec2 commonPosition = hexbinCentroid(instancePositions, column.radius) + (hexagon.originCommon - project.commonOrigin.xy);\ncommonPosition += positions.xy * column.radius * column.coverage;\ngeometry.position = vec4(commonPosition, 0.0, 1.0);\ngeometry.normal = project_normal(normals);\nfloat elevation = 0.0;\nif (column.extruded) {\nelevation = interp(instanceElevationValues, hexagon.elevationDomain.xy, hexagon.elevationRange);\nelevation = project_size(elevation);\ngeometry.position.z = (positions.z + 1.0) / 2.0 * elevation;\n}\ngl_Position = project_common_position_to_clipspace(geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvColor = interp(instanceColorValues, hexagon.colorDomain.xy, colorRange);\nvColor.a *= layer.opacity;\nif (column.extruded) {\nvColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n`,IA={name:"hexagon",vs:"layout(std140) uniform hexagonUniforms {\n vec4 colorDomain;\n vec4 elevationDomain;\n vec2 elevationRange;\n vec2 originCommon;\n} hexagon;\n",uniformTypes:{colorDomain:"vec4<f32>",elevationDomain:"vec4<f32>",elevationRange:"vec2<f32>",originCommon:"vec2<f32>"}};class HexagonCellLayer extends da{getShaders(){const e=super.getShaders();return e.modules.push(IA),{...e,vs:BA}}initializeState(){super.initializeState();const e=this.getAttributeManager();e.remove(["instanceElevations","instanceFillColors","instanceLineColors","instanceStrokeWidths"]),e.addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceColorValues:{size:1,type:"float32",accessor:"getColorValue"},instanceElevationValues:{size:1,type:"float32",accessor:"getElevationValue"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e,i=this.state.fillModel;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=fA(this.context.device,t.colorRange,t.colorScaleType);const e={colorRange:this.state.colorTexture};i.shaderInputs.setProps({hexagon:e})}else n.colorScaleType!==t.colorScaleType&&dA(this.state.colorTexture,t.colorScaleType)}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}draw({uniforms:e}){const{radius:t,hexOriginCommon:n,elevationRange:i,elevationScale:r,extruded:o,coverage:s,colorDomain:a,elevationDomain:l}=this.props,A=this.props.colorCutoff||[-1/0,1/0],c=this.props.elevationCutoff||[-1/0,1/0],u=this.state.fillModel;u.setVertexCount(this.state.fillVertexCount);const h={colorDomain:[Math.max(a[0],A[0]),Math.min(a[1],A[1]),Math.max(a[0]-1,A[0]),Math.min(a[1]+1,A[1])],elevationDomain:[Math.max(l[0],c[0]),Math.min(l[1],c[1]),Math.max(l[0]-1,c[0]),Math.min(l[1]+1,c[1])],elevationRange:[i[0]*r,i[1]*r],originCommon:n};u.shaderInputs.setProps({column:{extruded:o,coverage:s,radius:t},hexagon:h}),u.draw(this.context.renderPass)}}HexagonCellLayer.layerName="HexagonCellLayer";const LA=HexagonCellLayer,FA={name:"binOptions",vs:"layout(std140) uniform binOptionsUniforms {\n vec2 hexOriginCommon;\n float radiusCommon;\n} binOptions;\n",uniformTypes:{hexOriginCommon:"vec2<f32>",radiusCommon:"f32"}};function DA(){}const OA={gpuAggregation:!0,colorDomain:null,colorRange:cA,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:DA,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScaleType:"linear",onSetElevationDomain:DA,radius:{type:"number",min:1,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:e=>e.position},hexagonAggregator:{type:"function",optional:!0,value:null},extruded:!1,material:!0};class HexagonLayer extends AA{getAggregatorType(){const{gpuAggregation:e,hexagonAggregator:t,getColorValue:n,getElevationValue:i}=this.props;return e&&(t||n||i)?(_e.A.warn("Features not supported by GPU aggregation, falling back to CPU")(),"cpu"):e&&WebGLAggregator.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){if("cpu"===e){const{hexagonAggregator:e,radius:t}=this.props;return new CPUAggregator({dimensions:2,getBin:{sources:["positions"],getValue:({positions:n},i,r)=>{if(e)return e(n,t);const o=this.state.aggregatorViewport.projectPosition(n),{radiusCommon:s,hexOriginCommon:a}=r;return PA([o[0]-a[0],o[1]-a[1]],s)}},getValue:[{sources:["colorWeights"],getValue:({colorWeights:e})=>e},{sources:["elevationWeights"],getValue:({elevationWeights:e})=>e}]})}return new WebGLAggregator(this.context.device,{dimensions:2,channelCount:2,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[No,FA],vs:`\n in vec3 positions;\n in vec3 positions64Low;\n in float colorWeights;\n in float elevationWeights;\n \n ${MA}\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n binId = pointToHexbin(positionCommon.xy, binOptions.radiusCommon);\n }\n void getValue(out vec2 value) {\n value = vec2(colorWeights, elevationWeights);\n }\n `})})}initializeState(){super.initializeState();this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},colorWeights:{size:1,accessor:"getColorWeight"},elevationWeights:{size:1,accessor:"getElevationWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:r}=e,{aggregator:o}=this.state;if(!r.dataChanged&&this.state.dataAsArray||!n.getColorValue&&!n.getElevationValue||(this.state.dataAsArray=Array.from(or(n.data).iterable)),t||r.dataChanged||n.radius!==i.radius||n.getColorValue!==i.getColorValue||n.getElevationValue!==i.getElevationValue||n.colorAggregation!==i.colorAggregation||n.elevationAggregation!==i.elevationAggregation){this._updateBinOptions();const{radiusCommon:e,hexOriginCommon:t,binIdRange:i,dataAsArray:r}=this.state;if(o.setProps({binIdRange:i,pointCount:this.getNumInstances(),operations:[n.colorAggregation,n.elevationAggregation],binOptions:{radiusCommon:e,hexOriginCommon:t},onUpdate:this._onAggregationUpdate.bind(this)}),r){const{getColorValue:e,getElevationValue:t}=this.props;o.setProps({customOperations:[e&&(t=>e(t.map(e=>r[e]),{indices:t,data:n.data})),t&&(e=>t(e.map(e=>r[e]),{indices:e,data:n.data}))]})}}return r.updateTriggersChanged&&r.updateTriggersChanged.getColorValue&&o.setNeedsUpdate(0),r.updateTriggersChanged&&r.updateTriggersChanged.getElevationValue&&o.setNeedsUpdate(1),t}_updateBinOptions(){const e=this.getBounds();let t=1,n=[0,0],i=[[0,1],[0,1]],r=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{radius:s}=this.props,{unitsPerMeter:a}=r.getDistanceScales(o);t=a[0]*s;const l=PA(r.projectFlat(o),t);o=r.unprojectFlat(RA(l,t));const A=r.constructor;r=r.isGeospatial?new A({longitude:o[0],latitude:o[1],zoom:12}):new Zt.A({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(r.center[0]),Math.fround(r.center[1])],i=wA({dataBounds:e,getBinId:e=>{const i=r.projectFlat(e);return i[0]-=n[0],i[1]-=n[1],PA(i,t)},padding:1})}this.setState({radiusCommon:t,hexOriginCommon:n,binIdRange:i,aggregatorViewport:r})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}_onAggregationUpdate({channel:e}){const t=this.getCurrentLayer().props,{aggregator:n}=this.state;if(0===e){const e=n.getResult(0);this.setState({colors:new AttributeWithScale(e,n.binCount)}),t.onSetColorDomain(n.getResultDomain(0))}else if(1===e){const e=n.getResult(1);this.setState({elevations:new AttributeWithScale(e,n.binCount)}),t.onSetElevationDomain(n.getResultDomain(1))}}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{radiusCommon:e,hexOriginCommon:n,binIdRange:i}=this.state;t.setProps({binIdRange:i,binOptions:{radiusCommon:e,hexOriginCommon:n}});break;case"colorWeights":t.setNeedsUpdate(0);break;case"elevationWeights":t.setNeedsUpdate(1)}}renderLayers(){const{aggregator:e,radiusCommon:t,hexOriginCommon:n}=this.state,{elevationScale:i,colorRange:r,elevationRange:o,extruded:s,coverage:a,material:l,transitions:A,colorScaleType:c,lowerPercentile:u,upperPercentile:h,colorDomain:d,elevationScaleType:f,elevationLowerPercentile:p,elevationUpperPercentile:g,elevationDomain:m}=this.props,_=this.getSubLayerClass("cells",LA),b=e.getBins(),v=this.state.colors?.update({scaleType:c,lowerPercentile:u,upperPercentile:h}),y=this.state.elevations?.update({scaleType:f,lowerPercentile:p,upperPercentile:g});return v&&y?new _(this.getSubLayerProps({id:"cells"}),{data:{length:e.binCount,attributes:{getBin:b,getColorValue:v.attribute,getElevationValue:y.attribute}},dataComparator:(e,t)=>e.length===t.length,updateTriggers:{getBin:[b],getColorValue:[v.attribute],getElevationValue:[y.attribute]},diskResolution:6,vertices:SA,radius:t,hexOriginCommon:n,elevationScale:i,colorRange:r,colorScaleType:c,elevationRange:o,extruded:s,coverage:a,material:l,colorDomain:v.domain||d||e.getResultDomain(0),elevationDomain:y.domain||m||e.getResultDomain(1),colorCutoff:v.cutoff,elevationCutoff:y.cutoff,transitions:A&&{getFillColor:A.getColorValue||A.getColorWeight,getElevation:A.getElevationValue||A.getElevationWeight},extensions:[]}):null}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const e=this.state.aggregator.getBin(n);let i;if(e){const t=RA(e.id,this.state.radiusCommon),n=this.context.viewport.unprojectFlat(t);i={col:e.id[0],row:e.id[1],position:n,colorValue:e.value[0],elevationValue:e.value[1],count:e.count},e.pointIndices&&(i.pointIndices=e.pointIndices,i.points=Array.isArray(this.props.data)?e.pointIndices.map(e=>this.props.data[e]):[])}t.object=i}return t}}HexagonLayer.layerName="HexagonLayer",HexagonLayer.defaultProps=OA;const NA=HexagonLayer,kA=.5,UA=1/6,GA={N:[0,kA],E:[kA,0],S:[0,-.5],W:[-.5,0],NE:[kA,kA],NW:[-.5,kA],SE:[kA,-.5],SW:[-.5,-.5]},VA=[GA.W,GA.SW,GA.S],zA=[GA.S,GA.SE,GA.E],HA=[GA.E,GA.NE,GA.N],WA=[GA.NW,GA.W,GA.N],jA=[[-.5,UA],[-.5,-UA],[-UA,-.5],[UA,-.5]],QA=[[-UA,-.5],[UA,-.5],[kA,-UA],[kA,UA]],XA=[[kA,-UA],[kA,UA],[UA,kA],[-UA,kA]],KA=[[-.5,UA],[-.5,-UA],[UA,kA],[-UA,kA]],JA=[GA.W,GA.SW,GA.SE,GA.E],qA=[GA.S,GA.SE,GA.NE,GA.N],YA=[GA.NW,GA.W,GA.E,GA.NE],ZA=[GA.NW,GA.SW,GA.S,GA.N],$A=[[-.5,UA],[-.5,-UA],[kA,-UA],[kA,UA]],ec=[[-UA,-.5],[UA,-.5],[UA,kA],[-UA,kA]],tc=[GA.NW,GA.SW,GA.SE,GA.NE],nc=[GA.NW,GA.SW,GA.SE,GA.E,GA.N],ic=[GA.W,GA.SW,GA.SE,GA.NE,GA.N],rc=[GA.NW,GA.W,GA.S,GA.SE,GA.NE],oc=[GA.NW,GA.SW,GA.S,GA.E,GA.NE],sc=[GA.NW,GA.W,[kA,-UA],[kA,UA],GA.N],ac=[[-UA,-.5],[UA,-.5],GA.E,GA.NE,GA.N],lc=[[-.5,UA],[-.5,-UA],GA.S,GA.SE,GA.E],Ac=[GA.W,GA.SW,GA.S,[UA,kA],[-UA,kA]],cc=[GA.NW,GA.W,[-UA,-.5],[UA,-.5],GA.N],uc=[[-.5,UA],[-.5,-UA],GA.E,GA.NE,GA.N],hc=[GA.S,GA.SE,GA.E,[UA,kA],[-UA,kA]],dc=[GA.W,GA.SW,GA.S,[kA,-UA],[kA,UA]],fc=[GA.W,GA.SW,GA.SE,GA.E,[UA,kA],[-UA,kA]],pc=[[-.5,UA],[-.5,-UA],GA.S,GA.SE,GA.NE,GA.N],gc=[GA.NW,GA.W,[-UA,-.5],[UA,-.5],GA.E,GA.NE],mc=[GA.NW,GA.SW,GA.S,[kA,-UA],[kA,UA],GA.N],_c=[GA.W,GA.SW,GA.S,GA.E,GA.NE,GA.N],bc=[GA.NW,GA.W,GA.S,GA.SE,GA.E,GA.N],vc=[[-.5,UA],[-.5,-UA],[-UA,-.5],[UA,-.5],GA.E,GA.NE,GA.N],yc=[GA.W,GA.SW,GA.S,[kA,-UA],[kA,UA],[UA,kA],[-UA,kA]],Cc=[GA.NW,GA.W,[-UA,-.5],[UA,-.5],[kA,-UA],[kA,UA],GA.N],wc=[[-.5,UA],[-.5,-UA],GA.S,GA.SE,GA.E,[UA,kA],[-UA,kA]],Ec=[[-.5,UA],[-.5,-UA],[-UA,-.5],[UA,-.5],[kA,-UA],[kA,UA],[UA,kA],[-UA,kA]],xc={0:[],1:[[GA.W,GA.S]],2:[[GA.S,GA.E]],3:[[GA.W,GA.E]],4:[[GA.N,GA.E]],5:{0:[[GA.W,GA.S],[GA.N,GA.E]],1:[[GA.W,GA.N],[GA.S,GA.E]]},6:[[GA.N,GA.S]],7:[[GA.W,GA.N]],8:[[GA.W,GA.N]],9:[[GA.N,GA.S]],10:{0:[[GA.W,GA.N],[GA.S,GA.E]],1:[[GA.W,GA.S],[GA.N,GA.E]]},11:[[GA.N,GA.E]],12:[[GA.W,GA.E]],13:[[GA.S,GA.E]],14:[[GA.W,GA.S]],15:[]};function Tc(e){return parseInt(e,4)}const Sc={[Tc("0000")]:[],[Tc("2222")]:[],[Tc("2221")]:[VA],[Tc("2212")]:[zA],[Tc("2122")]:[HA],[Tc("1222")]:[WA],[Tc("0001")]:[VA],[Tc("0010")]:[zA],[Tc("0100")]:[HA],[Tc("1000")]:[WA],[Tc("2220")]:[jA],[Tc("2202")]:[QA],[Tc("2022")]:[XA],[Tc("0222")]:[KA],[Tc("0002")]:[jA],[Tc("0020")]:[QA],[Tc("0200")]:[XA],[Tc("2000")]:[KA],[Tc("0011")]:[JA],[Tc("0110")]:[qA],[Tc("1100")]:[YA],[Tc("1001")]:[ZA],[Tc("2211")]:[JA],[Tc("2112")]:[qA],[Tc("1122")]:[YA],[Tc("1221")]:[ZA],[Tc("2200")]:[$A],[Tc("2002")]:[ec],[Tc("0022")]:[$A],[Tc("0220")]:[ec],[Tc("1111")]:[tc],[Tc("1211")]:[nc],[Tc("2111")]:[ic],[Tc("1112")]:[rc],[Tc("1121")]:[oc],[Tc("1011")]:[nc],[Tc("0111")]:[ic],[Tc("1110")]:[rc],[Tc("1101")]:[oc],[Tc("1200")]:[sc],[Tc("0120")]:[ac],[Tc("0012")]:[lc],[Tc("2001")]:[Ac],[Tc("1022")]:[sc],[Tc("2102")]:[ac],[Tc("2210")]:[lc],[Tc("0221")]:[Ac],[Tc("1002")]:[cc],[Tc("2100")]:[uc],[Tc("0210")]:[hc],[Tc("0021")]:[dc],[Tc("1220")]:[cc],[Tc("0122")]:[uc],[Tc("2012")]:[hc],[Tc("2201")]:[dc],[Tc("0211")]:[fc],[Tc("2110")]:[pc],[Tc("1102")]:[gc],[Tc("1021")]:[mc],[Tc("2011")]:[fc],[Tc("0112")]:[pc],[Tc("1120")]:[gc],[Tc("1201")]:[mc],[Tc("2101")]:[_c],[Tc("0121")]:[_c],[Tc("1012")]:[bc],[Tc("1210")]:[bc],[Tc("0101")]:{0:[VA,HA],1:[_c],2:[_c]},[Tc("1010")]:{0:[WA,zA],1:[bc],2:[bc]},[Tc("2121")]:{0:[_c],1:[_c],2:[VA,HA]},[Tc("1212")]:{0:[bc],1:[bc],2:[WA,zA]},[Tc("2120")]:{0:[vc],1:[vc],2:[jA,HA]},[Tc("2021")]:{0:[yc],1:[yc],2:[VA,XA]},[Tc("1202")]:{0:[Cc],1:[Cc],2:[WA,QA]},[Tc("0212")]:{0:[wc],1:[wc],2:[zA,KA]},[Tc("0102")]:{0:[jA,HA],1:[vc],2:[vc]},[Tc("0201")]:{0:[VA,XA],1:[yc],2:[yc]},[Tc("1020")]:{0:[WA,QA],1:[Cc],2:[Cc]},[Tc("2010")]:{0:[zA,KA],1:[wc],2:[wc]},[Tc("2020")]:{0:[KA,QA],1:[Ec],2:[jA,XA]},[Tc("0202")]:{0:[XA,jA],1:[Ec],2:[KA,QA]}};function Pc(e,t){return Number.isNaN(e)?0:Array.isArray(t)?e<t[0]?0:e<t[1]?1:2:e>=t?1:0}function Mc(e){const{x:t,y:n,xRange:i,yRange:r,getValue:o,threshold:s}=e,a=t<i[0],l=t>=i[1]-1,A=n<r[0],c=n>=r[1]-1,u=a||l||A||c;let h,d,f,p,g=0;if(a||c)f=0;else{const e=o(t,n+1);f=Pc(e,s),g+=e}if(l||c)p=0;else{const e=o(t+1,n+1);p=Pc(e,s),g+=e}if(l||A)d=0;else{const e=o(t+1,n);d=Pc(e,s),g+=e}if(a||A)h=0;else{const e=o(t,n);h=Pc(e,s),g+=e}let m=-1;Number.isFinite(s)&&(m=f<<3|p<<2|d<<1|h),Array.isArray(s)&&(m=f<<6|p<<4|d<<2|h);let _=0;return u||(_=Pc(g/4,s)),{code:m,meanCode:_}}function Rc(e){const{x:t,y:n,z:i,code:r,meanCode:o}=e;let s=Sc[r];Array.isArray(s)||(s=s[o]);const a=t+1,l=n+1,A=[];return s.forEach(e=>{const t=[];e.forEach(e=>{const n=a+e[0],r=l+e[1];t.push([n,r,i])}),A.push(t)}),A}function Bc(e){const{x:t,y:n,z:i,code:r,meanCode:o}=e;let s=xc[r];Array.isArray(s)||(s=s[o]);const a=t+1,l=n+1,A=[];return s.forEach(e=>{e.forEach(e=>{const t=a+e[0],n=l+e[1];A.push([t,n,i])})}),A}function Ic(e){const{aggregator:t,binIdRange:n,channel:i}=e;if(t instanceof WebGLAggregator){const e=t.getResult(i)?.buffer;if(e){return function(e,t){const[[n,i],[r,o]]=t,s=i-n,a=o-r;return(t,i)=>(i-=r,(t-=n)<0||t>=s||i<0||i>=a?NaN:e[i*s+t])}(new Float32Array(e.readSyncWebGL().buffer),n)}}if(t instanceof CPUAggregator){const e=t.getResult(i)?.value,n=t.getBins()?.value;if(n&&e)return function(e,t,n){const i={};for(let r=0;r<n;r++){const n=t[2*r],o=t[2*r+1];i[n]=i[n]||{},i[n][o]=e[r]}return(e,t)=>i[e]?.[t]??NaN}(e,n,t.binCount)}return null}const Lc={name:"binOptions",vs:"layout(std140) uniform binOptionsUniforms {\n vec2 cellOriginCommon;\n vec2 cellSizeCommon;\n} binOptions;\n",uniformTypes:{cellOriginCommon:"vec2<f32>",cellSizeCommon:"vec2<f32>"}},Fc=[255,255,255,255];class GridLayer extends AA{getAggregatorType(){return this.props.gpuAggregation&&WebGLAggregator.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){return"cpu"===e?new CPUAggregator({dimensions:2,getBin:{sources:["positions"],getValue:({positions:e},t,n)=>{const i=this.state.aggregatorViewport.projectPosition(e),{cellSizeCommon:r,cellOriginCommon:o}=n;return[Math.floor((i[0]-o[0])/r[0]),Math.floor((i[1]-o[1])/r[1])]}},getValue:[{sources:["counts"],getValue:({counts:e})=>e}],onUpdate:this._onAggregationUpdate.bind(this)}):new WebGLAggregator(this.context.device,{dimensions:2,channelCount:1,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[No,Lc],vs:"\n in vec3 positions;\n in vec3 positions64Low;\n in float counts;\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon);\n binId = ivec2(gridCoords);\n }\n void getValue(out float value) {\n value = counts;\n }\n "}),onUpdate:this._onAggregationUpdate.bind(this)})}initializeState(){super.initializeState();this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},counts:{size:1,accessor:"getWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:r}=e,{aggregator:o}=this.state;if(t||r.dataChanged||n.cellSize!==i.cellSize||!(0,$t.b)(n.gridOrigin,i.gridOrigin,1)||n.aggregation!==i.aggregation){this._updateBinOptions();const{cellSizeCommon:e,cellOriginCommon:t,binIdRange:i}=this.state;o.setProps({binIdRange:i,pointCount:this.getNumInstances(),operations:[n.aggregation],binOptions:{cellSizeCommon:e,cellOriginCommon:t}})}return(0,$t.b)(i.contours,n.contours,2)||this.setState({contourData:null}),t}_updateBinOptions(){const e=this.getBounds(),t=[1,1];let n=[0,0],i=[[0,1],[0,1]],r=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{cellSize:s,gridOrigin:a}=this.props,{unitsPerMeter:l}=r.getDistanceScales(o);t[0]=l[0]*s,t[1]=l[1]*s;const A=r.projectFlat(o);n=[Math.floor((A[0]-a[0])/t[0])*t[0]+a[0],Math.floor((A[1]-a[1])/t[1])*t[1]+a[1]],o=r.unprojectFlat(n);const c=r.constructor;r=r.isGeospatial?new c({longitude:o[0],latitude:o[1],zoom:12}):new Zt.A({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(r.center[0]),Math.fround(r.center[1])],i=wA({dataBounds:e,getBinId:e=>{const i=r.projectFlat(e);return[Math.floor((i[0]-n[0])/t[0]),Math.floor((i[1]-n[1])/t[1])]}})}this.setState({cellSizeCommon:t,cellOriginCommon:n,binIdRange:i,aggregatorViewport:r})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}_onAggregationUpdate(){const{aggregator:e,binIdRange:t}=this.state;this.setState({aggregatedValueReader:Ic({aggregator:e,binIdRange:t,channel:0}),contourData:null})}_getContours(){const{aggregatedValueReader:e}=this.state;if(!e)return null;if(!this.state.contourData){const{binIdRange:t}=this.state,{contours:n}=this.props,i=function({contours:e,getValue:t,xRange:n,yRange:i}){const r=[],o=[];let s=0,a=0;for(let l=0;l<e.length;l++){const A=e[l],c=A.zIndex??l,{threshold:u}=A;for(let e=n[0]-1;e<n[1];e++)for(let l=i[0]-1;l<i[1];l++){const{code:h,meanCode:d}=Mc({getValue:t,threshold:u,x:e,y:l,xRange:n,yRange:i}),f={x:e,y:l,z:c,code:h,meanCode:d};if(Array.isArray(u)){const e=Rc(f);for(const t of e)o[a++]={vertices:t,contour:A}}else{const e=Bc(f);e.length>0&&(r[s++]={vertices:e,contour:A})}}}return{lines:r,polygons:o}}({contours:n,getValue:e,xRange:t[0],yRange:t[1]});this.state.contourData=i}return this.state.contourData}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{cellSizeCommon:e,cellOriginCommon:n,binIdRange:i}=this.state;t.setProps({binIdRange:i,binOptions:{cellSizeCommon:e,cellOriginCommon:n}});break;case"counts":t.setNeedsUpdate(0)}}renderLayers(){const e=this._getContours();if(!e)return null;const{lines:t,polygons:n}=e,{zOffset:i}=this.props,{cellOriginCommon:r,cellSizeCommon:o}=this.state,s=this.getSubLayerClass("lines",ka),a=this.getSubLayerClass("bands",ol),l=(new gn.k).translate([r[0],r[1],0]).scale([o[0],o[1],i]),A=t&&t.length>0&&new s(this.getSubLayerProps({id:"lines"}),{data:t,coordinateSystem:mn.rf.CARTESIAN,modelMatrix:l,getPath:e=>e.vertices,getColor:e=>e.contour.color??Fc,getWidth:e=>e.contour.strokeWidth??1,widthUnits:"pixels"}),c=n&&n.length>0&&new a(this.getSubLayerProps({id:"bands"}),{data:n,coordinateSystem:mn.rf.CARTESIAN,modelMatrix:l,getPolygon:e=>e.vertices,getFillColor:e=>e.contour.color??Fc});return[A,c]}getPickingInfo(e){const t=e.info,{object:n}=t;return n&&(t.object={contour:n.contour}),t}}GridLayer.layerName="ContourLayer",GridLayer.defaultProps={cellSize:{type:"number",min:1,value:1e3},gridOrigin:{type:"array",compare:!0,value:[0,0]},getPosition:{type:"accessor",value:e=>e.position},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM",contours:{type:"object",value:[{threshold:1}],optional:!0,compare:3},zOffset:.005};const Dc=GridLayer,Oc={name:"grid",vs:"layout(std140) uniform gridUniforms {\n vec4 colorDomain;\n vec4 elevationDomain;\n vec2 elevationRange;\n vec2 originCommon;\n vec2 sizeCommon;\n} grid;\n",uniformTypes:{colorDomain:"vec4<f32>",elevationDomain:"vec4<f32>",elevationRange:"vec2<f32>",originCommon:"vec2<f32>",sizeCommon:"vec2<f32>"}};class grid_cell_layer_GridCellLayer extends da{getShaders(){const e=super.getShaders();return e.modules.push(Oc),{...e,vs:"#version 300 es\n#define SHADER_NAME grid-cell-layer-vertex-shader\nin vec3 positions;\nin vec3 normals;\nin vec2 instancePositions;\nin float instanceElevationValues;\nin float instanceColorValues;\nin vec3 instancePickingColors;\nuniform sampler2D colorRange;\nout vec4 vColor;\nfloat interp(float value, vec2 domain, vec2 range) {\nfloat r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.);\nreturn mix(range.x, range.y, r);\n}\nvec4 interp(float value, vec2 domain, sampler2D range) {\nfloat r = (value - domain.x) / (domain.y - domain.x);\nreturn texture(range, vec2(r, 0.5));\n}\nvoid main(void) {\ngeometry.pickingColor = instancePickingColors;\nif (isnan(instanceColorValues) ||\ninstanceColorValues < grid.colorDomain.z ||\ninstanceColorValues > grid.colorDomain.w ||\ninstanceElevationValues < grid.elevationDomain.z ||\ninstanceElevationValues > grid.elevationDomain.w\n) {\ngl_Position = vec4(0.);\nreturn;\n}\nvec2 commonPosition = (instancePositions + (positions.xy + 1.0) / 2.0 * column.coverage) * grid.sizeCommon + grid.originCommon - project.commonOrigin.xy;\ngeometry.position = vec4(commonPosition, 0.0, 1.0);\ngeometry.normal = project_normal(normals);\nfloat elevation = 0.0;\nif (column.extruded) {\nelevation = interp(instanceElevationValues, grid.elevationDomain.xy, grid.elevationRange);\nelevation = project_size(elevation);\ngeometry.position.z = (positions.z + 1.0) / 2.0 * elevation;\n}\ngl_Position = project_common_position_to_clipspace(geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvColor = interp(instanceColorValues, grid.colorDomain.xy, colorRange);\nvColor.a *= layer.opacity;\nif (column.extruded) {\nvColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n"}}initializeState(){super.initializeState();const e=this.getAttributeManager();e.remove(["instanceElevations","instanceFillColors","instanceLineColors","instanceStrokeWidths"]),e.addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceColorValues:{size:1,type:"float32",accessor:"getColorValue"},instanceElevationValues:{size:1,type:"float32",accessor:"getElevationValue"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e,i=this.state.fillModel;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=fA(this.context.device,t.colorRange,t.colorScaleType);const e={colorRange:this.state.colorTexture};i.shaderInputs.setProps({grid:e})}else n.colorScaleType!==t.colorScaleType&&dA(this.state.colorTexture,t.colorScaleType)}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}_updateGeometry(){const e=new CubeGeometry;this.state.fillModel.setGeometry(e)}draw({uniforms:e}){const{cellOriginCommon:t,cellSizeCommon:n,elevationRange:i,elevationScale:r,extruded:o,coverage:s,colorDomain:a,elevationDomain:l}=this.props,A=this.props.colorCutoff||[-1/0,1/0],c=this.props.elevationCutoff||[-1/0,1/0],u=this.state.fillModel,h={colorDomain:[Math.max(a[0],A[0]),Math.min(a[1],A[1]),Math.max(a[0]-1,A[0]),Math.min(a[1]+1,A[1])],elevationDomain:[Math.max(l[0],c[0]),Math.min(l[1],c[1]),Math.max(l[0]-1,c[0]),Math.min(l[1]+1,c[1])],elevationRange:[i[0]*r,i[1]*r],originCommon:t,sizeCommon:n};u.shaderInputs.setProps({column:{extruded:o,coverage:s},grid:h}),u.draw(this.context.renderPass)}}grid_cell_layer_GridCellLayer.layerName="GridCellLayer";const Nc={name:"binOptions",vs:"layout(std140) uniform binOptionsUniforms {\n vec2 cellOriginCommon;\n vec2 cellSizeCommon;\n} binOptions;\n",uniformTypes:{cellOriginCommon:"vec2<f32>",cellSizeCommon:"vec2<f32>"}};function kc(){}const Uc={gpuAggregation:!0,colorDomain:null,colorRange:cA,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:kc,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScaleType:"linear",onSetElevationDomain:kc,cellSize:{type:"number",min:0,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:e=>e.position},gridAggregator:{type:"function",optional:!0,value:null},extruded:!1,material:!0};class grid_layer_GridLayer extends AA{getAggregatorType(){const{gpuAggregation:e,gridAggregator:t,getColorValue:n,getElevationValue:i}=this.props;return e&&(t||n||i)?(_e.A.warn("Features not supported by GPU aggregation, falling back to CPU")(),"cpu"):e&&WebGLAggregator.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){if("cpu"===e){const{gridAggregator:e,cellSize:t}=this.props;return new CPUAggregator({dimensions:2,getBin:{sources:["positions"],getValue:({positions:n},i,r)=>{if(e)return e(n,t);const o=this.state.aggregatorViewport.projectPosition(n),{cellSizeCommon:s,cellOriginCommon:a}=r;return[Math.floor((o[0]-a[0])/s[0]),Math.floor((o[1]-a[1])/s[1])]}},getValue:[{sources:["colorWeights"],getValue:({colorWeights:e})=>e},{sources:["elevationWeights"],getValue:({elevationWeights:e})=>e}]})}return new WebGLAggregator(this.context.device,{dimensions:2,channelCount:2,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[No,Nc],vs:"\n in vec3 positions;\n in vec3 positions64Low;\n in float colorWeights;\n in float elevationWeights;\n\n void getBin(out ivec2 binId) {\n vec3 positionCommon = project_position(positions, positions64Low);\n vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon);\n binId = ivec2(gridCoords);\n }\n void getValue(out vec2 value) {\n value = vec2(colorWeights, elevationWeights);\n }\n "})})}initializeState(){super.initializeState();this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},colorWeights:{size:1,accessor:"getColorWeight"},elevationWeights:{size:1,accessor:"getElevationWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:r}=e,{aggregator:o}=this.state;if(!r.dataChanged&&this.state.dataAsArray||!n.getColorValue&&!n.getElevationValue||(this.state.dataAsArray=Array.from(or(n.data).iterable)),t||r.dataChanged||n.cellSize!==i.cellSize||n.getColorValue!==i.getColorValue||n.getElevationValue!==i.getElevationValue||n.colorAggregation!==i.colorAggregation||n.elevationAggregation!==i.elevationAggregation){this._updateBinOptions();const{cellSizeCommon:e,cellOriginCommon:t,binIdRange:i,dataAsArray:r}=this.state;if(o.setProps({binIdRange:i,pointCount:this.getNumInstances(),operations:[n.colorAggregation,n.elevationAggregation],binOptions:{cellSizeCommon:e,cellOriginCommon:t},onUpdate:this._onAggregationUpdate.bind(this)}),r){const{getColorValue:e,getElevationValue:t}=this.props;o.setProps({customOperations:[e&&(t=>e(t.map(e=>r[e]),{indices:t,data:n.data})),t&&(e=>t(e.map(e=>r[e]),{indices:e,data:n.data}))]})}}return r.updateTriggersChanged&&r.updateTriggersChanged.getColorValue&&o.setNeedsUpdate(0),r.updateTriggersChanged&&r.updateTriggersChanged.getElevationValue&&o.setNeedsUpdate(1),t}_updateBinOptions(){const e=this.getBounds(),t=[1,1];let n=[0,0],i=[[0,1],[0,1]],r=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{cellSize:s}=this.props,{unitsPerMeter:a}=r.getDistanceScales(o);t[0]=a[0]*s,t[1]=a[1]*s;const l=r.projectFlat(o);n=[Math.floor(l[0]/t[0])*t[0],Math.floor(l[1]/t[1])*t[1]],o=r.unprojectFlat(n);const A=r.constructor;r=r.isGeospatial?new A({longitude:o[0],latitude:o[1],zoom:12}):new Zt.A({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(r.center[0]),Math.fround(r.center[1])],i=wA({dataBounds:e,getBinId:e=>{const i=r.projectFlat(e);return[Math.floor((i[0]-n[0])/t[0]),Math.floor((i[1]-n[1])/t[1])]}})}this.setState({cellSizeCommon:t,cellOriginCommon:n,binIdRange:i,aggregatorViewport:r})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}_onAggregationUpdate({channel:e}){const t=this.getCurrentLayer().props,{aggregator:n}=this.state;if(0===e){const e=n.getResult(0);this.setState({colors:new AttributeWithScale(e,n.binCount)}),t.onSetColorDomain(n.getResultDomain(0))}else if(1===e){const e=n.getResult(1);this.setState({elevations:new AttributeWithScale(e,n.binCount)}),t.onSetElevationDomain(n.getResultDomain(1))}}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{cellSizeCommon:e,cellOriginCommon:n,binIdRange:i}=this.state;t.setProps({binIdRange:i,binOptions:{cellSizeCommon:e,cellOriginCommon:n}});break;case"colorWeights":t.setNeedsUpdate(0);break;case"elevationWeights":t.setNeedsUpdate(1)}}renderLayers(){const{aggregator:e,cellOriginCommon:t,cellSizeCommon:n}=this.state,{elevationScale:i,colorRange:r,elevationRange:o,extruded:s,coverage:a,material:l,transitions:A,colorScaleType:c,lowerPercentile:u,upperPercentile:h,colorDomain:d,elevationScaleType:f,elevationLowerPercentile:p,elevationUpperPercentile:g,elevationDomain:m}=this.props,_=this.getSubLayerClass("cells",grid_cell_layer_GridCellLayer),b=e.getBins(),v=this.state.colors?.update({scaleType:c,lowerPercentile:u,upperPercentile:h}),y=this.state.elevations?.update({scaleType:f,lowerPercentile:p,upperPercentile:g});return v&&y?new _(this.getSubLayerProps({id:"cells"}),{data:{length:e.binCount,attributes:{getBin:b,getColorValue:v.attribute,getElevationValue:y.attribute}},dataComparator:(e,t)=>e.length===t.length,updateTriggers:{getBin:[b],getColorValue:[v.attribute],getElevationValue:[y.attribute]},cellOriginCommon:t,cellSizeCommon:n,elevationScale:i,colorRange:r,colorScaleType:c,elevationRange:o,extruded:s,coverage:a,material:l,colorDomain:v.domain||d||e.getResultDomain(0),elevationDomain:y.domain||m||e.getResultDomain(1),colorCutoff:v.cutoff,elevationCutoff:y.cutoff,transitions:A&&{getFillColor:A.getColorValue||A.getColorWeight,getElevation:A.getElevationValue||A.getElevationWeight},extensions:[]}):null}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const e=this.state.aggregator.getBin(n);let i;e&&(i={col:e.id[0],row:e.id[1],colorValue:e.value[0],elevationValue:e.value[1],count:e.count},e.pointIndices&&(i.pointIndices=e.pointIndices,i.points=Array.isArray(this.props.data)?e.pointIndices.map(e=>this.props.data[e]):[])),t.object=i}return t}}grid_layer_GridLayer.layerName="GridLayer",grid_layer_GridLayer.defaultProps=Uc;const Gc=grid_layer_GridLayer;const Vc=new Float32Array(12);function zc(e,t=2){let n=0;for(const i of e)for(let e=0;e<t;e++)Vc[n++]=i[e]||0;return Vc}class TextureTransform{device;model;sampler;currentIndex=0;samplerTextureMap=null;bindings=[];resources={};constructor(e,t){this.device=e,this.sampler=e.createSampler({addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",minFilter:"nearest",magFilter:"nearest",mipmapFilter:"nearest"}),this.model=new dr.K(this.device,{id:t.id||(0,ns.L)("texture-transform-model"),fs:t.fs||hr({input:t.targetTextureVarying,inputChannels:t.targetTextureChannels,output:"transform_output"}),vertexCount:t.vertexCount,...t}),this._initialize(t),Object.seal(this)}destroy(){this.model.destroy();for(const e of this.bindings)e.framebuffer?.destroy()}delete(){this.destroy()}run(e){const{framebuffer:t}=this.bindings[this.currentIndex],n=this.device.beginRenderPass({framebuffer:t,...e});this.model.draw(n),n.end(),this.device.submit()}getTargetTexture(){const{targetTexture:e}=this.bindings[this.currentIndex];return e}getFramebuffer(){return this.bindings[this.currentIndex].framebuffer}_initialize(e){this._updateBindings(e)}_updateBindings(e){this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e)}_updateBinding(e,{sourceBuffers:t,sourceTextures:n,targetTexture:i}){if(e||(e={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(e.sourceTextures,n),Object.assign(e.sourceBuffers,t),i){e.targetTexture=i;const{width:t,height:n}=i;e.framebuffer&&e.framebuffer.destroy(),e.framebuffer=this.device.createFramebuffer({id:"transform-framebuffer",width:t,height:n,colorAttachments:[i]}),e.framebuffer.resize({width:t,height:n})}return e}_setSourceTextureParameters(){const e=this.currentIndex,{sourceTextures:t}=this.bindings[e];for(const e in t)t[e].sampler=this.sampler}}const Hc="layout(std140) uniform triangleUniforms {\n float aggregationMode;\n vec2 colorDomain;\n float intensity;\n float threshold;\n} triangle;\n",Wc={name:"triangle",vs:Hc,fs:Hc,uniformTypes:{aggregationMode:"f32",colorDomain:"vec2<f32>",intensity:"f32",threshold:"f32"}};class TriangleLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME heatp-map-layer-vertex-shader\nuniform sampler2D maxTexture;\nin vec3 positions;\nin vec2 texCoords;\nout vec2 vTexCoords;\nout float vIntensityMin;\nout float vIntensityMax;\nvoid main(void) {\ngl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0));\nvTexCoords = texCoords;\nvec4 maxTexture = texture(maxTexture, vec2(0.5));\nfloat maxValue = triangle.aggregationMode < 0.5 ? maxTexture.r : maxTexture.g;\nfloat minValue = maxValue * triangle.threshold;\nif (triangle.colorDomain[1] > 0.) {\nmaxValue = triangle.colorDomain[1];\nminValue = triangle.colorDomain[0];\n}\nvIntensityMax = triangle.intensity / maxValue;\nvIntensityMin = triangle.intensity / minValue;\n}\n",fs:"#version 300 es\n#define SHADER_NAME triangle-layer-fragment-shader\nprecision highp float;\nuniform sampler2D weightsTexture;\nuniform sampler2D colorTexture;\nin vec2 vTexCoords;\nin float vIntensityMin;\nin float vIntensityMax;\nout vec4 fragColor;\nvec4 getLinearColor(float value) {\nfloat factor = clamp(value * vIntensityMax, 0., 1.);\nvec4 color = texture(colorTexture, vec2(factor, 0.5));\ncolor.a *= min(value * vIntensityMin, 1.0);\nreturn color;\n}\nvoid main(void) {\nvec4 weights = texture(weightsTexture, vTexCoords);\nfloat weight = weights.r;\nif (triangle.aggregationMode > 0.5) {\nweight /= max(1.0, weights.a);\n}\nif (weight <= 0.) {\ndiscard;\n}\nvec4 linearColor = getLinearColor(weight);\nlinearColor.a *= layer.opacity;\nfragColor = linearColor;\n}\n",modules:[No,Wc]})}initializeState({device:e}){this.setState({model:this._getModel(e)})}_getModel(e){const{vertexCount:t,data:n}=this.props;return new dr.K(e,{...this.getShaders(),id:this.props.id,attributes:n.attributes,bufferLayout:[{name:"positions",format:"float32x3"},{name:"texCoords",format:"float32x2"}],topology:"triangle-strip",vertexCount:t})}draw(){const{model:e}=this.state,{aggregationMode:t,colorDomain:n,intensity:i,threshold:r,colorTexture:o,maxTexture:s,weightsTexture:a}=this.props,l={aggregationMode:t,colorDomain:n,intensity:i,threshold:r,colorTexture:o,maxTexture:s,weightsTexture:a};e.shaderInputs.setProps({triangle:l}),e.draw(this.context.renderPass)}}TriangleLayer.layerName="TriangleLayer";const jc=TriangleLayer;function Qc(e,t){const n={};for(const i in e)t.includes(i)||(n[i]=e[i]);return n}class aggregation_layer_AggregationLayer extends fo{initializeAggregationLayer(e){super.initializeState(this.context),this.setState({ignoreProps:Qc(this.constructor._propTypes,e.data.props),dimensions:e})}updateState(e){super.updateState(e);const{changeFlags:t}=e;if(t.extensionsChanged){const e=this.getShaders({});e&&e.defines&&(e.defines.NON_INSTANCED_MODEL=1),this.updateShaders(e)}this._updateAttributes()}updateAttributes(e){this.setState({changedAttributes:e})}getAttributes(){return this.getAttributeManager().getAttributes()}getModuleSettings(){const{viewport:e,mousePosition:t,device:n}=this.context;return Object.assign(Object.create(this.props),{viewport:e,mousePosition:t,picking:{isActive:0},devicePixelRatio:n.canvasContext.cssToDeviceRatio()})}updateShaders(e){}isAggregationDirty(e,t={}){const{props:n,oldProps:i,changeFlags:r}=e,{compareAll:o=!1,dimension:s}=t,{ignoreProps:a}=this.state,{props:l,accessors:A=[]}=s,{updateTriggersChanged:c}=r;if(r.dataChanged)return!0;if(c){if(c.all)return!0;for(const e of A)if(c[e])return!0}if(o)return!!r.extensionsChanged||Or({oldProps:i,newProps:n,ignoreProps:a,propTypes:this.constructor._propTypes});for(const e of l)if(n[e]!==i[e])return!0;return!1}isAttributeChanged(e){const{changedAttributes:t}=this.state;return e?t&&void 0!==t[e]:!function(e){let t=!0;for(const n in e){t=!1;break}return t}(t)}_getAttributeManager(){return new AttributeManager(this.context.device,{id:this.props.id,stats:this.context.stats})}}aggregation_layer_AggregationLayer.layerName="AggregationLayer";const Xc=aggregation_layer_AggregationLayer;const Kc="#version 300 es\nin vec3 positions;\nin vec3 positions64Low;\nin float weights;\nout vec4 weightsTexture;\nvoid main()\n{\nweightsTexture = vec4(weights * weight.weightsScale, 0., 0., 1.);\nfloat radiusTexels = project_pixel_size(weight.radiusPixels) * weight.textureWidth / (weight.commonBounds.z - weight.commonBounds.x);\ngl_PointSize = radiusTexels * 2.;\nvec3 commonPosition = project_position(positions, positions64Low);\ngl_Position.xy = (commonPosition.xy - weight.commonBounds.xy) / (weight.commonBounds.zw - weight.commonBounds.xy) ;\ngl_Position.xy = (gl_Position.xy * 2.) - (1.);\ngl_Position.w = 1.0;\n}\n",Jc="#version 300 es\nin vec4 weightsTexture;\nout vec4 fragColor;\nfloat gaussianKDE(float u){\nreturn pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666);\n}\nvoid main()\n{\nfloat dist = length(gl_PointCoord - vec2(0.5, 0.5));\nif (dist > 0.5) {\ndiscard;\n}\nfragColor = weightsTexture * gaussianKDE(2. * dist);\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",qc={name:"weight",vs:"layout(std140) uniform weightUniforms {\n vec4 commonBounds;\n float radiusPixels;\n float textureWidth;\n float weightsScale;\n} weight;\n",uniformTypes:{commonBounds:"vec4<f32>",radiusPixels:"f32",textureWidth:"f32",weightsScale:"f32"}},Yc={name:"maxWeight",vs:"layout(std140) uniform maxWeightUniforms {\n float textureSize;\n} maxWeight;\n",uniformTypes:{textureSize:"f32"}},Zc={format:"rgba8unorm",dimension:"2d",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},$c=[0,0],eu={SUM:0,MEAN:1},tu={getPosition:{type:"accessor",value:e=>e.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:cA,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},nu=["float32-renderable-webgl","texture-blend-float-webgl"],iu={data:{props:["radiusPixels"]}};class HeatmapLayer extends Xc{getShaders(e){let t=[No];return e.modules&&(t=[...t,...e.modules]),super.getShaders({...e,modules:t})}initializeState(){super.initializeAggregationLayer(iu),this.setState({colorDomain:$c}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){const{props:t,oldProps:n}=e,i=this._getChangeFlags(e);if((i.dataChanged||i.viewportChanged)&&(i.boundsChanged=this._updateBounds(i.dataChanged),this._updateTextureRenderingBounds()),i.dataChanged||i.boundsChanged){if(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0}),i.dataChanged){const e=this.getShaders({vs:Kc,fs:Jc});this._createWeightsTransform(e)}}else i.viewportZoomChanged&&this._debouncedUpdateWeightmap();t.colorRange!==n.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){const{weightsTexture:e,triPositionBuffer:t,triTexCoordBuffer:n,maxWeightsTexture:i,colorTexture:r,colorDomain:o}=this.state,{updateTriggers:s,intensity:a,threshold:l,aggregation:A}=this.props;return new(this.getSubLayerClass("triangle",jc))(this.getSubLayerProps({id:"triangle-layer",updateTriggers:s}),{coordinateSystem:"default",data:{attributes:{positions:t,texCoords:n}},vertexCount:4,maxTexture:i,colorTexture:r,aggregationMode:eu[A]||0,weightsTexture:e,intensity:a,threshold:l,colorDomain:o})}finalizeState(e){super.finalizeState(e);const{weightsTransform:t,weightsTexture:n,maxWeightTransform:i,maxWeightsTexture:r,triPositionBuffer:o,triTexCoordBuffer:s,colorTexture:a,updateTimer:l}=this.state;t?.destroy(),n?.destroy(),i?.destroy(),r?.destroy(),o?.destroy(),s?.destroy(),a?.destroy(),l&&clearTimeout(l)}_getAttributeManager(){return new AttributeManager(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){const t={},{dimensions:n}=this.state;t.dataChanged=this.isAttributeChanged()?"attribute changed":this.isAggregationDirty(e,{compareAll:!0,dimension:n.data})&&"aggregation is dirty",t.viewportChanged=e.changeFlags.viewportChanged;const{zoom:i}=this.state;return e.context.viewport&&e.context.viewport.zoom===i||(t.viewportZoomChanged=!0),t}_createTextures(){const{textureSize:e,format:t}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...Zc,width:e,height:e,format:t}),maxWeightsTexture:this.context.device.createTexture({...Zc,width:1,height:1,format:t})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){const{device:e}=this.context,{weightsTextureSize:t}=this.props,n=Math.min(t,e.limits.maxTextureDimension2D),i=nu.every(t=>e.features.has(t)),r=i?"rgba32float":"rgba8unorm",o=i?1:1/255;this.setState({textureSize:n,format:r,weightsScale:o}),i||_e.A.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:t}=this.state;const{weightsTexture:n}=this.state,i=this.getAttributeManager();t?.destroy(),t=new TextureTransform(this.context.device,{id:`${this.id}-weights-transform`,...e,bufferLayout:i.getBufferLayouts(),vertexCount:1,targetTexture:n,parameters:{depthWriteEnabled:!1,blend:!0,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",modules:[...e.modules,qc]}),this.setState({weightsTransform:t})}_setupResources(){this._createTextures();const{device:e}=this.context,{textureSize:t,weightsTexture:n,maxWeightsTexture:i}=this.state,r=this.getShaders({vs:Kc,fs:Jc});this._createWeightsTransform(r);const o=this.getShaders({vs:"#version 300 es\nuniform sampler2D inTexture;\nout vec4 outTexture;\nvoid main()\n{\nint yIndex = gl_VertexID / int(maxWeight.textureSize);\nint xIndex = gl_VertexID - (yIndex * int(maxWeight.textureSize));\nvec2 uv = (0.5 + vec2(float(xIndex), float(yIndex))) / maxWeight.textureSize;\noutTexture = texture(inTexture, uv);\ngl_Position = vec4(0.0, 0.0, 0.0, 1.0);\ngl_PointSize = 1.0;\n}\n",fs:"#version 300 es\nin vec4 outTexture;\nout vec4 fragColor;\nvoid main() {\nfragColor = outTexture;\nfragColor.g = outTexture.r / max(1.0, outTexture.a);\n}\n",modules:[Yc]}),s=new TextureTransform(e,{id:`${this.id}-max-weights-transform`,targetTexture:i,...o,vertexCount:t*t,topology:"point-list",parameters:{depthWriteEnabled:!1,blend:!0,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}}),a={inTexture:n,textureSize:t};s.model.shaderInputs.setProps({maxWeight:a}),this.setState({weightsTexture:n,maxWeightsTexture:i,maxWeightTransform:s,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:Kc,fs:Jc,...e})}_updateMaxWeightValue(){const{maxWeightTransform:e}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){const{viewport:t}=this.context,n=[t.unproject([0,0]),t.unproject([t.width,0]),t.unproject([0,t.height]),t.unproject([t.width,t.height])].map(e=>e.map(Math.fround)),i=function(e){const t=e.map(e=>e[0]),n=e.map(e=>e[1]),i=Math.min.apply(null,t),r=Math.max.apply(null,t);return[i,Math.min.apply(null,n),r,Math.max.apply(null,n)]}(n),r={visibleWorldBounds:i,viewportCorners:n};let o=!1;if(e||!this.state.worldBounds||(s=this.state.worldBounds,!((a=i)[0]>=s[0]&&a[2]<=s[2]&&a[1]>=s[1]&&a[3]<=s[3]))){const e=this._worldToCommonBounds(i),t=this._commonToWorldBounds(e);"lnglat"===this.props.coordinateSystem&&(t[1]=Math.max(t[1],-85.051129),t[3]=Math.min(t[3],85.051129),t[0]=Math.max(t[0],-360),t[2]=Math.min(t[2],360));const n=this._worldToCommonBounds(t);r.worldBounds=t,r.normalizedCommonBounds=n,o=!0}var s,a;return this.setState(r),o}_updateTextureRenderingBounds(){const{triPositionBuffer:e,triTexCoordBuffer:t,normalizedCommonBounds:n,viewportCorners:i}=this.state,{viewport:r}=this.context;e.write(zc(i,3));const o=i.map(e=>function(e,t){const[n,i,r,o]=t;return[(e[0]-n)/(r-n),(e[1]-i)/(o-i)]}(r.projectPosition(e),n));t.write(zc(o,2))}_updateColorTexture(e){const{colorRange:t}=e.props;let{colorTexture:n}=this.state;const i=uA(t,!1,Uint8Array);n?.destroy(),n=this.context.device.createTexture({...Zc,data:i,width:t.length,height:1}),this.setState({colorTexture:n})}_updateWeightmap(){const{radiusPixels:e,colorDomain:t,aggregation:n}=this.props,{worldBounds:i,textureSize:r,weightsScale:o,weightsTexture:s}=this.state,a=this.state.weightsTransform;this.state.isWeightMapDirty=!1;const l=this._worldToCommonBounds(i,{useLayerCoordinateSystem:!0});if(t&&"SUM"===n){const{viewport:e}=this.context,n=e.distanceScales.metersPerUnit[2]*(l[2]-l[0])/r;this.state.colorDomain=[t[0]*n*o,t[1]*n*o]}else this.state.colorDomain=t||$c;const A=this.getAttributeManager().getAttributes(),c=this.getModuleSettings();this._setModelAttributes(a.model,A),a.model.setVertexCount(this.getNumInstances());const u={radiusPixels:e,commonBounds:l,textureWidth:r,weightsScale:o,weightsTexture:s},{viewport:h,devicePixelRatio:d,coordinateSystem:f,coordinateOrigin:p}=c,{modelMatrix:g}=this.props;a.model.shaderInputs.setProps({project:{viewport:h,devicePixelRatio:d,modelMatrix:g,coordinateSystem:f,coordinateOrigin:p},weight:u}),a.run({parameters:{viewport:[0,0,r,r]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:t}=this.state;const{debounceTimeout:n}=this.props;e?(t=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(t),t=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),n)),this.setState({updateTimer:t})}_worldToCommonBounds(e,t={}){const{useLayerCoordinateSystem:n=!1}=t,[i,r,o,s]=e,{viewport:a}=this.context,{textureSize:l}=this.state,{coordinateSystem:A}=this.props,c=n&&("lnglat-offsets"===A||"meter-offsets"===A),u=c?a.projectPosition(this.props.coordinateOrigin):[0,0],h=2*l/a.scale;let d,f;return n&&!c?(d=this.projectPosition([i,r,0]),f=this.projectPosition([o,s,0])):(d=a.projectPosition([i,r,0]),f=a.projectPosition([o,s,0])),function(e,t,n){const[i,r,o,s]=e,a=o-i,l=s-r;let A=a,c=l;a/l<t/n?A=t/n*l:c=n/t*a,A<t&&(A=t,c=n);const u=(o+i)/2,h=(s+r)/2;return[u-A/2,h-c/2,u+A/2,h+c/2]}([d[0]-u[0],d[1]-u[1],f[0]-u[0],f[1]-u[1]],h,h)}_commonToWorldBounds(e){const[t,n,i,r]=e,{viewport:o}=this.context,s=o.unprojectPosition([t,n]),a=o.unprojectPosition([i,r]);return s.slice(0,2).concat(a.slice(0,2))}}HeatmapLayer.layerName="HeatmapLayer",HeatmapLayer.defaultProps=tu;const ru=HeatmapLayer,ou={...Al.defaultProps};class GeoCellLayer extends fo{indexToBounds(){return null}renderLayers(){const{elevationScale:e,extruded:t,wireframe:n,filled:i,stroked:r,lineWidthUnits:o,lineWidthScale:s,lineWidthMinPixels:a,lineWidthMaxPixels:l,lineJointRounded:A,lineMiterLimit:c,lineDashJustified:u,getElevation:h,getFillColor:d,getLineColor:f,getLineWidth:p}=this.props,{updateTriggers:g,material:m,transitions:_}=this.props,b=this.getSubLayerClass("cell",Al),{updateTriggers:v,...y}=this.indexToBounds()||{};return new b({filled:i,wireframe:n,extruded:t,elevationScale:e,stroked:r,lineWidthUnits:o,lineWidthScale:s,lineWidthMinPixels:a,lineWidthMaxPixels:l,lineJointRounded:A,lineMiterLimit:c,lineDashJustified:u,material:m,transitions:_,getElevation:h,getFillColor:d,getLineColor:f,getLineWidth:p},this.getSubLayerProps({id:"cell",updateTriggers:g&&{...v,getElevation:g.getElevation,getFillColor:g.getFillColor,getLineColor:g.getLineColor,getLineWidth:g.getLineWidth}}),y)}}GeoCellLayer.layerName="GeoCellLayer",GeoCellLayer.defaultProps=ou;const su=GeoCellLayer;var au=Object.defineProperty,lu=(e,t)=>{for(var n in t)au(e,n,{get:t[n],enumerable:!0})},Au={};lu(Au,{ARRAY_TYPE:()=>uu,EPSILON:()=>cu,RANDOM:()=>hu,equals:()=>gu,setMatrixArrayType:()=>du,toRadian:()=>pu});var cu=1e-6,uu="undefined"!=typeof Float32Array?Float32Array:Array,hu=Math.random;function du(e){uu=e}var fu=Math.PI/180;function pu(e){return e*fu}function gu(e,t){return Math.abs(e-t)<=cu*Math.max(1,Math.abs(e),Math.abs(t))}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var mu={};function _u(){var e=new uu(4);return uu!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function bu(e){var t=new uu(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function vu(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function yu(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function Cu(e,t,n,i){var r=new uu(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r}function wu(e,t,n,i,r){return e[0]=t,e[1]=n,e[2]=i,e[3]=r,e}function Eu(e,t){if(e===t){var n=t[1];e[1]=t[2],e[2]=n}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function xu(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],s=n*o-r*i;return s?(s=1/s,e[0]=o*s,e[1]=-i*s,e[2]=-r*s,e[3]=n*s,e):null}function Tu(e,t){var n=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=n,e}function Su(e){return e[0]*e[3]-e[2]*e[1]}function Pu(e,t,n){var i=t[0],r=t[1],o=t[2],s=t[3],a=n[0],l=n[1],A=n[2],c=n[3];return e[0]=i*a+o*l,e[1]=r*a+s*l,e[2]=i*A+o*c,e[3]=r*A+s*c,e}function Mu(e,t,n){var i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=i*l+o*a,e[1]=r*l+s*a,e[2]=i*-a+o*l,e[3]=r*-a+s*l,e}function Ru(e,t,n){var i=t[0],r=t[1],o=t[2],s=t[3],a=n[0],l=n[1];return e[0]=i*a,e[1]=r*a,e[2]=o*l,e[3]=s*l,e}function Bu(e,t){var n=Math.sin(t),i=Math.cos(t);return e[0]=i,e[1]=n,e[2]=-n,e[3]=i,e}function Iu(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function Lu(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Fu(e){return Math.hypot(e[0],e[1],e[2],e[3])}function Du(e,t,n,i){return e[2]=i[2]/i[0],n[0]=i[0],n[1]=i[1],n[3]=i[3]-e[2]*n[1],[e,t,n]}function Ou(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function Nu(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e}function ku(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Uu(e,t){var n=e[0],i=e[1],r=e[2],o=e[3],s=t[0],a=t[1],l=t[2],A=t[3];return Math.abs(n-s)<=cu*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-a)<=cu*Math.max(1,Math.abs(i),Math.abs(a))&&Math.abs(r-l)<=cu*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(o-A)<=cu*Math.max(1,Math.abs(o),Math.abs(A))}function Gu(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function Vu(e,t,n,i){return e[0]=t[0]+n[0]*i,e[1]=t[1]+n[1]*i,e[2]=t[2]+n[2]*i,e[3]=t[3]+n[3]*i,e}lu(mu,{LDU:()=>Du,add:()=>Ou,adjoint:()=>Tu,clone:()=>bu,copy:()=>vu,create:()=>_u,determinant:()=>Su,equals:()=>Uu,exactEquals:()=>ku,frob:()=>Fu,fromRotation:()=>Bu,fromScaling:()=>Iu,fromValues:()=>Cu,identity:()=>yu,invert:()=>xu,mul:()=>zu,multiply:()=>Pu,multiplyScalar:()=>Gu,multiplyScalarAndAdd:()=>Vu,rotate:()=>Mu,scale:()=>Ru,set:()=>wu,str:()=>Lu,sub:()=>Hu,subtract:()=>Nu,transpose:()=>Eu});var zu=Pu,Hu=Nu;var Wu={};lu(Wu,{add:()=>_d,calculateW:()=>qh,clone:()=>fd,conjugate:()=>id,copy:()=>gd,create:()=>Vh,dot:()=>yd,equals:()=>Md,exactEquals:()=>Pd,exp:()=>Yh,fromEuler:()=>od,fromMat3:()=>rd,fromValues:()=>pd,getAngle:()=>jh,getAxisAngle:()=>Wh,identity:()=>zh,invert:()=>nd,len:()=>Ed,length:()=>wd,lerp:()=>Cd,ln:()=>Zh,mul:()=>bd,multiply:()=>Qh,normalize:()=>Sd,pow:()=>$h,random:()=>td,rotateX:()=>Xh,rotateY:()=>Kh,rotateZ:()=>Jh,rotationTo:()=>Rd,scale:()=>vd,set:()=>md,setAxes:()=>Id,setAxisAngle:()=>Hh,slerp:()=>ed,sqlerp:()=>Bd,sqrLen:()=>Td,squaredLength:()=>xd,str:()=>sd});var ju={};function Qu(){var e=new uu(3);return uu!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Xu(e){var t=new uu(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ku(e){var t=e[0],n=e[1],i=e[2];return Math.hypot(t,n,i)}function Ju(e,t,n){var i=new uu(3);return i[0]=e,i[1]=t,i[2]=n,i}function qu(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Yu(e,t,n,i){return e[0]=t,e[1]=n,e[2]=i,e}function Zu(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function $u(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function eh(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function th(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function nh(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ih(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function rh(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function oh(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function sh(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function ah(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function lh(e,t,n,i){return e[0]=t[0]+n[0]*i,e[1]=t[1]+n[1]*i,e[2]=t[2]+n[2]*i,e}function Ah(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return Math.hypot(n,i,r)}function ch(e,t){var n=t[0]-e[0],i=t[1]-e[1],r=t[2]-e[2];return n*n+i*i+r*r}function uh(e){var t=e[0],n=e[1],i=e[2];return t*t+n*n+i*i}function hh(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function dh(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function fh(e,t){var n=t[0],i=t[1],r=t[2],o=n*n+i*i+r*r;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function ph(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function gh(e,t,n){var i=t[0],r=t[1],o=t[2],s=n[0],a=n[1],l=n[2];return e[0]=r*l-o*a,e[1]=o*s-i*l,e[2]=i*a-r*s,e}function mh(e,t,n,i){var r=t[0],o=t[1],s=t[2];return e[0]=r+i*(n[0]-r),e[1]=o+i*(n[1]-o),e[2]=s+i*(n[2]-s),e}function _h(e,t,n,i,r,o){var s=o*o,a=s*(2*o-3)+1,l=s*(o-2)+o,A=s*(o-1),c=s*(3-2*o);return e[0]=t[0]*a+n[0]*l+i[0]*A+r[0]*c,e[1]=t[1]*a+n[1]*l+i[1]*A+r[1]*c,e[2]=t[2]*a+n[2]*l+i[2]*A+r[2]*c,e}function bh(e,t,n,i,r,o){var s=1-o,a=s*s,l=o*o,A=a*s,c=3*o*a,u=3*l*s,h=l*o;return e[0]=t[0]*A+n[0]*c+i[0]*u+r[0]*h,e[1]=t[1]*A+n[1]*c+i[1]*u+r[1]*h,e[2]=t[2]*A+n[2]*c+i[2]*u+r[2]*h,e}function vh(e,t){t=t||1;var n=2*hu()*Math.PI,i=2*hu()-1,r=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(n)*r,e[1]=Math.sin(n)*r,e[2]=i*t,e}function yh(e,t,n){var i=t[0],r=t[1],o=t[2],s=n[3]*i+n[7]*r+n[11]*o+n[15];return s=s||1,e[0]=(n[0]*i+n[4]*r+n[8]*o+n[12])/s,e[1]=(n[1]*i+n[5]*r+n[9]*o+n[13])/s,e[2]=(n[2]*i+n[6]*r+n[10]*o+n[14])/s,e}function Ch(e,t,n){var i=t[0],r=t[1],o=t[2];return e[0]=i*n[0]+r*n[3]+o*n[6],e[1]=i*n[1]+r*n[4]+o*n[7],e[2]=i*n[2]+r*n[5]+o*n[8],e}function wh(e,t,n){var i=n[0],r=n[1],o=n[2],s=n[3],a=t[0],l=t[1],A=t[2],c=r*A-o*l,u=o*a-i*A,h=i*l-r*a,d=r*h-o*u,f=o*c-i*h,p=i*u-r*c,g=2*s;return c*=g,u*=g,h*=g,d*=2,f*=2,p*=2,e[0]=a+c+d,e[1]=l+u+f,e[2]=A+h+p,e}function Eh(e,t,n,i){var r=[],o=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],o[0]=r[0],o[1]=r[1]*Math.cos(i)-r[2]*Math.sin(i),o[2]=r[1]*Math.sin(i)+r[2]*Math.cos(i),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function xh(e,t,n,i){var r=[],o=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],o[0]=r[2]*Math.sin(i)+r[0]*Math.cos(i),o[1]=r[1],o[2]=r[2]*Math.cos(i)-r[0]*Math.sin(i),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Th(e,t,n,i){var r=[],o=[];return r[0]=t[0]-n[0],r[1]=t[1]-n[1],r[2]=t[2]-n[2],o[0]=r[0]*Math.cos(i)-r[1]*Math.sin(i),o[1]=r[0]*Math.sin(i)+r[1]*Math.cos(i),o[2]=r[2],e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Sh(e,t){var n=e[0],i=e[1],r=e[2],o=t[0],s=t[1],a=t[2],l=Math.sqrt(n*n+i*i+r*r)*Math.sqrt(o*o+s*s+a*a),A=l&&ph(e,t)/l;return Math.acos(Math.min(Math.max(A,-1),1))}function Ph(e){return e[0]=0,e[1]=0,e[2]=0,e}function Mh(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Rh(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Bh(e,t){var n=e[0],i=e[1],r=e[2],o=t[0],s=t[1],a=t[2];return Math.abs(n-o)<=cu*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-s)<=cu*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(r-a)<=cu*Math.max(1,Math.abs(r),Math.abs(a))}lu(ju,{add:()=>Zu,angle:()=>Sh,bezier:()=>bh,ceil:()=>nh,clone:()=>Xu,copy:()=>qu,create:()=>Qu,cross:()=>gh,dist:()=>Oh,distance:()=>Ah,div:()=>Dh,divide:()=>th,dot:()=>ph,equals:()=>Bh,exactEquals:()=>Rh,floor:()=>ih,forEach:()=>Gh,fromValues:()=>Ju,hermite:()=>_h,inverse:()=>dh,len:()=>kh,length:()=>Ku,lerp:()=>mh,max:()=>oh,min:()=>rh,mul:()=>Fh,multiply:()=>eh,negate:()=>hh,normalize:()=>fh,random:()=>vh,rotateX:()=>Eh,rotateY:()=>xh,rotateZ:()=>Th,round:()=>sh,scale:()=>ah,scaleAndAdd:()=>lh,set:()=>Yu,sqrDist:()=>Nh,sqrLen:()=>Uh,squaredDistance:()=>ch,squaredLength:()=>uh,str:()=>Mh,sub:()=>Lh,subtract:()=>$u,transformMat3:()=>Ch,transformMat4:()=>yh,transformQuat:()=>wh,zero:()=>Ph});var Ih,Lh=$u,Fh=eh,Dh=th,Oh=Ah,Nh=ch,kh=Ku,Uh=uh,Gh=(Ih=Qu(),function(e,t,n,i,r,o){var s,a;for(t||(t=3),n||(n=0),a=i?Math.min(i*t+n,e.length):e.length,s=n;s<a;s+=t)Ih[0]=e[s],Ih[1]=e[s+1],Ih[2]=e[s+2],r(Ih,Ih,o),e[s]=Ih[0],e[s+1]=Ih[1],e[s+2]=Ih[2];return e});!function(){var e,t=(e=new uu(4),uu!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();function Vh(){var e=new uu(4);return uu!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function zh(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Hh(e,t,n){n*=.5;var i=Math.sin(n);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(n),e}function Wh(e,t){var n=2*Math.acos(t[3]),i=Math.sin(n/2);return i>cu?(e[0]=t[0]/i,e[1]=t[1]/i,e[2]=t[2]/i):(e[0]=1,e[1]=0,e[2]=0),n}function jh(e,t){var n=yd(e,t);return Math.acos(2*n*n-1)}function Qh(e,t,n){var i=t[0],r=t[1],o=t[2],s=t[3],a=n[0],l=n[1],A=n[2],c=n[3];return e[0]=i*c+s*a+r*A-o*l,e[1]=r*c+s*l+o*a-i*A,e[2]=o*c+s*A+i*l-r*a,e[3]=s*c-i*a-r*l-o*A,e}function Xh(e,t,n){n*=.5;var i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=i*l+s*a,e[1]=r*l+o*a,e[2]=o*l-r*a,e[3]=s*l-i*a,e}function Kh(e,t,n){n*=.5;var i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=i*l-o*a,e[1]=r*l+s*a,e[2]=o*l+i*a,e[3]=s*l-r*a,e}function Jh(e,t,n){n*=.5;var i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=i*l+r*a,e[1]=r*l-i*a,e[2]=o*l+s*a,e[3]=s*l-o*a,e}function qh(e,t){var n=t[0],i=t[1],r=t[2];return e[0]=n,e[1]=i,e[2]=r,e[3]=Math.sqrt(Math.abs(1-n*n-i*i-r*r)),e}function Yh(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],s=Math.sqrt(n*n+i*i+r*r),a=Math.exp(o),l=s>0?a*Math.sin(s)/s:0;return e[0]=n*l,e[1]=i*l,e[2]=r*l,e[3]=a*Math.cos(s),e}function Zh(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],s=Math.sqrt(n*n+i*i+r*r),a=s>0?Math.atan2(s,o)/s:0;return e[0]=n*a,e[1]=i*a,e[2]=r*a,e[3]=.5*Math.log(n*n+i*i+r*r+o*o),e}function $h(e,t,n){return Zh(e,t),vd(e,e,n),Yh(e,e),e}function ed(e,t,n,i){var r,o,s,a,l,A=t[0],c=t[1],u=t[2],h=t[3],d=n[0],f=n[1],p=n[2],g=n[3];return(o=A*d+c*f+u*p+h*g)<0&&(o=-o,d=-d,f=-f,p=-p,g=-g),1-o>cu?(r=Math.acos(o),s=Math.sin(r),a=Math.sin((1-i)*r)/s,l=Math.sin(i*r)/s):(a=1-i,l=i),e[0]=a*A+l*d,e[1]=a*c+l*f,e[2]=a*u+l*p,e[3]=a*h+l*g,e}function td(e){var t=hu(),n=hu(),i=hu(),r=Math.sqrt(1-t),o=Math.sqrt(t);return e[0]=r*Math.sin(2*Math.PI*n),e[1]=r*Math.cos(2*Math.PI*n),e[2]=o*Math.sin(2*Math.PI*i),e[3]=o*Math.cos(2*Math.PI*i),e}function nd(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],s=n*n+i*i+r*r+o*o,a=s?1/s:0;return e[0]=-n*a,e[1]=-i*a,e[2]=-r*a,e[3]=o*a,e}function id(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function rd(e,t){var n,i=t[0]+t[4]+t[8];if(i>0)n=Math.sqrt(i+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);var o=(r+1)%3,s=(r+2)%3;n=Math.sqrt(t[3*r+r]-t[3*o+o]-t[3*s+s]+1),e[r]=.5*n,n=.5/n,e[3]=(t[3*o+s]-t[3*s+o])*n,e[o]=(t[3*o+r]+t[3*r+o])*n,e[s]=(t[3*s+r]+t[3*r+s])*n}return e}function od(e,t,n,i){var r=.5*Math.PI/180;t*=r,n*=r,i*=r;var o=Math.sin(t),s=Math.cos(t),a=Math.sin(n),l=Math.cos(n),A=Math.sin(i),c=Math.cos(i);return e[0]=o*l*c-s*a*A,e[1]=s*a*c+o*l*A,e[2]=s*l*A-o*a*c,e[3]=s*l*c+o*a*A,e}function sd(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var ad,ld,Ad,cd,ud,hd,dd,fd=function(e){var t=new uu(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},pd=function(e,t,n,i){var r=new uu(4);return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r},gd=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},md=function(e,t,n,i,r){return e[0]=t,e[1]=n,e[2]=i,e[3]=r,e},_d=function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e},bd=Qh,vd=function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e},yd=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]},Cd=function(e,t,n,i){var r=t[0],o=t[1],s=t[2],a=t[3];return e[0]=r+i*(n[0]-r),e[1]=o+i*(n[1]-o),e[2]=s+i*(n[2]-s),e[3]=a+i*(n[3]-a),e},wd=function(e){var t=e[0],n=e[1],i=e[2],r=e[3];return Math.hypot(t,n,i,r)},Ed=wd,xd=function(e){var t=e[0],n=e[1],i=e[2],r=e[3];return t*t+n*n+i*i+r*r},Td=xd,Sd=function(e,t){var n=t[0],i=t[1],r=t[2],o=t[3],s=n*n+i*i+r*r+o*o;return s>0&&(s=1/Math.sqrt(s)),e[0]=n*s,e[1]=i*s,e[2]=r*s,e[3]=o*s,e},Pd=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},Md=function(e,t){var n=e[0],i=e[1],r=e[2],o=e[3],s=t[0],a=t[1],l=t[2],A=t[3];return Math.abs(n-s)<=cu*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-a)<=cu*Math.max(1,Math.abs(i),Math.abs(a))&&Math.abs(r-l)<=cu*Math.max(1,Math.abs(r),Math.abs(l))&&Math.abs(o-A)<=cu*Math.max(1,Math.abs(o),Math.abs(A))},Rd=(ad=Qu(),ld=Ju(1,0,0),Ad=Ju(0,1,0),function(e,t,n){var i=ph(t,n);return i<-.999999?(gh(ad,ld,t),kh(ad)<1e-6&&gh(ad,Ad,t),fh(ad,ad),Hh(e,ad,Math.PI),e):i>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(gh(ad,t,n),e[0]=ad[0],e[1]=ad[1],e[2]=ad[2],e[3]=1+i,Sd(e,e))}),Bd=(cd=Vh(),ud=Vh(),function(e,t,n,i,r,o){return ed(cd,t,r,o),ed(ud,n,i,o),ed(e,cd,ud,2*o*(1-o)),e}),Id=(hd=new uu(9),uu!=Float32Array&&(hd[1]=0,hd[2]=0,hd[3]=0,hd[5]=0,hd[6]=0,hd[7]=0),hd[0]=1,hd[4]=1,hd[8]=1,dd=hd,function(e,t,n,i){return dd[0]=n[0],dd[3]=n[1],dd[6]=n[2],dd[1]=i[0],dd[4]=i[1],dd[7]=i[2],dd[2]=-t[0],dd[5]=-t[1],dd[8]=-t[2],Sd(e,rd(e,dd))}),Ld={};function Fd(){var e=new uu(2);return uu!=Float32Array&&(e[0]=0,e[1]=0),e}function Dd(e){var t=new uu(2);return t[0]=e[0],t[1]=e[1],t}function Od(e,t){var n=new uu(2);return n[0]=e,n[1]=t,n}function Nd(e,t){return e[0]=t[0],e[1]=t[1],e}function kd(e,t,n){return e[0]=t,e[1]=n,e}function Ud(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function Gd(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Vd(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e}function zd(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e}function Hd(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function Wd(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function jd(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e}function Qd(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}function Xd(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function Kd(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Jd(e,t,n,i){return e[0]=t[0]+n[0]*i,e[1]=t[1]+n[1]*i,e}function qd(e,t){var n=t[0]-e[0],i=t[1]-e[1];return Math.hypot(n,i)}function Yd(e,t){var n=t[0]-e[0],i=t[1]-e[1];return n*n+i*i}function Zd(e){var t=e[0],n=e[1];return Math.hypot(t,n)}function $d(e){var t=e[0],n=e[1];return t*t+n*n}function ef(e,t){return e[0]=-t[0],e[1]=-t[1],e}function tf(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function nf(e,t){var n=t[0],i=t[1],r=n*n+i*i;return r>0&&(r=1/Math.sqrt(r)),e[0]=t[0]*r,e[1]=t[1]*r,e}function rf(e,t){return e[0]*t[0]+e[1]*t[1]}function of(e,t,n){var i=t[0]*n[1]-t[1]*n[0];return e[0]=e[1]=0,e[2]=i,e}function sf(e,t,n,i){var r=t[0],o=t[1];return e[0]=r+i*(n[0]-r),e[1]=o+i*(n[1]-o),e}function af(e,t){t=t||1;var n=2*hu()*Math.PI;return e[0]=Math.cos(n)*t,e[1]=Math.sin(n)*t,e}function lf(e,t,n){var i=t[0],r=t[1];return e[0]=n[0]*i+n[2]*r,e[1]=n[1]*i+n[3]*r,e}function Af(e,t,n){var i=t[0],r=t[1];return e[0]=n[0]*i+n[2]*r+n[4],e[1]=n[1]*i+n[3]*r+n[5],e}function cf(e,t,n){var i=t[0],r=t[1];return e[0]=n[0]*i+n[3]*r+n[6],e[1]=n[1]*i+n[4]*r+n[7],e}function uf(e,t,n){var i=t[0],r=t[1];return e[0]=n[0]*i+n[4]*r+n[12],e[1]=n[1]*i+n[5]*r+n[13],e}function hf(e,t,n,i){var r=t[0]-n[0],o=t[1]-n[1],s=Math.sin(i),a=Math.cos(i);return e[0]=r*a-o*s+n[0],e[1]=r*s+o*a+n[1],e}function df(e,t){var n=e[0],i=e[1],r=t[0],o=t[1],s=Math.sqrt(n*n+i*i)*Math.sqrt(r*r+o*o),a=s&&(n*r+i*o)/s;return Math.acos(Math.min(Math.max(a,-1),1))}function ff(e){return e[0]=0,e[1]=0,e}function pf(e){return"vec2("+e[0]+", "+e[1]+")"}function gf(e,t){return e[0]===t[0]&&e[1]===t[1]}function mf(e,t){var n=e[0],i=e[1],r=t[0],o=t[1];return Math.abs(n-r)<=cu*Math.max(1,Math.abs(n),Math.abs(r))&&Math.abs(i-o)<=cu*Math.max(1,Math.abs(i),Math.abs(o))}lu(Ld,{add:()=>Ud,angle:()=>df,ceil:()=>Hd,clone:()=>Dd,copy:()=>Nd,create:()=>Fd,cross:()=>of,dist:()=>Cf,distance:()=>qd,div:()=>yf,divide:()=>zd,dot:()=>rf,equals:()=>mf,exactEquals:()=>gf,floor:()=>Wd,forEach:()=>xf,fromValues:()=>Od,inverse:()=>tf,len:()=>_f,length:()=>Zd,lerp:()=>sf,max:()=>Qd,min:()=>jd,mul:()=>vf,multiply:()=>Vd,negate:()=>ef,normalize:()=>nf,random:()=>af,rotate:()=>hf,round:()=>Xd,scale:()=>Kd,scaleAndAdd:()=>Jd,set:()=>kd,sqrDist:()=>wf,sqrLen:()=>Ef,squaredDistance:()=>Yd,squaredLength:()=>$d,str:()=>pf,sub:()=>bf,subtract:()=>Gd,transformMat2:()=>lf,transformMat2d:()=>Af,transformMat3:()=>cf,transformMat4:()=>uf,zero:()=>ff});var _f=Zd,bf=Gd,vf=Vd,yf=zd,Cf=qd,wf=Yd,Ef=$d,xf=function(){var e=Fd();return function(t,n,i,r,o,s){var a,l;for(n||(n=2),i||(i=0),l=r?Math.min(r*n+i,t.length):t.length,a=i;a<l;a+=n)e[0]=t[a],e[1]=t[a+1],o(e,e,s),t[a]=e[0],t[a+1]=e[1];return t}}(),Tf=(1+Math.sqrt(5))/2,Sf=(Math.PI,2*Math.PI/5),Pf=Math.PI/5,Mf=Math.PI/10,Rf=2*Math.atan(Tf),Bf=Math.PI-Rf,If=(Math.PI,Math.acos(-1/Math.sqrt(3-Tf)),(Math.sqrt(5)-1)/2),Lf=3-Math.sqrt(5),Ff=Math.sqrt(3-Tf),Df=(Math.sqrt(3),6371007.2);Math.PI;Au.setMatrixArrayType(Float64Array);var Of=class _PentagonShape{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0;const t=this.vertices.length;for(let n=0;n<t;n++){const i=(n+1)%t;e+=(this.vertices[i][0]-this.vertices[n][0])*(this.vertices[i][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(const t of this.vertices)Ld.scale(t,t,e);return this}rotate180(){for(const e of this.vertices)Ld.negate(e,e);return this}reflectY(){for(const e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(const t of this.vertices)Ld.add(t,t,e);return this}transform(e){for(const t of this.vertices)Ld.transformMat2(t,t,e);return this}transform2d(e){for(const t of this.vertices)Ld.transformMat2d(t,t,e);return this}clone(){return new _PentagonShape(this.vertices.map(e=>Ld.clone(e)))}getCenter(){const e=this.vertices.length;return this.vertices.reduce((t,n)=>[t[0]+n[0]/e,t[1]+n[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");const t=this.vertices.length;let n=1;for(let i=0;i<t;i++){const r=this.vertices[i],o=this.vertices[(i+1)%t],s=r[0]-o[0],a=r[1]-o[1],l=e[0]-r[0],A=e[1]-r[1],c=s*A-a*l;if(c<0){const e=Math.sqrt(l*l+A*A);n=Math.min(n,c/e)}}return n}splitEdges(e){if(e<=1)return this;const t=[],n=this.vertices.length;for(let i=0;i<n;i++){const r=this.vertices[i],o=this.vertices[(i+1)%n];t.push(Ld.clone(r));for(let n=1;n<e;n++){const i=n/e,s=Ld.create();Ld.lerp(s,r,o,i),t.push(s)}}return new _PentagonShape(t)}};Au.setMatrixArrayType(Float64Array);var Nf=[0,0],kf=[0,1],Uf=[.7885966681787006,1.6149108024237764],Gf=[1.6171013659387945,1.054928690397459],Vf=[Math.cos(Mf),Math.sin(Mf)],zf=2*Ld.length(Uf)*Math.cos(Pf),Hf=Pf-Math.atan2(Uf[1],Uf[0]),Wf=2*If/zf;[Nf,kf,Uf,Gf,Vf].forEach(e=>{Ld.scale(e,e,Wf),Ld.rotate(e,e,[0,0],Hf)});var jf=new Of([Nf,kf,Uf,Gf,Vf]),Qf=Math.atan2(Uf[1],Uf[0])-Pf,Xf=If/Math.cos(Pf),Kf=Qf+Pf,Jf=[Xf*Math.cos(Kf),Xf*Math.sin(Kf)],qf=Qf-Pf,Yf=[Xf*Math.cos(qf),Xf*Math.sin(qf)],Zf=new Of([[0,0],Jf,Yf]),$f=mu.fromValues(Jf[0],Jf[1],Yf[0],Yf[1]),ep=(mu.invert(mu.create(),$f),new Float64Array([-.0022392098386786394,21308606513250217e-22,-2.559257686421274e-9,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32])),tp=new Float64Array([.0022392089963541657,28831978048607556e-22,5.08622073997266e-9,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]);Au.setMatrixArrayType(Float64Array);var np=new class{applyCoefficients(e,t){const n=Math.sin(e),i=Math.cos(e),r=2*(i-n)*(i+n);let o,s;return o=r*t[5]+t[4],s=r*o+t[3],o=r*s-o+t[2],s=r*o-s+t[1],o=r*s-o+t[0],e+2*n*i*o}forward(e){return this.applyCoefficients(e,ep)}inverse(e){return this.applyCoefficients(e,tp)}};function ip(e){return e*(Math.PI/180)}function rp(e){return e*(180/Math.PI)}function op(e){return[Ld.length(e),Math.atan2(e[1],e[0])]}function sp(e){const t=Math.atan2(e[1],e[0]),n=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);return[t,Math.acos(e[2]/n)]}function ap([e,t]){const n=Math.sin(t);return[n*Math.cos(e),n*Math.sin(e),Math.cos(t)]}function lp([e,t]){const n=ip(e+93),i=ip(t),r=np.forward(i);return[n,Math.PI/2-r]}function Ap(e){return((e+180)%360+360)%360-180}function cp([e,t]){const n=Ap(rp(e)-93),i=Math.PI/2-t;return[n,rp(np.inverse(i))]}Au.setMatrixArrayType(Float64Array);var up=Math.sqrt(5),hp=Math.sqrt(.2),dp=Math.sqrt((1-hp)/2),fp=Math.sqrt((1+hp)/2),pp=.5,gp=Math.sqrt((2.5-up)/10),mp=Math.sqrt((2.5+up)/10),_p=Math.sqrt((1+hp)/8),bp=Math.sqrt((1-hp)/8),vp=Math.sqrt((3-up)/8),yp=Math.sqrt((3+up)/8),Cp=[[0,0],[dp,0],[gp,pp],[-_p,vp],[-_p,-vp],[gp,-pp],[-fp,0],[-bp,-yp],[mp,-pp],[mp,pp],[-bp,yp],[0,0]].map(([e,t])=>[-t,e]),wp=Cp.map((e,t)=>0===t?[0,0,0,1]:11===t?[0,-1,0,0]:[...e,0,t<6?fp:dp]);Au.setMatrixArrayType(Float64Array);var Ep=["vu","uw","vw","vw","vw"],xp=["wu","uw","vw","vu","uw"],Tp=["wu","uv","wv","wu","uw"],Sp=["vu","uv","wv","wu","uw"],Pp=[Ep,Sp,Tp,xp,Tp,Sp,Tp,xp,xp,xp,Sp,Sp],Mp=[4,2,3,2,0,4,3,2,2,0,3,0],Rp=[0,1,2,4,3,5,7,8,6,11,10,9],Bp=[];var Ip=0;function Lp(e,t,n){if(Ip>11)throw new Error(`Too many origins: ${Ip}`);const i=Wu.create();Wu.conjugate(i,n);const r={id:Ip,axis:e,quat:n,inverseQuat:i,angle:t,orientation:Pp[Ip],firstQuintant:Mp[Ip]};Bp.push(r),Ip++}function Fp(e,t){const n=t.orientation,i=n===Ep||n===xp?-1:1,r=(e-t.firstQuintant+5)%5,o=n[r];return{quintant:(t.firstQuintant+i*r+5)%5,orientation:o}}!function(){Lp([0,0],0,wp[0]);for(let e=0;e<5;e++){const t=e*Sf,n=t+Pf;Lp([t,Bf],Pf,wp[e+1]),Lp([n,Math.PI-Bf],Pf,wp[(e+3)%5+6])}Lp([0,Math.PI],0,wp[11])}(),Bp.sort((e,t)=>Rp.indexOf(e.id)-Rp.indexOf(t.id)),Bp.forEach((e,t)=>e.id=t);var Dp=class{forward([e,t]){return[Math.tan(t),e]}inverse([e,t]){return[t,Math.atan(e)]}},Op=ju.create(),Np=ju.create(),kp=ju.create(),Up=ju.create();function Gp(e,t){ju.lerp(Op,e,t,.5),ju.normalize(Op,Op),ju.cross(Op,e,Op);const n=ju.length(Op);if(n<1e-8){const n=ju.subtract(ju.create(),e,t);return.5*ju.length(n)}return n}function Vp(e,t,n,i){const r=ju.angle(t,n);if(r<1e-12)return ju.lerp(e,t,n,i);const o=Math.sin((1-i)*r)/Math.sin(r),s=Math.sin(i*r)/Math.sin(r),a=ju.scale(ju.create(),t,o),l=ju.scale(ju.create(),n,s);return ju.add(e,a,l)}Au.setMatrixArrayType(Float64Array);var zp=ju.create(),Hp=ju.create(),Wp=ju.create(),jp=ju.create(),Qp=class{constructor(e){this._area=null,this.vertices=e,Object.freeze(this.vertices)}getBoundary(e=1,t=!0){const n=[],i=this.vertices.length;for(let t=0;t<i*e;t++){const i=t/e;n.push(this.slerp(i))}return t&&n.push(n[0]),n}slerp(e){const t=this.vertices.length,n=e%1,i=Math.floor(e%t),r=(i+1)%t;return Vp(ju.create(),this.vertices[i],this.vertices[r],n)}getTransformedVertices(e){const t=this.vertices.length,n=Math.floor(e%t),i=(n+1)%t,r=(n+t-1)%t,o=ju.clone(this.vertices[n]),s=ju.clone(this.vertices[i]),a=ju.clone(this.vertices[r]);return ju.sub(s,s,o),ju.sub(a,a,o),[o,s,a]}containsPoint(e){const t=this.vertices.length;let n=1/0;for(let i=0;i<t;i++){const[t,r,o]=this.getTransformedVertices(i),s=ju.sub(ju.create(),e,t);ju.normalize(s,s),ju.normalize(r,r),ju.normalize(o,o);const a=ju.cross(ju.create(),r,s),l=ju.cross(ju.create(),s,o),A=ju.dot(t,a),c=ju.dot(t,l);n=Math.min(n,A,c)}return n}getTriangleArea(e,t,n){ju.lerp(zp,t,n,.5),ju.lerp(Hp,n,e,.5),ju.lerp(Wp,e,t,.5),ju.normalize(zp,zp),ju.normalize(Hp,Hp),ju.normalize(Wp,Wp);const i=(r=zp,o=Hp,s=Wp,ju.cross(Np,o,s),ju.dot(r,Np));var r,o,s;const a=Math.max(-1,Math.min(1,i));return Math.abs(a)<1e-8?2*a:2*Math.asin(a)}getArea(){return null===this._area&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(3===this.vertices.length)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;ju.set(jp,0,0,0);for(const e of this.vertices)ju.add(jp,jp,e);ju.normalize(jp,jp);let e=0;for(let t=0;t<this.vertices.length;t++){const n=this.vertices[t],i=this.vertices[(t+1)%this.vertices.length],r=this.getTriangleArea(jp,n,i);isNaN(r)||(e+=r)}return this._area=e,this._area}isWindingCorrect(){this.getArea()}};Au.setMatrixArrayType(Float64Array);var Xp=class extends Qp{constructor(e){if(3!==e.length)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(e)}};Au.setMatrixArrayType(Float64Array);var Kp=class{forward(e,t,n){const[i,r,o]=t,s=new Xp([i,r,o]),a=ju.subtract(ju.create(),e,i);ju.normalize(a,a);const l=function(e,t,n,i,r){ju.cross(Np,i,r);const o=ju.dot(t,Np),s=ju.dot(n,Np);return ju.scale(kp,t,s),ju.scale(Up,n,o),ju.sub(e,Up,kp)}(ju.create(),i,a,r,o);ju.normalize(l,l);const A=Gp(i,e)/Gp(i,l),c=A/s.getArea();return function(e,[t,n,i]){return[e[0]*t[0]+e[1]*n[0]+e[2]*i[0],e[0]*t[1]+e[1]*n[1]+e[2]*i[1]]}([1-A,c*new Xp([i,l,o]).getArea(),c*new Xp([i,r,l]).getArea()],n)}inverse(e,t,n){const[i,r,o]=n,s=new Xp([i,r,o]),a=function(e,[t,n,i]){const r=[t[0]-i[0],t[1]-i[1]],o=[i[0]-n[0],i[1]-n[1]],s=[e[0]-i[0],e[1]-i[1]],a=o[0]*r[1]-o[1]*r[0],l=(o[0]*s[1]-o[1]*s[0])/a,A=(r[0]*s[1]-r[1]*s[0])/a;return[l,A,1-(l+A)]}(e,t),l=1-1e-14;if(a[0]>l)return i;if(a[1]>l)return r;if(a[2]>l)return o;const A=ju.create();ju.cross(A,r,o);const c=s.getArea(),u=1-a[0],h=a[2]/u*c,d=Math.sin(h),f=Math.sin(h/2),p=2*f*f,g=ju.dot(i,r),m=ju.dot(r,o),_=ju.dot(o,i),b=ju.length(A),v=d*ju.dot(i,A)+p*(g*m-_),y=p*b*(1+g),C=2/Math.acos(m)*Math.atan2(y,v),w=Vp(ju.create(),r,o,C),E=Gp(i,w);return Vp([0,0,0],i,w,this.safeAcos(u*E)/this.safeAcos(E))}safeAcos(e){return e<.001?2*e+e*e*e/3:Math.acos(1-2*e*e)}},Jp=-1;Au.setMatrixArrayType(Float64Array);var qp=([e,t])=>Ld.fromValues(e-t,t);Au.setMatrixArrayType(Float64Array);var Yp=Ld.fromValues(1,0),Zp=Ld.fromValues(0,1),$p=Ld.negate(Ld.create(),Yp),eg=Ld.negate(Ld.create(),Zp),tg=Ld.fromValues(0,0),ng=(e,[t,n])=>{let i=tg,r=tg;switch(1===t&&1===n?(i=Yp,r=Zp):t===Jp&&1===n?(i=eg,r=$p):1===t&&n===Jp?(i=Zp,r=Yp):t===Jp&&n===Jp&&(i=$p,r=eg),e){case 0:return tg;case 1:return i;case 2:return Ld.add(Ld.create(),r,i);case 3:return Ld.scaleAndAdd(Ld.create(),r,i,2);default:throw new Error(`Invalid Quaternary value: ${e}`)}},ig=e=>[[1,1],[1,Jp],[1,1],[Jp,1]][e];function rg(e){return Array.from({length:e.length},(t,n)=>e.indexOf(n))}var og=[0,1,3,4,5,6,7,2],sg=[0,1,2,7,3,4,5,6],ag=(rg(og),rg(sg),(e,t,n,i,r)=>{if(t<=0)return;const o=e[t]||0,s=e[t-1];let a=!0,l=!0;if(i!==(0===n[0]+n[1])?(a=1===o||2===o,l=1===o):(a=o<2,l=0===o),!a)return;const A=l?s:s+4,c=r[A];e[t-1]=c%4,e[t]=(o+4+Math.floor(c/4)-Math.floor(A/4))%4});Au.setMatrixArrayType(Float64Array);var lg=Ld.fromValues(-1,1),Ag=(e,t,n,i=true)=>{let r=BigInt(e);const o="wv"===n||"vw"===n,s="wu"===n||"uw"===n;("vu"===n||"wu"===n||"vw"===n)&&(r=(1n<<BigInt(2*t))-r-1n);const a=cg(r,t,o,s,i);if(s){const{offset:[e,t],flips:[n,i]}=a;a.offset=[t,e],n===Jp&&Ld.add(a.offset,a.offset,lg),i===Jp&&Ld.subtract(a.offset,a.offset,lg)}if(o){const{offset:[e,n],flips:i}=a,r=(1<<t)-(e+n);i[0]=-i[0],a.offset[1]=r,a.flips=i}return a},cg=(e,t,n,i,r=true)=>{const o=Ld.create(),s=[1,1];let a=BigInt(e);const l=[];for(;a>0n||l.length<t;)l.push(Number(a%4n)),a>>=2n;const A=i?sg:og;for(let e=l.length-1;e>=0;e--)r&&ag(l,e,s,n,A),Ld.multiply(s,s,ig(l[e]));s[0]=1,s[1]=1;for(let e=l.length-1;e>=0;e--){Ld.scale(o,o,2);const t=ng(l[e],s);Ld.add(o,o,t),Ld.multiply(s,s,ig(l[e]))}return{q:l[0]||0,offset:qp(o),flips:s}},ug=.1;Math.cos(45*Math.PI/180),Math.sin(45*Math.PI/180),Math.cos(113*Math.PI/180),Math.sin(113*Math.PI/180),Math.cos(293*Math.PI/180),Math.sin(293*Math.PI/180),Math.cos(225*Math.PI/180),Math.sin(225*Math.PI/180);Au.setMatrixArrayType(Float64Array);var hg=Ld.clone(Yf),dg=Ld.negate(Ld.create(),Yf),fg=[0,1,2,3,4].map(e=>{const t=mu.create();return mu.fromRotation(t,Sf*e),t}),pg=Ld.create();function gg(e){const t=Zf.clone();return t.transform(fg[e]),t}Au.setMatrixArrayType(Float64Array);Au.setMatrixArrayType(Float64Array);var mg=new class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),62!==this.vertices.length)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(e){this.invocations++,1e4===this.invocations&&console.warn("Too many CRS invocations, results should be cached");for(const t of this.vertices)if(ju.distance(e,t)<1e-5)return t;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Bp.forEach(e=>this.add(ap(e.axis)))}addVertices(){const e=Math.atan(Lf);for(const t of Bp)for(let n=0;n<5;n++){const i=ap([(2*n+1)*Math.PI/5+t.angle,e]);ju.transformQuat(i,i,t.quat),this.add(i)}}addMidpoints(){const e=Math.atan(If);for(const t of Bp)for(let n=0;n<5;n++){const i=ap([2*n*Math.PI/5+t.angle,e]);ju.transformQuat(i,i,t.quat),this.add(i)}}add(e){const t=ju.normalize(ju.create(),e);return!this.vertices.find(e=>ju.distance(t,e)<1e-5)&&(this.vertices.push(t),!0)}},_g=30,bg=58n;function vg(e){if(0n===e)return-1;if(1n&e||0b100n==(0b111n&e)||0b10000n==(0b11111n&e))return _g;let t=29,n=e>>1n;if(0n===n)return-1;let i,r=Number(0xFFFFFFFFn&n);for(0===r?(n>>=32n,t-=16,i=Number(n)):i=r,65535&i||(i>>=16,t-=8),t>=6&&!(255&i)&&(i>>=8,t-=4),t>=4&&!(15&i)&&(i>>=4,t-=2);t>-1&&!(1&i);)t-=1,i>>=t<2?1:2;return t}function yg(e){const t=vg(e);if(-1===t)return{origin:Bp[0],segment:0,S:0n,resolution:t};let n=bg,i=0;if(t===_g){const t=1n&e?1n:0b100n&e?3n:5n;n=bg+t,i=1n===t?0:3n===t?32:40}const r=Number(e>>n)+i;let o,s;if(0===t)o=Bp[r],s=0;else{const e=Math.floor(r/5);o=Bp[e],s=(r+o.firstQuintant)%5}if(!o)throw new Error(`Could not parse origin: ${r}`);if(t<2)return{origin:o,segment:s,S:0n,resolution:t};return{origin:o,segment:s,S:(e&(1n<<n)-1n)>>n-BigInt(2*(t-2+1)),resolution:t}}Au.setMatrixArrayType(Float64Array);mu.create();var Cg=new class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new Kp,this.gnomonic=new Dp}forward(e,t){const n=Bp[t],i=ap(e),r=ju.create();ju.transformQuat(r,i,n.inverseQuat);const o=sp(r),s=this.gnomonic.forward(o);s[1]=s[1]-n.angle;const a=this.getFaceTriangleIndex(s),l=this.shouldReflect(s);let A=this.getFaceTriangle(a,l,!1),c=this.getSphericalTriangle(a,t,l);return this.polyhedral.forward(i,c,A)}inverse(e,t){const n=op(e),i=this.getFaceTriangleIndex(n),r=this.shouldReflect(n),o=this.getFaceTriangle(i,r,!1),s=this.getSphericalTriangle(i,t,r);return sp(this.polyhedral.inverse(e,o,s))}shouldReflect(e){const[t,n]=e,i=function([e,t]){return[e*Math.cos(t),e*Math.sin(t)]}([t,this.normalizeGamma(n)])[0];return i>If}getFaceTriangleIndex([e,t]){return(Math.floor(t/Pf)+10)%10}getFaceTriangle(e,t=!1,n=!1){let i=e;return t&&(i+=n?20:10),this.faceTriangles[i]||(this.faceTriangles[i]=t?this._getReflectedFaceTriangle(e,n):this._getFaceTriangle(e),Object.freeze(this.faceTriangles[i])),this.faceTriangles[i]}_getFaceTriangle(e){const t=Math.floor((e+1)/2)%5,[n,i,r]=gg(t).getVertices(),o=Ld.create();Ld.lerp(o,i,r,.5);return e%2==0?[n,o,i]:[n,r,o]}_getReflectedFaceTriangle(e,t=!1){let[n,i,r]=this._getFaceTriangle(e).map(e=>Ld.clone(e));const o=e%2==0;Ld.negate(n,n);const s=o?i:r;return Ld.scaleAndAdd(n,n,s,t?1+1/Math.cos(Bf):2),[n,r,i]}getSphericalTriangle(e,t,n=!1){let i=10*t+e;return n&&(i+=120),this.sphericalTriangles[i]||(this.sphericalTriangles[i]=this._getSphericalTriangle(e,t,n),Object.freeze(this.sphericalTriangles[i])),this.sphericalTriangles[i]}_getSphericalTriangle(e,t,n=!1){const i=Bp[t];return this.getFaceTriangle(e,n,!0).map(e=>{const[t,n]=op(e),r=[t,n+i.angle],o=ap(this.gnomonic.inverse(r));return ju.transformQuat(o,o,i.quat),mg.getVertex(o)})}normalizeGamma(e){const t=e/Sf;return(t-Math.round(t))*Sf}};function wg({S:e,segment:t,origin:n,resolution:i}){const{quintant:r,orientation:o}=Fp(t,n);if(1===i){return gg(r)}if(0===i)return function(){const e=[];for(const t of fg)e.push(Ld.transformMat2(Ld.create(),Jf,t));return e.reverse(),new Of(e)}();const s=i-2+1;return function(e,t,n){const i=jf.clone();Ld.transformMat2(pg,n.offset,$f),1===n.flips[0]&&n.flips[1]===Jp&&i.rotate180();const{q:r}=n,o=n.flips[0]+n.flips[1];return((-2===o||2===o)&&r>1||0===o&&(0===r||3===r))&&i.reflectY(),n.flips[0]===Jp&&n.flips[1]===Jp?i.rotate180():n.flips[0]===Jp?i.translate(dg):n.flips[1]===Jp&&i.translate(hg),i.translate(pg),i.scale(1/2**e),i.transform(fg[t]),i}(s,r,Ag(e,s,o))}function Eg(e,{closedRing:t=!0,segments:n="auto"}={closedRing:!0,segments:"auto"}){if(0n===e)return[];const{S:i,segment:r,origin:o,resolution:s}=yg(e);"auto"===n&&(n=Math.max(1,Math.pow(2,6-s)));const a=wg({S:i,segment:r,origin:o,resolution:s}).splitEdges(n).getVertices().map(e=>Cg.inverse(e,o.id)),l=a.map(e=>cp(e)),A=function(e){const t=e.map(e=>ap(lp(e))),n=ju.create();for(const e of t)ju.add(n,n,e);ju.normalize(n,n);let[i,r]=cp(sp(n));return(r>89.99||r<-89.99)&&(i=e[0][0]),i=Ap(i),e.map(e=>{let[t,n]=e;for(;t-i>180;)t-=360;for(;t-i<-180;)t+=360;return[t,n]})}(l);return t&&A.push(A[0]),A.reverse(),A}var xg=12742014.4/Math.sqrt(15),Tg=new Array(31);Tg[0]=12742014.4/Math.sqrt(3);for(let e=1;e<=30;e++)Tg[e]=xg/(1<<e-1);Au.setMatrixArrayType(Float64Array);var Sg=function(e){var t,n=void 0!==(e=e||{})?e:{},i={};for(t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);var r,o=[],s="";"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),s=0!==s.indexOf("blob:")?s.substr(0,s.lastIndexOf("/")+1):"",r=function(e,t,n){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(){if(200==i.status||0==i.status&&i.response)t(i.response);else{var r=q(e);r?t(r.buffer):n()}},i.onerror=n,i.send(null)};var a=n.print||console.log.bind(console),l=n.printErr||console.warn.bind(console);for(t in i)i.hasOwnProperty(t)&&(n[t]=i[t]);i=null,n.arguments&&(o=n.arguments);var A=0;var c=!1;function u(e){var t,i=n["_"+e];return t="Cannot call unknown function "+e+", make sure it is exported",i||ce("Assertion failed: "+t),i}function h(e,t,n,i,r){var o={string:function(e){var t=0;if(null!=e&&0!==e){var n=1+(e.length<<2);(function(e,t,n){(function(e,t,n,i){if(!(i>0))return 0;for(var r=n,o=n+i-1,s=0;s<e.length;++s){var a=e.charCodeAt(s);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++s);if(a<=127){if(n>=o)break;t[n++]=a}else if(a<=2047){if(n+1>=o)break;t[n++]=192|a>>6,t[n++]=128|63&a}else if(a<=65535){if(n+2>=o)break;t[n++]=224|a>>12,t[n++]=128|a>>6&63,t[n++]=128|63&a}else{if(n+3>=o)break;t[n++]=240|a>>18,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}}t[n]=0})(e,m,t,n)})(e,t=ne(n),n)}return t},array:function(e){var t=ne(e.length);return function(e,t){g.set(e,t)}(e,t),t}};var s=u(e),a=[],l=0;if(i)for(var A=0;A<i.length;A++){var c=o[n[A]];c?(0===l&&(l=re()),a[A]=c(i[A])):a[A]=i[A]}var h=s.apply(null,a);return h=function(e){return"string"===t?f(e):"boolean"===t?Boolean(e):e}(h),0!==l&&ie(l),h}var d="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function f(e,t){return e?function(e,t,n){for(var i=t+n,r=t;e[r]&&!(r>=i);)++r;if(r-t>16&&e.subarray&&d)return d.decode(e.subarray(t,r));for(var o="";t<r;){var s=e[t++];if(128&s){var a=63&e[t++];if(192!=(224&s)){var l=63&e[t++];if((s=224==(240&s)?(15&s)<<12|a<<6|l:(7&s)<<18|a<<12|l<<6|63&e[t++])<65536)o+=String.fromCharCode(s);else{var A=s-65536;o+=String.fromCharCode(55296|A>>10,56320|1023&A)}}else o+=String.fromCharCode((31&s)<<6|a)}else o+=String.fromCharCode(s)}return o}(m,e,t):""}var p,g,m,_,b,v,y;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function C(e,t){return e%t>0&&(e+=t-e%t),e}function w(e){p=e,n.HEAP8=g=new Int8Array(e),n.HEAP16=_=new Int16Array(e),n.HEAP32=b=new Int32Array(e),n.HEAPU8=m=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=v=new Float32Array(e),n.HEAPF64=y=new Float64Array(e)}var E=n.TOTAL_MEMORY||33554432;function x(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?n.dynCall_v(i):n.dynCall_vi(i,t.arg):i(void 0===t.arg?null:t.arg)}else t()}}E=(p=n.buffer?n.buffer:new ArrayBuffer(E)).byteLength,w(p),b[7096]=5271296;var T=[],S=[],P=[],M=[];function R(e){T.unshift(e)}function B(e){M.unshift(e)}var I=Math.abs,L=Math.ceil,F=Math.floor,D=Math.min,O=0,N=null,k=null;n.preloadedImages={},n.preloadedAudios={};var U,G,V=null,z="data:application/octet-stream;base64,";function H(e){return String.prototype.startsWith?e.startsWith(z):0===e.indexOf(z)}V="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAABQAAABoAAAAFAAAAAAAAAAEAAAADAAAAAAAAAA0AAAAFAAAAAgAAAAEAAAABAAAAAAAAAAcAAAAAAAAAGgAAAAAAAAAqAAAAAAAAADoAAAAAAAAAHQAAAAAAAAArAAAAAAAAAD4AAAADAAAAJgAAAAEAAAAvAAAAAwAAAEAAAAADAAAADAAAAAAAAAAcAAAABQAAACwAAAAFAAAADQAAAAAAAAAaAAAAAAAAACoAAAAAAAAAFQAAAAEAAAAdAAAAAAAAACsAAAAAAAAABAAAAAMAAAAPAAAABQAAAB8AAAAFAAAAAwAAAAEAAAAMAAAAAAAAABwAAAAFAAAABwAAAAEAAAANAAAAAAAAABoAAAAAAAAAHwAAAAAAAAApAAAAAAAAADEAAAAAAAAALAAAAAAAAAA1AAAAAAAAAD0AAAADAAAAOgAAAAEAAABBAAAAAwAAAEsAAAADAAAADwAAAAAAAAAWAAAABQAAACEAAAAFAAAAHAAAAAAAAAAfAAAAAAAAACkAAAAAAAAAKgAAAAEAAAAsAAAAAAAAADUAAAAAAAAABAAAAAQAAAAIAAAABQAAABAAAAAFAAAADAAAAAEAAAAPAAAAAAAAABYAAAAFAAAAGgAAAAEAAAAcAAAAAAAAAB8AAAAAAAAAMgAAAAAAAAAwAAAAAAAAADEAAAADAAAAIAAAAAAAAAAeAAAAAwAAACEAAAADAAAAGAAAAAMAAAASAAAAAwAAABAAAAADAAAARgAAAAAAAABDAAAAAAAAAEIAAAADAAAANAAAAAMAAAAyAAAAAAAAADAAAAAAAAAAJQAAAAMAAAAgAAAAAAAAAB4AAAADAAAAUwAAAAAAAABXAAAAAwAAAFUAAAADAAAASgAAAAMAAABGAAAAAAAAAEMAAAAAAAAAOQAAAAEAAAA0AAAAAwAAADIAAAAAAAAAGQAAAAAAAAAXAAAAAAAAABgAAAADAAAAEQAAAAAAAAALAAAAAwAAAAoAAAADAAAADgAAAAMAAAAGAAAAAwAAAAIAAAADAAAALQAAAAAAAAAnAAAAAAAAACUAAAADAAAAIwAAAAMAAAAZAAAAAAAAABcAAAAAAAAAGwAAAAMAAAARAAAAAAAAAAsAAAADAAAAPwAAAAAAAAA7AAAAAwAAADkAAAADAAAAOAAAAAMAAAAtAAAAAAAAACcAAAAAAAAALgAAAAMAAAAjAAAAAwAAABkAAAAAAAAAJAAAAAAAAAAUAAAAAAAAAA4AAAADAAAAIgAAAAAAAAATAAAAAwAAAAkAAAADAAAAJgAAAAMAAAAVAAAAAwAAAAcAAAADAAAANwAAAAAAAAAoAAAAAAAAABsAAAADAAAANgAAAAMAAAAkAAAAAAAAABQAAAAAAAAAMwAAAAMAAAAiAAAAAAAAABMAAAADAAAASAAAAAAAAAA8AAAAAwAAAC4AAAADAAAASQAAAAMAAAA3AAAAAAAAACgAAAAAAAAARwAAAAMAAAA2AAAAAwAAACQAAAAAAAAAQAAAAAAAAAAvAAAAAAAAACYAAAADAAAAPgAAAAAAAAArAAAAAwAAAB0AAAADAAAAOgAAAAMAAAAqAAAAAwAAABoAAAADAAAAVAAAAAAAAABFAAAAAAAAADMAAAADAAAAUgAAAAMAAABAAAAAAAAAAC8AAAAAAAAATAAAAAMAAAA+AAAAAAAAACsAAAADAAAAYQAAAAAAAABZAAAAAwAAAEcAAAADAAAAYgAAAAMAAABUAAAAAAAAAEUAAAAAAAAAYAAAAAMAAABSAAAAAwAAAEAAAAAAAAAASwAAAAAAAABBAAAAAAAAADoAAAADAAAAPQAAAAAAAAA1AAAAAwAAACwAAAADAAAAMQAAAAMAAAApAAAAAwAAAB8AAAADAAAAXgAAAAAAAABWAAAAAAAAAEwAAAADAAAAUQAAAAMAAABLAAAAAAAAAEEAAAAAAAAAQgAAAAMAAAA9AAAAAAAAADUAAAADAAAAawAAAAAAAABoAAAAAwAAAGAAAAADAAAAZQAAAAMAAABeAAAAAAAAAFYAAAAAAAAAVQAAAAMAAABRAAAAAwAAAEsAAAAAAAAAOQAAAAAAAAA7AAAAAAAAAD8AAAADAAAASgAAAAAAAABOAAAAAwAAAE8AAAADAAAAUwAAAAMAAABcAAAAAwAAAF8AAAADAAAAJQAAAAAAAAAnAAAAAwAAAC0AAAADAAAANAAAAAAAAAA5AAAAAAAAADsAAAAAAAAARgAAAAMAAABKAAAAAAAAAE4AAAADAAAAGAAAAAAAAAAXAAAAAwAAABkAAAADAAAAIAAAAAMAAAAlAAAAAAAAACcAAAADAAAAMgAAAAMAAAA0AAAAAAAAADkAAAAAAAAALgAAAAAAAAA8AAAAAAAAAEgAAAADAAAAOAAAAAAAAABEAAAAAwAAAFAAAAADAAAAPwAAAAMAAABNAAAAAwAAAFoAAAADAAAAGwAAAAAAAAAoAAAAAwAAADcAAAADAAAAIwAAAAAAAAAuAAAAAAAAADwAAAAAAAAALQAAAAMAAAA4AAAAAAAAAEQAAAADAAAADgAAAAAAAAAUAAAAAwAAACQAAAADAAAAEQAAAAMAAAAbAAAAAAAAACgAAAADAAAAGQAAAAMAAAAjAAAAAAAAAC4AAAAAAAAARwAAAAAAAABZAAAAAAAAAGEAAAADAAAASQAAAAAAAABbAAAAAwAAAGcAAAADAAAASAAAAAMAAABYAAAAAwAAAGkAAAADAAAAMwAAAAAAAABFAAAAAwAAAFQAAAADAAAANgAAAAAAAABHAAAAAAAAAFkAAAAAAAAANwAAAAMAAABJAAAAAAAAAFsAAAADAAAAJgAAAAAAAAAvAAAAAwAAAEAAAAADAAAAIgAAAAMAAAAzAAAAAAAAAEUAAAADAAAAJAAAAAMAAAA2AAAAAAAAAEcAAAAAAAAAYAAAAAAAAABoAAAAAAAAAGsAAAADAAAAYgAAAAAAAABuAAAAAwAAAHMAAAADAAAAYQAAAAMAAABvAAAAAwAAAHcAAAADAAAATAAAAAAAAABWAAAAAwAAAF4AAAADAAAAUgAAAAAAAABgAAAAAAAAAGgAAAAAAAAAVAAAAAMAAABiAAAAAAAAAG4AAAADAAAAOgAAAAAAAABBAAAAAwAAAEsAAAADAAAAPgAAAAMAAABMAAAAAAAAAFYAAAADAAAAQAAAAAMAAABSAAAAAAAAAGAAAAAAAAAAVQAAAAAAAABXAAAAAAAAAFMAAAADAAAAZQAAAAAAAABmAAAAAwAAAGQAAAADAAAAawAAAAMAAABwAAAAAwAAAHIAAAADAAAAQgAAAAAAAABDAAAAAwAAAEYAAAADAAAAUQAAAAAAAABVAAAAAAAAAFcAAAAAAAAAXgAAAAMAAABlAAAAAAAAAGYAAAADAAAAMQAAAAAAAAAwAAAAAwAAADIAAAADAAAAPQAAAAMAAABCAAAAAAAAAEMAAAADAAAASwAAAAMAAABRAAAAAAAAAFUAAAAAAAAAXwAAAAAAAABcAAAAAAAAAFMAAAAAAAAATwAAAAAAAABOAAAAAAAAAEoAAAADAAAAPwAAAAEAAAA7AAAAAwAAADkAAAADAAAAbQAAAAAAAABsAAAAAAAAAGQAAAAFAAAAXQAAAAEAAABfAAAAAAAAAFwAAAAAAAAATQAAAAEAAABPAAAAAAAAAE4AAAAAAAAAdQAAAAQAAAB2AAAABQAAAHIAAAAFAAAAagAAAAEAAABtAAAAAAAAAGwAAAAAAAAAWgAAAAEAAABdAAAAAQAAAF8AAAAAAAAAWgAAAAAAAABNAAAAAAAAAD8AAAAAAAAAUAAAAAAAAABEAAAAAAAAADgAAAADAAAASAAAAAEAAAA8AAAAAwAAAC4AAAADAAAAagAAAAAAAABdAAAAAAAAAE8AAAAFAAAAYwAAAAEAAABaAAAAAAAAAE0AAAAAAAAAWAAAAAEAAABQAAAAAAAAAEQAAAAAAAAAdQAAAAMAAABtAAAABQAAAF8AAAAFAAAAcQAAAAEAAABqAAAAAAAAAF0AAAAAAAAAaQAAAAEAAABjAAAAAQAAAFoAAAAAAAAAaQAAAAAAAABYAAAAAAAAAEgAAAAAAAAAZwAAAAAAAABbAAAAAAAAAEkAAAADAAAAYQAAAAEAAABZAAAAAwAAAEcAAAADAAAAcQAAAAAAAABjAAAAAAAAAFAAAAAFAAAAdAAAAAEAAABpAAAAAAAAAFgAAAAAAAAAbwAAAAEAAABnAAAAAAAAAFsAAAAAAAAAdQAAAAIAAABqAAAABQAAAFoAAAAFAAAAeQAAAAEAAABxAAAAAAAAAGMAAAAAAAAAdwAAAAEAAAB0AAAAAQAAAGkAAAAAAAAAdwAAAAAAAABvAAAAAAAAAGEAAAAAAAAAcwAAAAAAAABuAAAAAAAAAGIAAAADAAAAawAAAAEAAABoAAAAAwAAAGAAAAADAAAAeQAAAAAAAAB0AAAAAAAAAGcAAAAFAAAAeAAAAAEAAAB3AAAAAAAAAG8AAAAAAAAAcAAAAAEAAABzAAAAAAAAAG4AAAAAAAAAdQAAAAEAAABxAAAABQAAAGkAAAAFAAAAdgAAAAEAAAB5AAAAAAAAAHQAAAAAAAAAcgAAAAEAAAB4AAAAAQAAAHcAAAAAAAAAcgAAAAAAAABwAAAAAAAAAGsAAAAAAAAAZAAAAAAAAABmAAAAAAAAAGUAAAADAAAAUwAAAAEAAABXAAAAAwAAAFUAAAADAAAAdgAAAAAAAAB4AAAAAAAAAHMAAAAFAAAAbAAAAAEAAAByAAAAAAAAAHAAAAAAAAAAXAAAAAEAAABkAAAAAAAAAGYAAAAAAAAAdQAAAAAAAAB5AAAABQAAAHcAAAAFAAAAbQAAAAEAAAB2AAAAAAAAAHgAAAAAAAAAXwAAAAEAAABsAAAAAQAAAHIAAAAAAAAAGC1EVPsh+T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgtRFT7Ifk/GC1EVPsh+T8AAAAAAAAAAAAAAAAAAAAAGC1EVPsh+T8AAAAAAAAAABgtRFT7IQlAGC1EVPsh+T8AAAAAAAAAAAAAAAAAAAAAGC1EVPshCUAAAAAAAAAAABgtRFT7Ifm/GC1EVPsh+T8AAAAAAAAAAAAAAAAAAAAAGC1EVPsh+b8AAAAAAAAAAAAAAAAAAAAAGC1EVPsh+b8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgtRFT7Ifm/GC1EVPsh+b8AAAAAAAAAAAAAAAAAAAAAGC1EVPsh+b8AAAAAAAAAABgtRFT7IQnAGC1EVPsh+b8AAAAAAAAAAAAAAAAAAAAAGC1EVPshCcAAAAAAAAAAABgtRFT7Ifk/GC1EVPsh+b8AAAAAAAAAAAAAAAAAAAAAGC1EVPsh+T8AAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGAAAAAgAAAAUAAAABAAAABAAAAAAAAAAAAAAABQAAAAMAAAABAAAABgAAAAQAAAACAAAAAAAAAMpi5RexJsw/BlIKPVwR5T95Wyu0/QjnP5PjoT7YYcu/mBhKZ6zrwj8wRYS7NebuP3qW6geh+Ls/SLrixebL3r+pcyymN9XrPwmkNHp7xec/GWNMZVAA17+82s+x2BLiPwn2ytbJ9ek/LgEH1sMS1j8yp/2LhTfeP+SnWwtQBbu/d38gkp5X7z8ytsuHaADGPzUYObdf1+m/7IauECWhwz+cjSACjzniP76Z+wUhN9K/1+GEKzup67+/GYr/04baPw6idWOvsuc/ZedTWsRa5b/EJQOuRzi0v/OncYhHPes/h49PixY53j+i8wWfC03Nvw2idWOvsue/ZedTWsRa5T/EJQOuRzi0P/KncYhHPeu/iY9PixY53r+i8wWfC03NP9anWwtQBbs/d38gkp5X778ytsuHaADGvzUYObdf1+k/74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAAAAACAAAAAQAAABMAAAACAAAAAgAAAAAAAAAFAAAACgAAAAAAAAACAAAAAgAAAAMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABEAAAACAAAAAAAAAAIAAAABAAAADwAAAAIAAAACAAAAAAAAAAUAAAALAAAAAAAAAAIAAAACAAAAAwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAIAAAAAAAAAAgAAAAEAAAAQAAAAAgAAAAIAAAAAAAAABQAAAAwAAAAAAAAAAgAAAAIAAAADAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAACAAAAAQAAABEAAAACAAAAAgAAAAAAAAAFAAAADQAAAAAAAAACAAAAAgAAAAMAAAATAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAACAAAAAAAAAAIAAAABAAAAEgAAAAIAAAACAAAAAAAAAAUAAAAOAAAAAAAAAAIAAAACAAAAAwAAAAIAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP6phvycGBZRAJbod0OgwfkCp+L8jatBmQCjl3pGrPlFAfMWm114SOkButwtqS7UjQHQwbcjXyw1A8jnLuuyA9j9KwjL0VwHhPyotk0lcs8k/Q5PvEs9rsz+SfsOQEVqdPzUAKDojLoY/WJz/kcjCcD8YFu070FRZPyoLC2BdJEM/YOXQAuiMM0HIBz1bw3sdQdV46aaHRwZByatzjDPX8EDb3Jie8HXZQCJxj6ULP8NAUaG6uRAZrUCWdmou5/mVQLb9huRPm4BAhvoCHygZaUCuX/I3SPdSQC9/bC/1qTxAfKxsYQ6pJUCuslH+N14QQMS/cv7SvPg/Ol8maYKx4j8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAKriWFiWZfg/Y2nmTbY/8z8MHSPSqmnjv6hnn18HR3c/quJYWJZl+D/jq5TzDdzyPwwdI9KqaeO/u0kC1eFSBECq4lhYlmX4P69pJmt7c/E/NnkJi6jSBsDESFlzKkr6P33ArMz7sfY/o2q2uqM08D+oZ59fB0d3PzEqCi3qrvK/kmm4ANp49D+4wS2wzhzvP9WJvyAnx+E/upcY75RVx7+95t+9y0T1P9L18g1caO0/k6CkRyVzAEBf99+e/GjxP6QMsuuLQ/U/PlP4Qr8q7j8Mb/GO2GMCwLl2K/DQIghAePiwytEp9D9UHrsuI/nqPzjMedJ+yuy/k6xgf58n/L+XoQtn22DzP2lzCnsYk+s/JhUSDI4P8z+8lFcBhgTcPxOqKRxEX/M/89MEdoPQ6j8OKQaXDob7vzWwNvblgAPAzGkxMcl88j9Nm4okPkbpP0vI89vxSgRAdac2Z6W2/T+6UFOMC3zyP/+2XEF3hug/QqhELwGKCMAwdlQerEoEQFcr/B+VnvE/hB1hfFzT5j8wdsE/Da64P0hIvnF/sOC/KH/hrXUg8T9bI5OQHaLlP+mYzla7td6/CtKG6iOm8b8FW3TV8oXwP8ORhtNuJ+c/q8JrTMz/AcC8PaUl+PUFwAXv9rkMT/A/m+sAswr15D+7hk/O3yvkP6c/yVsOHKI/qqAX9idJ8D/8hNz1KNPiP7xSXh3Ggvg/epbkiKr57T/23/LB1GLvP4GTTeNZi+M/W4TqlTheBcDupZgIdYUIQGwlcW3YZO8/tQvDXQ3H4j8Bt+sf9DkAQMdFie+nNvg/Z5Uh1wDX7j9h5X2d4KjhPxMJ1ZVT4Pa/evqB8xB//7+W183U9QLsPwzNxsC7AOA/af/LqCnK/r/lPceQ0FQDwHoY0nYIW+w/bHNSHrTg4D/DFcMAdabuv2sz5Ojhnve/FvLf01HN6z/tEDL2Hz/gP0bBv0KUhPA/pd7sEnMc4D8EGon4Lo7sP5NVbYtSON8/DAMC50odBkB+Z2J8MGYCQIhlM1gubOo/FssiPwWy4D8OIlGqRnkCQAd1vopp6f4/QS1keLLK6T9rfoBuT7LZP3KQbH5ugwjAjqVPXTmbBUBL/JxcqR3qP3oSeovuktg/Y6pRhJmqy7+0kwuU0Yjmv2wvsfFmQ+g/R98lJFqQ2T/IGb5gjLkCwK3mNff3kQbAqDznPFM86T+iiP0FfsvYP7fzKG6Mls0/h7+at2btzL8tsUTgk+LmP/YEIrTDINU/WmwKoVjA5L9aC02r6FHxvzzFCT/Qg+Y/nx0V97en0j8+1toJOm77P1kZ7h8KjfQ/GBbbqxgk5j9RGXM79G/SP+beHsWmweQ/9REi4eX0xD/V9s+kmMHkP+pb9yNs09A/c5ERjVDTAECqEr3OBCH7P14ILfMECOU/piRx4P8P0j+JYU//bfL0Pw62fw28B+w/l5YW2Ga45D9+CyKRbenOP5cH6fHy1/S/o/egk03++r91nTYRL/bjP3fHN6OJVdA/7xXQh1XLBcAB3g6tBdUIQKW2KnGYjeQ/SqIpagclyz8F9P3YgNL6v9H6NBsZ8QDAW2k5L5Qs4z/0axa1l6zLP1GE65Mu4wNAwfX+BYmWAEBBgJP90M3hP6/03qhPLdA/zqo5bJz2778/ESlPCTn1v7JkhGyvzuE/DM7sj5twwz/6xbXLavYGQH29RFRGkgNA7bOXVSJ54T9fEhTHO/TDP+8t+HMOiwDAxa0SbGTtA8Atii7y0mLgP4cecHFB3sM/uPUpyv+K7j8nktD1/WvhP2cWmi772d8/Fj7uU9kEvD8oKOESLzKmvwSdCqrHdNu/XCluGsvI3T929OW5md+uP9dP6rXcZNq/gXM+ggzL6b+eKjsPgJncP6i1e9aVu7E/2CnPNJyD1D/DnyGgSe+xvy8k7g9bp9s/nYmLvHn1sz9cFOwApH8IwGa6Mjy9cgZAJr95SiSW2z8rCkhOFvqdP3SIKmO/UwPAEy0zkN7bBsCds8Hg/13YP1zv413hVGi/FVtqixSn6L9XAPQGul3yv7SGu2BoCNk/n94bv7Maj79p13T6X9z3P45MPCW3WvI/rU/8/LRj1T9cgR6SXd+ZPymL2DstbPI/8s/pAkIz6z/fmoB+8efYPz2XyfWgYaa/6wys72AW/j8LZImhgrf3P729Zla/n9U/ySB8B3PBqL8O2nhevvbxv17+5A+n6fe/YrGIqEGB1T+wCEGbkhaxv989QHVE5wFAzd12PTu3/T9AHUPZY2DUP3SQDST0zq2/JCxAlIoj5T+Mhe1IJkrQP/cRpl8QhtU/amc4seFts79khiUSVaz3vxYfWtjPwf2/CHscxQqD0j/ctUBQ9my3v0POnFiyXv2/pjjn2Ju/AcDk45DwBhPRP/GjwlCrv7m/aT2ciwolBsAQOzHr/wUJQCzpq5UYvtI/gDCf3SlCwb+4i7S+mukEQBDA1f8mowFA2utnRN3KyT9T+9EYAVG6v9/IVZ0enrE/7NbRtdGfzr/8y8GpRz7LP3U0vTSk18e/JzHEcwiBB0AGm8Q7AJkEQNLciyt4Esk/gLou5zoQxr+RrOfM91oBwEzd36KybgTAgLou5zoQxj/S3IsreBLJv1gCch0OHO8/FD+RxSLN4j91NL00pNfHP/zLwalHPsu/nL7/By4Pyr8tSP5h7CPiv1P70RgBUbo/2utnRN3Kyb/KfllfCpUIwLkP5zj+NwdAgDCf3SlCwT8s6auVGL7Sv2aFPlaC4eC/XrS5UVH77b/xo8JQq7+5P+TjkPAGE9G/Q30/RYbn1z8FF/ISafuLv9y1QFD2bLc/CHscxQqD0r/fi+tPROX0P6vRc+19ie0/amc4seFtsz/3EaZfEIbVv77TYpahl/o/DDsu0CaC9D90kA0k9M6tP0AdQ9ljYNS/CCI0rxjZA8BgfCaLthgHwLAIQZuSFrE/YrGIqEGB1b8kvQ982+rsv4J8EWu7jPS/ySB8B3PBqD+9vWZWv5/VvwrAByWcJgBAxFujmE9a+j89l8n1oGGmP9+agH7x59i/N03cuJUt9L8X9v4GdIz6v1yBHpJd35m/rU/8/LRj1b8mz69sydf/vyu5idMqVQLAn94bv7Majz8AhrtgaAjZv+aCE66WZ/q/lA1Mgz/p/79c7+Nd4VRoP52zweD/Xdi/TJZpMTb4AkDLWZShPOb/PysKSE4W+p2/Jr95SiSW27/PkmbE7zjnP6UAiCDmMNI/nYmLvHn1s78vJO4PW6fbv5MWA2vqSrQ/V5WLwPB51b+otXvWlbuxv54qOw+Amdy/1keqzYeRBsApIEMHgZIIQHb05bmZ366/XCluGsvI3b8W44a9X9UFQEeQtDM4rwJAFj7uU9kEvL9nFpou+9nfv3Co+JcyyQhAcdkCX2KzBUCHHnBxQd7Dvy2KLvLSYuC/o6+5YTt/AcCHCNDW+8YEwF8SFMc79MO/7bOXVSJ54b9E/pfA2S3xPzD9xaBb0uQ/DM7sj5tww7+yZIRsr87hv7c4c0SEXNG/Tr79/9M+5r+v9N6oTy3Qv5uAk/3QzeG/XcI1OVQkAUAQSV9Z7Qr9P/RrFrWXrMu/W2k5L5Qs479Zo2IBM/vkv6FuipzkFvG/SqIpagcly7+ltipxmI3kv0pmis91cfc/gWQecsRh8D93xzejiVXQv3WdNhEv9uO/D7mgYy612j+PyVPNaT2jv34LIpFt6c6/l5YW2Ga45L+LUp+2A2z9P39i5xSpRfc/piRx4P8P0r9eCC3zBAjlv5n4OKmIUf2/jj/kUAwgAsDqW/cjbNPQv9X2z6SYweS/aTdljlWd8L94R8vZ8SL3v1EZczv0b9K/GBbbqxgk5r9XdfyikfEDwPILMvas0gfAnx0V97en0r88xQk/0IPmvxGErZ681fa/9kCaiOy2/b/2BCK0wyDVvy2xROCT4ua/+5EBLOXxA0B7p53+BnkAQKKI/QV+y9i/qDznPFM86b/snWGNkkgHwC+ByugkUwdAR98lJFqQ2b9sL7HxZkPovyJNGM67oek/HzNy6BqA1D96EnqL7pLYv0v8nFypHeq/axL/u1FnB0AkSEHvxn8DQGt+gG5Pstm/QS1keLLK6b/Sk/O6mtGzPxU8pLcPNty/FssiPwWy4L+IZTNYLmzqvw4szKfSouq/G+XJHY1a87+TVW2LUjjfvwQaifgujuy/3VARaoMl2L9NFodfK+/qv+0QMvYfP+C/FvLf01HN67+ETOQysd8AwH71iI/eGgXAbHNSHrTg4L96GNJ2CFvsv6BnExReeAFA5CakvxSl+j8MzcbAuwDgv5bXzdT1Auy/uVq8/8x58z+uvPMNqzTnP2HlfZ3gqOG/Z5Uh1wDX7r8PUbMSo2P7P9VfBrXlxPI/tQvDXQ3H4r9sJXFt2GTvvyDssGgO0PG/WxT/uE4N+r+Bk03jWYvjv/bf8sHUYu+/rUXN8hUe3j9m5HB1yZCzv/yE3PUo0+K/qqAX9idJ8L9mByqLMMH5v4kHC7KQowHAm+sAswr15L8F7/a5DE/wv2JLsGADFwTAKQjVGovZCMDDkYbTbifnvwVbdNXyhfC/malhH7yI7D+oevd0GWDZP1sjk5AdouW/KH/hrXUg8b8KWmrpQ0sFQAzEAF/pTgBAhB1hfFzT5r9XK/wflZ7xv18hRuqKXAjA/5rUd9v1BED/tlxBd4bov7pQU4wLfPK/4pnwn0T/sj/c277XPF3jv02biiQ+Rum/zGkxMcl88r8Yk0HhJVzjv62yUUFRjfS/89MEdoPQ6r8TqikcRF/zvxQxghHovfY/cfM1eFWE5j9pcwp7GJPrv5ehC2fbYPO/KUV2nGg0/795OhmUaqEFwFQeuy4j+eq/ePiwytEp9L8DuqWfW+8BQLytJylXHPY/PlP4Qr8q7r+kDLLri0P1vxT4ShWL+Oo/DMsWg0zlv7/S9fINXGjtv73m373LRPW/+xg/Gaxd8b94MdQEfW0AwLjBLbDOHO+/kmm4ANp49L+cShSMMbAEwKyjUgWirAdAo2q2uqM08L99wKzM+7H2v3RdlNBXFgnA8S9+ewyV/z+vaSZre3Pxv6riWFiWZfi/2J7VSZZ60j+LES81zPn3v+OrlPMN3PK/quJYWJZl+L/OZbufkEcEQLCNB/1lPOO/Y2nmTbY/87+q4lhYlmX4v7CNB/1lPOO/zmW7n5BHBEBwKD1Aa57LP/XsSsw7RbU/PMDPJGsfoD/TqningGKIPzFtCLYmb3I/qYfrJr7eWz9pQmleXRFFP0rWlJkA2i8/pCvcttgTGD9Dt8IWbjMCPyCG4GRlhOs+1JI2GhDN1D7ns8cGvXK/Pi8m8UTJxac+hNTfA2z4kT7GI8kjLyt7Pv//////HwAI//////8zEAj/////fzIgCP////9vMjAI/////2MyQAj///8/YjJQCP///zdiMmAI////M2IycAj//78zYjKACP//qzNiMpAI/3+rM2IyoAj/D6szYjKwCP8DqzNiMsAIvwOrM2Iy0AifA6szYjLgCJkDqzNiMvAI//////8/Dwj//////ysfCP////9/KS8I/////z8pPwj/////OSlPCP///z84KV8I////Dzgpbwj///8OOCl/CP//Hw44KY8I//8PDjgpnwj/fw0OOCmvCP8PDQ44Kb8I/w0NDjgpzwj/DA0OOCnfCMcMDQ44Ke8IxAwNDjgp/wgHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAgAAAAEAAAADAAAADgAAAAYAAAALAAAAAgAAAAcAAAABAAAAGAAAAAUAAAAKAAAAAQAAAAYAAAAAAAAAJgAAAAcAAAAMAAAAAwAAAAgAAAACAAAAMQAAAAkAAAAOAAAAAAAAAAUAAAAEAAAAOgAAAAgAAAANAAAABAAAAAkAAAADAAAAPwAAAAsAAAAGAAAADwAAAAoAAAAQAAAASAAAAAwAAAAHAAAAEAAAAAsAAAARAAAAUwAAAAoAAAAFAAAAEwAAAA4AAAAPAAAAYQAAAA0AAAAIAAAAEQAAAAwAAAASAAAAawAAAA4AAAAJAAAAEgAAAA0AAAATAAAAdQAAAA8AAAATAAAAEQAAABIAAAAQAAAABgAAAAIAAAADAAAABQAAAAQAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAMAAAABAAAABQAAAAQAAAAAAAAAAAAAAAcAAAAFAAAAAwAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAMAAAABAAAABQAAAAQAAAAGAAAAAAAAAAAAAAAYLURU+yH5PxgtRFT7Ifm/GC1EVPshCUAYLURU+yEJwGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjZWxsc1RvTXVsdGlQb2x5LmMAY2VsbFRvRWRnZUFyY3MAAAEDAgQABAMFAQJjYW5jZWxBcmNQYWlycwBjcmVhdGVTb3J0YWJsZUxvb3AAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAdmVjM1RvQ2VsbABjZWxsVG9DaGlsZFBvcwB2YWxpZGF0ZUNoaWxkUG9zAHJldkRpciAhPSBJTlZBTElEX0RJR0lUAGxvY2FsaWouYwBjZWxsVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAYmFzZUNlbGwgPT0gb3JpZ2luQmFzZUNlbGwALi4vaW5jbHVkZS9jb29yZGlqay5oAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAYmFzZUNlbGwgIT0gSU5WQUxJRF9CQVNFX0NFTEwAbG9jYWxJamtUb0NlbGwAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAZ3JpZFBhdGhDZWxsc0ludGVycG9sYXRlAHBvbHlmaWxsLmMAaXRlclN0ZXBQb2x5Z29uQ29tcGFjdAAwAHZlcnRleC5jAHZlcnRleFJvdGF0aW9ucwBjZWxsVG9WZXJ0ZXg=";function W(e){return e}function j(e){return e.replace(/\b__Z[\w\d_]+/g,function(e){return e===e?e:e+" ["+e+"]"})}function Q(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function X(){return g.length}function K(e){try{var t=new ArrayBuffer(e);if(t.byteLength!=e)return;return new Int8Array(t).set(g),te(t),w(t),1}catch(e){}}var J="function"==typeof atob?atob:function(e){var t,n,i,r,o,s,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",A=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{t=a.indexOf(e.charAt(A++))<<2|(r=a.indexOf(e.charAt(A++)))>>4,n=(15&r)<<4|(o=a.indexOf(e.charAt(A++)))>>2,i=(3&o)<<6|(s=a.indexOf(e.charAt(A++))),l+=String.fromCharCode(t),64!==o&&(l+=String.fromCharCode(n)),64!==s&&(l+=String.fromCharCode(i))}while(A<e.length);return l};function q(e){if(H(e))return function(e){try{for(var t=J(e),n=new Uint8Array(t.length),i=0;i<t.length;++i)n[i]=t.charCodeAt(i);return n}catch(e){throw new Error("Converting base64 string to bytes failed.")}}(e.slice(z.length))}var Y,Z,$={a:ce,b:function(e){A=e},c:function(){return A},d:function(e,t,n,i){ce("Assertion failed: "+f(e)+", at: "+[t?f(t):"unknown filename",n,i?f(i):"unknown function"])},e:function(e){return n.___errno_location&&(b[n.___errno_location()>>2]=e),e},f:X,g:function(e,t,n){m.set(m.subarray(t,t+n),e)},h:function(e){var t=X(),n=16777216,i=2130706432;if(e>i)return!1;for(var r=Math.max(t,16777216);r<e;)r=r<=536870912?C(2*r,n):Math.min(C((3*r+2147483648)/4,n),i);return!!K(r)},i:function(e){ce("OOM")},j:W,k:j,l:K,m:Q,n:function(){var e=Q();return n.extraStackTrace&&(e+="\n"+n.extraStackTrace()),j(e)},o:28400,p:28384},ee=function(e,t,n){var i=new e.Int8Array(n),r=new e.Int32Array(n),o=(new e.Uint8Array(n),new e.Float32Array(n),new e.Float64Array(n)),s=0|t.o,a=0|t.p,l=e.Math.floor,A=e.Math.abs,c=e.Math.sqrt,u=e.Math.cos,h=e.Math.sin,d=e.Math.tan,f=e.Math.acos,p=e.Math.asin,g=e.Math.atan,m=e.Math.atan2,_=e.Math.ceil,b=e.Math.imul,v=e.Math.min,y=e.Math.max,C=e.Math.clz32,w=t.a,E=t.b,x=t.c,T=t.d,S=t.e,P=t.f,M=t.g,R=t.h,B=t.i,I=28416;function L(e,t,n,i){return 0|F(e|=0,t|=0,n|=0,i|=0,0)}function F(e,t,n,i,o){var s,a=0,l=0,A=0,c=0;if(s=I,I=I+16|0,l=s,!(0|D(e|=0,t|=0,n|=0,i|=0,o|=0)))return I=s,0|(i=0);do{if((0|n)>=0){if((0|n)>13780509){if(0|(a=0|Ke(15,l)))break;l=0|r[(A=l)>>2],A=0|r[A+4>>2]}else c=0|Ot(0|n,0|(a=((0|n)<0)<<31>>31),3,0),A=0|x(),a=0|Bt(0|n,0|a,1,0),a=0|Bt(0|(a=0|Ot(0|c,0|A,0|a,0|x())),0|x(),1,0),A=0|x(),r[l>>2]=a,r[l+4>>2]=A,l=a;if(Kt(0|i,0,l<<3),0|o){Kt(0|o,0,l<<2),a=0|O(e,t,n,i,o,l,A,0);break}(a=0|Pt(l,4))?(c=0|O(e,t,n,i,a,l,A,0),St(a),a=c):a=13}else a=2}while(0);return I=s,0|(c=a)}function D(e,t,n,i,o){e|=0,t|=0,n|=0,i|=0,o|=0;var s,a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0;if(a=I,I=I+16|0,g=a+8|0,r[(p=s=a)>>2]=e,r[p+4>>2]=t,(0|n)<0)return I=a,0|(g=2);if(r[(l=i)>>2]=e,r[l+4>>2]=t,(l=!!(0|o))&&(r[o>>2]=0),0|xe(e,t))return I=a,0|(g=9);r[g>>2]=0;e:do{if((0|n)>=1)if(l)for(d=1,h=0,f=0,p=1,l=e;;){if(!(h|f)){if(0|(l=0|N(l,t,4,g,s)))break e;if(0|xe(l=0|r[(t=s)>>2],t=0|r[t+4>>2])){l=9;break e}}if(0|(l=0|N(l,t,0|r[26864+(f<<2)>>2],g,s)))break e;if(l=0|r[(t=s)>>2],t=0|r[t+4>>2],r[(e=i+(d<<3)|0)>>2]=l,r[e+4>>2]=t,r[o+(d<<2)>>2]=p,A=(0|(e=h+1|0))==(0|p),u=6==(0|(c=f+1|0)),0|xe(l,t)){l=9;break e}if((0|(p=p+(u&A&1)|0))>(0|n)){l=0;break}d=d+1|0,h=A?0:e,f=A?u?0:c:f}else for(d=1,h=0,f=0,p=1,l=e;;){if(!(h|f)){if(0|(l=0|N(l,t,4,g,s)))break e;if(0|xe(l=0|r[(t=s)>>2],t=0|r[t+4>>2])){l=9;break e}}if(0|(l=0|N(l,t,0|r[26864+(f<<2)>>2],g,s)))break e;if(l=0|r[(t=s)>>2],t=0|r[t+4>>2],r[(e=i+(d<<3)|0)>>2]=l,r[e+4>>2]=t,A=(0|(e=h+1|0))==(0|p),u=6==(0|(c=f+1|0)),0|xe(l,t)){l=9;break e}if((0|(p=p+(u&A&1)|0))>(0|n)){l=0;break}d=d+1|0,h=A?0:e,f=A?u?0:c:f}else l=0}while(0);return I=a,0|(g=l)}function O(e,t,n,i,o,s,a,l){n|=0,i|=0,o|=0,l|=0;var A,c,u,h=0,d=0,f=0,p=0,g=0,m=0,_=0;if(u=I,I=I+16|0,A=u+8|0,c=u,h=0|kt(0|(e|=0),0|(t|=0),0|(s|=0),0|(a|=0)),f=0|x(),!(!(0|(_=0|r[(m=p=i+(h<<3)|0)>>2]))&!(0|(m=0|r[m+4>>2]))|(d=(0|_)==(0|e)&(0|m)==(0|t))))do{h=0|Nt(0|(h=0|Bt(0|h,0|f,1,0)),0|x(),0|s,0|a),f=0|x(),d=(0|(m=0|r[(_=p=i+(h<<3)|0)>>2]))==(0|e)&(0|(_=0|r[_+4>>2]))==(0|t)}while(!(!(0|m)&!(0|_)|d));if(h=o+(h<<2)|0,d&&(0|r[h>>2])<=(0|l))return I=u,0|(_=0);if(r[(_=p)>>2]=e,r[_+4>>2]=t,r[h>>2]=l,(0|l)>=(0|n))return I=u,0|(_=0);switch(d=l+1|0,r[A>>2]=0,0|(h=0|N(e,t,2,A,c))){case 9:g=9;break;case 0:(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d))||(g=9)}e:do{if(9==(0|g)){switch(r[A>>2]=0,0|(h=0|N(e,t,3,A,c))){case 9:break;case 0:if(0|(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d)))break e;break;default:break e}switch(r[A>>2]=0,0|(h=0|N(e,t,1,A,c))){case 9:break;case 0:if(0|(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d)))break e;break;default:break e}switch(r[A>>2]=0,0|(h=0|N(e,t,5,A,c))){case 9:break;case 0:if(0|(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d)))break e;break;default:break e}switch(r[A>>2]=0,0|(h=0|N(e,t,4,A,c))){case 9:break;case 0:if(0|(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d)))break e;break;default:break e}switch(r[A>>2]=0,0|(h=0|N(e,t,6,A,c))){case 9:break;case 0:if(0|(h=0|O(0|r[(h=c)>>2],0|r[h+4>>2],n,i,o,s,a,d)))break e;break;default:break e}return I=u,0|(_=0)}}while(0);return I=u,0|(_=h)}function N(e,t,n,i,o){e|=0,t|=0,o|=0;var s,a,l,A=0,c=0,u=0,h=0,d=0,f=0;if((n|=0)>>>0>6)return 0|(o=1);c=(0|r[(i|=0)>>2])%6|0,r[i>>2]=c;e:do{if((0|c)>0)for(A=0;;){switch(0|n){case 1:n=5;break;case 5:n=4;break;case 4:n=6;break;case 6:n=2;break;case 2:n=3;break;case 3:n=1}if((0|(A=A+1|0))==(0|c))break e}}while(0);if(l=0|Gt(0|e,0|t,45),x(),(a=127&l)>>>0>121)return 0|(o=5);s=0|Pe(e,t),A=0|Gt(0|e,0|t,52),x(),A&=15;e:do{if(A){for(;;){if(u=0|Gt(0|e,0|t,0|(c=3*(15-A|0)|0)),x(),7==(0|(u&=7))){t=5;break}if(f=!(0|Fe(A)),A=A+-1|0,d=0|Vt(7,0,0|c),t&=~x(),e=0|Vt(0|r[(f?432:16)+(28*u|0)+(n<<2)>>2],0,0|c)|e&~d,t|=c=0|x(),!(n=0|r[(f?640:224)+(28*u|0)+(n<<2)>>2])){n=0;break e}if(!A){h=15;break e}}return 0|t}h=15}while(0);15==(0|h)&&(e|=0|Vt(0|(f=0|r[848+(28*a|0)+(n<<2)>>2]),0,45),t=x()|-1040385&t,n=0|r[4272+(28*a|0)+(n<<2)>>2],127&~f||(f=0|Vt(0|r[848+(28*a|0)+20>>2],0,45),t=x()|-1040385&t,n=0|r[4272+(28*a|0)+20>>2],e=0|Re(f|e,t),t=0|x(),r[i>>2]=1+(0|r[i>>2]))),u=0|Gt(0|e,0|t,45),x(),u&=127;e:do{if(0|H(u)){t:do{if(1==(0|Pe(e,t))){if((0|a)!=(0|u)){if(0|X(u,0|r[7696+(28*a|0)>>2])){e=0|Ie(e,t),c=1,t=0|x();break}T(27634,26928,533,26936)}switch(0|s){case 3:e=0|Re(e,t),t=0|x(),r[i>>2]=1+(0|r[i>>2]),c=0;break t;case 5:e=0|Ie(e,t),t=0|x(),r[i>>2]=5+(0|r[i>>2]),c=0;break t;case 0:return 0|(f=9);default:return 0|(f=1)}}else c=0}while(0);if((0|n)>0){A=0;do{e=0|Me(e,t),t=0|x(),A=A+1|0}while((0|A)!=(0|n))}if((0|a)!=(0|u)){if(!(0|W(u))){if(!!(0|c)|5!=(0|Pe(e,t)))break;r[i>>2]=1+(0|r[i>>2]);break}switch(127&l){case 8:case 118:break e}3!=(0|Pe(e,t))&&(r[i>>2]=1+(0|r[i>>2]))}}else if((0|n)>0){A=0;do{e=0|Re(e,t),t=0|x(),A=A+1|0}while((0|A)!=(0|n))}}while(0);return r[i>>2]=((0|r[i>>2])+n|0)%6|0,r[(f=o)>>2]=e,r[f+4>>2]=t,0|(f=0)}function k(e,t,n,i){e|=0,t|=0,n|=0,i|=0;var o,s,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0;if(s=I,I=I+16|0,p=s+8|0,r[(f=o=s)>>2]=e,r[f+4>>2]=t,(0|n)<0)return I=s,0|(p=2);if(!n)return r[(p=i)>>2]=e,r[p+4>>2]=t,I=s,0|(p=0);r[p>>2]=0;e:do{if(0|xe(e,t))e=9;else{a=0,f=e;do{if(0|(e=0|N(f,t,4,p,o)))break e;if(a=a+1|0,0|xe(f=0|r[(t=o)>>2],t=0|r[t+4>>2])){e=9;break e}}while((0|a)<(0|n));r[(d=i)>>2]=f,r[d+4>>2]=t,d=n+-1|0,h=0,e=1;do{if(a=26864+(h<<2)|0,5==(0|h))for(A=0|r[a>>2],l=0,a=e;;){if(0|(e=0|N(0|r[(e=o)>>2],0|r[e+4>>2],A,p,o)))break e;if((0|l)!=(0|d)){if(c=0|r[(u=o)>>2],u=0|r[u+4>>2],r[(e=i+(a<<3)|0)>>2]=c,r[e+4>>2]=u,0|xe(c,u)){e=9;break e}e=a+1|0}else e=a;if((0|(l=l+1|0))>=(0|n))break;a=e}else for(A=o,u=0|r[a>>2],c=0,a=e,l=0|r[A>>2],A=0|r[A+4>>2];;){if(0|(e=0|N(l,A,u,p,o)))break e;if(l=0|r[(A=o)>>2],A=0|r[A+4>>2],r[(e=i+(a<<3)|0)>>2]=l,r[e+4>>2]=A,e=a+1|0,0|xe(l,A)){e=9;break e}if((0|(c=c+1|0))>=(0|n))break;a=e}h=h+1|0}while(h>>>0<6);e=(0|f)==(0|r[(e=o)>>2])&&(0|t)==(0|r[e+4>>2])?0:9}}while(0);return I=s,0|(p=e)}function U(e,t,n,i){e|=0,t|=0,i|=0;var o,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0;if(o=I,I=I+16|0,l=o,!(n|=0))return r[i>>2]=e,r[i+4>>2]=t,I=o,0|(i=0);do{if((0|n)>=0){if((0|n)>13780509){if(0|(s=0|Ke(15,l)))break;s=0|r[(a=l)>>2],a=0|r[a+4>>2]}else h=0|Ot(0|n,0|(s=((0|n)<0)<<31>>31),3,0),a=0|x(),s=0|Bt(0|n,0|s,1,0),s=0|Bt(0|(s=0|Ot(0|h,0|a,0|s,0|x())),0|x(),1,0),a=0|x(),r[(h=l)>>2]=s,r[h+4>>2]=a;if(u=0|Pt(s,8)){if(!(h=0|Pt(s,4))){St(u),s=13;break}if(0|(s=0|O(e,t,n,u,h,s,a,0))){St(u),St(h);break}if(t=0|r[l>>2],(0|(l=0|r[l+4>>2]))>0|!(0|l)&t>>>0>0){s=0,A=0,c=0;do{!(0|(a=0|r[(e=u+(A<<3)|0)>>2]))&!(0|(e=0|r[e+4>>2]))||(0|r[h+(A<<2)>>2])!=(0|n)||(r[(d=i+(s<<3)|0)>>2]=a,r[d+4>>2]=e,s=s+1|0),A=0|Bt(0|A,0|c,1,0),c=0|x()}while((0|c)<(0|l)|(0|c)==(0|l)&A>>>0<t>>>0)}St(u),St(h),s=0}else s=13}else s=2}while(0);return I=o,0|(d=s)}function G(e,t,n,i){n|=0,i|=0;var o,s,a,l=0,A=0;for(a=I,I=I+16|0,o=a,s=a+8|0,l=(l=!(0|xe(e|=0,t|=0)))?1:2;;){if(r[s>>2]=0,!(0|N(e,t,l,s,o))&((0|r[(A=o)>>2])==(0|n)?(0|r[A+4>>2])==(0|i):0)){e=4;break}if((l=l+1|0)>>>0>=7){l=7,e=4;break}}return 4==(0|e)?(I=a,0|l):0}function V(e,t,n,i,s,a,l){t|=0,n|=0,i|=0,s|=0,a|=0,l|=0;var A,c,u,h,d,f,p,g,m,_,b=0,v=0,y=0,C=0,w=0,E=0,T=0,S=0,P=0,M=0,R=0,B=0,L=0,F=0,D=0,O=0,N=0,k=0,U=0;if(_=I,I=I+64|0,p=_+48|0,g=_+32|0,m=_+24|0,A=_+8|0,c=_,(0|(v=0|r[(e|=0)>>2]))<=0)return I=_,0|(D=0);for(u=e+4|0,h=p+8|0,d=g+8|0,f=A+8|0,b=0,L=0;;){B=(y=0|r[u>>2])+(L<<4)|0,r[p>>2]=r[B>>2],r[p+4>>2]=r[B+4>>2],r[p+8>>2]=r[B+8>>2],r[p+12>>2]=r[B+12>>2],(0|L)==(v+-1|0)?(r[g>>2]=r[y>>2],r[g+4>>2]=r[y+4>>2],r[g+8>>2]=r[y+8>>2],r[g+12>>2]=r[y+12>>2]):(B=y+(L+1<<4)|0,r[g>>2]=r[B>>2],r[g+4>>2]=r[B+4>>2],r[g+8>>2]=r[B+8>>2],r[g+12>>2]=r[B+12>>2]),v=0|ie(p,g,i,m);e:do{if(v)y=0,b=v;else if(y=0|r[(v=m)>>2],(0|(v=0|r[v+4>>2]))>0|!(0|v)&y>>>0>0){R=0,B=0;t:for(;;){if(N=1/(+(y>>>0)+4294967296*+(0|v)),U=+o[p>>3],k=+((v=0|It(0|y,0|v,0|R,0|B))>>>0)+4294967296*+(0|x()),O=+(R>>>0)+4294967296*+(0|B),o[A>>3]=N*(U*k)+N*(+o[g>>3]*O),o[f>>3]=N*(+o[h>>3]*k)+N*(+o[d>>3]*O),0|(v=0|De(A,i,c))){b=v;break}E=0|kt(0|(P=0|r[(M=c)>>2]),0|(M=0|r[M+4>>2]),0|t,0|n),C=0|x(),y=0|r[(w=v=l+(E<<3)|0)>>2],w=0|r[w+4>>2];n:do{if(!(0|y)&!(0|w))F=v,D=16;else for(T=0,S=0;;){if((0|T)>(0|n)|(0|T)==(0|n)&S>>>0>t>>>0){b=1;break t}if((0|y)==(0|P)&(0|w)==(0|M))break n;if(E=0|Nt(0|(v=0|Bt(0|E,0|C,1,0)),0|x(),0|t,0|n),C=0|x(),S=0|Bt(0|S,0|T,1,0),T=0|x(),!(0|(y=0|r[(w=v=l+(E<<3)|0)>>2]))&!(0|(w=0|r[w+4>>2]))){F=v,D=16;break}}}while(0);if(16!=(0|D)||(D=0,!(0|P)&!(0|M))||(r[(S=F)>>2]=P,r[S+4>>2]=M,S=a+(r[s>>2]<<3)|0,r[S>>2]=P,r[S+4>>2]=M,S=0|Bt(0|r[(S=s)>>2],0|r[S+4>>2],1,0),P=0|x(),r[(M=s)>>2]=S,r[M+4>>2]=P),R=0|Bt(0|R,0|B,1,0),B=0|x(),y=0|r[(v=m)>>2],!((0|(v=0|r[v+4>>2]))>(0|B)|(0|v)==(0|B)&y>>>0>R>>>0)){y=1;break e}}y=0}else y=1}while(0);if(L=L+1|0,!y){D=21;break}if((0|L)>=(0|(v=0|r[e>>2]))){b=0,D=21;break}}return 21==(0|D)?(I=_,0|b):0}function z(e,t){t|=0;var n,i=0,s=0,a=0,l=0,A=0,c=0,d=0,f=0,p=0;if((0|(l=0|r[(e|=0)>>2]))<=0)return s=(a=0)+(s=12.566370614359172-(s=0)),a=(l=a<0)?s:a,o[t>>3]=a,0;if(n=0|r[e+4>>2],e=1!=(0|l)&1,A=.5*+o[n>>3]+.7853981633974483,a=.5*+o[n+(e<<4)>>3]+.7853981633974483,i=+h(+A)*+h(+a),s=+o[n+(e<<4)+8>>3]-+o[n+8>>3],i=(s=(i=-2*+m(+ +h(+s)*i,+(+u(+A)*+u(+a)+ +u(+s)*i)))+0)-i,1==(0|l))return a=(A=s)+(a=12.566370614359172-(a=i)),A=(l=A<0)?a:A,o[t>>3]=A,0;for(e=1,a=s;f=e,p=(0|(e=e+1|0))%(0|l)|0,d=.5*+o[n+(f<<4)>>3]+.7853981633974483,c=.5*+o[n+(p<<4)>>3]+.7853981633974483,s=+h(+d)*+h(+c),A=+o[n+(p<<4)+8>>3]-+o[n+(f<<4)+8>>3],i=(s=a+(i=-2*+m(+ +h(+A)*s,+(+u(+d)*+u(+c)+ +u(+A)*s))-i))-a-i,!((0|e)>=(0|l));)a=s;return d=s+(d=12.566370614359172-i),d=(p=s<0)?d:s,o[t>>3]=d,0}function H(e){return(e|=0)>>>0>121?0|(e=0):0|(e=0|r[7696+(28*e|0)+16>>2])}function W(e){return 4==(0|(e|=0))|117==(0|e)|0}function j(e){return 0|r[11120+(216*(0|r[(e|=0)>>2])|0)+(72*(0|r[e+4>>2])|0)+(24*(0|r[e+8>>2])|0)+(r[e+12>>2]<<3)>>2]}function Q(e){return 0|r[11120+(216*(0|r[(e|=0)>>2])|0)+(72*(0|r[e+4>>2])|0)+(24*(0|r[e+8>>2])|0)+(r[e+12>>2]<<3)+4>>2]}function X(e,t){return t|=0,(0|r[7696+(28*(e|=0)|0)+20>>2])==(0|t)?0|(t=1):0|(t=(0|r[7696+(28*e|0)+24>>2])==(0|t))}function K(e,t){return 0|r[848+(28*(e|=0)|0)+((t|=0)<<2)>>2]}function J(e,t){return t|=0,(0|r[848+(28*(e|=0)|0)>>2])==(0|t)?0|(t=0):(0|r[848+(28*e|0)+4>>2])==(0|t)?0|(t=1):(0|r[848+(28*e|0)+8>>2])==(0|t)?0|(t=2):(0|r[848+(28*e|0)+12>>2])==(0|t)?0|(t=3):(0|r[848+(28*e|0)+16>>2])==(0|t)?0|(t=4):(0|r[848+(28*e|0)+20>>2])==(0|t)?0|(t=5):0|((0|r[848+(28*e|0)+24>>2])==(0|t)?6:7)}function q(e){var t,n,i;return t=(i=+o[(e|=0)+16>>3])-(n=+o[e+24>>3]),+(i<n?t+6.283185307179586:t)}function Y(e){return+(+o[(e|=0)>>3]-+o[e+8>>3])}function Z(e,t){e|=0;var n,i,r=0;return(r=+o[(t|=0)>>3])>=+o[e+8>>3]&&r<=+o[e>>3]?(n=+o[e+16>>3],r=+o[e+24>>3],t=(i=+o[t+8>>3])>=r,e=i<=n&1,n<r?t&&(e=1):t||(e=0),0|(t=!!(0|e))):0|(t=0)}function $(e,t){t|=0;var n,i,r,s,a,l=0,A=0,c=0,u=0;return+o[(e|=0)>>3]<+o[t+8>>3]||+o[e+8>>3]>+o[t>>3]?0|(l=0):(r=(A=+o[e+16>>3])<(u=+o[(n=e+24|0)>>3]),c=(a=+o[(l=t+16|0)>>3])<(s=+o[(i=t+24|0)>>3]),t=u-a<s-A,e=r?c|t?1:2:0,t=c?r?1:t?2:1:0,(A=+je(A,e))<+je(+o[i>>3],t)||(u=+je(+o[n>>3],e))>+je(+o[l>>3],t)?0|(c=0):0|(c=1))}function ee(e,t){t|=0;var n,i,r,s,a,l=0,A=0,c=0,u=0;return+o[(e|=0)>>3]<+o[t>>3]||+o[e+8>>3]>+o[t+8>>3]?0|(l=0):(r=(s=+o[(l=e+16|0)>>3])<(A=+o[e+24>>3]),c=(u=+o[(n=t+16|0)>>3])<(a=+o[(i=t+24|0)>>3]),t=A-u<a-s,e=r?c|t?1:2:0,t=c?r?1:t?2:1:0,(A=+je(A,e))<=+je(+o[i>>3],t)?0|(c=(u=+je(+o[l>>3],e))>=+je(+o[n>>3],t)):0|(c=0))}function te(e,t){e|=0,t|=0;var n,i,s,a,l,A=0;s=I,I=I+176|0,r[(i=s)>>2]=4,A=+o[t>>3],o[i+8>>3]=A,a=+o[t+16>>3],o[i+16>>3]=a,o[i+24>>3]=A,A=+o[t+24>>3],o[i+32>>3]=A,l=+o[t+8>>3],o[i+40>>3]=l,o[i+48>>3]=A,o[i+56>>3]=l,o[i+64>>3]=a,n=(t=i+72|0)+96|0;do{r[t>>2]=0,t=t+4|0}while((0|t)<(0|n));Qt(0|e,0|i,168),I=s}function ne(e,t,n){e|=0,t|=0,n|=0;var i,a,c,u,h,d,f,p=0,g=0,m=0,b=0,y=0,C=0,w=0;d=I,I=I+288|0,h=d+264|0,b=d+96|0,g=(p=m=d)+96|0;do{r[p>>2]=0,p=p+4|0}while((0|p)<(0|g));return 0|(t=0|Ge(t,m))?(I=d,0|(C=t)):(ke(m=0|r[(g=m)>>2],g=0|r[g+4>>2],h),Ue(m,g,b),u=+Qe(h,b+8|0),o[h>>3]=+o[e>>3],o[(g=h+8|0)>>3]=+o[e+16>>3],o[b>>3]=+o[e+8>>3],o[(m=b+8|0)>>3]=+o[e+24>>3],a=+Qe(h,b),w=+o[g>>3]-+o[m>>3],c=+A(+w),f=+o[h>>3]-+o[b>>3],i=+A(+f),!(0==w|0==f)&&(w=+Ht(+c,+i),w=+_(+a*a/+Wt(+w/+Wt(+c,+i),3)/(u*(2.59807621135*u)*.8)),o[s>>3]=w,y=~~w>>>0,C=+A(w)>=1?w>0?~~+v(+l(w/4294967296),4294967295)>>>0:~~+_((w-+(~~w>>>0))/4294967296)>>>0:0,2146435072&~r[s+4>>2])?(b=!(0|y)&!(0|C),r[(t=n)>>2]=b?1:y,r[t+4>>2]=b?0:C,t=0):t=1,I=d,0|(C=t))}function ie(e,t,n,i){e|=0,t|=0,n|=0,i|=0;var a,c,u,h,d=0,f=0,p=0;h=I,I=I+288|0,c=h+264|0,u=h+96|0,a=(d=f=h)+96|0;do{r[d>>2]=0,d=d+4|0}while((0|d)<(0|a));return 0|(n=0|Ge(n,f))?(I=h,0|(i=n)):(ke(d=0|r[(n=f)>>2],n=0|r[n+4>>2],c),Ue(d,n,u),p=+Qe(c,u+8|0),p=+_(+ +Qe(e,t)/(2*p)),o[s>>3]=p,n=~~p>>>0,d=+A(p)>=1?p>0?~~+v(+l(p/4294967296),4294967295)>>>0:~~+_((p-+(~~p>>>0))/4294967296)>>>0:0,2146435072&~r[s+4>>2]?(f=!(0|n)&!(0|d),r[i>>2]=f?1:n,r[i+4>>2]=f?0:d,I=h,0|(i=0)):(I=h,0|(i=1)))}function re(e,t,n,s){e|=0,s|=0;var a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,S=0,P=0,M=0,R=0,B=0,L=0,F=0,D=0;if(a=I,I=I+224|0,B=a,S=a+48|0,(h=(0|(n|=0))>0|!(0|n)&(t|=0)>>>0>0)&(n>>>0>0|!(0|n)&t>>>0>17895697))return I=a,0|(D=14);if((0|n)<0)return I=a,0|(D=2);if(!(0|t)&!(0|n))return r[s>>2]=0,r[s+4>>2]=0,I=a,0|(D=0);for(l=0|be(0|r[(l=e)>>2],0|r[l+4>>2]),c=0,u=0;;){if(!(0|ye(0|r[(D=A=e+(c<<3)|0)>>2],0|r[D+4>>2]))){l=5,L=159;break}if(D=(0|be(0|r[(D=A)>>2],0|r[D+4>>2]))==(0|l),c=0|Bt(0|c,0|u,1,0),u=0|x(),!D){l=12,L=159;break}if(!((0|u)<(0|n)|(0|u)==(0|n)&c>>>0<t>>>0)){L=8;break}}if(8==(0|L)){do{if((0|n)>0|!(0|n)&t>>>0>1){if(!(c=0|Tt(l=t<<3)))return I=a,0|(D=13);for(Qt(0|c,0|e,0|l),mt(c,t,8,1),l=1,A=0;D=c+(l+-1<<3)|0,D=(0|r[(F=c+(l<<3)|0)>>2])==(0|r[D>>2])?(0|r[F+4>>2])==(0|r[D+4>>2]):0,l=0|Bt(0|l,0|A,1,0),A=0|x(),!D;)if(!((0|A)<(0|n)|(0|A)==(0|n)&l>>>0<t>>>0)){L=14;break}if(14==(0|L)){St(c);break}return St(c),I=a,0|(D=10)}}while(0);if(l=0|Ot(0|t,0|n,6,0),A=0|x(),h){c=0,u=0;do{l=0|Bt(0|l,0|A,0|(D=!!(0|xe(0|r[(D=e+(u<<3)|0)>>2],0|r[D+4>>2]))<<31>>31),((0|D)<0)<<31>>31),A=0|x(),u=0|Bt(0|u,0|c,1,0),c=0|x()}while((0|c)<(0|n)|(0|c)==(0|n)&u>>>0<t>>>0);E=l,w=A}else E=l,w=A;if(y=0|Ot(0|E,0|w,10,0),C=0|x(),!(F=0|Tt(E<<5)))return I=a,0|(D=13);if(!(D=0|Pt(y,4)))return St(F),I=a,0|(D=13);e:do{if(h){for(ae(0|r[(R=e)>>2],0|r[R+4>>2],B),m=F,_=0,b=0,l=0,v=0;;){A=(h=!(0|r[(h=B)>>2])&!(0|r[h+4>>2]))?26990:26995,c=h?5:6,h=B+((1&h)<<3)|0,d=0|Bt(0|c,0|(u=0),-1,-1),f=0|x(),p=0,g=0;do{P=0|r[(M=h+(p<<3)|0)+4>>2],r[(R=m+(p<<5)|0)>>2]=r[M>>2],r[R+4>>2]=P,i[m+(p<<5)+9|0]=0,i[m+(p<<5)+8|0]=0,r[m+(p<<5)+20>>2]=m,r[(R=m+(p<<5)+24|0)>>2]=1,r[R+4>>2]=0,R=0|i[A+p|0],P=0|kt(0|(P=0|Bt(0|d,0|f,0|p,0|g)),0|x(),0|c,0|u),x(),P=0|i[A+P|0],p=0|Bt(0|p,0|g,1,0),g=0|x(),M=0|i[A+((0|p)==(0|c)&(0|g)==(0|u)?0:p)|0],r[m+((R&=255)<<5)+16>>2]=m+((255&P)<<5),r[m+(R<<5)+12>>2]=m+((255&M)<<5)}while(g>>>0<u>>>0|(0|g)==(0|u)&p>>>0<c>>>0);if(_=0|Bt(0|_,0|b,1,0),b=0|x(),l=0|Bt(0|c,0|u,0|l,0|v),v=0|x(),!((0|b)<(0|n)|(0|b)==(0|n)&_>>>0<t>>>0))break e;0|ae(0|r[(R=e+(_<<3)|0)>>2],0|r[R+4>>2],B)||(m=F+(l<<5)|0)}T(27634,26956,108,26975)}}while(0);if((0|w)>0|!(0|w)&E>>>0>0){u=0,h=0;do{if(l=0|Gt(0|(c=0|r[(A=F+(u<<5)|0)>>2]),0|(A=0|r[A+4>>2]),30),l=0|Gt(0|(A=0|Ot(l^c|0,(0|x())^A,484763065,-1084733587)),0|(c=0|x()),27),A=0|kt((l=0|Gt(0|(c=0|Ot(l^A|0,(0|x())^c,321982955,-1798288965)),0|(A=0|x()),31))^c|0,(0|x())^A,0|y,0|C),c=0|x(),0|r[(l=D+(A<<2)|0)>>2])do{A=0|Nt(0|(l=0|Bt(0|A,0|c,1,0)),0|x(),0|y,0|C),c=0|x(),l=D+(A<<2)|0}while(0|r[l>>2]);r[l>>2]=F+(u<<5),u=0|Bt(0|u,0|h,1,0),h=0|x()}while((0|h)<(0|w)|(0|h)==(0|w)&u>>>0<E>>>0);p=0,g=0;do{if(u=F+(p<<5)|0,!(0|i[(h=F+(p<<5)+9|0)|0])){if(0|Ae(0|r[(R=u)>>2],0|r[R+4>>2],B)){L=39;break}A=0|Gt(0|(d=0|r[(f=B)>>2]),0|(f=0|r[f+4>>2]),30),l=0|Gt(0|(A=0|Ot(A^d|0,(0|x())^f,484763065,-1084733587)),0|(c=0|x()),27),A=0|kt((l=0|Gt(0|(c=0|Ot(l^A|0,(0|x())^c,321982955,-1798288965)),0|(A=0|x()),31))^c|0,(0|x())^A,0|y,0|C),c=0|x(),l=0|r[D+(A<<2)>>2];e:do{if(0|l){for(;(0|r[(R=l)>>2])!=(0|d)||(0|r[R+4>>2])!=(0|f);)if(A=0|Nt(0|(l=0|Bt(0|A,0|c,1,0)),0|x(),0|y,0|C),c=0|x(),!(l=0|r[D+(A<<2)>>2]))break e;i[h|0]=1,i[l+9|0]=1,A=l+16|0,r[16+(0|r[(R=F+(p<<5)+12|0)>>2])>>2]=r[A>>2],n=l+12|0,M=0|r[F+(p<<5)+16>>2],r[M+12>>2]=r[n>>2],r[16+(0|r[n>>2])>>2]=M,r[12+(0|r[A>>2])>>2]=r[R>>2],A=0|oe(u),R=0|oe(l),l=(M=(0|(n=0|r[(l=A+24|0)+4>>2]))<(0|(P=0|r[(M=R+24|0)+4>>2]))|((0|n)==(0|P)?(0|r[l>>2])>>>0<(0|r[M>>2])>>>0:0))?A:R,(0|(A=M?R:A))!=(0|l)&&(P=l+24|0,P=0|Bt(0|r[(M=R=A+24|0)>>2],0|r[M+4>>2],0|r[P>>2],0|r[P+4>>2]),M=0|x(),r[R>>2]=P,r[R+4>>2]=M,r[l+20>>2]=A)}}while(0)}p=0|Bt(0|p,0|g,1,0),g=0|x()}while((0|g)<(0|w)|(0|g)==(0|w)&p>>>0<E>>>0);39==(0|L)&&T(27634,26956,258,27001),l=0,A=0;do{i[F+(l<<5)+8|0]=0,l=0|Bt(0|l,0|A,1,0),A=0|x()}while((0|A)<(0|w)|(0|A)==(0|w)&l>>>0<E>>>0);for(d=0,c=0,h=0,f=0;;){if(l=F+(d<<5)|0,0|i[F+(d<<5)+8|0]||0|i[F+(d<<5)+9|0])u=h;else{A=0|r[(u=l)>>2],u=0|r[u+4>>2];do{i[l+8|0]=1,R=l=0|r[l+12>>2]}while((0|r[R>>2])!=(0|A)||(0|r[R+4>>2])!=(0|u));c=0|Bt(0|c,0|h,1,0),u=0|x()}if(d=0|Bt(0|d,0|f,1,0),!((0|(f=0|x()))<(0|w)|(0|f)==(0|w)&d>>>0<E>>>0))break;h=u}l=0,A=0;do{i[F+(l<<5)+8|0]=0,l=0|Bt(0|l,0|A,1,0),A=0|x()}while((0|A)<(0|w)|(0|A)==(0|w)&l>>>0<E>>>0);M=c,P=u,l=1}else M=0,P=0,l=0;R=0|Tt(24*M|0);e:do{if(0|R){t:do{if(l){e=0,y=0,n=0,t=0;n:for(;;){if(l=F+(e<<5)|0,0|i[F+(e<<5)+8|0]||0|i[F+(e<<5)+9|0])A=n,l=y;else{b=0|r[(v=l)>>2],v=0|r[v+4>>2],A=0,c=0;do{A=0|Bt(0|A,0|c,2,0),c=0|x(),C=l=0|r[l+12>>2]}while((0|r[C>>2])!=(0|b)||(0|r[C+4>>2])!=(0|v));if(!(_=0|Tt(A<<4)))break;A=b,c=v,m=0,g=0,u=0,h=0;do{if(0|le(A,c,S)){L=69;break n}if(p=((0|(f=(C=0|r[S>>2])+-1|0))<0)<<31>>31,(0|C)>1){c=u,d=0,A=h,u=0;do{h=S+8+(d<<4)|0,r[(C=_+(c<<4)|0)>>2]=r[h>>2],r[C+4>>2]=r[h+4>>2],r[C+8>>2]=r[h+8>>2],r[C+12>>2]=r[h+12>>2],c=0|Bt(0|c,0|A,1,0),A=0|x(),d=0|Bt(0|d,0|u,1,0),u=0|x()}while((0|u)<(0|p)|(0|u)==(0|p)&d>>>0<f>>>0);u=c,h=A}m=0|Bt(0|m,0|g,0|f,0|p),g=0|x(),i[l+8|0]=1,l=0|r[l+12>>2],A=0|r[(c=l)>>2],c=0|r[c+4>>2]}while(!((0|A)==(0|b)&(0|c)==(0|v)));if(!(A=0|Mt(_,m<<4))){L=75;break}v=0|oe(l),C=0|r[v+4>>2],r[(l=R+(24*n|0)|0)>>2]=r[v>>2],r[l+4>>2]=C,r[(l=R+(24*n|0)+16|0)>>2]=m,r[R+(24*n|0)+20>>2]=A,r[B>>2]=r[l>>2],r[B+4>>2]=r[l+4>>2],z(B,R+(24*n|0)+8|0),A=0|Bt(0|n,0|y,1,0),l=0|x()}if(e=0|Bt(0|e,0|t,1,0),!((0|(t=0|x()))<(0|w)|(0|t)==(0|w)&e>>>0<E>>>0))break t;y=l,n=A}if(69==(0|L)?T(27634,26956,351,27016):75==(0|L)&&St(_),(0|y)>0|!(0|y)&n>>>0>0)for(u=0,h=0,l=n,c=y;(A=0|r[R+(24*u|0)+20>>2])?(St(A),A=y,l=n):A=c,u=0|Bt(0|u,0|h,1,0),(0|(h=0|x()))<(0|A)|(0|h)==(0|A)&u>>>0<l>>>0;)c=A;St(R);break e}}while(0);mt(R,M,24,2);t:do{if(!(0|M)&!(0|P)){if(0|(C=0|Tt(192))){if(r[C+16>>2]=0,r[C+20>>2]=0,r[(g=C+8|0)>>2]=3,l=0|Tt(48),r[(m=C+12|0)>>2]=l,0|l){r[l>>2]=r[3860],r[l+4>>2]=r[3861],r[l+8>>2]=r[3862],r[l+12>>2]=r[3863],r[(p=l+16|0)>>2]=r[3864],r[p+4>>2]=r[3865],r[p+8>>2]=r[3866],r[p+12>>2]=r[3867],r[(p=l+32|0)>>2]=r[3868],r[p+4>>2]=r[3869],r[p+8>>2]=r[3870],r[p+12>>2]=r[3871],r[B>>2]=r[g>>2],r[B+4>>2]=r[g+4>>2],z(B,C),r[C+40>>2]=0,r[C+44>>2]=0,r[(p=C+32|0)>>2]=3,l=0|Tt(48),r[(_=C+36|0)>>2]=l;do{if(l){if(r[l>>2]=r[3872],r[l+4>>2]=r[3873],r[l+8>>2]=r[3874],r[l+12>>2]=r[3875],r[(f=l+16|0)>>2]=r[3876],r[f+4>>2]=r[3877],r[f+8>>2]=r[3878],r[f+12>>2]=r[3879],r[(f=l+32|0)>>2]=r[3880],r[f+4>>2]=r[3881],r[f+8>>2]=r[3882],r[f+12>>2]=r[3883],r[B>>2]=r[p>>2],r[B+4>>2]=r[p+4>>2],z(B,C+24|0),r[C+64>>2]=0,r[C+68>>2]=0,r[(f=C+56|0)>>2]=3,l=0|Tt(48),r[(b=C+60|0)>>2]=l,!l){u=0,h=2;break}if(r[l>>2]=r[3884],r[l+4>>2]=r[3885],r[l+8>>2]=r[3886],r[l+12>>2]=r[3887],r[(d=l+16|0)>>2]=r[3888],r[d+4>>2]=r[3889],r[d+8>>2]=r[3890],r[d+12>>2]=r[3891],r[(d=l+32|0)>>2]=r[3892],r[d+4>>2]=r[3893],r[d+8>>2]=r[3894],r[d+12>>2]=r[3895],r[B>>2]=r[f>>2],r[B+4>>2]=r[f+4>>2],z(B,C+48|0),r[C+88>>2]=0,r[C+92>>2]=0,r[(d=C+80|0)>>2]=3,l=0|Tt(48),r[(v=C+84|0)>>2]=l,!l){u=0,h=3;break}if(r[l>>2]=r[3896],r[l+4>>2]=r[3897],r[l+8>>2]=r[3898],r[l+12>>2]=r[3899],r[(h=l+16|0)>>2]=r[3900],r[h+4>>2]=r[3901],r[h+8>>2]=r[3902],r[h+12>>2]=r[3903],r[(h=l+32|0)>>2]=r[3904],r[h+4>>2]=r[3905],r[h+8>>2]=r[3906],r[h+12>>2]=r[3907],r[B>>2]=r[d>>2],r[B+4>>2]=r[d+4>>2],z(B,C+72|0),r[C+112>>2]=0,r[C+116>>2]=0,r[(h=C+104|0)>>2]=3,l=0|Tt(48),r[(e=C+108|0)>>2]=l,!l){u=0,h=4;break}if(r[l>>2]=r[3908],r[l+4>>2]=r[3909],r[l+8>>2]=r[3910],r[l+12>>2]=r[3911],r[(u=l+16|0)>>2]=r[3912],r[u+4>>2]=r[3913],r[u+8>>2]=r[3914],r[u+12>>2]=r[3915],r[(u=l+32|0)>>2]=r[3916],r[u+4>>2]=r[3917],r[u+8>>2]=r[3918],r[u+12>>2]=r[3919],r[B>>2]=r[h>>2],r[B+4>>2]=r[h+4>>2],z(B,C+96|0),r[C+136>>2]=0,r[C+140>>2]=0,r[(u=C+128|0)>>2]=3,l=0|Tt(48),r[(t=C+132|0)>>2]=l,!l){u=0,h=5;break}if(r[l>>2]=r[3920],r[l+4>>2]=r[3921],r[l+8>>2]=r[3922],r[l+12>>2]=r[3923],r[(c=l+16|0)>>2]=r[3924],r[c+4>>2]=r[3925],r[c+8>>2]=r[3926],r[c+12>>2]=r[3927],r[(c=l+32|0)>>2]=r[3928],r[c+4>>2]=r[3929],r[c+8>>2]=r[3930],r[c+12>>2]=r[3931],r[B>>2]=r[u>>2],r[B+4>>2]=r[u+4>>2],z(B,C+120|0),r[C+160>>2]=0,r[C+164>>2]=0,r[(c=C+152|0)>>2]=3,l=0|Tt(48),r[(n=C+156|0)>>2]=l,!l){u=0,h=6;break}if(r[l>>2]=r[3932],r[l+4>>2]=r[3933],r[l+8>>2]=r[3934],r[l+12>>2]=r[3935],r[(A=l+16|0)>>2]=r[3936],r[A+4>>2]=r[3937],r[A+8>>2]=r[3938],r[A+12>>2]=r[3939],r[(A=l+32|0)>>2]=r[3940],r[A+4>>2]=r[3941],r[A+8>>2]=r[3942],r[A+12>>2]=r[3943],r[B>>2]=r[c>>2],r[B+4>>2]=r[c+4>>2],z(B,C+144|0),r[C+184>>2]=0,r[C+188>>2]=0,r[(A=C+176|0)>>2]=3,l=0|Tt(48),r[(y=C+180|0)>>2]=l,!l){u=0,h=7;break}if(r[l>>2]=r[3944],r[l+4>>2]=r[3945],r[l+8>>2]=r[3946],r[l+12>>2]=r[3947],r[(S=l+16|0)>>2]=r[3948],r[S+4>>2]=r[3949],r[S+8>>2]=r[3950],r[S+12>>2]=r[3951],r[(l=l+32|0)>>2]=r[3952],r[l+4>>2]=r[3953],r[l+8>>2]=r[3954],r[l+12>>2]=r[3955],r[B>>2]=r[A>>2],r[B+4>>2]=r[A+4>>2],z(B,C+168|0),mt(C,8,24,3),l=0|Tt(128),r[s+4>>2]=l,0|l){r[s>>2]=8,r[l>>2]=r[g>>2],r[l+4>>2]=r[g+4>>2],r[l+8>>2]=r[g+8>>2],r[l+12>>2]=r[g+12>>2],r[(L=l+16|0)>>2]=r[p>>2],r[L+4>>2]=r[p+4>>2],r[L+8>>2]=r[p+8>>2],r[L+12>>2]=r[p+12>>2],r[(L=l+32|0)>>2]=r[f>>2],r[L+4>>2]=r[f+4>>2],r[L+8>>2]=r[f+8>>2],r[L+12>>2]=r[f+12>>2],r[(L=l+48|0)>>2]=r[d>>2],r[L+4>>2]=r[d+4>>2],r[L+8>>2]=r[d+8>>2],r[L+12>>2]=r[d+12>>2],r[(L=l+64|0)>>2]=r[h>>2],r[L+4>>2]=r[h+4>>2],r[L+8>>2]=r[h+8>>2],r[L+12>>2]=r[h+12>>2],r[(L=l+80|0)>>2]=r[u>>2],r[L+4>>2]=r[u+4>>2],r[L+8>>2]=r[u+8>>2],r[L+12>>2]=r[u+12>>2],r[(L=l+96|0)>>2]=r[c>>2],r[L+4>>2]=r[c+4>>2],r[L+8>>2]=r[c+8>>2],r[L+12>>2]=r[c+12>>2],r[(L=l+112|0)>>2]=r[A>>2],r[L+4>>2]=r[A+4>>2],r[L+8>>2]=r[A+8>>2],r[L+12>>2]=r[A+12>>2],St(C),L=158;break t}0|(l=0|r[m>>2])&&St(l),0|(l=0|r[_>>2])&&St(l),0|(l=0|r[b>>2])&&St(l),0|(l=0|r[v>>2])&&St(l),0|(l=0|r[e>>2])&&St(l),0|(l=0|r[t>>2])&&St(l),0|(l=0|r[n>>2])&&St(l),0|(l=0|r[y>>2])&&St(l),St(C);break t}u=0,h=1}while(0);l=0,c=0;do{0|(A=0|r[C+(24*l|0)+12>>2])&&St(A),l=0|Bt(0|l,0|c,1,0),c=0|x()}while(c>>>0<u>>>0|(0|c)==(0|u)&l>>>0<h>>>0)}St(C),L=152}}else{if((0|P)>0|!(0|P)&M>>>0>0){c=0,u=0,h=0,A=0,l=0,d=0;do{B=u,L=h,A=0|Bt(0|A,0|l,1&((0|(u=0|r[(S=R+(24*c|0)|0)>>2]))!=(0|B)|(0|(h=0|r[S+4>>2]))!=(0|L)),0),l=0|x(),c=0|Bt(0|c,0|d,1,0),d=0|x()}while((0|d)<(0|P)|(0|d)==(0|P)&c>>>0<M>>>0);v=A,b=l}else v=0,b=0;if(e=0|Tt(24*v|0)){n:do{if((0|P)>=0){for(g=0,m=0,A=0,c=0,_=0,u=0;;){if((0|g)==(0|M)&(0|m)==(0|P)||(L=R+(24*g|0)|0,(0|r[(B=R+(24*A|0)|0)>>2])!=(0|r[L>>2])||(0|r[B+4>>2])!=(0|r[L+4>>2]))){if(f=R+(24*A|0)|0,p=0|Bt(0|(L=0|It(0|g,0|m,0|A,0|c)),0|(B=0|x()),-1,-1),c=0|x(),(0|B)>0|!(0|B)&L>>>0>1){if(!(l=0|Tt(p<<3)))break;h=0,d=0;do{L=h,h=0|Bt(0|h,0|d,1,0),d=0|x(),B=0|r[(S=f+(24*h|0)+16|0)+4>>2],r[(L=l+(L<<3)|0)>>2]=r[S>>2],r[L+4>>2]=B}while((0|d)<(0|c)|(0|d)==(0|c)&h>>>0<p>>>0)}else l=0;L=0|r[(B=R+(24*A|0)+16|0)+4>>2],r[(c=e+(24*u|0)+8|0)>>2]=r[B>>2],r[c+4>>2]=L,r[e+(24*u|0)+16>>2]=p,r[e+(24*u|0)+20>>2]=l,o[e+(24*u|0)>>3]=+o[R+(24*A|0)+8>>3],u=0|Bt(0|u,0|_,1,0),A=g,c=m,l=0|x()}else l=_;if(L=g,g=0|Bt(0|g,0|m,1,0),B=m,m=0|x(),!((0|B)<(0|P)|(0|B)==(0|P)&L>>>0<M>>>0))break n;_=l}if((0|_)>0|!(0|_)&u>>>0>0){l=0,c=0;do{0|(A=0|r[e+(24*l|0)+20>>2])&&St(A),l=0|Bt(0|l,0|c,1,0),c=0|x()}while((0|c)<(0|_)|(0|c)==(0|_)&l>>>0<u>>>0)}St(e),L=152;break t}}while(0);if(mt(e,v,24,3),l=0|Tt(v<<4),r[(c=s+4|0)>>2]=l,l){r[s>>2]=v;do{if((0|b)>0|!(0|b)&v>>>0>0){if(s=e+8|0,r[l>>2]=r[s>>2],r[l+4>>2]=r[s+4>>2],r[l+8>>2]=r[s+8>>2],r[l+12>>2]=r[s+12>>2],1==(0|v)&!(0|b))break;if(L=e+32|0,r[(s=l+16|0)>>2]=r[L>>2],r[s+4>>2]=r[L+4>>2],r[s+8>>2]=r[L+8>>2],r[s+12>>2]=r[L+12>>2],!((0|b)>0|!(0|b)&v>>>0>2))break;l=2,A=0;do{s=(0|r[c>>2])+(l<<4)|0,L=e+(24*l|0)+8|0,r[s>>2]=r[L>>2],r[s+4>>2]=r[L+4>>2],r[s+8>>2]=r[L+8>>2],r[s+12>>2]=r[L+12>>2],l=0|Bt(0|l,0|A,1,0),A=0|x()}while((0|A)<(0|b)|(0|A)==(0|b)&l>>>0<v>>>0)}}while(0);St(e),L=158;break}if((0|b)>0|!(0|b)&v>>>0>0){l=0,c=0;do{0|(A=0|r[e+(24*l|0)+20>>2])&&St(A),l=0|Bt(0|l,0|c,1,0),c=0|x()}while((0|c)<(0|b)|(0|c)==(0|b)&l>>>0<v>>>0)}St(e),L=152;break}L=152}}while(0);if(158==(0|L))return St(F),St(D),St(R),I=a,0|(D=0);if(152==(0|L)&&(0|P)>0|!(0|P)&M>>>0>0)for(u=0,h=0,l=M,c=P;(A=0|r[R+(24*u|0)+20>>2])?(St(A),A=P,l=M):A=c,u=0|Bt(0|u,0|h,1,0),(0|(h=0|x()))<(0|A)|(0|h)==(0|A)&u>>>0<l>>>0;)c=A;return St(R),St(F),St(D),I=a,0|(D=13)}}while(0);return St(F),St(D),I=a,0|(D=13)}return 159==(0|L)?(I=a,0|l):0}function oe(e){var t,n=0;return(0|(n=0|r[(t=(e|=0)+20|0)>>2]))==(0|e)?0|e:(n=0|oe(n),r[t>>2]=n,0|n)}function se(e,t){var n=0;switch(n=0|Gt(0|(e|=0),0|(t|=0),56),x(),7&n){case 0:case 7:return 0|(n=0)}return n=-2130706433&t|134217728,!0&268435456==(2013265920&t)?!0&16777216==(117440512&t)&!!(0|xe(e,n))?0|(n=0):0|(n=0|ye(e,n)):0|(n=0)}function ae(e,t,n){n|=0;var i,o=0;return i=!(0|xe(e|=0,t|=0)),t&=-2130706433,r[(o=n)>>2]=i?e:0,r[o+4>>2]=i?285212672|t:0,r[(o=n+8|0)>>2]=e,r[o+4>>2]=301989888|t,r[(o=n+16|0)>>2]=e,r[o+4>>2]=318767104|t,r[(o=n+24|0)>>2]=e,r[o+4>>2]=335544320|t,r[(o=n+32|0)>>2]=e,r[o+4>>2]=352321536|t,r[(n=n+40|0)>>2]=e,r[n+4>>2]=369098752|t,0}function le(e,t,n){n|=0;var i,o,s=0,a=0;return o=I,I=I+16|0,i=o,a=-2130706433&(t|=0)|134217728,!0&268435456==(2013265920&t)?(s=0|Gt(0|(e|=0),0|t,56),x(),s=0|function(e,t,n){e|=0,t|=0,n|=0;var i=0,o=0,s=0;if(s=I,I=I+16|0,o=s,i=0|xe(e,t),(n+-1|0)>>>0>5)return I=s,0|(o=-1);if(i=!!(0|i),1==(0|n)&i)return I=s,0|(o=-1);do{if(!(0|ft(e,t,o))){if(i){i=(5+(0|r[26416+(n<<2)>>2])-(0|r[o>>2])|0)%5|0;break}i=(6+(0|r[26448+(n<<2)>>2])-(0|r[o>>2])|0)%6|0;break}i=-1}while(0);return o=i,I=s,0|o}(e,a,7&s),-1==(0|s)?(r[n>>2]=0,I=o,0|(a=6)):(0|Ne(e,a,i)&&T(27634,27035,282,27050),t=0|Gt(0|e,0|t,52),x(),t&=15,0|xe(e,a)?de(i,t,s,2,n):me(i,t,s,2,n),I=o,0|(a=0))):(I=o,0|(a=6))}function Ae(e,t,n){e|=0,n|=0;var i,o=0,s=0,a=0;return i=I,I=I+16|0,s=i,a=-2130706433&(t|=0)|134217728,!0&268435456==(2013265920&t)?(r[(o=i+8|0)>>2]=0,t=0|Gt(0|e,0|t,56),x(),0|(t=0|N(e,a,7&t,o,s))?(I=i,0|(n=t)):7==(0|(t=0|G(o=0|r[s>>2],s=0|r[s+4>>2],e,a)))?(I=i,0|(n=11)):(e=0|Vt(0|t,0,56),a=-2130706433&s|x()|268435456,r[n>>2]=o|e,r[n+4>>2]=a,I=i,0|(n=0))):(I=i,0|(n=6))}function ce(e,t,n){e|=0,t|=0;var i,s,a=0,l=0,p=0,g=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,T=0,S=0,P=0,M=0,R=0,B=0;r[(n|=0)>>2]=0,v=+o[e>>3],y=+o[e+8>>3],b=+o[e+16>>3],l=0,p=5,a=5,e=0;do{(g=(E=+o[15888+(24*l|0)>>3]-v)*E+(w=+o[15888+(24*l|0)+8>>3]-y)*w+(g=+o[15888+(24*l|0)+16>>3]-b)*g)<a&&(r[n>>2]=l,p=g,e=l,a=g),l=l+1|0}while(20!=(0|l));if((p=+f(+(1-.5*p)))<1e-16)b=0,g=0;else{if(R=+o[16368+(24*e|0)>>3],P=+o[15888+(24*e|0)>>3],M=+o[15888+(24*e|0)+8>>3],g=P*(B=-((S=+o[15888+(24*e|0)+16>>3])+(0*P+0*M)))+0,E=M*B+0,g*=T=(T=+c(+((B=S*B+1)*B+(g*g+E*E))))>0?1/T:0,E*=T,T*=B,w=v+P*(B=-(v*P+y*M+b*S)),w*=y=(y=+c(+((v=b+S*B)*v+(w*w+(a=y+M*B)*a))))>0?1/y:0,a*=y,a=+We(R-+We(+m(+((y*=v)*(M*g-P*E)+(w*(S*E-M*T)+a*(P*T-S*g))),+(T*y+(g*w+E*a))))),g=0|Fe(t)?+We(a+-.3334731722518321):a,a=2.618033988749896*+d(+p),(0|t)>0){e=0;do{a*=2.6457513110645907,e=e+1|0}while((0|e)!=(0|t))}b=+u(+g)*a,g=+h(+g)*a}t=n+4|0,r[(s=n+12|0)>>2]=0,p=1.1547005383792515*+A(+g),a=+A(+b)+.5*p,a-=+(0|(e=~~a)),p-=+(0|(l=~~p));do{if(a<.5){if(a<.3333333333333333){if(r[t>>2]=e,p<.5*(a+1)){r[n+8>>2]=l;break}l=l+1|0,r[n+8>>2]=l;break}if(l=(1&!(p<(B=1-a)))+l|0,r[n+8>>2]=l,B<=p&p<2*a){e=e+1|0,r[t>>2]=e;break}r[t>>2]=e;break}if(!(a<.6666666666666666)){if(e=e+1|0,r[t>>2]=e,p<.5*a){r[n+8>>2]=l;break}l=l+1|0,r[n+8>>2]=l;break}if(p<1-a){if(r[n+8>>2]=l,2*a-1<p){r[t>>2]=e;break}}else l=l+1|0,r[n+8>>2]=l;e=e+1|0,r[t>>2]=e}while(0);do{if(b<0){if(1&l){e=~~(+(0|e)-(2*(+((C=0|It(0|e,((0|e)<0)<<31>>31,0|(C=(l+1|0)/2|0),((0|C)<0)<<31>>31))>>>0)+4294967296*+(0|x()))+1)),r[t>>2]=e,C=t;break}e=~~(+(0|e)-2*(+((C=0|It(0|e,((0|e)<0)<<31>>31,0|(C=(0|l)/2|0),((0|C)<0)<<31>>31))>>>0)+4294967296*+(0|x()))),r[t>>2]=e,C=t;break}C=t}while(0);i=n+8|0,t=0-l|0,g<0?(n=e-((1|l<<1)/2|0)|0,r[C>>2]=n,r[i>>2]=t,l=t):n=e,e=l-n|0,t=0-n|0,(0|n)<0?(r[i>>2]=e,r[s>>2]=t,r[C>>2]=0,_=0):(e=l,_=n,t=0),n=_-e|0,l=t-e|0,(0|e)<0?(r[C>>2]=n,r[s>>2]=l,r[i>>2]=0,_=n,e=0):l=t,n=_-l|0,t=e-l|0,(0|l)<0?(r[C>>2]=n,r[i>>2]=t,r[s>>2]=0,l=0):(t=e,n=_),(0|(e=(0|l)<(0|(e=(0|t)<(0|n)?t:n))?l:e))<=0||(r[C>>2]=n-e,r[i>>2]=t-e,r[s>>2]=l-e)}function ue(e,t,n){t|=0,n|=0;var i,s,a,l;i=I,I=I+16|0,s=i,l=0|r[(e|=0)+12>>2],a=+((0|r[e+8>>2])-l|0),o[s>>3]=+((0|r[e+4>>2])-l|0)-.5*a,o[s+8>>3]=.8660254037844386*a,he(s,0|r[e>>2],t,0,n),I=i}function he(e,t,n,i,s){t|=0,n|=0,i|=0,s|=0;var a,l,A,d,f,p=0,_=0,b=0,v=0,y=0,C=0,w=0;if(p=+function(e){e|=0;var t=0,n=0;return n=+o[e>>3],t=+o[e+8>>3],+ +c(+(n*n+t*t))}(e|=0),p<1e-16)return t=15888+(24*t|0)|0,r[s>>2]=r[t>>2],r[s+4>>2]=r[t+4>>2],r[s+8>>2]=r[t+8>>2],r[s+12>>2]=r[t+12>>2],r[s+16>>2]=r[t+16>>2],void(r[s+20>>2]=r[t+20>>2]);if(_=+m(+ +o[e+8>>3],+ +o[e>>3]),(0|n)>0){e=0;do{p*=.37796447300922725,e=e+1|0}while((0|e)!=(0|n))}b=.3333333333333333*p,i?(n=!(0|Fe(n)),p=+g(.381966011250105*(n?b:.37796447300922725*b))):(p=+g(.381966011250105*p),0|Fe(n)&&(_=+We(_+.3334731722518321))),y=+We(+o[16368+(24*t|0)>>3]-_),b=+o[15888+(24*t|0)>>3],l=+o[15888+(24*t|0)+8>>3],v=b*(w=-((d=+o[15888+(24*t|0)+16>>3])+(0*b+0*l)))+0,_=l*w+0,v*=C=(C=+c(+((w=d*w+1)*w+(v*v+_*_))))>0?1/C:0,_*=C,C*=w,w=+u(+y),y=+h(+y),a=(f=+u(+p))*b+(A=+h(+p))*(w*v+y*(d*_-l*C)),p=f*l+A*(w*_+y*(b*C-d*v)),b=(b=+c(+((_=f*d+A*(w*C+y*(l*v-b*_)))*_+(a*a+p*p))))>0?1/b:0,o[s>>3]=a*b,o[s+8>>3]=p*b,o[s+16>>3]=_*b}function de(e,t,n,i,s){e|=0,t|=0,n|=0,i|=0,s|=0;var a,l,A,c,u,h,d,f,g,_,v,y,C,w,E,x,S,P,M,R,B,L,F,D,O,N,k,U=0,G=0,V=0,z=0,H=0,W=0,j=0,Q=0,X=0,K=0,J=0,q=0,Y=0,Z=0,$=0;if(k=I,I=I+256|0,X=k+224|0,D=k,O=k+208|0,N=k+192|0,P=k+168|0,M=k+152|0,R=k+136|0,B=k+120|0,L=k+104|0,F=k+80|0,r[(U=k+240|0)>>2]=t,r[X>>2]=r[e>>2],r[X+4>>2]=r[e+4>>2],r[X+8>>2]=r[e+8>>2],r[X+12>>2]=r[e+12>>2],fe(X,U,D),r[s>>2]=0,(0|(X=i+n+(5==(0|i)&1)|0))<=(0|n))I=k;else{d=O+4|0,u=O+8|0,h=O+12|0,g=N+8|0,_=n+5|0,v=16848+((f=0|r[U>>2])<<2)|0,y=P+8|0,C=16928+(f<<2)|0,w=M+8|0,E=R+8|0,x=B+8|0,S=N+8|0,a=P+8|0,A=P+16|0,l=F+8|0,c=F+16|0,Q=n,i=0,G=0,V=0,z=0;e:for(;;){j=D+((0|Q)%5<<4)|0,r[O>>2]=r[j>>2],r[O+4>>2]=r[j+4>>2],r[O+8>>2]=r[j+8>>2],r[O+12>>2]=r[j+12>>2];do{}while(2==(0|pe(O,f,0,1)));if((0|Q)>(0|n)&!!(0|Fe(t))){if(j=0|r[O>>2],e=0|r[d>>2],H=0|r[u>>2],U=0|r[h>>2],K=+(V-z|0),o[N>>3]=+(G-z|0)-.5*K,o[g>>3]=.8660254037844386*K,z=0|r[17008+(80*j|0)+(i<<2)>>2],W=0|r[18608+(80*j|0)+(20*z|0)>>2],(0|(V=0|r[18608+(80*j|0)+(20*z|0)+16>>2]))>0){G=0,i=H;do{i=((q=(0|(H=i+e-((Z=(0|(Y=U+e|0))<0)?Y:0)|0))<0)?0:H)-((U=(0|(J=U+i-(Z?Y:0)-(q?H:0)|0))<0)?J:0)|0,e=(e=(Z?0:Y)-(q?H:0)-(U?J:0)|0)-((H=(0|(U=(0|(J=U?0:J))<(0|(U=(0|i)<(0|e)?i:e))?J:U))>0)?U:0)|0,i=i-(H?U:0)|0,U=J-(H?U:0)|0,G=G+1|0}while((0|G)<(0|V))}else i=H;switch(Z=3*(0|r[v>>2])|0,J=(0|b(Z,0|r[18608+(80*j|0)+(20*z|0)+4>>2]))+e|0,H=(0|b(Z,0|r[18608+(80*j|0)+(20*z|0)+8>>2]))+i|0,Z=(0|b(Z,0|r[18608+(80*j|0)+(20*z|0)+12>>2]))+U|0,J=((z=(0|J)<0)?0:J)-((q=(0|(H=H-(z?J:0)|0))<0)?H:0)-((Y=(0|(Z=Z+(z?0-J|0:0)+(q?0-H|0:0)|0))<0)?Z:0)|0,K=+((H=(q?0:H)-(Y?Z:0)|0)-((q=(0|(Y=(0|(Z=Y?0:Z))<(0|(Y=(0|H)<(0|J)?H:J))?Z:Y))>0)?Y:0)-(Z=Z-(q?Y:0)|0)|0),o[P>>3]=+(J-(q?Y:0)-Z|0)-.5*K,o[y>>3]=.8660254037844386*K,K=+(0|r[C>>2]),o[M>>3]=3*K,o[w>>3]=0,$=-1.5*K,o[R>>3]=$,o[E>>3]=2.598076211353316*K,o[B>>3]=$,o[x>>3]=-2.598076211353316*K,0|r[17008+(80*W|0)+(j<<2)>>2]){case 1:e=R,i=M;break;case 3:e=B,i=R;break;case 2:e=M,i=B;break;default:e=12;break e}ht(N,P,i,e,L),he(L,W,f,1,F),Z=0|r[s>>2],K=+p(+ +o[c>>3]),$=+m(+ +o[l>>3],+ +o[F>>3]),o[s+8+(Z<<4)>>3]=K,o[s+8+(Z<<4)+8>>3]=$,r[s>>2]=1+(0|r[s>>2])}if((0|Q)<(0|_)&&(Z=0|r[h>>2],K=+((0|r[u>>2])-Z|0),o[N>>3]=+((0|r[d>>2])-Z|0)-.5*K,o[S>>3]=.8660254037844386*K,he(N,0|r[O>>2],f,1,P),Z=0|r[s>>2],K=+p(+ +o[A>>3]),$=+m(+ +o[a>>3],+ +o[P>>3]),o[s+8+(Z<<4)>>3]=K,o[s+8+(Z<<4)+8>>3]=$,r[s>>2]=1+(0|r[s>>2])),(0|(Q=Q+1|0))>=(0|X)){e=3;break}i=0|r[O>>2],G=0|r[d>>2],V=0|r[u>>2],z=0|r[h>>2]}3!=(0|e)?12==(0|e)&&T(27073,27120,599,27130):I=k}}function fe(e,t,n){e|=0,t|=0,n|=0;var i,o,s,a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0;a=I,I=I+128|0,A=a,u=20208,h=(c=l=a+64|0)+60|0;do{r[c>>2]=r[u>>2],c=c+4|0,u=u+4|0}while((0|c)<(0|h));u=20272,h=(c=A)+60|0;do{r[c>>2]=r[u>>2],c=c+4|0,u=u+4|0}while((0|c)<(0|h));p=(p=!(0|Fe(0|r[t>>2])))?l:A,c=0|r[(s=e+4|0)>>2],l=0|r[(i=e+8|0)>>2],A=0|r[(o=e+12|0)>>2],u=l+(c<<1)|0,r[s>>2]=u,l=A+(l<<1)|0,r[i>>2]=l,c=(A<<1)+c|0,r[o>>2]=c,A=l-u|0,h=c-u|0,(0|u)<0&&(r[i>>2]=A,r[o>>2]=h,r[s>>2]=0,l=A,u=0,c=h),h=u-l|0,A=c-l|0,(0|l)<0?(r[s>>2]=h,r[o>>2]=A,r[i>>2]=0,l=0):(A=c,h=u),u=h-A|0,c=l-A|0,(0|A)<0?(r[s>>2]=u,r[i>>2]=c,r[o>>2]=0,A=0):(c=l,u=h),(0|(l=(0|A)<(0|(l=(0|c)<(0|u)?c:u))?A:l))>0&&(A=A-l|0,c=c-l|0,u=u-l|0,r[s>>2]=u,r[i>>2]=c,r[o>>2]=A),d=(c<<1)+u|0,h=A+(u<<1)|0,r[s>>2]=h,r[i>>2]=d,c=(A<<1)+c|0,r[o>>2]=c,l=d-h|0,A=c-h|0,(0|h)<0?(r[i>>2]=l,r[o>>2]=A,r[s>>2]=0,h=0,c=A):l=d,u=h-l|0,A=c-l|0,(0|l)<0?(r[s>>2]=u,r[o>>2]=A,r[i>>2]=0,h=u,l=0):A=c,u=h-A|0,c=l-A|0,(0|A)<0?(r[s>>2]=u,r[i>>2]=c,r[o>>2]=0,A=0):(c=l,u=h),(0|(l=(0|A)<(0|(l=(0|c)<(0|u)?c:u))?A:l))>0&&(r[s>>2]=u-l,r[i>>2]=c-l,r[o>>2]=A-l),0|Fe(0|r[t>>2])&&(c=0|r[s>>2],l=(3*(u=0|r[i>>2])|0)+c|0,c=(A=0|r[o>>2])+(3*c|0)|0,r[s>>2]=c,r[i>>2]=l,u=(3*A|0)+u|0,r[o>>2]=u,A=l-c|0,h=u-c|0,(0|c)<0?(r[i>>2]=A,r[o>>2]=h,r[s>>2]=0,l=A,d=0):(d=c,h=u),c=d-l|0,A=h-l|0,(0|l)<0?(r[s>>2]=c,r[o>>2]=A,r[i>>2]=0,d=c,u=0):(u=l,A=h),c=d-A|0,l=u-A|0,(0|A)<0?(r[s>>2]=c,r[i>>2]=l,r[o>>2]=0,u=l,A=0):c=d,(0|(l=(0|A)<(0|(l=(0|u)<(0|c)?u:c))?A:l))>0&&(r[s>>2]=c-l,r[i>>2]=u-l,r[o>>2]=A-l),r[t>>2]=1+(0|r[t>>2])),r[n>>2]=r[e>>2],A=0|r[i>>2],l=0|r[o>>2],t=0|r[p+4>>2],f=0|r[p+8>>2],u=(0|r[p>>2])+(0|r[s>>2])|0,r[(d=n+4|0)>>2]=u,A=t+A|0,r[(t=n+8|0)>>2]=A,l=f+l|0,r[(f=n+12|0)>>2]=l,c=A-u|0,(0|u)<0&&(l=l-u|0,r[t>>2]=c,r[f>>2]=l,r[d>>2]=0,A=c,u=0),(0|A)<0&&(u=u-A|0,r[d>>2]=u,l=l-A|0,r[f>>2]=l,r[t>>2]=0,A=0),h=u-l|0,c=A-l|0,(0|l)<0?(r[d>>2]=h,r[t>>2]=c,r[f>>2]=0,u=h,l=0):c=A,(0|(A=(0|l)<(0|(A=(0|c)<(0|u)?c:u))?l:A))>0&&(r[d>>2]=u-A,r[t>>2]=c-A,r[f>>2]=l-A),r[n+16>>2]=r[e>>2],A=0|r[i>>2],l=0|r[o>>2],t=0|r[p+16>>2],f=0|r[p+20>>2],u=(0|r[p+12>>2])+(0|r[s>>2])|0,r[(d=n+20|0)>>2]=u,A=t+A|0,r[(t=n+24|0)>>2]=A,l=f+l|0,r[(f=n+28|0)>>2]=l,c=A-u|0,(0|u)<0&&(l=l-u|0,r[t>>2]=c,r[f>>2]=l,r[d>>2]=0,A=c,u=0),(0|A)<0&&(u=u-A|0,r[d>>2]=u,l=l-A|0,r[f>>2]=l,r[t>>2]=0,A=0),h=u-l|0,c=A-l|0,(0|l)<0?(r[d>>2]=h,r[t>>2]=c,r[f>>2]=0,u=h,l=0):c=A,(0|(A=(0|l)<(0|(A=(0|c)<(0|u)?c:u))?l:A))>0&&(r[d>>2]=u-A,r[t>>2]=c-A,r[f>>2]=l-A),r[n+32>>2]=r[e>>2],A=0|r[i>>2],l=0|r[o>>2],t=0|r[p+28>>2],f=0|r[p+32>>2],u=(0|r[p+24>>2])+(0|r[s>>2])|0,r[(d=n+36|0)>>2]=u,A=t+A|0,r[(t=n+40|0)>>2]=A,l=f+l|0,r[(f=n+44|0)>>2]=l,c=A-u|0,(0|u)<0&&(l=l-u|0,r[t>>2]=c,r[f>>2]=l,r[d>>2]=0,A=c,u=0),(0|A)<0&&(u=u-A|0,r[d>>2]=u,l=l-A|0,r[f>>2]=l,r[t>>2]=0,A=0),h=u-l|0,c=A-l|0,(0|l)<0?(r[d>>2]=h,r[t>>2]=c,r[f>>2]=0,u=h,l=0):c=A,(0|(A=(0|l)<(0|(A=(0|c)<(0|u)?c:u))?l:A))>0&&(r[d>>2]=u-A,r[t>>2]=c-A,r[f>>2]=l-A),r[n+48>>2]=r[e>>2],A=0|r[i>>2],l=0|r[o>>2],t=0|r[p+40>>2],f=0|r[p+44>>2],u=(0|r[p+36>>2])+(0|r[s>>2])|0,r[(d=n+52|0)>>2]=u,A=t+A|0,r[(t=n+56|0)>>2]=A,l=f+l|0,r[(f=n+60|0)>>2]=l,c=A-u|0,(0|u)<0&&(l=l-u|0,r[t>>2]=c,r[f>>2]=l,r[d>>2]=0,A=c,u=0),(0|A)<0&&(u=u-A|0,r[d>>2]=u,l=l-A|0,r[f>>2]=l,r[t>>2]=0,A=0),h=u-l|0,c=A-l|0,(0|l)<0?(r[d>>2]=h,r[t>>2]=c,r[f>>2]=0,u=h,l=0):c=A,(0|(A=(0|l)<(0|(A=(0|c)<(0|u)?c:u))?l:A))>0&&(r[d>>2]=u-A,r[t>>2]=c-A,r[f>>2]=l-A),r[n+64>>2]=r[e>>2],c=0|r[i>>2],l=0|r[o>>2],f=0|r[p+52>>2],d=0|r[p+56>>2],u=(0|r[p+48>>2])+(0|r[s>>2])|0,r[(t=n+68|0)>>2]=u,c=f+c|0,r[(f=n+72|0)>>2]=c,l=d+l|0,r[(d=n+76|0)>>2]=l,A=c-u|0,(0|u)<0?(l=l-u|0,r[f>>2]=A,r[d>>2]=l,r[t>>2]=0,c=0):(A=c,c=u),(0|A)<0&&(c=c-A|0,r[t>>2]=c,l=l-A|0,r[d>>2]=l,r[f>>2]=0,A=0),h=c-l|0,u=A-l|0,(0|l)<0?(r[t>>2]=h,r[f>>2]=u,r[d>>2]=0,c=h,l=0):u=A,(0|(A=(0|l)<(0|(A=(0|u)<(0|c)?u:c))?l:A))<=0||(r[t>>2]=c-A,r[f>>2]=u-A,r[d>>2]=l-A),I=a}function pe(e,t,n,i){e|=0,n|=0,i|=0;var o,s,a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0;if(d=0|r[16928+((t|=0)<<2)>>2],d=(a=!!(0|i))?3*d|0:d,u=0|r[(s=e+4|0)>>2],A=0|r[(o=e+8|0)>>2],a){if((0|(l=A+u+(i=0|r[(c=e+12|0)>>2])|0))==(0|d))return 0|(d=1);h=c}else i=l=0|r[(h=e+12|0)>>2],l=A+u+l|0;if((0|l)<=(0|d))return 0|(d=0);do{if((0|i)>0){if(l=0|r[e>>2],(0|A)>0){l=18608+(80*l|0)+60|0,c=u;break}l=18608+(80*l|0)+40|0,n?(n=((f=(0|(n=A+(c=u-d|0)|0))<0)?0:n)-((u=(0|(A=i+A-(f?n:0)|0))<0)?A:0)-((c=(0|(i=i+c-(f?n:0)-(u?A:0)|0))<0)?i:0)|0,A=(A=(u?0:A)-(c?i:0)|0)-((u=(0|(c=(0|(i=c?0:i))<(0|(c=(0|A)<(0|n)?A:n))?i:c))>0)?c:0)|0,i=i-(u?c:0)|0,c=n-(u?c:0)+d|0,r[s>>2]=c,r[o>>2]=A,r[h>>2]=i):c=u}else l=18608+(80*(0|r[e>>2])|0)+20|0,c=u}while(0);if(r[e>>2]=r[l>>2],(0|(u=0|r[l+16>>2]))>0){n=0;do{(0|(e=(0|(i=(A=(0|(c=i+A-(_=(p=(0|(f=i+c|0))<0)?f:0)-(e=(m=(0|(g=A+c-_|0))<0)?g:0)|0))<0)?0:c))<(0|(e=(0|(A=(m?0:g)-(c=A?c:0)|0))<(0|(c=(p?0:f)-e-c|0))?A:c))?i:e))>0&&(c=c-e|0,A=A-e|0,i=i-e|0),n=n+1|0}while((0|n)<(0|u));r[s>>2]=c,r[o>>2]=A,r[h>>2]=i}return g=0|r[16848+(t<<2)>>2],m=0|b(g=a?3*g|0:g,0|r[l+8>>2]),_=0|b(g,0|r[l+12>>2]),c=(0|b(g,0|r[l+4>>2]))+c|0,r[s>>2]=c,A=m+A|0,r[o>>2]=A,i=_+i|0,r[h>>2]=i,l=A-c|0,(0|c)<0?(i=i-c|0,r[o>>2]=l,r[h>>2]=i,r[s>>2]=0,A=0):(l=A,A=c),(0|l)<0?(e=A-l|0,r[s>>2]=e,i=i-l|0,r[h>>2]=i,r[o>>2]=0,c=0):(e=A,c=l),A=e-i|0,l=c-i|0,(0|i)<0?(r[s>>2]=A,r[o>>2]=l,r[h>>2]=0,i=0):(l=c,A=e),(0|(c=(0|i)<(0|(c=(0|l)<(0|A)?l:A))?i:c))>0&&(A=A-c|0,l=l-c|0,i=i-c|0,r[s>>2]=A,r[o>>2]=l,r[h>>2]=i),a?0|(_=(l+A+i|0)==(0|d)?1:2):0|(_=2)}function ge(e,t){e|=0,t|=0;var n=0;do{n=0|pe(e,t,0,1)}while(2==(0|n));return 0|n}function me(e,t,n,i,s){e|=0,t|=0,n|=0,i|=0,s|=0;var a,l,A,c,u,h,d,f,g,_,b,v,y,C,w,E,x,S,P,M,R,B,L,F,D,O,N,k,U=0,G=0,V=0,z=0,H=0,W=0,j=0;if(k=I,I=I+272|0,G=k+240|0,D=k,O=k+224|0,N=k+208|0,P=k+184|0,M=k+168|0,R=k+152|0,B=k+136|0,L=k+120|0,F=k+96|0,r[(U=k+256|0)>>2]=t,r[G>>2]=r[e>>2],r[G+4>>2]=r[e+4>>2],r[G+8>>2]=r[e+8>>2],r[G+12>>2]=r[e+12>>2],_e(G,U,D),r[s>>2]=0,(0|(S=i+n+(6==(0|i)&1)|0))<=(0|n))I=k;else{b=n+6|0,v=N+8|0,y=P+8|0,C=16928+((_=0|r[U>>2])<<2)|0,w=M+8|0,E=R+8|0,x=B+8|0,f=0|r[G>>2],u=O+4|0,h=O+8|0,d=O+12|0,g=N+8|0,a=P+8|0,A=P+16|0,l=F+8|0,c=F+16|0,G=0,V=n,i=-1;e:for(;;){if(e=D+((U=(0|V)%6|0)<<4)|0,r[O>>2]=r[e>>2],r[O+4>>2]=r[e+4>>2],r[O+8>>2]=r[e+8>>2],r[O+12>>2]=r[e+12>>2],e=G,G=0|pe(O,_,0,1),(0|V)>(0|n)&!!(0|Fe(t))&&1!=(0|e)&(0|(z=0|r[O>>2]))!=(0|i)){switch(e=0|r[D+((j=(U+5|0)%6|0)<<4)+12>>2],H=+((0|r[D+(j<<4)+8>>2])-e|0),o[N>>3]=+((0|r[D+(j<<4)+4>>2])-e|0)-.5*H,o[v>>3]=.8660254037844386*H,e=0|r[D+(U<<4)+12>>2],H=+((0|r[D+(U<<4)+8>>2])-e|0),o[P>>3]=+((0|r[D+(U<<4)+4>>2])-e|0)-.5*H,o[y>>3]=.8660254037844386*H,H=+(0|r[C>>2]),o[M>>3]=3*H,o[w>>3]=0,W=-1.5*H,o[R>>3]=W,o[E>>3]=2.598076211353316*H,o[B>>3]=W,o[x>>3]=-2.598076211353316*H,0|r[17008+(80*f|0)+(((0|i)==(0|f)?z:i)<<2)>>2]){case 1:e=R,i=M;break;case 3:e=B,i=R;break;case 2:e=M,i=B;break;default:e=8;break e}ht(N,P,i,e,L),0|dt(N,L)||0|dt(P,L)||(he(L,f,_,1,F),j=0|r[s>>2],H=+p(+ +o[c>>3]),W=+m(+ +o[l>>3],+ +o[F>>3]),o[s+8+(j<<4)>>3]=H,o[s+8+(j<<4)+8>>3]=W,r[s>>2]=1+(0|r[s>>2]))}if((0|V)<(0|b)&&(j=0|r[d>>2],H=+((0|r[h>>2])-j|0),o[N>>3]=+((0|r[u>>2])-j|0)-.5*H,o[g>>3]=.8660254037844386*H,he(N,0|r[O>>2],_,1,P),j=0|r[s>>2],H=+p(+ +o[A>>3]),W=+m(+ +o[a>>3],+ +o[P>>3]),o[s+8+(j<<4)>>3]=H,o[s+8+(j<<4)+8>>3]=W,r[s>>2]=1+(0|r[s>>2])),(0|(V=V+1|0))>=(0|S)){e=3;break}i=0|r[O>>2]}3!=(0|e)?8==(0|e)&&T(27157,27120,766,27202):I=k}}function _e(e,t,n){e|=0,t|=0,n|=0;var i,o,s,a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0;a=I,I=I+160|0,A=a,u=20336,h=(c=l=a+80|0)+72|0;do{r[c>>2]=r[u>>2],c=c+4|0,u=u+4|0}while((0|c)<(0|h));u=20416,h=(c=A)+72|0;do{r[c>>2]=r[u>>2],c=c+4|0,u=u+4|0}while((0|c)<(0|h));g=(g=!(0|Fe(0|r[t>>2])))?l:A,c=0|r[(s=e+4|0)>>2],l=0|r[(i=e+8|0)>>2],A=0|r[(o=e+12|0)>>2],u=l+(c<<1)|0,r[s>>2]=u,l=A+(l<<1)|0,r[i>>2]=l,c=(A<<1)+c|0,r[o>>2]=c,A=l-u|0,h=c-u|0,(0|u)<0&&(r[i>>2]=A,r[o>>2]=h,r[s>>2]=0,l=A,u=0,c=h),h=u-l|0,A=c-l|0,(0|l)<0?(r[s>>2]=h,r[o>>2]=A,r[i>>2]=0,l=0):(A=c,h=u),u=h-A|0,c=l-A|0,(0|A)<0?(r[s>>2]=u,r[i>>2]=c,r[o>>2]=0,A=0):(c=l,u=h),(0|(l=(0|A)<(0|(l=(0|c)<(0|u)?c:u))?A:l))>0&&(A=A-l|0,c=c-l|0,u=u-l|0,r[s>>2]=u,r[i>>2]=c,r[o>>2]=A),d=(c<<1)+u|0,h=A+(u<<1)|0,r[s>>2]=h,r[i>>2]=d,c=(A<<1)+c|0,r[o>>2]=c,l=d-h|0,A=c-h|0,(0|h)<0?(r[i>>2]=l,r[o>>2]=A,r[s>>2]=0,h=0,c=A):l=d,u=h-l|0,A=c-l|0,(0|l)<0?(r[s>>2]=u,r[o>>2]=A,r[i>>2]=0,h=u,l=0):A=c,u=h-A|0,c=l-A|0,(0|A)<0?(r[s>>2]=u,r[i>>2]=c,r[o>>2]=0,A=0):(c=l,u=h),(0|(l=(0|A)<(0|(l=(0|c)<(0|u)?c:u))?A:l))>0&&(r[s>>2]=u-l,r[i>>2]=c-l,r[o>>2]=A-l),0|Fe(0|r[t>>2])&&(c=0|r[s>>2],l=(3*(u=0|r[i>>2])|0)+c|0,c=(A=0|r[o>>2])+(3*c|0)|0,r[s>>2]=c,r[i>>2]=l,u=(3*A|0)+u|0,r[o>>2]=u,A=l-c|0,h=u-c|0,(0|c)<0?(r[i>>2]=A,r[o>>2]=h,r[s>>2]=0,l=A,d=0):(d=c,h=u),c=d-l|0,A=h-l|0,(0|l)<0?(r[s>>2]=c,r[o>>2]=A,r[i>>2]=0,d=c,u=0):(u=l,A=h),c=d-A|0,l=u-A|0,(0|A)<0?(r[s>>2]=c,r[i>>2]=l,r[o>>2]=0,u=l,A=0):c=d,(0|(l=(0|A)<(0|(l=(0|u)<(0|c)?u:c))?A:l))>0&&(r[s>>2]=c-l,r[i>>2]=u-l,r[o>>2]=A-l),r[t>>2]=1+(0|r[t>>2])),d=0;do{r[n+(d<<4)>>2]=r[e>>2],A=0|r[i>>2],l=0|r[o>>2],f=0|r[g+(12*d|0)+4>>2],p=0|r[g+(12*d|0)+8>>2],u=(0|r[g+(12*d|0)>>2])+(0|r[s>>2])|0,r[(t=n+(d<<4)+4|0)>>2]=u,A=f+A|0,r[(f=n+(d<<4)+8|0)>>2]=A,l=p+l|0,r[(p=n+(d<<4)+12|0)>>2]=l,c=A-u|0,(0|u)<0&&(l=l-u|0,r[f>>2]=c,r[p>>2]=l,r[t>>2]=0,A=c,u=0),(0|A)<0&&(u=u-A|0,r[t>>2]=u,l=l-A|0,r[p>>2]=l,r[f>>2]=0,A=0),h=u-l|0,c=A-l|0,(0|l)<0?(r[t>>2]=h,r[f>>2]=c,r[p>>2]=0,u=h,l=0):c=A,(0|(A=(0|l)<(0|(A=(0|c)<(0|u)?c:u))?l:A))>0&&(r[t>>2]=u-A,r[f>>2]=c-A,r[p>>2]=l-A),d=d+1|0}while(6!=(0|d));I=a}function be(e,t){return t=0|Gt(0|(e|=0),0|(t|=0),52),x(),15&t}function ve(e,t){return t=0|Gt(0|(e|=0),0|(t|=0),45),x(),127&t}function ye(e,t){e|=0;var n=0,r=0,o=0,s=0;return!0&134217728==(-16777216&(t|=0))?(r=0|Gt(0|e,0|t,52),x(),r&=15,n=0|Gt(0|e,0|t,45),x(),(n&=127)>>>0>121?0|(e=0):!(613566756&(s=0|Vt(0|(o=0|Gt(0|e,0|t,0|(s=3*(15^r)|0))),0|x(),0|s))&(0|It(-1227133514,-1171,0|s,0|(o=0|x()))))&!(4681&o&x())&&15==(0|r)|!(0|(s=0|Gt(0|(0|Vt(0|~e,0|~t,0|(s=19+(3*r|0)|0))),0|x(),0|s)))&!(0|x())?0|i[20496+n|0]?!(0|e)&!(0|(t&=8191))?0|(s=1):(s=0|zt(0|e,0|t,0),x(),0|!!((63-s|0)%3|0)):0|(s=1):0|(s=0)):0|(e=0)}function Ce(e,t,n,i){e|=0,n|=0,i|=0;var o=0,s=0,a=0,l=0;if(o=0|Vt(0|(t|=0),0,52),s=0|x(),n=0|Vt(0|n,0,45),n=0|s|x()|134225919,(0|t)<1)return s=-1,i=n,r[(t=e)>>2]=s,void(r[(e=e+4|0)>>2]=i);for(s=1,o=-1;l=0|Vt(7,0,0|(a=3*(15-s|0)|0)),n&=~x(),o=o&~l|(a=0|Vt(0|i,0,0|a)),n=0|n|x(),(0|s)!=(0|t);)s=s+1|0;r[(a=l=e)>>2]=o,r[(l=l+4|0)>>2]=n}function we(e,t,n,i){n|=0,i|=0;var o=0,s=0;if(s=0|Gt(0|(e|=0),0|(t|=0),52),x(),n>>>0>15)return 0|(i=4);if((0|(s&=15))<(0|n))return 0|(i=12);if((0|s)==(0|n))return r[i>>2]=e,r[i+4>>2]=t,0|(i=0);if(o=0|Vt(0|n,0,52),o|=e,e=x()|-15728641&t,(0|s)>(0|n))do{t=0|Vt(7,0,3*(14-n|0)|0),n=n+1|0,o|=t,e=0|x()|e}while((0|n)<(0|s));return r[i>>2]=o,r[i+4>>2]=e,0|(i=0)}function Ee(e,t,n,i){n|=0,i|=0;var o=0,s=0,a=0;if(s=0|Gt(0|(e|=0),0|(t|=0),52),x(),!((0|n)<16&(0|(s&=15))<=(0|n)))return 0|(i=4);o=n-s|0,n=0|Gt(0|e,0|t,45),x();e:do{if(0|H(127&n)){t:do{if(0|s){for(n=1;!((a=0|Vt(7,0,3*(15-n|0)|0))&e|0)&!((0|x())&t);){if(!(n>>>0<s>>>0))break t;n=n+1|0}n=0|$e(7,0,o,((0|o)<0)<<31>>31),o=0|x();break e}}while(0);n=0|Bt(0|(n=0|Ot(0|(n=0|$e(7,0,o,((0|o)<0)<<31>>31)),0|x(),5,0)),0|x(),-5,-1),n=0|Bt(0|(n=0|Dt(0|n,0|x(),6,0)),0|x(),1,0),o=0|x()}else n=0|$e(7,0,o,((0|o)<0)<<31>>31),o=0|x()}while(0);return r[(a=i)>>2]=n,r[a+4>>2]=o,0|(a=0)}function xe(e,t){var n=0,i=0,r=0;if(r=0|Gt(0|(e|=0),0|(t|=0),45),x(),!(0|H(127&r)))return 0|(r=0);r=0|Gt(0|e,0|t,52),x(),r&=15;e:do{if(r)for(i=1;;){if(n=0|Gt(0|e,0|t,3*(15-i|0)|0),x(),0|(n&=7))break e;if(!(i>>>0<r>>>0)){n=0;break}i=i+1|0}else n=0}while(0);return 0|(r=1&!(0|n))}function Te(e,t,n,i){return e|=0,t|=0,(0|(i|=0))<(0|(n|=0))?(i=e,E(0|(n=t)),0|i):(n=0|Vt(-1,-1,3+(3*(i-n|0)|0)|0),i=0|Vt(0|~n,0|~x(),3*(15-i|0)|0),n=~x()&t,i=~i&e,E(0|n),0|i)}function Se(e,t,n,i){n|=0,i|=0;var o=0;return o=0|Gt(0|(e|=0),0|(t|=0),52),x(),(0|n)<16&(0|(o&=15))<=(0|n)?((0|o)<(0|n)&&(o=0|Vt(-1,-1,3+(3*(n+-1-o|0)|0)|0),o=0|Vt(0|~o,0|~x(),3*(15-n|0)|0),t=~x()&t,e&=~o),o=0|Vt(0|n,0,52),n=-15728641&t|x(),r[i>>2]=e|o,r[i+4>>2]=n,0|(i=0)):0|(i=4)}function Pe(e,t){var n=0,i=0,r=0;if(r=0|Gt(0|(e|=0),0|(t|=0),52),x(),!(r&=15))return 0|(r=0);for(i=1;;){if(n=0|Gt(0|e,0|t,3*(15-i|0)|0),x(),0|(n&=7)){i=5;break}if(!(i>>>0<r>>>0)){n=0,i=5;break}i=i+1|0}return 5==(0|i)?0|n:0}function Me(e,t){var n=0,i=0,r=0,o=0,s=0,a=0,l=0,A=0,c=0;if(c=0|Gt(0|(e|=0),0|(t|=0),52),x(),!(c&=15))return c=e,E(0|(A=t)),0|c;for(A=1,n=0;;){switch(o=e&~(a=0|Vt(7,0,0|(i=3*(15-A|0)|0))),s=t&~(l=0|x()),e=0|Gt(0|e,0|t,0|i),x(),7&e){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1;break;default:e&=7}e=(i=0|Vt(0|e,0,0|i))|o,t=(r=0|x())|s;e:do{if(!n)if(!(i&a|0)&!(r&l|0))n=0;else if(s=0|Gt(0|e,0|t,52),x(),s&=15){n=1;t:for(;;){switch(l=0|Gt(0|e,0|t,3*(15-n|0)|0),x(),7&l){case 1:break t;case 0:break;default:n=1;break e}if(!(n>>>0<s>>>0)){n=1;break e}n=n+1|0}for(o=1;;){switch(n=0|Gt(0|e,0|t,0|(r=3*(15-o|0)|0)),x(),i=e&~(i=0|Vt(7,0,0|r)),t&=~x(),7&n){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1;break;default:e=7&n}if(e=0|Vt(0|e,0,0|r),e|=i,t=0|x()|t,!(o>>>0<s>>>0)){n=1;break e}o=o+1|0}}else n=1}while(0);if(!(A>>>0<c>>>0))break;A=A+1|0}return E(0|t),0|e}function Re(e,t){var n=0,i=0,r=0,o=0,s=0;if(s=0|Gt(0|(e|=0),0|(t|=0),52),x(),!(s&=15))return s=e,E(0|(o=t)),0|s;for(o=1;;){switch(n=0|Gt(0|e,0|t,0|(r=3*(15-o|0)|0)),x(),i=e&~(i=0|Vt(7,0,0|r)),t&=~x(),7&n){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1;break;default:e=7&n}if(e=0|Vt(0|e,0,0|r),e|=i,t=0|x()|t,!(o>>>0<s>>>0))break;o=o+1|0}return E(0|t),0|e}function Be(e,t){var n=0,i=0,r=0,o=0,s=0,a=0,l=0,A=0,c=0;if(c=0|Gt(0|(e|=0),0|(t|=0),52),x(),!(c&=15))return c=e,E(0|(A=t)),0|c;for(A=1,n=0;;){switch(o=e&~(a=0|Vt(7,0,0|(i=3*(15-A|0)|0))),s=t&~(l=0|x()),e=0|Gt(0|e,0|t,0|i),x(),7&e){case 1:e=3;break;case 3:e=2;break;case 2:e=6;break;case 6:e=4;break;case 4:e=5;break;case 5:e=1;break;default:e&=7}e=(i=0|Vt(0|e,0,0|i))|o,t=(r=0|x())|s;e:do{if(!n)if(!(i&a|0)&!(r&l|0))n=0;else if(s=0|Gt(0|e,0|t,52),x(),s&=15){n=1;t:for(;;){switch(l=0|Gt(0|e,0|t,3*(15-n|0)|0),x(),7&l){case 1:break t;case 0:break;default:n=1;break e}if(!(n>>>0<s>>>0)){n=1;break e}n=n+1|0}for(o=1;;){switch(i=e&~(i=0|Vt(7,0,0|(n=3*(15-o|0)|0))),r=t&~x(),e=0|Gt(0|e,0|t,0|n),x(),7&e){case 1:e=3;break;case 3:e=2;break;case 2:e=6;break;case 6:e=4;break;case 4:e=5;break;case 5:e=1;break;default:e&=7}if(e=0|Vt(0|e,0,0|n),e|=i,t=0|x()|r,!(o>>>0<s>>>0)){n=1;break e}o=o+1|0}}else n=1}while(0);if(!(A>>>0<c>>>0))break;A=A+1|0}return E(0|t),0|e}function Ie(e,t){var n=0,i=0,r=0,o=0,s=0;if(s=0|Gt(0|(e|=0),0|(t|=0),52),x(),!(s&=15))return s=e,E(0|(o=t)),0|s;for(o=1;;){switch(n=e&~(n=0|Vt(7,0,0|(i=3*(15-o|0)|0))),r=t&~x(),e=0|Gt(0|e,0|t,0|i),x(),7&e){case 1:e=3;break;case 3:e=2;break;case 2:e=6;break;case 6:e=4;break;case 4:e=5;break;case 5:e=1;break;default:e&=7}if(e=0|Vt(0|e,0,0|i),e|=n,t=0|x()|r,!(o>>>0<s>>>0))break;o=o+1|0}return E(0|t),0|e}function Le(e,t){e|=0;var n,i=0,o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,T=0;if(n=I,I=I+16|0,y=n,Vt(0|(t|=0),0,52),i=134225919|x(),!t)return(0|r[e+4>>2])>2||(0|r[e+8>>2])>2||(0|r[e+12>>2])>2?(y=0,E(0|(v=0)),I=n,0|y):(Vt(0|j(e),0,45),v=0|x()|i,y=-1,E(0|v),I=n,0|y);r[y>>2]=r[e>>2],r[y+4>>2]=r[e+4>>2],r[y+8>>2]=r[e+8>>2],r[y+12>>2]=r[e+12>>2],v=y+4|0;e:do{if((0|t)>0)for(_=y+12|0,g=t,d=0|r[(m=y+8|0)>>2],f=0|r[_>>2],t=-1,h=0|r[y+4>>2];;){p=g,g=g+-1|0,e=h-f|0,o=d-f|0,1&p?(a=0|xt(.14285714285714285*+((3*e|0)-o|0)),r[v>>2]=a,e=0|xt(.14285714285714285*+((o<<1)+e|0)),r[m>>2]=e,r[_>>2]=0,o=e-a|0,s=0-a|0,(0|a)<0?(r[m>>2]=o,r[_>>2]=s,r[v>>2]=0,e=o,l=0):(l=a,s=0),a=l-e|0,o=s-e|0,(0|e)<0?(r[v>>2]=a,r[_>>2]=o,r[m>>2]=0,l=a,a=0):(o=s,a=e),e=l-o|0,s=a-o|0,(0|o)<0?(r[v>>2]=e,r[m>>2]=s,r[_>>2]=0,a=0):(s=a,e=l,a=o),(0|(o=(0|a)<(0|(o=(0|s)<(0|e)?s:e))?a:o))>0&&(a=a-o|0,s=s-o|0,e=e-o|0,r[v>>2]=e,r[m>>2]=s,r[_>>2]=a),c=(u=(0|(A=(0|(T=(A=(0|(o=(3*a|0)+e-((C=(0|(w=s+(3*e|0)|0))<0)?w:0)-((c=(0|(u=a+(3*s|0)-(C?w:0)|0))<0)?u:0)|0))<0)?0:o))<(0|(A=(0|(l=(c?0:u)-(A?o:0)|0))<(0|(o=(C?0:w)-(c?u:0)-(A?o:0)|0))?l:o))?T:A))>0)?A:0,l=l-(u?A:0)|0,A=T-(u?A:0)|0,u=a):(A=0|xt(.14285714285714285*+((e<<1)+o|0)),r[v>>2]=A,s=0|xt(.14285714285714285*+((3*o|0)-e|0)),r[m>>2]=s,r[_>>2]=0,o=s-A|0,e=0-A|0,(0|A)<0?(r[m>>2]=o,r[_>>2]=e,r[v>>2]=0,s=o,A=0):e=0,l=A-s|0,o=e-s|0,(0|s)<0?(r[v>>2]=l,r[_>>2]=o,r[m>>2]=0,a=o,s=0):(a=e,l=A),e=l-a|0,o=s-a|0,(0|a)<0?(r[v>>2]=e,r[m>>2]=o,r[_>>2]=0,s=o,a=0):e=l,(0|(o=(0|a)<(0|(o=(0|s)<(0|e)?s:e))?a:o))>0&&(a=a-o|0,s=s-o|0,e=e-o|0,r[v>>2]=e,r[m>>2]=s,r[_>>2]=a),c=(u=(0|(A=(0|(C=(A=(0|(o=(3*a|0)+s-((T=(0|(w=a+(3*e|0)|0))<0)?w:0)-((c=(0|(u=(3*s|0)+e-(T?w:0)|0))<0)?u:0)|0))<0)?0:o))<(0|(A=(0|(l=(c?0:u)-(A?o:0)|0))<(0|(o=(T?0:w)-(c?u:0)-(A?o:0)|0))?l:o))?C:A))>0)?A:0,l=l-(u?A:0)|0,A=C-(u?A:0)|0,u=a),A=(h=(0|(f=f-A+((a=(0|(o=h+(c-o)|0))<0)?0-o|0:0)+((l=(0|(c=d-l-(a?o:0)|0))<0)?0-c|0:0)|0))<0)?0:f,T=(l?0:c)-(h?f:0)|0,f=(f=(a?0:o)-(l?c:0)-(h?f:0)|0)-((c=(0|(h=(0|A)<(0|(h=(0|T)<(0|f)?T:f))?A:h))>0)?h:0)|0,o=t&~(o=0|Vt(7,0,0|(l=3*(15-p|0)|0))),a=i&~x(),t=(t=(i=(0|(w=A-(c?h:0)-(w=(d=(0|f)<0)?f:0)+((C=(0|(T=T-(c?h:0)-w|0))<0)?0-T|0:0)|0))<0)?0:w)-(T=(0|(T=(0|t)<(0|(T=(0|(i=(C?0:T)-(w=i?w:0)|0))<(0|(w=(d?0:f)-(C?T:0)-w|0))?i:w))?t:T))>0?T:0)|0,i=i-T|0;t:do{switch(w-T|0){case 0:switch(0|i){case 0:t=0|t?1==(0|t)?1:7:0;break t;case 1:t=0|t?1==(0|t)?3:7:2;break t;default:b=36;break t}case 1:switch(0|i){case 0:t=0|t?1==(0|t)?5:7:4;break t;case 1:if(t){b=36;break t}t=6;break t;default:b=36;break t}default:b=36}}while(0);if(36==(0|b)&&(b=0,t=7),t=0|Vt(0|t,0,0|l),t|=o,i=0|x()|a,(0|p)<=1)break e;d=s,f=u,h=e}else t=-1,e=0|r[v>>2]}while(0);e:do{if((0|e)<=2&&(0|r[y+8>>2])<=2&&(0|r[y+12>>2])<=2){if(t|=e=0|Vt(0|(o=0|j(y)),0,45),e=x()|-1040385&i,c=0|Q(y),!(0|H(o))){if((0|c)<=0)break;for(A=0;;){l=0|Gt(0|t,0|e,52),x(),l&=15;t:do{if(l)for(a=1;;){switch(i=0|Gt(0|t,0|e,0|(s=3*(15-a|0)|0)),x(),t&=~(o=0|Vt(7,0,0|s)),o=e&~x(),7&i){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1;break;default:e=7&i}if(t|=e=0|Vt(0|e,0,0|s),e=0|x()|o,!(a>>>0<l>>>0))break t;a=a+1|0}}while(0);if((0|(A=A+1|0))==(0|c))break e}}l=0|Gt(0|t,0|e,52),x(),l&=15;t:do{if(l){i=1;n:for(;;){switch(T=0|Gt(0|t,0|e,3*(15-i|0)|0),x(),7&T){case 1:break n;case 0:break;default:break t}if(!(i>>>0<l>>>0))break t;i=i+1|0}if(0|X(o,0|r[y>>2]))for(a=1;;){switch(o=t&~(o=0|Vt(7,0,0|(i=3*(15-a|0)|0))),s=e&~x(),e=0|Gt(0|t,0|e,0|i),x(),7&e){case 1:e=3;break;case 3:e=2;break;case 2:e=6;break;case 6:e=4;break;case 4:e=5;break;case 5:e=1;break;default:e&=7}if(t=0|Vt(0|e,0,0|i),t|=o,e=0|x()|s,!(a>>>0<l>>>0))break t;a=a+1|0}else for(a=1;;){switch(i=0|Gt(0|t,0|e,0|(s=3*(15-a|0)|0)),x(),t&=~(o=0|Vt(7,0,0|s)),o=e&~x(),7&i){case 1:e=5;break;case 5:e=4;break;case 4:e=6;break;case 6:e=2;break;case 2:e=3;break;case 3:e=1;break;default:e=7&i}if(t|=e=0|Vt(0|e,0,0|s),e=0|x()|o,!(a>>>0<l>>>0))break t;a=a+1|0}}}while(0);if((0|c)>0){i=0;do{t=0|Me(t,e),e=0|x(),i=i+1|0}while((0|i)!=(0|c))}}else t=0,e=0}while(0);return T=t,E(0|(w=e)),I=n,0|T}function Fe(e){return(0|(e|=0))%2|0}function De(e,t,n){n|=0;var i,a,l,A,c=0,d=0,f=0,p=0,g=0;if(l=I,I=I+64|0,a=l+24|0,p=l+48|0,g=l,(t|=0)>>>0>15)return I=l,0|(g=4);if(i=+o[(e|=0)>>3],o[s>>3]=i,!(2146435072&~r[s+4>>2]))return I=l,0|(g=3);if(c=+o[e+8>>3],o[s>>3]=c,!(2146435072&~r[s+4>>2]))return I=l,0|(g=3);A=(d=+u(+i))*+u(+c),d*=+h(+c),c=+h(+i),o[g>>3]=A,o[g+8>>3]=d,o[g+16>>3]=c,o[s>>3]=A;do{if(2146435072&~r[s+4>>2]&&(o[s>>3]=c,e=0|r[s+4>>2],o[s>>3]=d,!(!(2146435072&~r[s+4>>2])|!0&!(2146435072&~e)))){if(r[a>>2]=r[g>>2],r[a+4>>2]=r[g+4>>2],r[a+8>>2]=r[g+8>>2],r[a+12>>2]=r[g+12>>2],r[a+16>>2]=r[g+16>>2],r[a+20>>2]=r[g+20>>2],ce(a,t,p),p=0|Le(p,t),g=0|x(),r[n>>2]=p,r[n+4>>2]=g,!(!(0|p)&!(0|g))){f=0;break}T(27634,27225,1073,27248)}else f=2}while(0);return I=l,0|(g=f)}function Oe(e,t,n){var i,o,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0;if(o=(n|=0)+4|0,p=0|Gt(0|(e|=0),0|(t|=0),52),x(),p&=15,f=0|Gt(0|e,0|t,45),x(),s=!(0|p),0|H(127&f)){if(s)return 0|(p=1);s=1}else{if(s)return 0|(p=0);s=0|r[o>>2]||0|r[n+8>>2]?1:1&!!(0|r[n+12>>2])}for(f=n+8|0,i=n+12|0,d=1,n=0|r[o>>2],A=0|r[f>>2],l=0|r[i>>2];a=3*n|0,c=3*A|0,h=3*l|0,1&d?(u=A+a|0,r[o>>2]=u,l=l+c|0,r[f>>2]=l,a=h+n|0,r[i>>2]=a,n=l-u|0,A=a-u|0,(0|u)<0?(r[f>>2]=n,r[i>>2]=A,r[o>>2]=0,c=0,a=A):(n=l,c=u),A=c-n|0,l=a-n|0,(0|n)<0?(r[o>>2]=A,r[i>>2]=l,r[f>>2]=0,c=A,a=0):(l=a,a=n),n=c-l|0,A=a-l|0,(0|l)<0?(r[o>>2]=n,r[f>>2]=A,r[i>>2]=0,l=0):(A=a,n=c),(0|(a=(0|l)<(0|(a=(0|A)<(0|n)?A:n))?l:a))>0&&(l=l-a|0,A=A-a|0,n=n-a|0,r[o>>2]=n,r[f>>2]=A,r[i>>2]=l)):(u=c+n|0,c=l+a|0,r[o>>2]=c,r[f>>2]=u,a=h+A|0,r[i>>2]=a,n=u-c|0,l=a-c|0,(0|c)<0?(r[f>>2]=n,r[i>>2]=l,r[o>>2]=0,c=0,a=l):n=u,A=c-n|0,l=a-n|0,(0|n)<0?(r[o>>2]=A,r[i>>2]=l,r[f>>2]=0,c=A,a=0):(l=a,a=n),n=c-l|0,A=a-l|0,(0|l)<0?(r[o>>2]=n,r[f>>2]=A,r[i>>2]=0,l=0):(A=a,n=c),(0|(a=(0|l)<(0|(a=(0|A)<(0|n)?A:n))?l:a))>0&&(l=l-a|0,A=A-a|0,n=n-a|0,r[o>>2]=n,r[f>>2]=A,r[i>>2]=l)),a=0|Gt(0|e,0|t,3*(15-d|0)|0),x(),((a&=7)+-1|0)>>>0<6&&(u=0|r[22032+(12*a|0)+4>>2],h=0|r[22032+(12*a|0)+8>>2],c=(0|r[22032+(12*a|0)>>2])+n|0,r[o>>2]=c,A=u+A|0,r[f>>2]=A,n=h+l|0,r[i>>2]=n,l=A-c|0,a=n-c|0,(0|c)<0&&(r[f>>2]=l,r[i>>2]=a,r[o>>2]=0,c=0,n=a,A=l),a=c-A|0,l=n-A|0,(0|A)<0?(r[o>>2]=a,r[i>>2]=l,r[f>>2]=0,c=a,A=0):l=n,n=c-l|0,a=A-l|0,(0|l)<0?(r[o>>2]=n,r[f>>2]=a,r[i>>2]=0,A=a,l=0):n=c,(0|(a=(0|l)<(0|(a=(0|A)<(0|n)?A:n))?l:a))>0&&(l=l-a|0,A=A-a|0,n=n-a|0,r[o>>2]=n,r[f>>2]=A,r[i>>2]=l)),d>>>0<p>>>0;)d=d+1|0;return 0|s}function Ne(e,t,n){n|=0;var i,o,s,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0;if(s=I,I=I+16|0,o=s,f=0|Gt(0|(e|=0),0|(t|=0),45),x(),(f&=127)>>>0>121)return r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,I=s,0|(p=5);e:do{if(0|H(f)&&(u=0|Gt(0|e,0|t,52),x(),0|(u&=15))){a=1;t:for(;;){switch(p=0|Gt(0|e,0|t,3*(15-a|0)|0),x(),7&p){case 5:break t;case 0:break;default:d=t;break e}if(!(a>>>0<u>>>0)){d=t;break e}a=a+1|0}for(c=1,a=t;;){switch(l=e&~(l=0|Vt(7,0,0|(t=3*(15-c|0)|0))),A=a&~x(),a=0|Gt(0|e,0|a,0|t),x(),7&a){case 1:a=3;break;case 3:a=2;break;case 2:a=6;break;case 6:a=4;break;case 4:a=5;break;case 5:a=1;break;default:a&=7}if(e=0|Vt(0|a,0,0|t),e|=l,a=0|x()|A,!(c>>>0<u>>>0)){d=a;break e}c=c+1|0}}else d=t}while(0);if(p=7696+(28*f|0)|0,r[n>>2]=r[p>>2],r[n+4>>2]=r[p+4>>2],r[n+8>>2]=r[p+8>>2],r[n+12>>2]=r[p+12>>2],!(0|Oe(e,d,n)))return I=s,0|(p=0);if(p=n+4|0,r[o>>2]=r[p>>2],r[o+4>>2]=r[p+4>>2],r[o+8>>2]=r[p+8>>2],h=0|Gt(0|e,0|d,52),x(),i=15&h,1&h?(A=0|r[p>>2],a=(3*(l=0|r[(u=n+8|0)>>2])|0)+A|0,A=(t=0|r[(h=n+12|0)>>2])+(3*A|0)|0,r[p>>2]=A,r[u>>2]=a,l=(3*t|0)+l|0,r[h>>2]=l,t=a-A|0,c=l-A|0,(0|A)<0&&(r[u>>2]=t,r[h>>2]=c,r[p>>2]=0,a=t,A=0,l=c),c=A-a|0,t=l-a|0,(0|a)<0?(r[p>>2]=c,r[h>>2]=t,r[u>>2]=0,a=0):(t=l,c=A),A=c-t|0,l=a-t|0,(0|t)<0?(r[p>>2]=A,r[u>>2]=l,r[h>>2]=0,t=0):(l=a,A=c),(0|(a=(0|t)<(0|(a=(0|l)<(0|A)?l:A))?t:a))>0&&(r[p>>2]=A-a,r[u>>2]=l-a,r[h>>2]=t-a),l=i+1|0):l=i,0|H(f)){e:do{if(i)for(t=1;;){if(a=0|Gt(0|e,0|d,3*(15-t|0)|0),x(),0|(a&=7))break e;if(!(t>>>0<i>>>0)){a=0;break}t=t+1|0}else a=0}while(0);a=4==(0|a)&1}else a=0;if(0|pe(n,l,a,0)){if(0|H(f))do{}while(0|pe(n,l,0,0));(0|l)!=(0|i)&&(e=0|r[(u=n+12|0)>>2],t=0|xt(.14285714285714285*+(((a=(0|r[p>>2])-e|0)<<1)+(e=(0|r[(c=n+8|0)>>2])-e|0)|0)),r[p>>2]=t,a=0|xt(.14285714285714285*+((3*e|0)-a|0)),r[c>>2]=a,r[u>>2]=0,e=a-t|0,l=0-t|0,(0|t)<0?(r[c>>2]=e,r[u>>2]=l,r[p>>2]=0,a=e,t=0):l=0,A=t-a|0,e=l-a|0,(0|a)<0?(r[p>>2]=A,r[u>>2]=e,r[c>>2]=0,t=A,a=0):e=l,A=t-e|0,l=a-e|0,(0|e)<0?(r[p>>2]=A,r[c>>2]=l,r[u>>2]=0,t=A,e=0):l=a,(0|(a=(0|e)<(0|(a=(0|l)<(0|t)?l:t))?e:a))>0&&(r[p>>2]=t-a,r[c>>2]=l-a,r[u>>2]=e-a))}else(0|l)!=(0|i)&&(r[p>>2]=r[o>>2],r[p+4>>2]=r[o+4>>2],r[p+8>>2]=r[o+8>>2]);return I=s,0|(p=0)}function ke(e,t,n){n|=0;var i,r,s,a=0,l=0,A=0;return s=I,I=I+48|0,r=s,(a=0|Ne(e|=0,t|=0,i=s+24|0))?(I=s,0|a):(a=0|Gt(0|e,0|t,52),x(),ue(i,15&a,r),A=+p(+ +o[r+16>>3]),l=+m(+ +o[r+8>>3],+ +o[r>>3]),o[n>>3]=A,o[n+8>>3]=l,I=s,0|(a=0))}function Ue(e,t,n){n|=0;var i,r=0,o=0,s=0;if(i=I,I=I+16|0,0|(r=0|Ne(e|=0,t|=0,s=i)))return I=i,0|(s=r);r=0|Gt(0|e,0|t,45),x(),r=!(0|H(127&r)),o=0|Gt(0|e,0|t,52),x(),o&=15;e:do{if(!r){if(0|o)for(r=1;;){if(!(!((0|Vt(7,0,3*(15-r|0)|0))&e|0)&!((0|x())&t)))break e;if(!(r>>>0<o>>>0))break;r=r+1|0}return de(s,o,0,5,n),I=i,0|0}}while(0);return me(s,o,0,6,n),I=i,0|0}function Ge(e,t){t|=0;var n=0,i=0,o=0,s=0,a=0,l=0,A=0;if((e|=0)>>>0>15)return 0|(l=4);if(Vt(0|e,0,52),l=134225919|x(),!e){n=0,i=0;do{0|H(i)&&(Vt(0|i,0,45),a=0|l|x(),r[(e=t+(n<<3)|0)>>2]=-1,r[e+4>>2]=a,n=n+1|0),i=i+1|0}while(122!=(0|i));return 0|(n=0)}n=0,a=0;do{if(0|H(a)){for(Vt(0|a,0,45),i=1,o=-1,s=0|l|x();o&=~(A=0|Vt(7,0,3*(15-i|0)|0)),s&=~x(),(0|i)!=(0|e);)i=i+1|0;r[(A=t+(n<<3)|0)>>2]=o,r[A+4>>2]=s,n=n+1|0}a=a+1|0}while(122!=(0|a));return 0|(n=0)}function Ve(e,t,n,i){e|=0,i|=0;var o=0,s=0,a=0;o=0|Gt(0|(t|=0),0|(n|=0),52),x(),!(0|t)&!(0|n)|(0|i)>15|(0|(o&=15))>(0|i)?(s=-1,t=-1,n=0,o=0):(t=0|Te(t,n,o+1|0,i),a=-15728641&x(),n=0|Vt(0|i,0,52),s=o,t=(t=!(0|xe(n|=t,a=0|a|x())))?-1:i,o=a),r[(a=e)>>2]=n,r[a+4>>2]=o,r[e+8>>2]=s,r[e+12>>2]=t}function ze(e,t,n,i){n|=0,i|=0;var o=0,s=0;return o=0|Gt(0|(e|=0),0|(t|=0),52),x(),o&=15,r[(s=i+8|0)>>2]=o,!(0|e)&!(0|t)|(0|n)>15|(0|o)>(0|n)?(r[(n=i)>>2]=0,r[n+4>>2]=0,r[s>>2]=-1,void(r[i+12>>2]=-1)):(e=0|Te(e,t,o+1|0,n),s=-15728641&x(),o=0|Vt(0|n,0,52),o|=e,s=0|s|x(),r[(e=i)>>2]=o,r[e+4>>2]=s,e=i+12|0,0|xe(o,s)?void(r[e>>2]=n):void(r[e>>2]=-1))}function He(e){var t,n=0,i=0,o=0,s=0,a=0,l=0,A=0,c=0;if(!(!(0|(n=0|r[(i=e|=0)>>2]))&!(0|(i=0|r[i+4>>2]))||(o=0|Gt(0|n,0|i,52),x(),n=0|Bt(0|(A=0|Vt(1,0,3*(15^(o&=15))|0)),0|x(),0|n,0|i),i=0|x(),r[(A=e)>>2]=n,r[A+4>>2]=i,(0|o)<(0|(l=0|r[(A=e+8|0)>>2]))))){for(t=e+12|0,a=o;;){if((0|a)==(0|l)){o=5;break}if(c=(0|a)==(0|r[t>>2]),o=0|Gt(0|n,0|i,0|(s=3*(15-a|0)|0)),x(),c&1==(0|(o&=7))&!0){o=7;break}if(!(7==(0|o)&!0)){o=10;break}if(n=0|Bt(0|n,0|i,0|(c=0|Vt(1,0,0|s)),0|x()),i=0|x(),r[(c=e)>>2]=n,r[c+4>>2]=i,!((0|a)>(0|l))){o=10;break}a=a+-1|0}if(5==(0|o))return r[(c=e)>>2]=0,r[c+4>>2]=0,r[A>>2]=-1,void(r[t>>2]=-1);if(7==(0|o))return l=0|Bt(0|n,0|i,0|(l=0|Vt(1,0,0|s)),0|x()),A=0|x(),r[(c=e)>>2]=l,r[c+4>>2]=A,void(r[t>>2]=a+-1)}}function We(e){var t;return t=(e=+e)<0?e+6.283185307179586:e,+(e>=6.283185307179586?t+-6.283185307179586:t)}function je(e,t){switch(e=+e,0|(t|=0)){case 1:e=e<0?e+6.283185307179586:e;break;case 2:e=e>0?e+-6.283185307179586:e}return+e}function Qe(e,t){e|=0;var n,i,r,s=0;return i=+o[(t|=0)>>3],n=+o[e>>3],s=(r=+h(.5*(i-n)))*r+(s=+h(.5*(+o[t+8>>3]-+o[e+8>>3])))*(+u(+i)*+u(+n)*s),2*+m(+ +c(+s),+ +c(+(1-s)))*6371.007180918475}function Xe(e,t){return t|=0,(e|=0)>>>0>15?0|(t=4):(o[t>>3]=+o[20624+(e<<3)>>3],0|(t=0))}function Ke(e,t){t|=0;var n=0;return(e|=0)>>>0>15?0|(t=4):(n=0|Ot(0|(n=0|$e(7,0,e,((0|e)<0)<<31>>31)),0|x(),120,0),e=0|x(),r[t>>2]=2|n,r[t+4>>2]=e,0|(t=0))}function Je(e,t,n,o,s){n|=0,o|=0,s|=0;var a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0;if(a=I,I=I+16|0,b=a,d=0|Gt(0|(e|=0),0|(t|=0),52),x(),d&=15,g=0|Gt(0|n,0|o,52),x(),(0|d)!=(15&g))return I=a,0|(b=12);if(u=0|Gt(0|e,0|t,45),x(),u&=127,h=0|Gt(0|n,0|o,45),x(),u>>>0>121|(h&=127)>>>0>121)return I=a,0|(b=5);if(g=(0|u)!=(0|h)){if(7==(0|(A=0|J(u,h))))return I=a,0|(b=1);7==(0|(c=0|J(h,u)))?T(27291,27315,164,27325):(_=A,l=c)}else _=0,l=0;f=0|H(u),p=0|H(h),r[b>>2]=0,r[b+4>>2]=0,r[b+8>>2]=0,r[b+12>>2]=0;do{if(_){A=(0|(h=0|r[4272+(28*u|0)+(_<<2)>>2]))>0;e:do{if(p)if(A)for(u=0,c=n,A=o;;){switch(c=0|Be(c,A),A=0|x(),0|l){case 5:case 1:l=3;break;case 3:l=2;break;case 2:l=6;break;case 6:l=4;break;case 4:l=5}if((0|(u=u+1|0))==(0|h)){h=l,u=c,c=A;break e}}else h=l,u=n,c=o;else if(A)for(u=0,c=n,A=o;;){switch(c=0|Ie(c,A),A=0|x(),0|l){case 1:l=3;break;case 3:l=2;break;case 2:l=6;break;case 6:l=4;break;case 4:l=5;break;case 5:l=1}if((0|(u=u+1|0))==(0|h)){h=l,u=c,c=A;break e}}else h=l,u=n,c=o}while(0);if(Oe(u,c,b),g||T(27340,27315,194,27325),(A=!!(0|f))&(l=!!(0|p))&&T(27367,27315,195,27325),A){if(7==(0|(l=0|Pe(e,t)))){l=5;break}if(0|i[21968+(7*l|0)+_|0]){l=1;break}g=p=0|r[21136+(28*l|0)+(_<<2)>>2]}else if(l){if(7==(0|(l=0|Pe(u,c)))){l=5;break}if(0|i[21968+(7*l|0)+h|0]){l=1;break}g=0,p=0|r[21136+(28*h|0)+(l<<2)>>2]}else g=0,p=0;if((g|p|0)>=0){if((0|p)>0){o=b+8|0,f=b+12|0,h=0,c=0|r[(n=b+4|0)>>2],A=0|r[o>>2],l=0|r[f>>2];do{(0|(u=(0|(l=(v=(0|(c=l+c-(v=(t=(0|(m=A+c|0))<0)?m:0)-(u=(e=(0|(A=l+A-v|0))<0)?A:0)|0))<0)?0:c))<(0|(u=(0|(A=(e?0:A)-(c=v?c:0)|0))<(0|(c=(t?0:m)-u-c|0))?A:c))?l:u))>0&&(c=c-u|0,A=A-u|0,l=l-u|0),h=h+1|0}while((0|h)!=(0|p));r[n>>2]=c,r[o>>2]=A,r[f>>2]=l}if((_+-1|0)>>>0<6?(l=0|r[22032+(12*_|0)>>2],c=0|r[22032+(12*_|0)+4>>2],l=l-(A=(0|(A=(0|(v=0|r[22032+(12*_|0)+8>>2]))<(0|(A=(0|c)<(0|l)?c:l))?v:A))>0?A:0)|0,c=c-A|0,A=v-A|0):(l=0,c=0,A=0),d)for(;;){if(u=3*l|0,h=3*c|0,n=3*A|0,0|Fe(d)?(l=(v=(0|(A=(0|(_=(A=(0|(c=l+n-((e=(0|(t=u+c|0))<0)?t:0)-((m=(0|(v=h+A-(e?t:0)|0))<0)?v:0)|0))<0)?0:c))<(0|(A=(0|(u=(m?0:v)-(A?c:0)|0))<(0|(c=(e?0:t)-(m?v:0)-(A?c:0)|0))?u:c))?_:A))>0)?A:0,u=u-(v?A:0)|0,A=_-(v?A:0)|0):(l=(v=(0|(A=(0|(_=(A=(0|(c=n+c-((t=(0|(m=u+A|0))<0)?m:0)-((l=(0|(v=h+l-(t?m:0)|0))<0)?v:0)|0))<0)?0:c))<(0|(A=(0|(u=(l?0:v)-(A?c:0)|0))<(0|(c=(t?0:m)-(l?v:0)-(A?c:0)|0))?u:c))?_:A))>0)?A:0,u=u-(v?A:0)|0,A=_-(v?A:0)|0),l=c-l|0,!((0|d)>1)){c=u;break}d=d+-1|0,c=u}if((0|g)>0){u=0;do{A=(A=(l=(0|(_=l+A-((e=(0|(t=l+c|0))<0)?t:0)-((m=(0|(v=c+A-(e?t:0)|0))<0)?v:0)|0))<0)?0:_)-((v=(0|(l=(0|A)<(0|(l=(0|(c=(m?0:v)-(l?_:0)|0))<(0|(_=(e?0:t)-(m?v:0)-(l?_:0)|0))?c:_))?A:l))>0)?l:0)|0,c=c-(v?l:0)|0,l=_-(v?l:0)|0,u=u+1|0}while((0|u)!=(0|g))}n=b+4|0,_=0|r[(d=b+8|0)>>2],v=0|r[(o=b+12|0)>>2],u=(0|r[n>>2])+l|0,r[n>>2]=u,c=_+c|0,r[d>>2]=c,l=v+A|0,r[o>>2]=l,A=c-u|0,(0|u)<0?(l=l-u|0,r[d>>2]=A,r[o>>2]=l,r[n>>2]=0,c=0):(A=c,c=u),(0|A)<0&&(c=c-A|0,r[n>>2]=c,l=l-A|0,r[o>>2]=l,r[d>>2]=0,A=0),h=c-l|0,u=A-l|0,(0|l)<0?(r[n>>2]=h,r[d>>2]=u,r[o>>2]=0,c=h,l=0):u=A,(0|(A=(0|l)<(0|(A=(0|u)<(0|c)?u:c))?l:A))>0?(r[n>>2]=c-A,r[d>>2]=u-A,r[o>>2]=l-A,m=77):m=77}else l=5}else if(Oe(n,o,b),!!(0|f)&!!(0|p))if((0|h)!=(0|u)&&T(27398,27315,264,27325),7==(0|(A=0|Pe(e,t)))|7==(0|(l=0|Pe(n,o))))l=5;else if(0|i[21968+(7*A|0)+l|0])l=1;else if((0|(n=0|r[21136+(28*A|0)+(l<<2)>>2]))>0){o=b+8|0,f=b+12|0,h=0,c=0|r[(d=b+4|0)>>2],A=0|r[o>>2],l=0|r[f>>2];do{(0|(u=(0|(l=(e=(0|(c=l+c-(e=(m=(0|(_=A+c|0))<0)?_:0)-(u=(t=(0|(A=l+A-e|0))<0)?A:0)|0))<0)?0:c))<(0|(u=(0|(A=(t?0:A)-(c=e?c:0)|0))<(0|(c=(m?0:_)-u-c|0))?A:c))?l:u))>0&&(c=c-u|0,A=A-u|0,l=l-u|0),h=h+1|0}while((0|h)!=(0|n));r[d>>2]=c,r[o>>2]=A,r[f>>2]=l,m=77}else m=77;else m=77}while(0);return 77==(0|m)&&(l=b+4|0,r[s>>2]=r[l>>2],r[s+4>>2]=r[l+4>>2],r[s+8>>2]=r[l+8>>2],l=0),I=a,0|(v=l)}function qe(e,t,n,i){n|=0,i|=0;var o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,S=0;if(s=0|Gt(0|(e|=0),0|(t|=0),52),x(),s&=15,y=0|Gt(0|e,0|t,45),x(),(y&=127)>>>0>121)return 0|(i=5);if(m=0|H(y),Vt(0|s,0,52),l=134225919|x(),r[(a=i)>>2]=-1,r[a+4>>2]=l,a=0|r[n>>2],l=0|r[n+4>>2],n=0|r[n+8>>2],!s){o=(o=(n=(0|(_=n-(_=(t=(0|a)<0)?a:0)+((m=(0|(v=l-_|0))<0)?0-v|0:0)|0))<0)?0:_)-(v=(0|(v=(0|o)<(0|(v=(0|(n=(m?0:v)-(_=n?_:0)|0))<(0|(_=(t?0:a)-(m?v:0)-_|0))?n:_))?o:v))>0?v:0)|0,n=n-v|0;e:do{switch(_-v|0){case 0:switch(0|n){case 0:if(o){o=1==(0|o)?1:7,b=11;break e}o=0;break e;case 1:if(o){o=1==(0|o)?3:7,b=11;break e}o=2;break e;default:return 0|(i=1)}case 1:switch(0|n){case 0:if(o){o=1==(0|o)?5:7,b=11;break e}o=4;break e;case 1:if(!o){o=6;break e}return 0|(o=1);default:return 0|(i=1)}default:return 0|(i=1)}}while(0);return 11==(0|b)&&7==(0|o)||127==(0|(o=0|K(y,o)))?0|(i=1):(v=0|Vt(0|o,0,45),y=0|x(),y=-1040385&r[(b=i)+4>>2]|y,r[i>>2]=r[b>>2]|v,r[i+4>>2]=y,0|(i=0))}for(;;){if(g=s,s=s+-1|0,A=(p=a-n|0)>>>0>715827881|(f=l-n|0)>>>0>715827881,0|Fe(g)){if(A){if(h=2147483647-p|0,d=-2147483648-p|0,(u=(0|p)>0)?(0|h)<(0|p):(0|d)>(0|p)){o=1,b=107;break}if(S=p<<1,u?(2147483647-S|0)<(0|p):(-2147483648-S|0)>(0|p)){o=1,b=107;break}if((0|f)>0?(2147483647-f|0)<(0|f):(-2147483648-f|0)>(0|f)){o=1,b=107;break}if(A=3*p|0,c=f<<1,(u?(0|h)<(0|c):(0|d)>(0|c))||((0|p)>-1?(-2147483648|A)>=(0|f):(-2147483648^A)<(0|f))){o=1,b=107;break}}else A=3*p|0,c=f<<1;if(h=0|xt(.14285714285714285*+(A-f|0)),A=(c=(0|(u=0|xt(.14285714285714285*+(c+p|0))))<(0|h))?h:u,(0|(c=c?u:h))<0){if(-2147483648==(0|c)||((0|A)>0?(2147483647-A|0)<(0|c):(-2147483648-A|0)>(0|c))){b=24;break}if((0|A)>-1?(-2147483648|A)>=(0|c):(-2147483648^A)<(0|c)){b=24;break}}d=((d=(0|h)<0)?0:h)-((w=(0|(f=u-(d?h:0)|0))<0)?f:0)-((p=(0|(C=(d?0-h|0:0)-(w?f:0)|0))<0)?C:0)|0,f=(w?0:f)-(p?C:0)|0,d=d-((w=(0|(p=(0|(C=p?0:C))<(0|(p=(0|f)<(0|d)?f:d))?C:p))>0)?p:0)|0,f=f-(w?p:0)|0,A=(S=(0|(u=(0|(E=(u=(0|(h=(3*(p=C-(w?p:0)|0)|0)+d-((C=(0|(w=(3*d|0)+f|0))<0)?w:0)-((A=(0|(S=(3*f|0)+p-(C?w:0)|0))<0)?S:0)|0))<0)?0:h))<(0|(u=(0|(c=(A?0:S)-(u?h:0)|0))<(0|(h=(C?0:w)-(A?S:0)-(u?h:0)|0))?c:h))?E:u))>0)?u:0,c=c-(S?u:0)|0,u=E-(S?u:0)|0}else{if(A){if((c=(0|p)>0)?(2147483647-p|0)<(0|p):(-2147483648-p|0)>(0|p)){o=1,b=107;break}if(A=p<<1,(u=(0|f)>0)?(2147483647-f|0)<(0|f):(-2147483648-f|0)>(0|f)){o=1,b=107;break}if(d=f<<1,u?(2147483647-d|0)<(0|f):(-2147483648-d|0)>(0|f)){o=1,b=107;break}if(c?(2147483647-A|0)<(0|f):(-2147483648-A|0)>(0|f)){o=1,b=107;break}if(c=3*f|0,(0|f)>-1?(-2147483648|c)>=(0|p):(-2147483648^c)<(0|p)){o=1,b=107;break}}else A=p<<1,c=3*f|0;if(h=0|xt(.14285714285714285*+(A+f|0)),A=(c=(0|(u=0|xt(.14285714285714285*+(c-p|0))))<(0|h))?h:u,(0|(c=c?u:h))<0){if(-2147483648==(0|c)||((0|A)>0?(2147483647-A|0)<(0|c):(-2147483648-A|0)>(0|c))){b=36;break}if((0|A)>-1?(-2147483648|A)>=(0|c):(-2147483648^A)<(0|c)){b=36;break}}d=((d=(0|h)<0)?0:h)-((E=(0|(f=u-(d?h:0)|0))<0)?f:0)-((p=(0|(S=(d?0-h|0:0)-(E?f:0)|0))<0)?S:0)|0,f=(E?0:f)-(p?S:0)|0,d=d-((E=(0|(p=(0|(S=p?0:S))<(0|(p=(0|f)<(0|d)?f:d))?S:p))>0)?p:0)|0,f=f-(E?p:0)|0,A=(C=(0|(u=(0|(w=(u=(0|(h=(3*(p=S-(E?p:0)|0)|0)+f-((S=(0|(E=(3*d|0)+p|0))<0)?E:0)-((A=(0|(C=(3*f|0)+d-(S?E:0)|0))<0)?C:0)|0))<0)?0:h))<(0|(u=(0|(c=(A?0:C)-(u?h:0)|0))<(0|(h=(S?0:E)-(A?C:0)-(u?h:0)|0))?c:h))?w:u))>0)?u:0,c=c-(C?u:0)|0,u=w-(C?u:0)|0}u=(a=(0|(C=n-u+((E=(0|(A=a+(A-h)|0))<0)?0-A|0:0)+((h=(0|(c=l-c-(E?A:0)|0))<0)?0-c|0:0)|0))<0)?0:C,S=(h?0:c)-(a?C:0)|0,C=(C=(E?0:A)-(h?c:0)-(a?C:0)|0)-((n=(0|(a=(0|u)<(0|(a=(0|S)<(0|C)?S:C))?u:a))>0)?a:0)|0,h=0|r[(c=i)>>2],c=0|r[c+4>>2],A=h&~(A=0|Vt(7,0,0|(l=3*(15-g|0)|0))),c&=~x(),n=(n=(a=(0|(E=u-(n?a:0)-(E=(h=(0|C)<0)?C:0)+((w=(0|(S=S-(n?a:0)-E|0))<0)?0-S|0:0)|0))<0)?0:E)-(S=(0|(S=(0|n)<(0|(S=(0|(a=(w?0:S)-(E=a?E:0)|0))<(0|(E=(h?0:C)-(w?S:0)-E|0))?a:E))?n:S))>0?S:0)|0,a=a-S|0;e:do{switch(E-S|0){case 0:switch(0|a){case 0:n=0|n?1==(0|n)?1:7:0;break e;case 1:n=0|n?1==(0|n)?3:7:2;break e;default:b=45;break e}case 1:switch(0|a){case 0:n=0|n?1==(0|n)?5:7:4;break e;case 1:if(n){b=45;break e}n=6;break e;default:b=45;break e}default:b=45}}while(0);if(45==(0|b)&&(b=0,n=7),w=0|Vt(0|n,0,0|l),E=0|x()|c,r[(S=i)>>2]=w|A,r[S+4>>2]=E,(0|g)<=1){b=47;break}a=d,l=f,n=p}if(24==(0|b))T(27634,27425,416,27447);else if(36==(0|b))T(27634,27425,464,27461);else{if(47==(0|b)){if((0|d)>1|(0|f)>1|(0|p)>1)return 0|(S=1);n=(n=(s=(0|(E=p-(E=(C=(0|d)<0)?d:0)+((w=(0|(S=f-E|0))<0)?0-S|0:0)|0))<0)?0:E)-(S=(0|(S=(0|n)<(0|(S=(0|(s=(w?0:S)-(E=s?E:0)|0))<(0|(E=(C?0:d)-(w?S:0)-E|0))?s:E))?n:S))>0?S:0)|0,s=s-S|0;e:do{switch(E-S|0){case 0:switch(0|s){case 0:s=0|n?1==(0|n)?1:7:0;break e;case 1:s=0|n?1==(0|n)?3:7:2;break e;default:b=55;break e}case 1:switch(0|s){case 0:s=0|n?1==(0|n)?5:7:4;break e;case 1:if(n){b=55;break e}s=6;break e;default:b=55;break e}default:b=55}}while(0);55==(0|b)&&(s=7),c=127==(0|(l=0|K(y,s)))?0:0|H(l);e:do{if(s){if(m){if(7==(0|(n=0|Pe(e,t))))return 0|(S=5);a=0|r[21344+(28*n|0)+(s<<2)>>2];t:do{if((0|a)>0)for(n=s,s=0;;){switch(0|n){case 1:n=5;break;case 5:n=4;break;case 4:n=6;break;case 6:n=2;break;case 2:n=3;break;case 3:n=1}if((0|(s=s+1|0))==(0|a))break t}else n=s}while(0);if(1==(0|n))return 0|(S=9);127==(0|(s=0|K(y,n)))&&T(27476,27315,415,27506),0|H(s)?T(27521,27315,416,27506):(o=s,v=a,_=n)}else o=l,v=0,_=s;if((0|(A=0|r[4272+(28*y|0)+(_<<2)>>2]))<=-1&&T(27552,27315,423,27506),!c){if((0|v)<0)return 0|(S=5);if(0|v){n=0,s=0|r[(a=i)>>2],a=0|r[a+4>>2];do{s=0|Re(s,a),a=0|x(),r[(S=i)>>2]=s,r[S+4>>2]=a,n=n+1|0}while((0|n)<(0|v))}if((0|A)<=0){b=104;break}for(n=0,s=0|r[(a=i)>>2],a=0|r[a+4>>2];;)if(s=0|Re(s,a),a=0|x(),r[(S=i)>>2]=s,r[S+4>>2]=a,(0|(n=n+1|0))==(0|A)){b=104;break e}}if(7==(0|(l=0|J(o,y)))&&T(27291,27315,432,27506),s=0|r[(n=i)>>2],n=0|r[n+4>>2],(0|A)>0){a=0;do{s=0|Re(s,n),n=0|x(),r[(S=i)>>2]=s,r[S+4>>2]=n,a=a+1|0}while((0|a)!=(0|A))}if(7==(0|(n=0|Pe(s,n)))&&T(27634,27315,444,27506),s=0|W(o),(0|(s=0|r[(s?21760:21552)+(28*l|0)+(n<<2)>>2]))<0&&T(27634,27315,458,27506),s){n=0,a=0|r[(l=i)>>2],l=0|r[l+4>>2];do{a=0|Me(a,l),l=0|x(),r[(S=i)>>2]=a,r[S+4>>2]=l,n=n+1|0}while((0|n)<(0|s));b=104}else b=104}else if(!!(0|m)&!!(0|c)){if(7==(0|(o=0|Pe(e,t)))|7==(0|(n=0|Pe(0|r[(n=i)>>2],0|r[n+4>>2]))))return 0|(S=5);if((0|(n=0|r[21344+(28*o|0)+(n<<2)>>2]))<0)return 0|(S=5);if(n){o=0,s=0|r[(a=i)>>2],a=0|r[a+4>>2];do{s=0|Re(s,a),a=0|x(),r[(S=i)>>2]=s,r[S+4>>2]=a,o=o+1|0}while((0|o)<(0|n));o=l,b=104}else o=l,b=105}else o=l,b=104}while(0);return 104==(0|b)&&c&&(b=105),105==(0|b)&&1==(0|Pe(0|r[(S=i)>>2],0|r[S+4>>2]))?0|(S=9):(C=0|r[(E=i)>>2],E=-1040385&r[E+4>>2],w=0|Vt(0|o,0,45),E=0|E|x(),r[(S=i)>>2]=C|w,r[S+4>>2]=E,0|(S=0))}if(107==(0|b))return 0|o}return 0}function Ye(e,t,n,i,o){n|=0,i|=0,o|=0;var s,a,l=0,A=0,c=0;return s=I,I=I+32|0,c=s,0|(l=0|Je(e|=0,t|=0,e,t,A=s+12|0))?(I=s,0|(c=l)):0|(e=0|Je(e,t,n,i,c))?(I=s,0|(c=e)):(t=(0|(n=(i=(a=(0|(e=(0|r[A>>2])-(0|r[c>>2])|0))<0)?0-e|0:0)+((0|r[A+4>>2])-(0|r[c+4>>2]))|0))<0,A=(A=(l=(0|(i=(0|r[A+8>>2])-(0|r[c+8>>2])+i+(t?0-n|0:0)|0))<0)?0:i)-(c=(0|(c=(0|A)<(0|(c=(0|(l=(t?0:n)-(i=l?i:0)|0))<(0|(i=(a?0:e)-(t?n:0)-i|0))?l:i))?A:c))>0?c:0)|0,l=l-c|0,A=(0|(c=(0|(c=i-c|0))>-1?c:0-c|0))>(0|(A=(0|(l=(0|l)>-1?l:0-l|0))>(0|(A=(0|A)>-1?A:0-A|0))?l:A))?c:A,r[(c=o)>>2]=A,r[c+4>>2]=((0|A)<0)<<31>>31,I=s,0|(c=0))}function Ze(e,t,n,i,o,s,a,l,c,u,h){e|=0,t|=0,n|=0,i|=0,o|=0,s|=0,a|=0,l|=0,c|=0,u|=0,h|=0;var d,f,p,g,m,_,b,v=0,y=0,C=0,w=0,E=0,S=0,P=0,M=0,R=0,B=0,L=0;if(b=I,I=I+48|0,y=b+12|0,_=b,r[(v=b+24|0)>>2]=0,r[v+4>>2]=0,r[v+8>>2]=0,r[y>>2]=0,r[y+4>>2]=0,r[y+8>>2]=0,0|Je(e,t,e,t,v)&&T(27634,27315,696,27575),0|Je(e,t,n,i,y)&&T(27634,27315,701,27575),n=(i=0|r[(E=v+8|0)>>2])-(0|r[v>>2])|0,r[v>>2]=n,i=(0|r[(B=v+4|0)>>2])-i|0,r[B>>2]=i,v=0-(B=i+n|0)|0,r[E>>2]=v,S=(P=0|r[(E=y+8|0)>>2])-(0|r[y>>2])|0,r[y>>2]=S,P=(0|r[(R=y+4|0)>>2])-P|0,r[R>>2]=P,R=P+S|0,r[E>>2]=0-R,g=(M=1/(+(o>>>0)+4294967296*+(0|s)))*+(S-n|0),m=M*+(P-i|0),M*=+(B-R|0),r[_>>2]=n,r[(R=_+4|0)>>2]=i,r[(B=_+8|0)>>2]=v,(0|s)<0)return I=b,0|(u=0);for(p=+(0|n),f=+(0|i),d=+(0|v),S=0,P=0;;){if(L=g*(w=+(S>>>0)+4294967296*+(0|P))+p,C=m*w+f,w=M*w+d,i=~~+jt(+L),v=~~+jt(+C),n=~~+jt(+w),(L=+A(+(+(0|i)-L)))>(C=+A(+(+(0|v)-C)))&L>(w=+A(+(+(0|n)-w)))?i=0-(y=n+v|0)|0:(y=0-i|0,C>w&&(v=y-n|0)),r[R>>2]=v,r[_>>2]=y,r[B>>2]=0,n=i+v|0,(0|i)>0?(r[R>>2]=n,r[B>>2]=i,r[_>>2]=0,y=0):(n=v,i=0),(0|n)<0?(v=y-n|0,r[_>>2]=v,i=i-n|0,r[B>>2]=i,r[R>>2]=0,y=v-i|0,n=0-i|0,(0|i)<0?(r[_>>2]=y,r[R>>2]=n,r[B>>2]=0,E=n,i=0):(E=0,y=v)):E=n,(0|(n=(0|i)<(0|(n=(0|E)<(0|y)?E:y))?i:n))>0&&(r[_>>2]=y-n,r[R>>2]=E-n,r[B>>2]=i-n),n=0|Bt(0|(n=0|Ot(0|S,0|P,0|u,0|h)),0|x(),0|l,0|c),x(),0|(n=0|qe(e,t,_,a+(n<<3)|0))){i=20;break}if(E=S,S=0|Bt(0|S,0|P,1,0),y=P,P=0|x(),!((0|y)<(0|s)|(0|y)==(0|s)&E>>>0<o>>>0)){n=0,i=20;break}}return 20==(0|i)?(I=b,0|n):0}function $e(e,t,n,i){e|=0,t|=0;var r=0,o=0,s=0;if(!(0|(n|=0))&!(0|(i|=0)))return o=1,E(0|(r=0)),0|o;o=e,r=t,e=1,t=0;do{e=0|Ot(0|((s=!0&!(1&n))?1:o),0|(s?0:r),0|e,0|t),t=0|x(),n=0|Ut(0|n,0|i,1),i=0|x(),o=0|Ot(0|o,0|r,0|o,0|r),r=0|x()}while(!(!(0|n)&!(0|i)));return E(0|t),0|e}function et(e,t,n,i){n|=0,i|=0;var s,a=0,l=0,A=0,c=0,h=0,d=0;s=I,I=I+16|0,l=s,A=0|Gt(0|(e|=0),0|(t|=0),52),x(),A&=15;do{if(A){if(!(a=0|ke(e,t,l))){h=+o[l>>3],c=1/+u(+h),d=+o[26032+(A<<3)>>3],o[n>>3]=h+d,o[n+8>>3]=h-d,h=+o[l+8>>3],c*=d,o[n+16>>3]=c+h,o[n+24>>3]=h-c;break}return I=s,0|(A=a)}if(a=0|Gt(0|e,0|t,45),x(),(a&=127)>>>0>121)return I=s,0|(A=5);l=22128+(a<<5)|0,r[n>>2]=r[l>>2],r[n+4>>2]=r[l+4>>2],r[n+8>>2]=r[l+8>>2],r[n+12>>2]=r[l+12>>2],r[n+16>>2]=r[l+16>>2],r[n+20>>2]=r[l+20>>2],r[n+24>>2]=r[l+24>>2],r[n+28>>2]=r[l+28>>2];break}while(0);return function(e,t){t=+t;var n,i,r,s,a,l,A,c=0,u=0;c=(s=+o[(r=16+(e|=0)|0)>>3])-(i=+o[(n=e+24|0)>>3]),c=s<i?c+6.283185307179586:c,u=+o[e>>3],c=.5*(c*t-c),u+=t=.5*((A=u-(l=+o[(a=e+8|0)>>3]))*t-A),o[e>>3]=u>1.5707963267948966?1.5707963267948966:u,t=l-t,o[a>>3]=t<-1.5707963267948966?-1.5707963267948966:t,t=(t=s+c)>3.141592653589793?t+-6.283185307179586:t,o[r>>3]=t<-3.141592653589793?t+6.283185307179586:t,t=(t=i-c)>3.141592653589793?t+-6.283185307179586:t,o[n>>3]=t<-3.141592653589793?t+6.283185307179586:t}(n,i?1.4:1.1),(0|r[(i=26160+(A<<3)|0)>>2])==(0|e)&&(0|r[i+4>>2])==(0|t)&&(o[n>>3]=1.5707963267948966),(0|r[(A=26288+(A<<3)|0)>>2])==(0|e)&&(0|r[A+4>>2])==(0|t)&&(o[n+8>>3]=-1.5707963267948966),1.5707963267948966!=+o[n>>3]&&-1.5707963267948966!=+o[n+8>>3]?(I=s,0|(A=0)):(o[n+16>>3]=3.141592653589793,o[n+24>>3]=-3.141592653589793,I=s,0|(A=0))}function tt(e,t,n,o){e|=0,t|=0,n|=0,o|=0;var s,a,l,A=0,c=0,u=0,h=0;l=I,I=I+48|0,s=l+40|0,a=l,Ce(c=l+32|0,0,0,0),u=0|r[c>>2],c=0|r[c+4>>2];do{if(n>>>0<=15){if(0|(A=0|st(o))){r[(o=a)>>2]=0,r[o+4>>2]=0,r[a+8>>2]=A,r[a+12>>2]=-1,u=a+29|0,r[(o=a+16|0)>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,i[o+12|0]=0,i[u|0]=0|i[s|0],i[u+1|0]=0|i[s+1|0],i[u+2|0]=0|i[s+2|0];break}if(A=0|Pt(1+(0|r[t+8>>2])|0,32)){at(t,A),r[(h=a)>>2]=u,r[h+4>>2]=c,r[a+8>>2]=0,r[a+12>>2]=n,r[a+16>>2]=o,r[a+20>>2]=t,r[a+24>>2]=A,i[a+28|0]=0,i[(u=a+29|0)|0]=0|i[s|0],i[u+1|0]=0|i[s+1|0],i[u+2|0]=0|i[s+2|0];break}r[(o=a)>>2]=0,r[o+4>>2]=0,r[a+8>>2]=13,r[a+12>>2]=-1,u=a+29|0,r[(o=a+16|0)>>2]=0,r[o+4>>2]=0,r[o+8>>2]=0,i[o+12|0]=0,i[u|0]=0|i[s|0],i[u+1|0]=0|i[s+1|0],i[u+2|0]=0|i[s+2|0];break}r[(u=a)>>2]=0,r[u+4>>2]=0,r[a+8>>2]=4,r[a+12>>2]=-1,h=a+29|0,r[(u=a+16|0)>>2]=0,r[u+4>>2]=0,r[u+8>>2]=0,i[u+12|0]=0,i[h|0]=0|i[s|0],i[h+1|0]=0|i[s+1|0],i[h+2|0]=0|i[s+2|0]}while(0);nt(a),r[e>>2]=r[a>>2],r[e+4>>2]=r[a+4>>2],r[e+8>>2]=r[a+8>>2],r[e+12>>2]=r[a+12>>2],r[e+16>>2]=r[a+16>>2],r[e+20>>2]=r[a+20>>2],r[e+24>>2]=r[a+24>>2],r[e+28>>2]=r[a+28>>2],I=l}function nt(e){var t,n,o,s,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0;if(s=I,I=I+336|0,t=s+168|0,n=s,!(0|(l=0|r[(A=e|=0)>>2]))&!(0|(A=0|r[A+4>>2])))I=s;else{if(0|i[(a=e+28|0)|0]?(l=0|it(l,A),A=0|x()):i[a|0]=1,!(0|r[r[(o=e+20|0)>>2]>>2]))return 0|(l=0|r[(a=e+24|0)>>2])&&St(l),r[(C=e)>>2]=0,r[C+4>>2]=0,r[e+8>>2]=0,r[o>>2]=0,r[e+12>>2]=-1,r[e+16>>2]=0,r[a>>2]=0,void(I=s);c=15&(a=0|r[(C=e+16|0)>>2]);e:do{if(!(0|l)&!(0|A))y=e+24|0;else{b=e+12|0,m=3==(0|c),g=255&a,f=3==(1|c),_=e+24|0,p=(c+-1|0)>>>0<3,h=3==(2|c),d=n+8|0;t:for(;;){if(u=0|Gt(0|l,0|A,52),x(),(0|(u&=15))==(0|r[b>>2])){switch(15&g){case 0:case 2:case 3:if(0|(c=0|ke(l,A,t))){v=15;break t}if(0|lt(0|r[o>>2],0|r[_>>2],t)){v=19;break t}}if(f&&(c=0|r[4+(0|r[o>>2])>>2],r[t>>2]=r[c>>2],r[t+4>>2]=r[c+4>>2],r[t+8>>2]=r[c+8>>2],r[t+12>>2]=r[c+12>>2],0|Z(26896,t))){if(0|De(0|r[4+(0|r[o>>2])>>2],u,n)){v=25;break}if((0|r[(c=n)>>2])==(0|l)&&(0|r[c+4>>2])==(0|A)){v=29;break}}if(p){if(0|(c=0|Ue(l,A,t))){v=32;break}if(0|et(l,A,n,0)){v=36;break}if(h&&0|At(0|r[o>>2],0|r[_>>2],t,n)){v=42;break}if(f&&0|ut(0|r[o>>2],0|r[_>>2],t,n)){v=42;break}}if(m){if(a=0|et(l,A,t,1),c=0|r[_>>2],0|a){v=45;break}if(0|$(c,t)){if(te(n,t),0|ee(t,0|r[_>>2])){v=53;break}if(0|lt(0|r[o>>2],0|r[_>>2],d)){v=53;break}if(0|ut(0|r[o>>2],0|r[_>>2],n,t)){v=53;break}}}}do{if((0|u)<(0|r[b>>2])){if(a=0|et(l,A,t,1),c=0|r[_>>2],0|a){v=58;break t}if(!(0|$(c,t))){v=73;break}if(0|ee(0|r[_>>2],t)&&(te(n,t),0|At(0|r[o>>2],0|r[_>>2],n,t))){v=65;break t}if(0|(l=0|Se(l,A,u+1|0,n))){v=67;break t}l=0|r[(A=n)>>2],A=0|r[A+4>>2]}else v=73}while(0);if(73==(0|v)&&(v=0,l=0|it(l,A),A=0|x()),!(0|l)&!(0|A)){y=_;break e}}switch(0|v){case 15:0|(a=0|r[_>>2])&&St(a),r[(v=e)>>2]=0,r[v+4>>2]=0,r[o>>2]=0,r[b>>2]=-1,r[C>>2]=0,r[_>>2]=0,r[e+8>>2]=c,v=20;break;case 19:r[e>>2]=l,r[e+4>>2]=A,v=20;break;case 25:T(27634,27600,470,27611);break;case 29:case 42:return r[e>>2]=l,r[e+4>>2]=A,void(I=s);case 32:return 0|(a=0|r[_>>2])&&St(a),r[(y=e)>>2]=0,r[y+4>>2]=0,r[o>>2]=0,r[b>>2]=-1,r[C>>2]=0,r[_>>2]=0,r[e+8>>2]=c,void(I=s);case 36:T(27634,27600,493,27611);break;case 45:0|c&&St(c),r[(v=e)>>2]=0,r[v+4>>2]=0,r[o>>2]=0,r[b>>2]=-1,r[C>>2]=0,r[_>>2]=0,r[e+8>>2]=a,v=55;break;case 53:r[e>>2]=l,r[e+4>>2]=A,v=55;break;case 58:0|c&&St(c),r[(v=e)>>2]=0,r[v+4>>2]=0,r[o>>2]=0,r[b>>2]=-1,r[C>>2]=0,r[_>>2]=0,r[e+8>>2]=a,v=71;break;case 65:r[e>>2]=l,r[e+4>>2]=A,v=71;break;case 67:return 0|(a=0|r[_>>2])&&St(a),r[(y=e)>>2]=0,r[y+4>>2]=0,r[o>>2]=0,r[b>>2]=-1,r[C>>2]=0,r[_>>2]=0,r[e+8>>2]=l,void(I=s)}if(20==(0|v))return void(I=s);if(55==(0|v))return void(I=s);if(71==(0|v))return void(I=s)}}while(0);0|(a=0|r[y>>2])&&St(a),r[(v=e)>>2]=0,r[v+4>>2]=0,r[e+8>>2]=0,r[o>>2]=0,r[e+12>>2]=-1,r[C>>2]=0,r[y>>2]=0,I=s}}function it(e,t){var n,i=0,o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0;n=I,I=I+16|0,h=n,o=0|Gt(0|(e|=0),0|(t|=0),52),x(),o&=15,i=0|Gt(0|e,0|t,45),x();do{if(o){for(;i=0|Vt(o+4095|0,0,52),s=x()|-15728641&t,i=i|e|(l=0|Vt(7,0,0|(a=3*(15-o|0)|0))),s|=A=0|x(),c=0|Gt(0|e,0|t,0|a),x(),o=o+-1|0,!((c&=7)>>>0<6);){if(!o){u=4;break}t=s,e=i}if(4==(0|u)){i=0|Gt(0|i,0|s,45),x();break}return h=0|Vt(((h=!(0|c)&!!(0|xe(i,s)))?2:1)+c|0,0,0|a),u=0|x()|t&~A,h|=e&~l,E(0|u),I=n,0|h}}while(0);return(i&=127)>>>0>120?(h=0,E(0|(u=0)),I=n,0|h):(Ce(h,0,i+1|0,0),u=0|r[h+4>>2],h=0|r[h>>2],E(0|u),I=n,0|h)}function rt(e,t,n){e|=0;var i,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0;if(!(0|Z(t|=0,n|=0)))return 0|(f=0);if(t=0|function(e){return+o[16+(e|=0)>>3]<+o[e+24>>3]|0}(t),s=+o[n>>3],a=t&(a=+o[n+8>>3])<0?a+6.283185307179586:a,(0|(f=0|r[e>>2]))<=0)return 0|(f=0);if(i=0|r[e+4>>2],t){t=0,d=a,n=-1,e=0;e:for(;;){for(h=e;A=+o[i+(h<<4)>>3],a=+o[i+(h<<4)+8>>3],l=+o[i+((e=(n+2|0)%(0|f)|0)<<4)>>3],c=+o[i+(e<<4)+8>>3],A>l?(u=A,A=c):(u=l,l=A,A=a,a=c),(s=s==l|s==u?s+2220446049250313e-31:s)<l|s>u;){if((0|(n=h+1|0))>=(0|f)){n=22;break e}e=h,h=n,n=e}if(((u=(c=A<0?A+6.283185307179586:A)+(s-l)/(u-l)*((A=a<0?a+6.283185307179586:a)-c))<0?u+6.283185307179586:u)>(d=c==d|A==d?d+-2220446049250313e-31:d)&&(t^=1),(0|(e=h+1|0))>=(0|f)){n=22;break}n=h}if(22==(0|n))return 0|t}else{t=0,d=a,n=-1,e=0;e:for(;;){for(h=e;A=+o[i+(h<<4)>>3],a=+o[i+(h<<4)+8>>3],l=+o[i+((e=(n+2|0)%(0|f)|0)<<4)>>3],c=+o[i+(e<<4)+8>>3],A>l?(u=A,A=c):(u=l,l=A,A=a,a=c),(s=s==l|s==u?s+2220446049250313e-31:s)<l|s>u;){if((0|(n=h+1|0))>=(0|f)){n=22;break e}e=h,h=n,n=e}if(A+(s-l)/(u-l)*(a-A)>(d=A==d|a==d?d+-2220446049250313e-31:d)&&(t^=1),(0|(e=h+1|0))>=(0|f)){n=22;break}n=h}if(22==(0|n))return 0|t}return 0}function ot(e,t){t|=0;var n,i,s,a,l,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0;if(!(i=0|r[(e|=0)>>2]))return r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,void(r[t+28>>2]=0);if(o[(s=t+8|0)>>3]=17976931348623157e292,o[(a=t+24|0)>>3]=17976931348623157e292,o[t>>3]=-17976931348623157e292,o[(l=t+16|0)>>3]=-17976931348623157e292,!((0|i)<=0)){for(n=0|r[e+4>>2],m=17976931348623157e292,_=-17976931348623157e292,b=0,e=-1,d=17976931348623157e292,f=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,v=0;c=+o[n+(v<<4)>>3],p=+o[n+(v<<4)+8>>3],h=+o[n+(((0|(e=e+2|0))==(0|i)?0:e)<<4)+8>>3],c<d&&(o[s>>3]=c,d=c),p<f&&(o[a>>3]=p,f=p),c>g?o[t>>3]=c:c=g,p>u&&(o[l>>3]=p,u=p),m=p>0&p<m?p:m,_=p<0&p>_?p:_,b|=+A(+(p-h))>3.141592653589793,(0|(e=v+1|0))!=(0|i);)y=v,g=c,v=e,e=y;b&&(o[l>>3]=_,o[a>>3]=m)}}function st(e){return 0|((e|=0)>>>0<4?0:15)}function at(e,t){t|=0;var n,i=0,s=0,a=0,l=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,x=0,T=0;if(_=0|r[(e|=0)>>2]){if(o[(b=t+8|0)>>3]=17976931348623157e292,o[(v=t+24|0)>>3]=17976931348623157e292,o[t>>3]=-17976931348623157e292,o[(y=t+16|0)>>3]=-17976931348623157e292,(0|_)>0){for(a=0|r[e+4>>2],g=17976931348623157e292,m=-17976931348623157e292,s=0,i=-1,h=17976931348623157e292,d=17976931348623157e292,p=-17976931348623157e292,c=-17976931348623157e292,C=0;l=+o[a+(C<<4)>>3],f=+o[a+(C<<4)+8>>3],u=+o[a+(((0|(x=i+2|0))==(0|_)?0:x)<<4)+8>>3],l<h&&(o[b>>3]=l,h=l),f<d&&(o[v>>3]=f,d=f),l>p?o[t>>3]=l:l=p,f>c&&(o[y>>3]=f,c=f),g=f>0&f<g?f:g,m=f<0&f>m?f:m,s|=+A(+(f-u))>3.141592653589793,(0|(i=C+1|0))!=(0|_);)x=C,p=l,C=i,i=x;s&&(o[y>>3]=m,o[v>>3]=g)}}else r[t>>2]=0,r[t+4>>2]=0,r[t+8>>2]=0,r[t+12>>2]=0,r[t+16>>2]=0,r[t+20>>2]=0,r[t+24>>2]=0,r[t+28>>2]=0;if(!((0|(i=0|r[(x=e+8|0)>>2]))<=0)){n=e+12|0,E=0;do{if(a=0|r[n>>2],s=E,v=t+((E=E+1|0)<<5)|0,y=0|r[a+(s<<3)>>2]){if(o[(C=t+(E<<5)+8|0)>>3]=17976931348623157e292,o[(e=t+(E<<5)+24|0)>>3]=17976931348623157e292,o[v>>3]=-17976931348623157e292,o[(w=t+(E<<5)+16|0)>>3]=-17976931348623157e292,(0|y)>0){for(_=0|r[a+(s<<3)+4>>2],g=17976931348623157e292,m=-17976931348623157e292,a=0,s=-1,b=0,h=17976931348623157e292,d=17976931348623157e292,f=-17976931348623157e292,c=-17976931348623157e292;l=+o[_+(b<<4)>>3],p=+o[_+(b<<4)+8>>3],u=+o[_+(((0|(s=s+2|0))==(0|y)?0:s)<<4)+8>>3],l<h&&(o[C>>3]=l,h=l),p<d&&(o[e>>3]=p,d=p),l>f?o[v>>3]=l:l=f,p>c&&(o[w>>3]=p,c=p),g=p>0&p<g?p:g,m=p<0&p>m?p:m,a|=+A(+(p-u))>3.141592653589793,(0|(s=b+1|0))!=(0|y);)T=b,b=s,f=l,s=T;a&&(o[w>>3]=m,o[e>>3]=g)}}else r[v>>2]=0,r[v+4>>2]=0,r[v+8>>2]=0,r[v+12>>2]=0,r[v+16>>2]=0,r[v+20>>2]=0,r[v+24>>2]=0,r[v+28>>2]=0,i=0|r[x>>2]}while((0|E)<(0|i))}}function lt(e,t,n){var i=0,o=0,s=0;if(!(0|rt(e|=0,t|=0,n|=0)))return 0|(o=0);if((0|r[(o=e+8|0)>>2])<=0)return 0|(o=1);for(i=e+12|0,e=0;;){if(s=e,e=e+1|0,0|rt((0|r[i>>2])+(s<<3)|0,t+(e<<5)|0,n)){e=0,i=6;break}if((0|e)>=(0|r[o>>2])){e=1,i=6;break}}return 6==(0|i)?0|e:0}function At(e,t,n,i){i|=0;var o,s,a=0,l=0,A=0,c=0,u=0;if(s=I,I=I+16|0,o=s,!(0|rt(e|=0,t|=0,A=(n|=0)+8|0)))return I=s,0|(c=0);c=e+8|0;e:do{if((0|r[c>>2])>0){for(l=e+12|0,a=0;;){if(u=a,a=a+1|0,0|rt((0|r[l>>2])+(u<<3)|0,t+(a<<5)|0,A)){a=0;break}if((0|a)>=(0|r[c>>2]))break e}return I=s,0|a}}while(0);if(0|ct(e,t,n,i))return I=s,0|(u=0);r[o>>2]=r[n>>2],r[o+4>>2]=A,a=0|r[c>>2];e:do{if((0|a)>0)for(e=e+12|0,A=0,l=a;;){if(a=0|r[e>>2],(0|r[a+(A<<3)>>2])>0){if(0|rt(o,i,0|r[a+(A<<3)+4>>2])){a=0;break e}if(a=A+1|0,0|ct((0|r[e>>2])+(A<<3)|0,t+(a<<5)|0,n,i)){a=0;break e}l=0|r[c>>2]}else a=A+1|0;if(!((0|a)<(0|l))){a=1;break}A=a}else a=1}while(0);return I=s,0|(u=a)}function ct(e,t,n,i){e|=0,n|=0;var s,a,l,A,c,u,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,x=0,T=0;if(u=I,I=I+176|0,A=u+172|0,h=u+168|0,c=u,!(0|$(t|=0,i|=0)))return I=u,0|(e=0);if(function(e,t,n,i){var s,a,l,A,c;t|=0,n|=0,i|=0,e=(a=+o[16+(e|=0)>>3])<(c=+o[e+24>>3]),s=(A=+o[t+16>>3])<(l=+o[t+24>>3]),t=c-A<l-a,r[n>>2]=e?s|t?1:2:0,r[i>>2]=s?e?1:t?2:1:0}(t,i,A,h),Qt(0|c,0|n,168),(0|r[n>>2])>0){t=0;do{C=+je(+o[(x=c+8+(t<<4)+8|0)>>3],0|r[h>>2]),o[x>>3]=C,t=t+1|0}while((0|t)<(0|r[n>>2]))}a=+o[i>>3],l=+o[i+8>>3],C=+je(+o[i+16>>3],0|r[h>>2]),s=+je(+o[i+24>>3],0|r[h>>2]);e:do{if((0|r[e>>2])>0){if(i=e+4|0,(0|(h=0|r[c>>2]))<=0)for(t=0;;)if((0|(t=t+1|0))>=(0|r[e>>2])){t=0;break e}for(n=0;;){if(t=0|r[i>>2],v=+o[t+(n<<4)>>3],y=+je(+o[t+(n<<4)+8>>3],0|r[A>>2]),t=0|r[i>>2],x=(0|(n=n+1|0))%(0|r[e>>2])|0,d=+o[t+(x<<4)>>3],f=+je(+o[t+(x<<4)+8>>3],0|r[A>>2]),!(v>=a)|!(d>=a)&&!(v<=l)|!(d<=l)&&!(y<=s)|!(f<=s)&&!(y>=C)|!(f>=C)){b=d-v,m=f-y,t=0;do{if(T=t,x=(0|(t=t+1|0))==(0|h)?0:t,d=+o[c+8+(T<<4)+8>>3],f=+o[c+8+(x<<4)+8>>3]-d,p=+o[c+8+(T<<4)>>3],!(0==(_=b*f-m*(g=+o[c+8+(x<<4)>>3]-p))||(w=y-d,E=v-p,g=(w*g-f*E)/_,g<0|g>1))&&(_=(b*w-m*E)/_)>=0&_<=1){t=1;break e}}while((0|t)<(0|h))}if((0|n)>=(0|r[e>>2])){t=0;break}}}else t=0}while(0);return I=u,0|(T=t)}function ut(e,t,n,i){var o=0,s=0,a=0;if(0|ct(e|=0,t|=0,n|=0,i|=0))return 0|(s=1);if((0|r[(s=e+8|0)>>2])<=0)return 0|(s=0);for(o=e+12|0,e=0;;){if(a=e,e=e+1|0,0|ct((0|r[o>>2])+(a<<3)|0,t+(e<<5)|0,n,i)){e=1,o=6;break}if((0|e)>=(0|r[s>>2])){e=0,o=6;break}}return 6==(0|o)?0|e:0}function ht(e,t,n,i,r){t|=0,n|=0,i|=0,r|=0;var s,a,l,A,c,u,h,d=0;A=+o[(e|=0)>>3],l=+o[t>>3]-A,a=+o[e+8>>3],s=+o[t+8>>3]-a,u=+o[n>>3],d=((d=+o[i>>3]-u)*(a-(h=+o[n+8>>3]))-(A-u)*(c=+o[i+8>>3]-h))/(l*c-s*d),o[r>>3]=A+l*d,o[r+8>>3]=a+s*d}function dt(e,t){return t|=0,+A(+(+o[(e|=0)>>3]-+o[t>>3]))<1.1920928955078125e-7?0|(t=+A(+(+o[e+8>>3]-+o[t+8>>3]))<1.1920928955078125e-7):0|(t=0)}function ft(e,t,n){n|=0;var i,o,s,a,l=0,A=0,c=0,u=0;if(a=I,I=I+32|0,u=a,0|(l=0|Ne(e|=0,t|=0,o=a+16|0)))return I=a,0|(n=l);i=0|ve(e,t),s=0|Pe(e,t),function(e,t){e=7696+(28*(e|=0)|0)|0,r[(t|=0)>>2]=r[e>>2],r[t+4>>2]=r[e+4>>2],r[t+8>>2]=r[e+8>>2],r[t+12>>2]=r[e+12>>2]}(i,u),l=0|function(e,t){e|=0;var n=0,i=0;if((t|=0)>>>0>20)return-1;do{if((0|r[11120+(216*t|0)>>2])!=(0|e))if((0|r[11120+(216*t|0)+8>>2])!=(0|e))if((0|r[11120+(216*t|0)+16>>2])!=(0|e))if((0|r[11120+(216*t|0)+24>>2])!=(0|e))if((0|r[11120+(216*t|0)+32>>2])!=(0|e))if((0|r[11120+(216*t|0)+40>>2])!=(0|e))if((0|r[11120+(216*t|0)+48>>2])!=(0|e))if((0|r[11120+(216*t|0)+56>>2])!=(0|e))if((0|r[11120+(216*t|0)+64>>2])!=(0|e))if((0|r[11120+(216*t|0)+72>>2])!=(0|e))if((0|r[11120+(216*t|0)+80>>2])!=(0|e))if((0|r[11120+(216*t|0)+88>>2])!=(0|e))if((0|r[11120+(216*t|0)+96>>2])!=(0|e))if((0|r[11120+(216*t|0)+104>>2])!=(0|e))if((0|r[11120+(216*t|0)+112>>2])!=(0|e))if((0|r[11120+(216*t|0)+120>>2])!=(0|e))if((0|r[11120+(216*t|0)+128>>2])!=(0|e)){if((0|r[11120+(216*t|0)+136>>2])!=(0|e)){if((0|r[11120+(216*t|0)+144>>2])==(0|e)){e=0,n=2,i=0;break}if((0|r[11120+(216*t|0)+152>>2])==(0|e)){e=0,n=2,i=1;break}if((0|r[11120+(216*t|0)+160>>2])==(0|e)){e=0,n=2,i=2;break}if((0|r[11120+(216*t|0)+168>>2])==(0|e)){e=1,n=2,i=0;break}if((0|r[11120+(216*t|0)+176>>2])==(0|e)){e=1,n=2,i=1;break}if((0|r[11120+(216*t|0)+184>>2])==(0|e)){e=1,n=2,i=2;break}if((0|r[11120+(216*t|0)+192>>2])==(0|e)){e=2,n=2,i=0;break}if((0|r[11120+(216*t|0)+200>>2])==(0|e)){e=2,n=2,i=1;break}if((0|r[11120+(216*t|0)+208>>2])==(0|e)){e=2,n=2,i=2;break}return-1}e=2,n=1,i=2}else e=2,n=1,i=1;else e=2,n=1,i=0;else e=1,n=1,i=2;else e=1,n=1,i=1;else e=1,n=1,i=0;else e=0,n=1,i=2;else e=0,n=1,i=1;else e=0,n=1,i=0;else e=2,n=0,i=2;else e=2,n=0,i=1;else e=2,n=0,i=0;else e=1,n=0,i=2;else e=1,n=0,i=1;else e=1,n=0,i=0;else e=0,n=0,i=2;else e=0,n=0,i=1;else e=0,n=0,i=0}while(0);return 0|r[11120+(216*t|0)+(72*n|0)+(24*e|0)+(i<<3)+4>>2]}(i,0|r[o>>2]);do{if(0|H(i)){switch(0|i){case 4:A=0;break;case 14:A=1;break;case 24:A=2;break;case 38:A=3;break;case 49:A=4;break;case 58:A=5;break;case 63:A=6;break;case 72:A=7;break;case 83:A=8;break;case 97:A=9;break;case 107:A=10;break;case 117:A=11;break;default:T(27634,27636,75,27645)}if(c=0|r[26480+(24*A|0)+8>>2],t=0|r[26480+(24*A|0)+16>>2],(0|(e=0|r[o>>2]))!=(0|r[u>>2])&&(u=0|W(i))|(0|(e=0|r[o>>2]))==(0|t)&&(l=(l+1|0)%6|0),3==(0|s)&(0|e)==(0|t)){l=(l+5|0)%6|0;break}5==(0|s)&(0|e)==(0|c)&&(l=(l+1|0)%6|0)}}while(0);return r[n>>2]=l,I=a,0|(n=0)}function pt(e,t,n,i){n|=0,i|=0;var o,s,a,l,A,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0;if(A=I,I=I+32|0,v=A+24|0,l=A+20|0,a=A+8|0,s=A+16|0,o=A,f=(f=!(0|xe(e|=0,t|=0)))?6:5,g=0|Gt(0|e,0|t,52),x(),f>>>0<=n>>>0)return I=A,0|(i=2);!(m=!(0|(g&=15)))&&!((_=0|Vt(7,0,3*(15^g)|0))&e|0)&!((0|x())&t)?c=n:u=4;e:do{if(4==(0|u)){if((0|((c=!!(0|xe(e,t)))?4:5))<(0|n))return I=A,0|(i=1);if(0|ft(e,t,v))return I=A,0|(i=1);if(u=(0|r[v>>2])+n|0,7==(0|(_=0|r[(c=c?26768+((0|u)%5<<2)|0:26800+((0|u)%6<<2)|0)>>2])))return I=A,0|(i=1);r[l>>2]=0,c=0|N(e,t,_,l,a);do{if(!c){if(p=0|r[(d=a)>>2],u=(h=(d=0|r[d+4>>2])>>>0<t>>>0|(0|d)==(0|t)&p>>>0<e>>>0)?p:e,h=h?d:t,!m&&!(p&(m=0|Vt(7,0,3*(15^g)|0))|0)&!(d&(0|x())))c=n;else{if(d=(n+-1+f|0)%(0|f)|0,c=0|xe(e,t),(0|d)<0&&T(27634,27636,248,27661),(0|((f=!!(0|c))?4:5))<(0|d)&&T(27634,27636,248,27661),0|ft(e,t,v)&&T(27634,27636,248,27661),c=(0|r[v>>2])+d|0,7==(0|(d=0|r[(c=f?26768+((0|c)%5<<2)|0:26800+((0|c)%6<<2)|0)>>2]))&&T(27634,27636,248,27661),r[s>>2]=0,0|(c=0|N(e,t,d,s,o)))break;f=0|r[(p=o)>>2],p=0|r[p+4>>2];do{if(p>>>0<h>>>0|(0|p)==(0|h)&f>>>0<u>>>0){if(u=0|xe(f,p)?0|G(f,p,e,t):0|r[26864+(((0|r[s>>2])+(0|r[26832+(d<<2)>>2])|0)%6<<2)>>2],c=0|xe(f,p),(u+-1|0)>>>0>5){c=-1,u=f,h=p;break}if(1==(0|u)&(c=!!(0|c))){c=-1,u=f,h=p;break}do{if(!(0|ft(f,p,v))){if(c){c=(5+(0|r[26416+(u<<2)>>2])-(0|r[v>>2])|0)%5|0;break}c=(6+(0|r[26448+(u<<2)>>2])-(0|r[v>>2])|0)%6|0;break}c=-1}while(0);u=f,h=p}else c=n}while(0);p=0|r[(d=a)>>2],d=0|r[d+4>>2]}if((0|u)==(0|p)&(0|h)==(0|d)){if(e=(f=!!(0|xe(p,d)))?0|G(p,d,e,t):0|r[26864+(((0|r[l>>2])+(0|r[26832+(_<<2)>>2])|0)%6<<2)>>2],c=0|xe(p,d),(e+-1|0)>>>0<=5&&!(1==(0|e)&(b=!!(0|c))))do{if(!(0|ft(p,d,v))){if(b){c=(5+(0|r[26416+(e<<2)>>2])-(0|r[v>>2])|0)%5|0;break}c=(6+(0|r[26448+(e<<2)>>2])-(0|r[v>>2])|0)%6|0;break}c=-1}while(0);else c=-1;c=6==(0|(c=c+1|0))|f&5==(0|c)?0:c}t=h,e=u;break e}}while(0);return I=A,0|(i=c)}}while(0);return b=0|Vt(0|c,0,56),v=x()|-2130706433&t|536870912,r[i>>2]=b|e,r[i+4>>2]=v,I=A,0|(i=0)}function gt(e,t){e|=0;var n,i,o=0,s=0;return i=I,I=I+16|0,n=i,!0&536870912==(2013265920&(t|=0))&&0|ye(e,o=-2130706433&t|134217728)?(s=0|Gt(0|e,0|t,56),x(),o=(s=!(0|pt(e,o,7&s,n)))&((0|r[(o=n)>>2])==(0|e)?(0|r[o+4>>2])==(0|t):0)&1,I=i,0|o):(I=i,0|(o=0))}function mt(e,t,n,i){e|=0,i|=0;var o,s,a,l=0,A=0,c=0,u=0,h=0,d=0;a=I,I=I+208|0,o=a,s=a+192|0,c=0|b(n|=0,t|=0),r[(u=s)>>2]=1,r[u+4>>2]=0;e:do{if(0|c){for(u=0-n|0,r[o+4>>2]=n,r[o>>2]=n,l=2,t=n,A=n;t=t+n+A|0,r[o+(l<<2)>>2]=t,t>>>0<c>>>0;)d=A,l=l+1|0,A=t,t=d;if((A=e+c+u|0)>>>0>e>>>0){c=A,l=1,t=1;do{do{if(3&~t){if((0|r[o+((t=l+-1|0)<<2)>>2])>>>0<(c-e|0)>>>0?_t(e,n,i,l,o):vt(e,n,i,s,l,0,o),1==(0|l)){yt(s,1),l=0;break}yt(s,t),l=1;break}_t(e,n,i,l,o),bt(s,2),l=l+2|0}while(0);t=1|r[s>>2],r[s>>2]=t,e=e+n|0}while(e>>>0<A>>>0)}else l=1,t=1;for(vt(e,n,i,s,l,0,o),A=s+4|0;;){if(1==(0|l)&1==(0|t)){if(!(0|r[A>>2]))break e;h=19}else(0|l)<2?h=19:(yt(s,2),d=l+-2|0,r[s>>2]=7^r[s>>2],bt(s,1),vt(e+(0-(0|r[o+(d<<2)>>2]))+u|0,n,i,s,l+-1|0,1,o),yt(s,1),t=1|r[s>>2],r[s>>2]=t,vt(e=e+u|0,n,i,s,d,1,o),l=d);19==(0|h)&&(h=0,bt(s,t=0|Ct(s)),e=e+u|0,l=t+l|0,t=0|r[s>>2])}}}while(0);I=a}function _t(e,t,n,i,o){e|=0,t|=0,n|=0,i|=0,o|=0;var s,a,l=0,A=0,c=0,u=0,h=0;a=I,I=I+240|0,r[(s=a)>>2]=e;e:do{if((0|i)>1)for(h=0-t|0,c=e,l=i,i=1,A=e;;){if(e=(c=c+h|0)+(0-(0|r[o+((u=l+-2|0)<<2)>>2]))|0,(0|Yt[3&n](A,e))>-1&&(0|Yt[3&n](A,c))>-1)break e;if(A=s+(i<<2)|0,(0|Yt[3&n](e,c))>-1?(r[A>>2]=e,l=l+-1|0):(r[A>>2]=c,e=c,l=u),i=i+1|0,(0|l)<=1)break e;c=e,A=0|r[s>>2]}else i=1}while(0);Et(t,s,i),I=a}function bt(e,t){var n,i=0,o=0;n=(e|=0)+4|0,(t|=0)>>>0>31?(o=0|r[n>>2],r[e>>2]=o,r[n>>2]=0,t=t+-32|0,i=0):(i=0|r[n>>2],o=0|r[e>>2]),r[e>>2]=i<<32-t|o>>>t,r[n>>2]=i>>>t}function vt(e,t,n,i,o,s,a){e|=0,t|=0,n|=0,o|=0,s|=0,a|=0;var l,A,c,u,h=0,d=0,f=0,p=0;u=I,I=I+240|0,A=u+232|0,c=u,p=0|r[(i|=0)>>2],r[A>>2]=p,d=0|r[i+4>>2],r[(l=A+4|0)>>2]=d,r[c>>2]=e;e:do{if(1!=(0|p)|!!(0|d)&&(f=0-t|0,h=e+(0-(0|r[a+(o<<2)>>2]))|0,(0|Yt[3&n](h,e))>=1))for(i=1,s=!(0|s),d=h;;){if(s&(0|o)>1){if(s=e+f|0,h=0|r[a+(o+-2<<2)>>2],(0|Yt[3&n](s,d))>-1){h=10;break e}if((0|Yt[3&n](s+(0-h)|0,d))>-1){h=10;break e}}if(s=i+1|0,r[c+(i<<2)>>2]=d,bt(A,p=0|Ct(A)),o=p+o|0,!(1!=(0|r[A>>2])|!!(0|r[l>>2]))){i=s,e=d,h=10;break e}if(e=d+(0-(0|r[a+(o<<2)>>2]))|0,(0|Yt[3&n](e,0|r[c>>2]))<1){e=d,i=s,s=0,h=9;break}p=d,i=s,s=1,d=e,e=p}else i=1,h=9}while(0);9!=(0|h)||0|s||(h=10),10==(0|h)&&(Et(t,c,i),_t(e,t,n,o,a)),I=u}function yt(e,t){var n,i=0,o=0;n=(e|=0)+4|0,(t|=0)>>>0>31?(o=0|r[e>>2],r[n>>2]=o,r[e>>2]=0,t=t+-32|0,i=0):(i=0|r[e>>2],o=0|r[n>>2]),r[n>>2]=i>>>(32-t|0)|o<<t,r[e>>2]=i<<t}function Ct(e){var t=0;return(t=0|wt((0|r[(e|=0)>>2])-1|0))?0|t:0|(0|(t=0|wt(0|r[e+4>>2]))?t+32:0)}function wt(e){var t=0;if(e|=0)if(1&e)e=0;else for(t=e,e=0;e=e+1|0,!(2&t);)t>>>=1;else e=32;return 0|e}function Et(e,t,n){e|=0,t|=0,n|=0;var i,o=0,s=0,a=0,l=0;i=I,I=I+256|0,o=i;e:do{if((0|n)>=2&&(r[(a=t+(n<<2)|0)>>2]=o,0|e))for(;;){s=e>>>0<256?e:256,Qt(0|o,0|r[t>>2],0|s),o=0;do{l=t+(o<<2)|0,o=o+1|0,Qt(0|r[l>>2],0|r[t+(o<<2)>>2],0|s),r[l>>2]=(0|r[l>>2])+s}while((0|o)!=(0|n));if(!(e=e-s|0))break e;o=0|r[a>>2]}}while(0);I=i}function xt(e){return 0|+Jt(+(e=+e))}function Tt(e){e|=0;var t,n=0,i=0,o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0;t=I,I=I+16|0,f=t;do{if(e>>>0<245){if(e=(u=e>>>0<11?16:e+11&-8)>>>3,3&(i=(d=0|r[6921])>>>e))return o=0|r[(i=(e=27724+((n=(1&i^1)+e|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|r[(s=o+8|0)>>2]))==(0|e)?r[6921]=d&~(1<<n):(r[a+12>>2]=e,r[i>>2]=a),C=n<<3,r[o+4>>2]=3|C,r[(C=o+C+4|0)>>2]=1|r[C>>2],I=t,0|(C=s);if(u>>>0>(h=0|r[6923])>>>0){if(0|i)return n=((n=i<<e&((n=2<<e)|0-n))&0-n)-1|0,a=0|r[(e=(n=27724+((o=((i=(n>>>=A=n>>>12&16)>>>5&8)|A|(a=(n>>>=i)>>>2&4)|(e=(n>>>=a)>>>1&2)|(o=(n>>>=e)>>>1&1))+(n>>>o)|0)<<1<<2)|0)+8|0)>>2],(0|(i=0|r[(A=a+8|0)>>2]))==(0|n)?(e=d&~(1<<o),r[6921]=e):(r[i+12>>2]=n,r[e>>2]=i,e=d),l=(C=o<<3)-u|0,r[a+4>>2]=3|u,r[(s=a+u|0)+4>>2]=1|l,r[a+C>>2]=l,0|h&&(o=0|r[6926],i=27724+((n=h>>>3)<<1<<2)|0,e&(n=1<<n)?n=0|r[(e=i+8|0)>>2]:(r[6921]=e|n,n=i,e=i+8|0),r[e>>2]=o,r[n+12>>2]=o,r[o+8>>2]=n,r[o+12>>2]=i),r[6923]=l,r[6926]=s,I=t,0|(C=A);if(a=0|r[6922]){for(i=(a&0-a)-1|0,i=c=0|r[27988+(((o=(i>>>=s=i>>>12&16)>>>5&8)|s|(l=(i>>>=o)>>>2&4)|(A=(i>>>=l)>>>1&2)|(c=(i>>>=A)>>>1&1))+(i>>>c)<<2)>>2],A=c,c=(-8&r[c+4>>2])-u|0;(e=0|r[i+16>>2])||(e=0|r[i+20>>2]);)i=e,A=(s=(l=(-8&r[e+4>>2])-u|0)>>>0<c>>>0)?e:A,c=s?l:c;if((l=A+u|0)>>>0>A>>>0){s=0|r[A+24>>2],n=0|r[A+12>>2];do{if((0|n)==(0|A)){if(!(n=0|r[(e=A+20|0)>>2])&&!(n=0|r[(e=A+16|0)>>2])){i=0;break}for(;;)if(i=0|r[(o=n+20|0)>>2])n=i,e=o;else{if(!(i=0|r[(o=n+16|0)>>2]))break;n=i,e=o}r[e>>2]=0,i=n}else i=0|r[A+8>>2],r[i+12>>2]=n,r[n+8>>2]=i,i=n}while(0);do{if(0|s){if(n=0|r[A+28>>2],(0|A)==(0|r[(e=27988+(n<<2)|0)>>2])){if(r[e>>2]=i,!i){r[6922]=a&~(1<<n);break}}else if(r[((0|r[(C=s+16|0)>>2])==(0|A)?C:s+20)>>2]=i,!i)break;r[i+24>>2]=s,0|(n=0|r[A+16>>2])&&(r[i+16>>2]=n,r[n+24>>2]=i),0|(n=0|r[A+20>>2])&&(r[i+20>>2]=n,r[n+24>>2]=i)}}while(0);return c>>>0<16?(C=c+u|0,r[A+4>>2]=3|C,r[(C=A+C+4|0)>>2]=1|r[C>>2]):(r[A+4>>2]=3|u,r[l+4>>2]=1|c,r[l+c>>2]=c,0|h&&(o=0|r[6926],i=27724+((n=h>>>3)<<1<<2)|0,(n=1<<n)&d?n=0|r[(e=i+8|0)>>2]:(r[6921]=n|d,n=i,e=i+8|0),r[e>>2]=o,r[n+12>>2]=o,r[o+8>>2]=n,r[o+12>>2]=i),r[6923]=c,r[6926]=l),I=t,0|(C=A+8|0)}d=u}else d=u}else d=u}else if(e>>>0<=4294967231)if(u=-8&(e=e+11|0),o=0|r[6922]){s=0-u|0,c=(e>>>=8)?u>>>0>16777215?31:u>>>((c=14-((A=((m=e<<(d=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|d|(c=((m<<=A)+245760|0)>>>16&2))+(m<<c>>>15)|0)+7|0)&1|c<<1:0,i=0|r[27988+(c<<2)>>2];e:do{if(i)for(e=0,A=u<<(31==(0|c)?0:25-(c>>>1)|0),a=0;;){if((l=(-8&r[i+4>>2])-u|0)>>>0<s>>>0){if(!l){e=i,s=0,m=65;break e}e=i,s=l}if(a=!(0|(m=0|r[i+20>>2]))|(0|m)==(0|(i=0|r[i+16+(A>>>31<<2)>>2]))?a:m,!i){i=a,m=61;break}A<<=1}else i=0,e=0,m=61}while(0);if(61==(0|m)){if(!(0|i)&!(0|e)){if(!(e=((e=2<<c)|0-e)&o)){d=u;break}d=(e&0-e)-1|0,e=0,i=0|r[27988+(((a=(d>>>=l=d>>>12&16)>>>5&8)|l|(A=(d>>>=a)>>>2&4)|(c=(d>>>=A)>>>1&2)|(i=(d>>>=c)>>>1&1))+(d>>>i)<<2)>>2]}i?m=65:(A=e,l=s)}if(65==(0|m))for(a=i;;){if(s=(i=(d=(-8&r[a+4>>2])-u|0)>>>0<s>>>0)?d:s,e=i?a:e,(i=0|r[a+16>>2])||(i=0|r[a+20>>2]),!i){A=e,l=s;break}a=i}if(0|A&&l>>>0<((0|r[6923])-u|0)>>>0&&(h=A+u|0)>>>0>A>>>0){a=0|r[A+24>>2],n=0|r[A+12>>2];do{if((0|n)==(0|A)){if(!(n=0|r[(e=A+20|0)>>2])&&!(n=0|r[(e=A+16|0)>>2])){n=0;break}for(;;)if(i=0|r[(s=n+20|0)>>2])n=i,e=s;else{if(!(i=0|r[(s=n+16|0)>>2]))break;n=i,e=s}r[e>>2]=0}else C=0|r[A+8>>2],r[C+12>>2]=n,r[n+8>>2]=C}while(0);do{if(a){if(e=0|r[A+28>>2],(0|A)==(0|r[(i=27988+(e<<2)|0)>>2])){if(r[i>>2]=n,!n){o&=~(1<<e),r[6922]=o;break}}else if(r[((0|r[(C=a+16|0)>>2])==(0|A)?C:a+20)>>2]=n,!n)break;r[n+24>>2]=a,0|(e=0|r[A+16>>2])&&(r[n+16>>2]=e,r[e+24>>2]=n),(e=0|r[A+20>>2])&&(r[n+20>>2]=e,r[e+24>>2]=n)}}while(0);e:do{if(l>>>0<16)C=l+u|0,r[A+4>>2]=3|C,r[(C=A+C+4|0)>>2]=1|r[C>>2];else{if(r[A+4>>2]=3|u,r[h+4>>2]=1|l,r[h+l>>2]=l,n=l>>>3,l>>>0<256){i=27724+(n<<1<<2)|0,(e=0|r[6921])&(n=1<<n)?n=0|r[(e=i+8|0)>>2]:(r[6921]=e|n,n=i,e=i+8|0),r[e>>2]=h,r[n+12>>2]=h,r[h+8>>2]=n,r[h+12>>2]=i;break}if(n=27988+((i=(n=l>>>8)?l>>>0>16777215?31:l>>>((i=14-((v=((C=n<<(y=(n+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(i=((C<<=v)+245760|0)>>>16&2))+(C<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[h+28>>2]=i,r[(e=h+16|0)+4>>2]=0,r[e>>2]=0,!(o&(e=1<<i))){r[6922]=o|e,r[n>>2]=h,r[h+24>>2]=n,r[h+12>>2]=h,r[h+8>>2]=h;break}n=0|r[n>>2];t:do{if((-8&r[n+4>>2])!=(0|l)){for(o=l<<(31==(0|i)?0:25-(i>>>1)|0);e=0|r[(i=n+16+(o>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|l)){n=e;break t}o<<=1,n=e}r[i>>2]=h,r[h+24>>2]=n,r[h+12>>2]=h,r[h+8>>2]=h;break e}}while(0);C=0|r[(y=n+8|0)>>2],r[C+12>>2]=h,r[y>>2]=h,r[h+8>>2]=C,r[h+12>>2]=n,r[h+24>>2]=0}}while(0);return I=t,0|(C=A+8|0)}d=u}else d=u;else d=-1}while(0);if((i=0|r[6923])>>>0>=d>>>0)return n=i-d|0,e=0|r[6926],n>>>0>15?(C=e+d|0,r[6926]=C,r[6923]=n,r[C+4>>2]=1|n,r[e+i>>2]=n,r[e+4>>2]=3|d):(r[6923]=0,r[6926]=0,r[e+4>>2]=3|i,r[(C=e+i+4|0)>>2]=1|r[C>>2]),I=t,0|(C=e+8|0);if((l=0|r[6924])>>>0>d>>>0)return v=l-d|0,r[6924]=v,y=(C=0|r[6927])+d|0,r[6927]=y,r[y+4>>2]=1|v,r[C+4>>2]=3|d,I=t,0|(C=C+8|0);if(0|r[7039]?e=0|r[7041]:(r[7041]=4096,r[7040]=4096,r[7042]=-1,r[7043]=-1,r[7044]=0,r[7032]=0,r[7039]=-16&f^1431655768,e=4096),A=d+48|0,(u=(a=e+(c=d+47|0)|0)&(s=0-e|0))>>>0<=d>>>0)return I=t,0|(C=0);if(0|(e=0|r[7031])&&(f=(h=0|r[7029])+u|0)>>>0<=h>>>0|f>>>0>e>>>0)return I=t,0|(C=0);e:do{if(4&r[7032])n=0,m=143;else{i=0|r[6927];t:do{if(i){for(o=28132;!((f=0|r[o>>2])>>>0<=i>>>0&&(f+(0|r[o+4>>2])|0)>>>0>i>>>0);){if(!(e=0|r[o+8>>2])){m=128;break t}o=e}if((n=a-l&s)>>>0<2147483647)if((0|(e=0|qt(0|n)))==((0|r[o>>2])+(0|r[o+4>>2])|0)){if(-1!=(0|e)){l=n,a=e,m=145;break e}}else o=e,m=136;else n=0}else m=128}while(0);do{if(128==(0|m))if(-1!=(0|(i=0|qt(0)))&&(n=i,g=(n=((g=(p=0|r[7040])+-1|0)&n|0?(g+n&0-p)-n|0:0)+u|0)+(p=0|r[7029])|0,n>>>0>d>>>0&n>>>0<2147483647)){if(0|(f=0|r[7031])&&g>>>0<=p>>>0|g>>>0>f>>>0){n=0;break}if((0|(e=0|qt(0|n)))==(0|i)){l=n,a=i,m=145;break e}o=e,m=136}else n=0}while(0);do{if(136==(0|m)){if(i=0-n|0,!(A>>>0>n>>>0&n>>>0<2147483647&-1!=(0|o))){if(-1==(0|o)){n=0;break}l=n,a=o,m=145;break e}if((e=c-n+(e=0|r[7041])&0-e)>>>0>=2147483647){l=n,a=o,m=145;break e}if(-1==(0|qt(0|e))){qt(0|i),n=0;break}l=e+n|0,a=o,m=145;break e}}while(0);r[7032]=4|r[7032],m=143}}while(0);if(143==(0|m)&&u>>>0<2147483647&&!(-1==(0|(v=0|qt(0|u)))|1^(b=(_=(g=0|qt(0))-v|0)>>>0>(d+40|0)>>>0)|v>>>0<g>>>0&-1!=(0|v)&-1!=(0|g)^1)&&(l=b?_:n,a=v,m=145),145==(0|m)){n=(0|r[7029])+l|0,r[7029]=n,n>>>0>(0|r[7030])>>>0&&(r[7030]=n),c=0|r[6927];e:do{if(c){for(n=28132;;){if((0|a)==((e=0|r[n>>2])+(i=0|r[n+4>>2])|0)){m=154;break}if(!(o=0|r[n+8>>2]))break;n=o}if(!(154!=(0|m)||(y=n+4|0,8&r[n+12>>2]))&&a>>>0>c>>>0&e>>>0<=c>>>0){r[y>>2]=i+l,y=c+(v=7&(v=c+8|0)?0-v&7:0)|0,v=(C=(0|r[6924])+l|0)-v|0,r[6927]=y,r[6924]=v,r[y+4>>2]=1|v,r[c+C+4>>2]=40,r[6928]=r[7043];break}for(a>>>0<(0|r[6925])>>>0&&(r[6925]=a),i=a+l|0,n=28132;;){if((0|r[n>>2])==(0|i)){m=162;break}if(!(e=0|r[n+8>>2]))break;n=e}if(162==(0|m)&&!(8&r[n+12>>2])){r[n>>2]=a,r[(h=n+4|0)>>2]=(0|r[h>>2])+l,u=(h=a+(7&(h=a+8|0)?0-h&7:0)|0)+d|0,A=(n=i+(7&(n=i+8|0)?0-n&7:0)|0)-h-d|0,r[h+4>>2]=3|d;t:do{if((0|c)==(0|n))C=(0|r[6924])+A|0,r[6924]=C,r[6927]=u,r[u+4>>2]=1|C;else{if((0|r[6926])==(0|n)){C=(0|r[6923])+A|0,r[6923]=C,r[6926]=u,r[u+4>>2]=1|C,r[u+C>>2]=C;break}if(1==(3&(e=0|r[n+4>>2]))){l=-8&e,o=e>>>3;n:do{if(e>>>0<256){if(e=0|r[n+8>>2],(0|(i=0|r[n+12>>2]))==(0|e)){r[6921]=r[6921]&~(1<<o);break}r[e+12>>2]=i,r[i+8>>2]=e;break}a=0|r[n+24>>2],e=0|r[n+12>>2];do{if((0|e)==(0|n)){if(e=0|r[(o=(i=n+16|0)+4|0)>>2])i=o;else if(!(e=0|r[i>>2])){e=0;break}for(;;)if(o=0|r[(s=e+20|0)>>2])e=o,i=s;else{if(!(o=0|r[(s=e+16|0)>>2]))break;e=o,i=s}r[i>>2]=0}else C=0|r[n+8>>2],r[C+12>>2]=e,r[e+8>>2]=C}while(0);if(!a)break;o=27988+((i=0|r[n+28>>2])<<2)|0;do{if((0|r[o>>2])==(0|n)){if(r[o>>2]=e,0|e)break;r[6922]=r[6922]&~(1<<i);break n}if(r[((0|r[(C=a+16|0)>>2])==(0|n)?C:a+20)>>2]=e,!e)break n}while(0);if(r[e+24>>2]=a,0|(o=0|r[(i=n+16|0)>>2])&&(r[e+16>>2]=o,r[o+24>>2]=e),!(i=0|r[i+4>>2]))break;r[e+20>>2]=i,r[i+24>>2]=e}while(0);n=n+l|0,s=l+A|0}else s=A;if(r[(n=n+4|0)>>2]=-2&r[n>>2],r[u+4>>2]=1|s,r[u+s>>2]=s,n=s>>>3,s>>>0<256){i=27724+(n<<1<<2)|0,(e=0|r[6921])&(n=1<<n)?n=0|r[(e=i+8|0)>>2]:(r[6921]=e|n,n=i,e=i+8|0),r[e>>2]=u,r[n+12>>2]=u,r[u+8>>2]=n,r[u+12>>2]=i;break}n=s>>>8;do{if(n){if(s>>>0>16777215){o=31;break}o=s>>>((o=14-((v=((C=n<<(y=(n+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(o=((C<<=v)+245760|0)>>>16&2))+(C<<o>>>15)|0)+7|0)&1|o<<1}else o=0}while(0);if(n=27988+(o<<2)|0,r[u+28>>2]=o,r[(e=u+16|0)+4>>2]=0,r[e>>2]=0,!((e=0|r[6922])&(i=1<<o))){r[6922]=e|i,r[n>>2]=u,r[u+24>>2]=n,r[u+12>>2]=u,r[u+8>>2]=u;break}n=0|r[n>>2];n:do{if((-8&r[n+4>>2])!=(0|s)){for(o=s<<(31==(0|o)?0:25-(o>>>1)|0);e=0|r[(i=n+16+(o>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|s)){n=e;break n}o<<=1,n=e}r[i>>2]=u,r[u+24>>2]=n,r[u+12>>2]=u,r[u+8>>2]=u;break t}}while(0);C=0|r[(y=n+8|0)>>2],r[C+12>>2]=u,r[y>>2]=u,r[u+8>>2]=C,r[u+12>>2]=n,r[u+24>>2]=0}}while(0);return I=t,0|(C=h+8|0)}for(n=28132;!((e=0|r[n>>2])>>>0<=c>>>0&&(C=e+(0|r[n+4>>2])|0)>>>0>c>>>0);)n=0|r[n+8>>2];n=(e=(e=(s=C+-47|0)+(7&(e=s+8|0)?0-e&7:0)|0)>>>0<(s=c+16|0)>>>0?c:e)+8|0,y=a+(v=7&(v=a+8|0)?0-v&7:0)|0,v=(i=l+-40|0)-v|0,r[6927]=y,r[6924]=v,r[y+4>>2]=1|v,r[a+i+4>>2]=40,r[6928]=r[7043],r[(i=e+4|0)>>2]=27,r[n>>2]=r[7033],r[n+4>>2]=r[7034],r[n+8>>2]=r[7035],r[n+12>>2]=r[7036],r[7033]=a,r[7034]=l,r[7036]=0,r[7035]=n,n=e+24|0;do{y=n,r[(n=n+4|0)>>2]=7}while((y+8|0)>>>0<C>>>0);if((0|e)!=(0|c)){if(a=e-c|0,r[i>>2]=-2&r[i>>2],r[c+4>>2]=1|a,r[e>>2]=a,n=a>>>3,a>>>0<256){i=27724+(n<<1<<2)|0,(e=0|r[6921])&(n=1<<n)?n=0|r[(e=i+8|0)>>2]:(r[6921]=e|n,n=i,e=i+8|0),r[e>>2]=c,r[n+12>>2]=c,r[c+8>>2]=n,r[c+12>>2]=i;break}if(i=27988+((o=(n=a>>>8)?a>>>0>16777215?31:a>>>((o=14-((v=((C=n<<(y=(n+1048320|0)>>>16&8))+520192|0)>>>16&4)|y|(o=((C<<=v)+245760|0)>>>16&2))+(C<<o>>>15)|0)+7|0)&1|o<<1:0)<<2)|0,r[c+28>>2]=o,r[c+20>>2]=0,r[s>>2]=0,!((n=0|r[6922])&(e=1<<o))){r[6922]=n|e,r[i>>2]=c,r[c+24>>2]=i,r[c+12>>2]=c,r[c+8>>2]=c;break}n=0|r[i>>2];t:do{if((-8&r[n+4>>2])!=(0|a)){for(o=a<<(31==(0|o)?0:25-(o>>>1)|0);e=0|r[(i=n+16+(o>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|a)){n=e;break t}o<<=1,n=e}r[i>>2]=c,r[c+24>>2]=n,r[c+12>>2]=c,r[c+8>>2]=c;break e}}while(0);C=0|r[(y=n+8|0)>>2],r[C+12>>2]=c,r[y>>2]=c,r[c+8>>2]=C,r[c+12>>2]=n,r[c+24>>2]=0}}else!(0|(C=0|r[6925]))|a>>>0<C>>>0&&(r[6925]=a),r[7033]=a,r[7034]=l,r[7036]=0,r[6930]=r[7039],r[6929]=-1,r[6934]=27724,r[6933]=27724,r[6936]=27732,r[6935]=27732,r[6938]=27740,r[6937]=27740,r[6940]=27748,r[6939]=27748,r[6942]=27756,r[6941]=27756,r[6944]=27764,r[6943]=27764,r[6946]=27772,r[6945]=27772,r[6948]=27780,r[6947]=27780,r[6950]=27788,r[6949]=27788,r[6952]=27796,r[6951]=27796,r[6954]=27804,r[6953]=27804,r[6956]=27812,r[6955]=27812,r[6958]=27820,r[6957]=27820,r[6960]=27828,r[6959]=27828,r[6962]=27836,r[6961]=27836,r[6964]=27844,r[6963]=27844,r[6966]=27852,r[6965]=27852,r[6968]=27860,r[6967]=27860,r[6970]=27868,r[6969]=27868,r[6972]=27876,r[6971]=27876,r[6974]=27884,r[6973]=27884,r[6976]=27892,r[6975]=27892,r[6978]=27900,r[6977]=27900,r[6980]=27908,r[6979]=27908,r[6982]=27916,r[6981]=27916,r[6984]=27924,r[6983]=27924,r[6986]=27932,r[6985]=27932,r[6988]=27940,r[6987]=27940,r[6990]=27948,r[6989]=27948,r[6992]=27956,r[6991]=27956,r[6994]=27964,r[6993]=27964,r[6996]=27972,r[6995]=27972,y=a+(v=7&(v=a+8|0)?0-v&7:0)|0,v=(C=l+-40|0)-v|0,r[6927]=y,r[6924]=v,r[y+4>>2]=1|v,r[a+C+4>>2]=40,r[6928]=r[7043]}while(0);if((n=0|r[6924])>>>0>d>>>0)return v=n-d|0,r[6924]=v,y=(C=0|r[6927])+d|0,r[6927]=y,r[y+4>>2]=1|v,r[C+4>>2]=3|d,I=t,0|(C=C+8|0)}return r[(C=27680)>>2]=12,I=t,0|(C=0)}function St(e){var t=0,n=0,i=0,o=0,s=0,a=0,l=0,A=0;if(e|=0){n=e+-8|0,o=0|r[6925],A=n+(t=-8&(e=0|r[e+-4>>2]))|0;do{if(1&e)l=n,a=n;else{if(i=0|r[n>>2],!(3&e))return;if(s=i+t|0,(a=n+(0-i)|0)>>>0<o>>>0)return;if((0|r[6926])==(0|a)){if(3&~(t=0|r[(e=A+4|0)>>2])){l=a,t=s;break}return r[6923]=s,r[e>>2]=-2&t,r[a+4>>2]=1|s,void(r[a+s>>2]=s)}if(n=i>>>3,i>>>0<256){if(e=0|r[a+8>>2],(0|(t=0|r[a+12>>2]))==(0|e)){r[6921]=r[6921]&~(1<<n),l=a,t=s;break}r[e+12>>2]=t,r[t+8>>2]=e,l=a,t=s;break}o=0|r[a+24>>2],e=0|r[a+12>>2];do{if((0|e)==(0|a)){if(e=0|r[(n=(t=a+16|0)+4|0)>>2])t=n;else if(!(e=0|r[t>>2])){e=0;break}for(;;)if(n=0|r[(i=e+20|0)>>2])e=n,t=i;else{if(!(n=0|r[(i=e+16|0)>>2]))break;e=n,t=i}r[t>>2]=0}else l=0|r[a+8>>2],r[l+12>>2]=e,r[e+8>>2]=l}while(0);if(o){if(t=0|r[a+28>>2],(0|r[(n=27988+(t<<2)|0)>>2])==(0|a)){if(r[n>>2]=e,!e){r[6922]=r[6922]&~(1<<t),l=a,t=s;break}}else if(r[((0|r[(l=o+16|0)>>2])==(0|a)?l:o+20)>>2]=e,!e){l=a,t=s;break}r[e+24>>2]=o,0|(n=0|r[(t=a+16|0)>>2])&&(r[e+16>>2]=n,r[n+24>>2]=e),(t=0|r[t+4>>2])?(r[e+20>>2]=t,r[t+24>>2]=e,l=a,t=s):(l=a,t=s)}else l=a,t=s}}while(0);if(!(a>>>0>=A>>>0)&&1&(i=0|r[(e=A+4|0)>>2])){if(2&i)r[e>>2]=-2&i,r[l+4>>2]=1|t,r[a+t>>2]=t,o=t;else{if((0|r[6927])==(0|A)){if(A=(0|r[6924])+t|0,r[6924]=A,r[6927]=l,r[l+4>>2]=1|A,(0|l)!=(0|r[6926]))return;return r[6926]=0,void(r[6923]=0)}if((0|r[6926])==(0|A))return A=(0|r[6923])+t|0,r[6923]=A,r[6926]=a,r[l+4>>2]=1|A,void(r[a+A>>2]=A);o=(-8&i)+t|0,n=i>>>3;do{if(i>>>0<256){if(t=0|r[A+8>>2],(0|(e=0|r[A+12>>2]))==(0|t)){r[6921]=r[6921]&~(1<<n);break}r[t+12>>2]=e,r[e+8>>2]=t;break}s=0|r[A+24>>2],e=0|r[A+12>>2];do{if((0|e)==(0|A)){if(e=0|r[(n=(t=A+16|0)+4|0)>>2])t=n;else if(!(e=0|r[t>>2])){n=0;break}for(;;)if(n=0|r[(i=e+20|0)>>2])e=n,t=i;else{if(!(n=0|r[(i=e+16|0)>>2]))break;e=n,t=i}r[t>>2]=0,n=e}else n=0|r[A+8>>2],r[n+12>>2]=e,r[e+8>>2]=n,n=e}while(0);if(0|s){if(e=0|r[A+28>>2],(0|r[(t=27988+(e<<2)|0)>>2])==(0|A)){if(r[t>>2]=n,!n){r[6922]=r[6922]&~(1<<e);break}}else if(r[((0|r[(i=s+16|0)>>2])==(0|A)?i:s+20)>>2]=n,!n)break;r[n+24>>2]=s,0|(t=0|r[(e=A+16|0)>>2])&&(r[n+16>>2]=t,r[t+24>>2]=n),0|(e=0|r[e+4>>2])&&(r[n+20>>2]=e,r[e+24>>2]=n)}}while(0);if(r[l+4>>2]=1|o,r[a+o>>2]=o,(0|l)==(0|r[6926]))return void(r[6923]=o)}if(e=o>>>3,o>>>0<256)return n=27724+(e<<1<<2)|0,(t=0|r[6921])&(e=1<<e)?e=0|r[(t=n+8|0)>>2]:(r[6921]=t|e,e=n,t=n+8|0),r[t>>2]=l,r[e+12>>2]=l,r[l+8>>2]=e,void(r[l+12>>2]=n);e=27988+((i=(e=o>>>8)?o>>>0>16777215?31:o>>>((i=14-((s=((A=e<<(a=(e+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(i=((A<<=s)+245760|0)>>>16&2))+(A<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[l+28>>2]=i,r[l+20>>2]=0,r[l+16>>2]=0,t=0|r[6922],n=1<<i;e:do{if(t&n){e=0|r[e>>2];t:do{if((-8&r[e+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);t=0|r[(n=e+16+(i>>>31<<2)|0)>>2];){if((-8&r[t+4>>2])==(0|o)){e=t;break t}i<<=1,e=t}r[n>>2]=l,r[l+24>>2]=e,r[l+12>>2]=l,r[l+8>>2]=l;break e}}while(0);A=0|r[(a=e+8|0)>>2],r[A+12>>2]=l,r[a>>2]=l,r[l+8>>2]=A,r[l+12>>2]=e,r[l+24>>2]=0}else r[6922]=t|n,r[e>>2]=l,r[l+24>>2]=e,r[l+12>>2]=l,r[l+8>>2]=l}while(0);if(A=(0|r[6929])-1|0,r[6929]=A,!(0|A)){for(e=28140;e=0|r[e>>2];)e=e+8|0;r[6929]=-1}}}}function Pt(e,t){t|=0;var n=0;return(e|=0)?(n=0|b(t,e),(t|e)>>>0>65535&&(n=((n>>>0)/(e>>>0)|0)==(0|t)?n:-1)):n=0,(e=0|Tt(n))&&3&r[e+-4>>2]?(Kt(0|e,0,0|n),0|e):0|e}function Mt(e,t){t|=0;var n=0,i=0;return(e|=0)?t>>>0>4294967231?(r[(t=27680)>>2]=12,0|(t=0)):(n=0|function(e,t){e|=0,t|=0;var n=0,i=0,o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0;if(u=e+4|0,h=0|r[u>>2],n=-8&h,l=e+n|0,!(3&h))return t>>>0<256?0|(e=0):n>>>0>=(t+4|0)>>>0&&(n-t|0)>>>0<=r[7041]<<1>>>0?0|e:0|(e=0);if(n>>>0>=t>>>0)return(n=n-t|0)>>>0<=15||(c=e+t|0,r[u>>2]=1&h|t|2,r[c+4>>2]=3|n,r[(h=l+4|0)>>2]=1|r[h>>2],Rt(c,n)),0|e;if((0|r[6927])==(0|l))return n=(c=(0|r[6924])+n|0)-t|0,i=e+t|0,c>>>0<=t>>>0?0|(e=0):(r[u>>2]=1&h|t|2,r[i+4>>2]=1|n,r[6927]=i,r[6924]=n,0|e);if((0|r[6926])==(0|l))return(i=(0|r[6923])+n|0)>>>0<t>>>0?0|(e=0):((n=i-t|0)>>>0>15?(c=e+t|0,i=e+i|0,r[u>>2]=1&h|t|2,r[c+4>>2]=1|n,r[i>>2]=n,r[(i=i+4|0)>>2]=-2&r[i>>2],i=c):(r[u>>2]=1&h|i|2,r[(i=e+i+4|0)>>2]=1|r[i>>2],i=0,n=0),r[6923]=n,r[6926]=i,0|e);if(i=0|r[l+4>>2],2&i)return 0|(e=0);if(A=(-8&i)+n|0,A>>>0<t>>>0)return 0|(e=0);c=A-t|0,o=i>>>3;do{if(i>>>0<256){if(i=0|r[l+8>>2],(0|(n=0|r[l+12>>2]))==(0|i)){r[6921]=r[6921]&~(1<<o);break}r[i+12>>2]=n,r[n+8>>2]=i;break}a=0|r[l+24>>2],n=0|r[l+12>>2];do{if((0|n)==(0|l)){if(n=0|r[(o=(i=l+16|0)+4|0)>>2])i=o;else if(!(n=0|r[i>>2])){o=0;break}for(;;)if(o=0|r[(s=n+20|0)>>2])n=o,i=s;else{if(!(o=0|r[(s=n+16|0)>>2]))break;n=o,i=s}r[i>>2]=0,o=n}else o=0|r[l+8>>2],r[o+12>>2]=n,r[n+8>>2]=o,o=n}while(0);if(0|a){if(n=0|r[l+28>>2],(0|r[(i=27988+(n<<2)|0)>>2])==(0|l)){if(r[i>>2]=o,!o){r[6922]=r[6922]&~(1<<n);break}}else if(r[((0|r[(s=a+16|0)>>2])==(0|l)?s:a+20)>>2]=o,!o)break;r[o+24>>2]=a,0|(i=0|r[(n=l+16|0)>>2])&&(r[o+16>>2]=i,r[i+24>>2]=o),0|(n=0|r[n+4>>2])&&(r[o+20>>2]=n,r[n+24>>2]=o)}}while(0);return c>>>0<16?(r[u>>2]=1&h|A|2,r[(h=e+A+4|0)>>2]=1|r[h>>2],0|e):(l=e+t|0,r[u>>2]=1&h|t|2,r[l+4>>2]=3|c,r[(h=e+A+4|0)>>2]=1|r[h>>2],Rt(l,c),0|e)}(e+-8|0,t>>>0<11?16:t+11&-8),0|n?0|(t=n+8|0):(n=0|Tt(t))?(Qt(0|n,0|e,0|((i=(-8&(i=0|r[e+-4>>2]))-(3&i?4:8)|0)>>>0<t>>>0?i:t)),St(e),0|(t=n)):0|(t=0)):0|(t=0|Tt(t))}function Rt(e,t){var n=0,i=0,o=0,s=0,a=0,l=0;l=(e|=0)+(t|=0)|0,n=0|r[e+4>>2];do{if(1&n)a=e;else{if(o=0|r[e>>2],!(3&n))return;if(a=e+(0-o)|0,t=o+t|0,(0|r[6926])==(0|a)){if(3&~(n=0|r[(e=l+4|0)>>2]))break;return r[6923]=t,r[e>>2]=-2&n,r[a+4>>2]=1|t,void(r[l>>2]=t)}if(i=o>>>3,o>>>0<256){if(e=0|r[a+8>>2],(0|(n=0|r[a+12>>2]))==(0|e)){r[6921]=r[6921]&~(1<<i);break}r[e+12>>2]=n,r[n+8>>2]=e;break}s=0|r[a+24>>2],e=0|r[a+12>>2];do{if((0|e)==(0|a)){if(e=0|r[(i=(n=a+16|0)+4|0)>>2])n=i;else if(!(e=0|r[n>>2])){e=0;break}for(;;)if(i=0|r[(o=e+20|0)>>2])e=i,n=o;else{if(!(i=0|r[(o=e+16|0)>>2]))break;e=i,n=o}r[n>>2]=0}else o=0|r[a+8>>2],r[o+12>>2]=e,r[e+8>>2]=o}while(0);if(s){if(n=0|r[a+28>>2],(0|r[(i=27988+(n<<2)|0)>>2])==(0|a)){if(r[i>>2]=e,!e){r[6922]=r[6922]&~(1<<n);break}}else if(r[((0|r[(o=s+16|0)>>2])==(0|a)?o:s+20)>>2]=e,!e)break;r[e+24>>2]=s,0|(i=0|r[(n=a+16|0)>>2])&&(r[e+16>>2]=i,r[i+24>>2]=e),(n=0|r[n+4>>2])&&(r[e+20>>2]=n,r[n+24>>2]=e)}}}while(0);if(2&(i=0|r[(e=l+4|0)>>2]))r[e>>2]=-2&i,r[a+4>>2]=1|t,r[a+t>>2]=t,o=t;else{if((0|r[6927])==(0|l)){if(l=(0|r[6924])+t|0,r[6924]=l,r[6927]=a,r[a+4>>2]=1|l,(0|a)!=(0|r[6926]))return;return r[6926]=0,void(r[6923]=0)}if((0|r[6926])==(0|l))return l=(0|r[6923])+t|0,r[6923]=l,r[6926]=a,r[a+4>>2]=1|l,void(r[a+l>>2]=l);o=(-8&i)+t|0,n=i>>>3;do{if(i>>>0<256){if(e=0|r[l+8>>2],(0|(t=0|r[l+12>>2]))==(0|e)){r[6921]=r[6921]&~(1<<n);break}r[e+12>>2]=t,r[t+8>>2]=e;break}s=0|r[l+24>>2],t=0|r[l+12>>2];do{if((0|t)==(0|l)){if(t=0|r[(n=(e=l+16|0)+4|0)>>2])e=n;else if(!(t=0|r[e>>2])){n=0;break}for(;;)if(n=0|r[(i=t+20|0)>>2])t=n,e=i;else{if(!(n=0|r[(i=t+16|0)>>2]))break;t=n,e=i}r[e>>2]=0,n=t}else n=0|r[l+8>>2],r[n+12>>2]=t,r[t+8>>2]=n,n=t}while(0);if(0|s){if(t=0|r[l+28>>2],(0|r[(e=27988+(t<<2)|0)>>2])==(0|l)){if(r[e>>2]=n,!n){r[6922]=r[6922]&~(1<<t);break}}else if(r[((0|r[(i=s+16|0)>>2])==(0|l)?i:s+20)>>2]=n,!n)break;r[n+24>>2]=s,0|(e=0|r[(t=l+16|0)>>2])&&(r[n+16>>2]=e,r[e+24>>2]=n),0|(t=0|r[t+4>>2])&&(r[n+20>>2]=t,r[t+24>>2]=n)}}while(0);if(r[a+4>>2]=1|o,r[a+o>>2]=o,(0|a)==(0|r[6926]))return void(r[6923]=o)}if(t=o>>>3,o>>>0<256)return n=27724+(t<<1<<2)|0,(e=0|r[6921])&(t=1<<t)?t=0|r[(e=n+8|0)>>2]:(r[6921]=e|t,t=n,e=n+8|0),r[e>>2]=a,r[t+12>>2]=a,r[a+8>>2]=t,void(r[a+12>>2]=n);if(t=27988+((i=(t=o>>>8)?o>>>0>16777215?31:o>>>((i=14-((n=((l=t<<(s=(t+1048320|0)>>>16&8))+520192|0)>>>16&4)|s|(i=((l<<=n)+245760|0)>>>16&2))+(l<<i>>>15)|0)+7|0)&1|i<<1:0)<<2)|0,r[a+28>>2]=i,r[a+20>>2]=0,r[a+16>>2]=0,!((e=0|r[6922])&(n=1<<i)))return r[6922]=e|n,r[t>>2]=a,r[a+24>>2]=t,r[a+12>>2]=a,void(r[a+8>>2]=a);t=0|r[t>>2];e:do{if((-8&r[t+4>>2])!=(0|o)){for(i=o<<(31==(0|i)?0:25-(i>>>1)|0);e=0|r[(n=t+16+(i>>>31<<2)|0)>>2];){if((-8&r[e+4>>2])==(0|o)){t=e;break e}i<<=1,t=e}return r[n>>2]=a,r[a+24>>2]=t,r[a+12>>2]=a,void(r[a+8>>2]=a)}}while(0);l=0|r[(s=t+8|0)>>2],r[l+12>>2]=a,r[s>>2]=a,r[a+8>>2]=l,r[a+12>>2]=t,r[a+24>>2]=0}function Bt(e,t,n,i){return 0|(E((t|=0)+(i|=0)+((n=(e|=0)+(n|=0)>>>0)>>>0<e>>>0|0)>>>0|0),n)}function It(e,t,n,i){return 0|(E(0|(i=(t|=0)-(i|=0)-((n|=0)>>>0>(e|=0)>>>0|0)>>>0)),e-n>>>0)}function Lt(e){return 0|((e|=0)?31-(0|C(e^e-1)):32)}function Ft(e,t,n,i,o){o|=0;var s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0;if(u=e|=0,a=n|=0,l=d=i|=0,!(c=A=t|=0))return s=!!(0|o),l?s?(r[o>>2]=0|e,r[o+4>>2]=0&t,o=0,0|(E(0|(d=0)),o)):(o=0,0|(E(0|(d=0)),o)):(s&&(r[o>>2]=(u>>>0)%(a>>>0),r[o+4>>2]=0),o=(u>>>0)/(a>>>0)>>>0,0|(E(0|(d=0)),o));s=!(0|l);do{if(a){if(!s){if((s=(0|C(0|l))-(0|C(0|c))|0)>>>0<=31){a=h=s+1|0,e=u>>>(h>>>0)&(t=s-31>>31)|c<<(l=31-s|0),t&=c>>>(h>>>0),s=0,l=u<<l;break}return o?(r[o>>2]=0|e,r[o+4>>2]=A|0&t,o=0,0|(E(0|(d=0)),o)):(o=0,0|(E(0|(d=0)),o))}if((s=a-1|0)&a|0){a=l=33+(0|C(0|a))-(0|C(0|c))|0,e=(h=32-l|0)-1>>31&c>>>((f=l-32|0)>>>0)|(c<<h|u>>>(l>>>0))&(t=f>>31),t&=c>>>(l>>>0),s=u<<(p=64-l|0)&(A=h>>31),l=(c<<p|u>>>(f>>>0))&A|u<<h&l-33>>31;break}return 0|o&&(r[o>>2]=s&u,r[o+4>>2]=0),1==(0|a)?(p=0|e,0|(E(0|(f=A|0&t)),p)):(f=c>>>((p=0|Lt(0|a))>>>0)|0,p=c<<32-p|u>>>(p>>>0),0|(E(0|f),p))}if(s)return 0|o&&(r[o>>2]=(c>>>0)%(a>>>0),r[o+4>>2]=0),p=(c>>>0)/(a>>>0)>>>0,0|(E(0|(f=0)),p);if(!u)return 0|o&&(r[o>>2]=0,r[o+4>>2]=(c>>>0)%(l>>>0)),p=(c>>>0)/(l>>>0)>>>0,0|(E(0|(f=0)),p);if(!((s=l-1|0)&l))return 0|o&&(r[o>>2]=0|e,r[o+4>>2]=s&c|0&t),f=0,p=c>>>((0|Lt(0|l))>>>0),0|(E(0|f),p);if((s=(0|C(0|l))-(0|C(0|c))|0)>>>0<=30){a=t=s+1|0,e=c<<(l=31-s|0)|u>>>(t>>>0),t=c>>>(t>>>0),s=0,l=u<<l;break}return o?(r[o>>2]=0|e,r[o+4>>2]=A|0&t,p=0,0|(E(0|(f=0)),p)):(p=0,0|(E(0|(f=0)),p))}while(0);if(a){c=0|Bt(0|(h=0|n),0|(u=d|0&i),-1,-1),n=0|x(),A=l,l=0;do{i=A,A=s>>>31|A<<1,s=l|s<<1,It(0|c,0|n,0|(i=e<<1|i>>>31),0|(d=e>>>31|t<<1)),l=1&(f=(p=0|x())>>31|((0|p)<0?-1:0)<<1),e=0|It(0|i,0|d,f&h|0,(((0|p)<0?-1:0)>>31|((0|p)<0?-1:0)<<1)&u),t=0|x(),a=a-1|0}while(0|a);c=A,A=0}else c=l,A=0,l=0;return a=0,0|o&&(r[o>>2]=e,r[o+4>>2]=t),p=s<<1&-2|l,0|(E(0|(f=(0|s)>>>31|(c|a)<<1|A)),p)}function Dt(e,t,n,i){n|=0;var r,o,s,a,l;return o=(i|=0)>>31|((0|i)<0?-1:0)<<1,r=((0|i)<0?-1:0)>>31|((0|i)<0?-1:0)<<1,s=0|It((l=(t|=0)>>31|((0|t)<0?-1:0)<<1)^(e|=0)|0,(a=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1)^t|0,0|l,0|a),e=o^l,t=r^a,0|It((0|Ft(s,0|x(),0|It(o^n|0,r^i|0,0|o,0|r),0|x(),0))^e,(0|x())^t,0|e,0|t)}function Ot(e,t,n,i){t|=0,i|=0;var r,o;return n=0|function(e,t){var n,i,r,o=0;return e=((n=0|b(o=65535&(t|=0),r=65535&(e|=0)))>>>16)+(0|b(o,i=e>>>16))|0,t=0|b(o=t>>>16,r),0|(E((e>>>16)+(0|b(o,i))+(((65535&e)+t|0)>>>16)|0),e+t<<16|65535&n)}(r=e|=0,o=n|=0),e=0|x(),0|(E((0|b(t,o))+(0|b(i,r))+e|0&e),n)}function Nt(e,t,n,i){n|=0;var o,s,a,l,A,c;return o=I,I=I+16|0,l=0|o,c=(i|=0)>>31|((0|i)<0?-1:0)<<1,A=((0|i)<0?-1:0)>>31|((0|i)<0?-1:0)<<1,Ft(e=0|It((a=(t|=0)>>31|((0|t)<0?-1:0)<<1)^(e|=0)|0,(s=((0|t)<0?-1:0)>>31|((0|t)<0?-1:0)<<1)^t|0,0|a,0|s),t=0|x(),0|It(c^n|0,A^i|0,0|c,0|A),0|x(),l),i=0|It(r[l>>2]^a|0,r[l+4>>2]^s|0,0|a,0|s),n=0|x(),I=o,0|(E(0|n),i)}function kt(e,t,n,i){var o,s;return s=I,I=I+16|0,Ft(e|=0,t|=0,n|=0,i|=0,o=0|s),I=s,0|(E(0|r[o+4>>2]),r[o>>2])}function Ut(e,t,n){return e|=0,t|=0,(0|(n|=0))<32?(E(t>>n|0),e>>>n|(t&(1<<n)-1)<<32-n):(E(0|((0|t)<0?-1:0)),t>>n-32)}function Gt(e,t,n){return e|=0,t|=0,(0|(n|=0))<32?(E(t>>>n|0),e>>>n|(t&(1<<n)-1)<<32-n):(E(0),t>>>n-32|0)}function Vt(e,t,n){return e|=0,t|=0,(0|(n|=0))<32?(E(t<<n|(e&(1<<n)-1<<32-n)>>>32-n),e<<n):(E(e<<n-32),0)}function zt(e,t,n){return e|=0,32==(0|(t=0|C(t|=0)))&&(t=t+(0|C(e))|0),E(0),0|t}function Ht(e,t){return t=+t,(e=+e)!=e?+t:t!=t?+e:+y(+e,+t)}function Wt(e,t){return t=+t,(e=+e)!=e?+t:t!=t?+e:+v(+e,+t)}function jt(e){return(e=+e)>=0?+l(e+.5):+_(e-.5)}function Qt(e,t,n){e|=0,t|=0;var o,s,a=0;if((0|(n|=0))>=8192)return M(0|e,0|t,0|n),0|e;if(s=0|e,o=e+n|0,(3&e)==(3&t)){for(;3&e;){if(!n)return 0|s;i[e|0]=0|i[t|0],e=e+1|0,t=t+1|0,n=n-1|0}for(a=(n=-4&o)-64|0;(0|e)<=(0|a);)r[e>>2]=r[t>>2],r[e+4>>2]=r[t+4>>2],r[e+8>>2]=r[t+8>>2],r[e+12>>2]=r[t+12>>2],r[e+16>>2]=r[t+16>>2],r[e+20>>2]=r[t+20>>2],r[e+24>>2]=r[t+24>>2],r[e+28>>2]=r[t+28>>2],r[e+32>>2]=r[t+32>>2],r[e+36>>2]=r[t+36>>2],r[e+40>>2]=r[t+40>>2],r[e+44>>2]=r[t+44>>2],r[e+48>>2]=r[t+48>>2],r[e+52>>2]=r[t+52>>2],r[e+56>>2]=r[t+56>>2],r[e+60>>2]=r[t+60>>2],e=e+64|0,t=t+64|0;for(;(0|e)<(0|n);)r[e>>2]=r[t>>2],e=e+4|0,t=t+4|0}else for(n=o-4|0;(0|e)<(0|n);)i[e|0]=0|i[t|0],i[e+1|0]=0|i[t+1|0],i[e+2|0]=0|i[t+2|0],i[e+3|0]=0|i[t+3|0],e=e+4|0,t=t+4|0;for(;(0|e)<(0|o);)i[e|0]=0|i[t|0],e=e+1|0,t=t+1|0;return 0|s}function Xt(e,t,n){var r=0;if((0|(t|=0))<(0|(e|=0))&(0|e)<(t+(n|=0)|0)){for(r=e,t=t+n|0,e=e+n|0;(0|n)>0;)t=t-1|0,n=n-1|0,i[(e=e-1|0)|0]=0|i[t|0];e=r}else Qt(e,t,n);return 0|e}function Kt(e,t,n){t|=0;var o,s=0,a=0,l=0;if(o=(e|=0)+(n|=0)|0,t&=255,(0|n)>=67){for(;3&e;)i[e|0]=t,e=e+1|0;for(l=t|t<<8|t<<16|t<<24,a=(s=-4&o)-64|0;(0|e)<=(0|a);)r[e>>2]=l,r[e+4>>2]=l,r[e+8>>2]=l,r[e+12>>2]=l,r[e+16>>2]=l,r[e+20>>2]=l,r[e+24>>2]=l,r[e+28>>2]=l,r[e+32>>2]=l,r[e+36>>2]=l,r[e+40>>2]=l,r[e+44>>2]=l,r[e+48>>2]=l,r[e+52>>2]=l,r[e+56>>2]=l,r[e+60>>2]=l,e=e+64|0;for(;(0|e)<(0|s);)r[e>>2]=l,e=e+4|0}for(;(0|e)<(0|o);)i[e|0]=t,e=e+1|0;return o-n|0}function Jt(e){return(e=+e)>=0?+l(e+.5):+_(e-.5)}function qt(e){e|=0;var t,n,i;return i=0|P(),(0|e)>0&(0|(t=(n=0|r[a>>2])+e|0))<(0|n)|(0|t)<0?(B(0|t),S(12),-1):(0|t)>(0|i)&&!(0|R(0|t))?(S(12),-1):(r[a>>2]=t,0|n)}var Yt=[function(e,t){return w(0),0},function(e,t){t|=0;var n=0,i=0;return e=0|r[(i=e|=0)>>2],i=0|r[i+4>>2],t=0|r[(n=t)>>2],0|(i>>>0<(n=0|r[n+4>>2])>>>0|(0|i)==(0|n)&e>>>0<t>>>0?-1:1&(i>>>0>n>>>0|(0|i)==(0|n)&e>>>0>t>>>0))},function(e,t){t|=0;var n,i,s,a,l=0,A=0;return a=0|r[(A=e|=0)>>2],A=0|r[A+4>>2],s=0|r[(l=t)>>2],A>>>0<(l=0|r[l+4>>2])>>>0|(0|A)==(0|l)&a>>>0<s>>>0?0|(t=-1):A>>>0>l>>>0|(0|A)==(0|l)&a>>>0>s>>>0?0|(t=1):(i=+o[e+8>>3])<(n=+o[t+8>>3])?0|(t=-1):0|(t=i>n&1)},function(e,t){var n,i;return t|=0,0|((i=+o[(e|=0)>>3])>(n=+o[t>>3])?-1:i<n&1)}];return{___divdi3:Dt,___muldi3:Ot,___remdi3:Nt,___uremdi3:kt,_areNeighborCells:function(e,t,n,i,o){o|=0;var s,a,l,A=0,c=0,u=0,h=0;if(l=I,I=I+64|0,a=l,s=l+56|0,!(!0&134217728==(2013265920&(t|=0))&!0&134217728==(2013265920&(i|=0))))return I=l,0|(o=5);if((0|(e|=0))==(0|(n|=0))&(0|t)==(0|i))return r[o>>2]=0,I=l,0|(o=0);if(c=0|Gt(0|e,0|t,52),x(),c&=15,h=0|Gt(0|n,0|i,52),x(),(0|c)!=(15&h))return I=l,0|(o=12);if(A=c+-1|0,c>>>0>1){we(e,t,A,a),we(n,i,A,s),u=0|r[(h=a)>>2],h=0|r[h+4>>2];e:do{if((0|u)==(0|r[s>>2])&&(0|h)==(0|r[s+4>>2])){A=0|Gt(0|e,0|t,0|(c=3*(15^c)|0)),x(),A&=7,c=0|Gt(0|n,0|i,0|c),x(),c&=7;do{if(!(0|A)|!(0|c))r[o>>2]=1,A=0;else if(7==(0|A))A=5;else{if(1==(0|A)|1==(0|c)&&0|xe(u,h)){A=5;break}if((0|r[15824+(A<<2)>>2])!=(0|c)&&(0|r[15856+(A<<2)>>2])!=(0|c))break e;r[o>>2]=1,A=0}}while(0);return I=l,0|(o=A)}}while(0)}c=(A=a)+56|0;do{r[A>>2]=0,A=A+4|0}while((0|A)<(0|c));return L(e,t,1,a),A=(0|r[(t=a)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)||(0|r[(t=a+8|0)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)||(0|r[(t=a+16|0)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)||(0|r[(t=a+24|0)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)||(0|r[(t=a+32|0)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)||(0|r[(t=a+40|0)>>2])==(0|n)&&(0|r[t+4>>2])==(0|i)?1:1&((0|r[(A=a+48|0)>>2])==(0|n)?(0|r[A+4>>2])==(0|i):0),r[o>>2]=A,I=l,0|(o=0)},_bitshift64Ashr:Ut,_bitshift64Lshr:Gt,_bitshift64Shl:Vt,_calloc:Pt,_cellAreaKm2:function(e,t,n){n|=0;var i,s,a,l=0;return a=I,I=I+192|0,i=a+176|0,l=a+168|0,(e=0|Ue(e|=0,t|=0,s=a))?(I=a,0|(l=e)):(r[l>>2]=r[s>>2],r[l+4>>2]=s+8,r[i>>2]=r[l>>2],r[i+4>>2]=r[l+4>>2],z(i,n),o[n>>3]=40589732.49931477*+o[n>>3],I=a,0|(l=0))},_cellAreaM2:function(e,t,n){n|=0;var i,s,a,l=0;return a=I,I=I+192|0,i=a+176|0,l=a+168|0,(e=0|Ue(e|=0,t|=0,s=a))?(I=a,0|(l=e)):(r[l>>2]=r[s>>2],r[l+4>>2]=s+8,r[i>>2]=r[l>>2],r[i+4>>2]=r[l+4>>2],z(i,n),o[n>>3]=40589732.49931477*+o[n>>3]*1e6,I=a,0|(l=0))},_cellAreaRads2:function(e,t,n){n|=0;var i,o,s,a=0;return s=I,I=I+192|0,i=s+176|0,a=s+168|0,0|(e=0|Ue(e|=0,t|=0,o=s))?(I=s,0|(a=e)):(r[a>>2]=r[o>>2],r[a+4>>2]=o+8,r[i>>2]=r[a>>2],r[i+4>>2]=r[a+4>>2],z(i,n),I=s,0|(a=0))},_cellToBoundary:Ue,_cellToCenterChild:Se,_cellToChildPos:function(e,t,n,i){n|=0,i|=0;var o,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0;if(o=I,I=I+16|0,_=o,b=0|Gt(0|(e|=0),0|(t|=0),52),x(),b&=15,n>>>0>15)return I=o,0|(b=4);if((0|b)<(0|n))return I=o,0|(b=12);if((0|b)!=(0|n))if(a=0|Vt(0|n,0,52),a|=e,A=x()|-15728641&t,(0|b)>(0|n)){c=n;do{m=0|Vt(7,0,3*(14-c|0)|0),c=c+1|0,a|=m,A=0|x()|A}while((0|c)<(0|b));m=a}else m=a;else m=e,A=t;g=0|Gt(0|m,0|A,45),x();e:do{if(0|H(127&g)){if(c=0|Gt(0|m,0|A,52),x(),0|(c&=15))for(a=1;;){if(!(!((g=0|Vt(7,0,3*(15-a|0)|0))&m|0)&!((0|x())&A))){u=33;break e}if(!(a>>>0<c>>>0))break;a=a+1|0}if(r[(g=i)>>2]=0,r[g+4>>2]=0,(0|b)>(0|n)){for(g=-15728641&t,p=b;;){if(f=p,(p=p+-1|0)>>>0>15|(0|b)<(0|p)){u=19;break}if((0|b)!=(0|p))if(a=0|Vt(0|p,0,52),a|=e,c=0|x()|g,(0|b)<(0|f))d=a;else{u=p;do{d=0|Vt(7,0,3*(14-u|0)|0),u=u+1|0,a|=d,c=0|x()|c}while((0|u)<(0|b));d=a}else d=e,c=t;if(h=0|Gt(0|d,0|c,45),x(),0|H(127&h)){h=0|Gt(0|d,0|c,52),x(),h&=15;t:do{if(h)for(u=1;;){if(a=0|Gt(0|d,0|c,3*(15-u|0)|0),x(),0|(a&=7))break t;if(!(u>>>0<h>>>0)){a=0;break}u=u+1|0}else a=0}while(0);a=1&!(0|a)}else a=0;if(c=0|Gt(0|e,0|t,3*(15-f|0)|0),x(),7==(0|(c&=7))){s=5,u=42;break}if(1==(0|c)&(a=!!(0|a))){s=5,u=42;break}if(0|(d=c+((!!(0|c)&a)<<31>>31)|0)&&(u=0|$e(7,0,u=b-f|0,((0|u)<0)<<31>>31),h=0|x(),a?(a=0|Bt(0|(a=0|Ot(0|u,0|h,5,0)),0|x(),-5,-1),a=0|Bt(0|(a=0|Dt(0|a,0|x(),6,0)),0|x(),1,0),c=0|x()):(a=u,c=h),f=0|Bt(0|a,0|c,0|(f=0|Ot(0|u,0|h,0|(f=d+-1|0),((0|f)<0)<<31>>31)),0|x()),h=0|Bt(0|f,0|(d=0|x()),0|r[(h=i)>>2],0|r[h+4>>2]),d=0|x(),r[(f=i)>>2]=h,r[f+4>>2]=d),(0|p)<=(0|n)){u=37;break}}if(19==(0|u))T(27634,27225,1407,27259);else{if(37==(0|u)){s=0|r[(l=i)+4>>2],l=0|r[l>>2];break}if(42==(0|u))return I=o,0|s}}else s=0,l=0}else u=33}while(0);e:do{if(33==(0|u)){if(r[(g=i)>>2]=0,r[g+4>>2]=0,(0|b)>(0|n)){for(a=b;;){if(s=0|Gt(0|e,0|t,3*(15-a|0)|0),x(),7==(0|(s&=7))){s=5;break}if(s=0|Ot(0|(l=0|$e(7,0,l=b-a|0,((0|l)<0)<<31>>31)),0|x(),0|s,0),l=0|x(),l=0|Bt(0|r[(g=i)>>2],0|r[g+4>>2],0|s,0|l),s=0|x(),r[(g=i)>>2]=l,r[g+4>>2]=s,(0|(a=a+-1|0))<=(0|n))break e}return I=o,0|s}s=0,l=0}}while(0);return 0|Ee(m,A,b,_)&&T(27634,27225,1367,27274),((0|s)>-1|-1==(0|s)&l>>>0>4294967295)&((0|(_=0|r[(b=_)+4>>2]))>(0|s)|((0|_)==(0|s)?(0|r[b>>2])>>>0>l>>>0:0))?(I=o,0|(b=0)):(T(27634,27225,1447,27259),0)},_cellToChildren:function(e,t,n,i){i|=0;var o,s,a=0,l=0;if(s=I,I=I+16|0,Ve(o=s,e|=0,t|=0,n|=0),!(0|(e=0|r[(t=o)>>2]))&!(0|(t=0|r[t+4>>2])))return I=s,0;a=0,n=0;do{r[(l=i+(a<<3)|0)>>2]=e,r[l+4>>2]=t,a=0|Bt(0|a,0|n,1,0),n=0|x(),He(o),e=0|r[(l=o)>>2],t=0|r[l+4>>2]}while(!(!(0|e)&!(0|t)));return I=s,0},_cellToChildrenSize:Ee,_cellToLatLng:ke,_cellToLocalIj:function(e,t,n,i,o,s){s|=0;var a,l=0;return a=I,I=I+16|0,l=a,0|(o|=0)?(I=a,0|(l=15)):((e=0|Je(e|=0,t|=0,n|=0,i|=0,l))||(o=0|r[l+4>>2],e=0|r[l+8>>2],r[s>>2]=(0|r[l>>2])-e,r[s+4>>2]=o-e,e=0),I=a,0|(l=e))},_cellToParent:we,_cellToVertex:pt,_cellToVertexes:function(e,t,n){n|=0;var i,o=0,s=0;return s=!(0|xe(e|=0,t|=0)),i=!(0|(o=0|pt(e,t,0,n))),s?i?0|(o=0|pt(e,t,1,n+8|0))||0|(o=0|pt(e,t,2,n+16|0))||0|(o=0|pt(e,t,3,n+24|0))||(o=0|pt(e,t,4,n+32|0))?0|(s=o):0|pt(e,t,5,n+40|0):0|(s=o):i?0|(o=0|pt(e,t,1,n+8|0))||0|(o=0|pt(e,t,2,n+16|0))||0|(o=0|pt(e,t,3,n+24|0))||0|(o=0|pt(e,t,4,n+32|0))?0|(s=o):(r[(s=n+40|0)>>2]=0,r[s+4>>2]=0,0|(s=0)):0|(s=o)},_cellsToDirectedEdge:function(e,t,n,i,o){return o|=0,7==(0|(n=0|G(e|=0,t|=0,n|=0,i|=0)))?0|(o=11):(i=0|Vt(0|n,0,56),t=-2130706433&t|x()|268435456,r[o>>2]=e|i,r[o+4>>2]=t,0|(o=0))},_cellsToLinkedMultiPolygon:function(e,t,n){n|=0;var i,o,s=0,a=0,l=0,A=0,c=0;if(o=I,I=I+16|0,0|(e=0|re(e|=0,t|=0,((0|t)<0)<<31>>31,l=o)))return I=o,0|(l=e);if(i=0|function(e,t){e|=0,t|=0;var n=0,i=0,o=0,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0;if(r[t>>2]=0,m=t+4|0,r[m>>2]=0,_=t+8|0,r[_>>2]=0,g=0|r[e>>2],(0|g)<=0)return 0|(t=0);p=e+4|0,e=t,f=0;e:for(;;){if(f){if(!(n=0|Pt(1,12))){n=5;break}r[e+8>>2]=n,e=n}if(A=0|r[p>>2],!(c=0|Pt(1,12))){e=13,n=37;break}if(i=0|r[(d=e+4|0)>>2],r[(0|i?i+8:e)>>2]=c,r[d>>2]=c,(0|(i=0|r[A+(f<<4)>>2]))<3){e=1,n=37;break}o=A+(f<<4)+4|0,s=c+4|0,n=0,a=0;do{if(l=a,!(a=0|Tt(24))){e=13,n=37;break e}Xt(0|a,(0|r[o>>2])+(n<<4)|0,16),r[a+16>>2]=0,l?r[l+16>>2]=a:r[c>>2]=a,r[s>>2]=a,n=n+1|0}while((0|n)<(0|i));if((0|(h=0|r[A+(f<<4)+8>>2]))>0){u=A+(f<<4)+12|0,A=0;do{if(i=0|r[u>>2],n=c,!(c=0|Pt(1,12))){e=13,n=37;break e}if(r[n+8>>2]=c,r[d>>2]=c,(0|(l=0|r[i+(A<<3)>>2]))<3){e=1,n=37;break e}i=i+(A<<3)+4|0,o=c+4|0,n=0,s=0;do{if(a=s,!(s=0|Tt(24))){e=13,n=37;break e}Xt(0|s,(0|r[i>>2])+(n<<4)|0,16),r[s+16>>2]=0,a?r[a+16>>2]=s:r[c>>2]=s,r[o>>2]=s,n=n+1|0}while((0|n)<(0|l));A=A+1|0}while((0|A)<(0|h))}if((0|(f=f+1|0))>=(0|g)){e=0,n=50;break}}if(5==(0|n)){if(!t)return 0|(t=13);for(i=1,o=t;;){if(0|(e=0|r[o>>2]))do{if(0|(n=0|r[e>>2]))do{g=n,n=0|r[n+16>>2],St(g)}while(0|n);g=e,e=0|r[e+8>>2],St(g)}while(0|e);if(e=o,o=0|r[o+8>>2],i?(r[t>>2]=0,r[m>>2]=0,r[_>>2]=0):St(e),!o){e=13;break}i=0}return 0|e}if(37==(0|n)){if(!t)return 0|(t=e);for(o=1,s=t;;){if(0|(n=0|r[s>>2]))do{if(0|(i=0|r[n>>2]))do{g=i,i=0|r[i+16>>2],St(g)}while(0|i);g=n,n=0|r[n+8>>2],St(g)}while(0|n);if(n=s,s=0|r[s+8>>2],o?(r[t>>2]=0,r[m>>2]=0,r[_>>2]=0):St(n),!s)break;o=0}return 0|e}if(50==(0|n))return 0|e;return 0}(l,n),n=l+4|0,(0|r[l>>2])>0){t=0;do{if(a=0|r[n>>2],St(0|r[(s=a+(t<<4)+4|0)>>2]),r[s>>2]=0,r[a+(t<<4)>>2]=0,s=a+(t<<4)+8|0,a=a+(t<<4)+12|0,(0|r[s>>2])>0){e=0;do{A=0|r[a>>2],St(0|r[(c=A+(e<<3)+4|0)>>2]),r[c>>2]=0,r[A+(e<<3)>>2]=0,e=e+1|0}while((0|e)<(0|r[s>>2]))}St(0|r[a>>2]),r[a>>2]=0,r[s>>2]=0,t=t+1|0}while((0|t)<(0|r[l>>2]))}return St(0|r[n>>2]),r[n>>2]=0,r[l>>2]=0,I=o,0|(c=i)},_childPosToCell:function(e,t,n,i,o,s){e|=0,t|=0,s|=0;var a,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0;if(a=I,I=I+16|0,l=a,(o|=0)>>>0>15)return I=a,0|(s=4);if(A=0|Gt(0|(n|=0),0|(i|=0),52),x(),(0|(A&=15))>(0|o))return I=a,0|(s=12);if(0|Ee(n,i,o,l)&&T(27634,27225,1367,27274),!(((0|t)>-1|-1==(0|t)&e>>>0>4294967295)&((0|(u=0|r[(h=l)+4>>2]))>(0|t)|((0|u)==(0|t)?(0|r[h>>2])>>>0>e>>>0:0))))return I=a,0|(s=2);h=o-A|0,o=0|Vt(0|o,0,52),c=x()|-15728641&i,r[(u=s)>>2]=o|n,r[u+4>>2]=c,u=0|Gt(0|n,0|i,45),x();e:do{if(0|H(127&u)){if(0|A)for(l=1;;){if(!(!((u=0|Vt(7,0,3*(15-l|0)|0))&n|0)&!((0|x())&i)))break e;if(!(l>>>0<A>>>0))break;l=l+1|0}if((0|h)<1)return I=a,0|(s=0);for(u=15^A,i=-1,c=1,l=1;;){A=0|$e(7,0,A=h-c|0,((0|A)<0)<<31>>31),n=0|x();do{if(l){if(l=0|Dt(0|(l=0|Bt(0|(l=0|Ot(0|A,0|n,5,0)),0|x(),-5,-1)),0|x(),6,0),(0|t)>(0|(o=0|x()))|(0|t)==(0|o)&e>>>0>l>>>0){t=0|It(0|(t=0|Bt(0|e,0|t,-1,-1)),0|x(),0|l,0|o),l=0|x(),p=0|r[(d=s)>>2],d=0|r[d+4>>2],f=0|Vt(7,0,0|(g=3*(u+i|0)|0)),d&=~x(),g=0|Vt(0|(o=0|Bt(0|(i=0|Dt(0|t,0|l,0|A,0|n)),0|(e=0|x()),2,0)),0|x(),0|g),d=0|x()|d,r[(o=s)>>2]=g|p&~f,r[o+4>>2]=d,e=0|It(0|t,0|l,0|(e=0|Ot(0|i,0|e,0|A,0|n)),0|x()),l=0,t=0|x();break}f=0|r[(g=s)>>2],g=0|r[g+4>>2],p=0|Vt(7,0,3*(u+i|0)|0),g&=~x(),r[(l=s)>>2]=f&~p,r[l+4>>2]=g,l=1;break}o=0|r[(f=s)>>2],f=0|r[f+4>>2],d=0|Vt(7,0,0|(i=3*(u+i|0)|0)),f&=~x(),i=0|Vt(0|(g=0|Dt(0|e,0|t,0|A,0|n)),0|(l=0|x()),0|i),f=0|x()|f,r[(p=s)>>2]=i|o&~d,r[p+4>>2]=f,e=0|It(0|e,0|t,0|(l=0|Ot(0|g,0|l,0|A,0|n)),0|x()),l=0,t=0|x()}while(0);if(!((0|h)>(0|c))){t=0;break}i=~c,c=c+1|0}return I=a,0|t}}while(0);if((0|h)<1)return I=a,0|(g=0);for(o=15^A,l=1;;){if(p=0|$e(7,0,p=h-l|0,((0|p)<0)<<31>>31),g=0|x(),n=0|r[(c=s)>>2],c=0|r[c+4>>2],i=0|Vt(7,0,0|(A=3*(o-l|0)|0)),c&=~x(),A=0|Vt(0|(d=0|Dt(0|e,0|t,0|p,0|g)),0|(f=0|x()),0|A),c=0|x()|c,r[(u=s)>>2]=A|n&~i,r[u+4>>2]=c,e=0|It(0|e,0|t,0|(g=0|Ot(0|d,0|f,0|p,0|g)),0|x()),t=0|x(),(0|h)<=(0|l)){t=0;break}l=l+1|0}return I=a,0|t},_compactCells:function(e,t,n,i){t|=0;var o,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,S=0,P=0,M=0,R=0,B=0,I=0;if(!(0|(n|=0))&!(0|(i|=0)))return 0|(I=0);if(a=0|r[(s=e|=0)>>2],!0&!(15728640&(s=0|r[s+4>>2]))){if(!((0|i)>0|!(0|i)&n>>>0>0))return 0|(I=0);if(r[(I=t)>>2]=a,r[I+4>>2]=s,1==(0|n)&!(0|i))return 0|(I=0);s=1,a=0;do{B=0|r[(R=e+(s<<3)|0)+4>>2],r[(I=t+(s<<3)|0)>>2]=r[R>>2],r[I+4>>2]=B,s=0|Bt(0|s,0|a,1,0),a=0|x()}while((0|a)<(0|i)|(0|a)==(0|i)&s>>>0<n>>>0);return 0|(s=0)}if(!(B=0|Tt(o=n<<3)))return 0|(I=13);if(Qt(0|B,0|e,0|o),!(R=0|Pt(n,8)))return St(B),0|(I=13);e:for(;;){P=0|Gt(0|(u=0|r[(s=B)>>2]),0|(s=0|r[s+4>>2]),52),x(),M=(P&=15)+-1|0,S=!!(0|P),E=(0|i)>0|!(0|i)&n>>>0>0;t:do{if(S&E){if(v=0|Vt(0|M,0,52),y=0|x(),M>>>0>15){if(!(!(0|u)&!(0|s))){I=16;break e}for(a=0,e=0;;){if(a=0|Bt(0|a,0|e,1,0),!((0|(e=0|x()))<(0|i)|(0|e)==(0|i)&a>>>0<n>>>0))break t;if(!(!(0|(w=0|r[(l=B+(a<<3)|0)>>2]))&!(0|(l=0|r[l+4>>2])))){s=l,I=16;break e}}}for(A=u,e=s,a=0,l=0;;){if(!(!(0|A)&!(0|e))){if(!(!0&!(117440512&e))){I=21;break e}if(h=0|Gt(0|A,0|e,52),x(),(0|(h&=15))<(0|M)){s=12,I=27;break e}if((0|h)!=(0|M)&&(A|=v,e=-15728641&e|y,h>>>0>=P>>>0)){c=M;do{w=0|Vt(7,0,3*(14-c|0)|0),c=c+1|0,A|=w,e=0|x()|e}while(c>>>0<h>>>0)}if(f=0|kt(0|A,0|e,0|n,0|i),p=0|x(),!(!(0|(d=0|r[(h=c=R+(f<<3)|0)>>2]))&!(0|(h=0|r[h+4>>2])))){_=0,b=0;do{if((0|_)>(0|i)|(0|_)==(0|i)&b>>>0>n>>>0){I=31;break e}if((0|d)==(0|A)&(-117440513&h)==(0|e)){g=0|Gt(0|d,0|h,56),x(),m=(g&=7)+1|0,w=0|Gt(0|d,0|h,45),x();n:do{if(0|H(127&w)){if(d=0|Gt(0|d,0|h,52),x(),!(d&=15)){h=6;break}for(h=1;;){if(!(!((w=0|Vt(7,0,3*(15-h|0)|0))&A|0)&!((0|x())&e))){h=7;break n}if(!(h>>>0<d>>>0)){h=6;break}h=h+1|0}}else h=7}while(0);if((g+2|0)>>>0>h>>>0){I=41;break e}w=0|Vt(0|m,0,56),e=x()|-117440513&e,r[(C=c)>>2]=0,r[C+4>>2]=0,A|=w}else f=0|Nt(0|(f=0|Bt(0|f,0|p,1,0)),0|x(),0|n,0|i),p=0|x();b=0|Bt(0|b,0|_,1,0),_=0|x(),d=0|r[(h=c=R+(f<<3)|0)>>2],h=0|r[h+4>>2]}while(!(!(0|d)&!(0|h)))}r[(w=c)>>2]=A,r[w+4>>2]=e}if(a=0|Bt(0|a,0|l,1,0),!((0|(l=0|x()))<(0|i)|(0|l)==(0|i)&a>>>0<n>>>0))break t;A=0|r[(e=B+(a<<3)|0)>>2],e=0|r[e+4>>2]}}}while(0);if(w=0|Bt(0|n,0|i,5,0),(C=0|x())>>>0<0|!(0|C)&w>>>0<11){I=85;break}if(w=0|Dt(0|n,0|i,6,0),x(),!(w=0|Pt(w,8))){I=48;break}do{if(E){for(m=0,e=0,g=0,_=0;;){if(!(0|(a=0|r[(l=h=R+(m<<3)|0)>>2]))&!(0|(l=0|r[l+4>>2])))C=g;else{d=0|Gt(0|a,0|l,56),x(),A=(d&=7)+1|0,f=-117440513&l,C=0|Gt(0|a,0|l,45),x();t:do{if(0|H(127&C)){if(p=0|Gt(0|a,0|l,52),x(),0|(p&=15))for(c=1;;){if(!(!(a&(C=0|Vt(7,0,3*(15-c|0)|0))|0)&!(f&(0|x()))))break t;if(!(c>>>0<p>>>0))break;c=c+1|0}a|=l=0|Vt(0|A,0,56),l=0|x()|f,r[(A=h)>>2]=a,r[A+4>>2]=l,A=d+2|0}}while(0);7==(0|A)?(r[(C=w+(e<<3)|0)>>2]=a,r[C+4>>2]=-117440513&l,e=0|Bt(0|e,0|g,1,0),C=0|x()):C=g}if(m=0|Bt(0|m,0|_,1,0),!((0|(_=0|x()))<(0|i)|(0|_)==(0|i)&m>>>0<n>>>0))break;g=C}if(E){if(b=M>>>0>15,v=0|Vt(0|M,0,52),y=0|x(),!S){for(a=0,c=0,A=0,l=0;!(0|u)&!(0|s)||(r[(M=t+(a<<3)|0)>>2]=u,r[M+4>>2]=s,a=0|Bt(0|a,0|c,1,0),c=0|x()),A=0|Bt(0|A,0|l,1,0),(0|(l=0|x()))<(0|i)|(0|l)==(0|i)&A>>>0<n>>>0;)u=0|r[(s=B+(A<<3)|0)>>2],s=0|r[s+4>>2];s=C;break}for(a=0,c=0,l=0,A=0;;){do{if(!(!(0|u)&!(0|s))){if(p=0|Gt(0|u,0|s,52),x(),b|(0|(p&=15))<(0|M)){I=80;break e}if((0|p)!=(0|M)){if(h=u|v,d=-15728641&s|y,p>>>0>=P>>>0){f=M;do{S=0|Vt(7,0,3*(14-f|0)|0),f=f+1|0,h|=S,d=0|x()|d}while(f>>>0<p>>>0)}}else h=u,d=s;g=0|kt(0|h,0|d,0|n,0|i),f=0,p=0,_=0|x();do{if((0|f)>(0|i)|(0|f)==(0|i)&p>>>0>n>>>0){I=81;break e}if((-117440513&(m=0|r[(S=R+(g<<3)|0)+4>>2]))==(0|d)&&(0|r[S>>2])==(0|h)){I=65;break}g=0|Nt(0|(S=0|Bt(0|g,0|_,1,0)),0|x(),0|n,0|i),_=0|x(),p=0|Bt(0|p,0|f,1,0),f=0|x(),S=R+(g<<3)|0}while((0|r[S>>2])!=(0|h)||(0|r[S+4>>2])!=(0|d));if(65==(0|I)&&(I=0,!0&100663296==(117440512&m)))break;r[(S=t+(a<<3)|0)>>2]=u,r[S+4>>2]=s,a=0|Bt(0|a,0|c,1,0),c=0|x()}}while(0);if(l=0|Bt(0|l,0|A,1,0),!((0|(A=0|x()))<(0|i)|(0|A)==(0|i)&l>>>0<n>>>0))break;u=0|r[(s=B+(l<<3)|0)>>2],s=0|r[s+4>>2]}s=C}else a=0,s=C}else a=0,e=0,s=0}while(0);if(Kt(0|R,0,0|o),Qt(0|B,0|w,e<<3),St(w),!(0|e)&!(0|s)){I=89;break}t=t+(a<<3)|0,i=s,n=e}if(16==(0|I))!0&!(117440512&s)?(s=4,I=27):I=21;else if(31==(0|I))T(27634,27225,620,27235);else{if(41==(0|I))return St(B),St(R),0|(I=10);if(48==(0|I))return St(B),St(R),0|(I=13);80==(0|I)?T(27634,27225,711,27235):81==(0|I)?T(27634,27225,723,27235):85==(0|I)&&(Qt(0|t,0|B,n<<3),I=89)}return 21==(0|I)?(St(B),St(R),0|(I=5)):27==(0|I)?(St(B),St(R),0|(I=s)):89==(0|I)?(St(B),St(R),0|(I=0)):0},_constructCell:function(e,t,n,o){n|=0,o|=0;var s=0,a=0,l=0,A=0,c=0,u=0;if((e|=0)>>>0>15)return 0|(o=4);if((t|=0)>>>0>121)return 0|(o=17);l=0|Vt(0|e,0,52),s=0|x(),A=0|Vt(0|t,0,45),s=0|s|x()|134225919;e:do{if((0|e)>=1){for(A=1,l=!!(0|i[20496+t|0]),a=-1;;){if((t=0|r[n+(A+-1<<2)>>2])>>>0>6){s=18,t=10;break}if(!(!(0|t)|1^l)){if(1==(0|t)){s=19,t=10;break}l=0}if(c=0|Vt(7,0,0|(u=3*(15-A|0)|0)),s&=~x(),a=(t=0|Vt(0|t,((0|t)<0)<<31>>31,0|u))|a&~c,s=0|x()|s,!((0|A)<(0|e)))break e;A=A+1|0}if(10==(0|t))return 0|s}else a=-1}while(0);return r[(u=o)>>2]=a,r[u+4>>2]=s,0|(u=0)},_destroyLinkedMultiPolygon:function(e){var t,n,i=0,o=0,s=0,a=0,l=0;if(e|=0)for(t=e+4|0,n=e+8|0,s=1,a=e;;){if(0|(i=0|r[a>>2]))do{if(0|(o=0|r[i>>2]))do{l=o,o=0|r[o+16>>2],St(l)}while(0|o);l=i,i=0|r[i+8>>2],St(l)}while(0|i);if(i=a,a=0|r[a+8>>2],s?(r[e>>2]=0,r[t>>2]=0,r[n>>2]=0):St(i),!a)break;s=0}},_directedEdgeToBoundary:le,_directedEdgeToCells:function(e,t,n){e|=0;var i,o,s,a=0;return i=I,I=I+16|0,a=i,!0&268435456==(2013265920&(t|=0))?(o=-2130706433&t|134217728,r[(s=n|=0)>>2]=e,r[s+4>>2]=o,r[a>>2]=0,t=0|Gt(0|e,0|t,56),x(),a=0|N(e,o,7&t,a,n+8|0),I=i,0|a):(I=i,0|(a=6))},_edgeLengthKm:function(e,t,n){n|=0;var i,s=0,a=0,l=0,A=0,d=0,f=0,p=0;if(i=I,I=I+176|0,0|(e=0|le(e|=0,t|=0,A=i)))return A=e,l=+o[n>>3],l*=6371.007180918475,o[n>>3]=l,I=i,0|A;if(o[n>>3]=0,(0|(e=0|r[A>>2]))<=1)return A=0,l=0,l*=6371.007180918475,o[n>>3]=l,I=i,0|A;t=e+-1|0,e=0,s=+o[A+8>>3],a=+o[A+16>>3],l=0;do{f=s,s=+o[A+8+((e=e+1|0)<<4)>>3],p=+h(.5*(s-f)),d=a,a=+o[A+8+(e<<4)+8>>3],d=p*p+(d=+h(.5*(a-d)))*(+u(+f)*+u(+s)*d),l+=2*+m(+ +c(+d),+ +c(+(1-d)))}while((0|e)!=(0|t));return o[n>>3]=l,A=0,p=l,p*=6371.007180918475,o[n>>3]=p,I=i,0|A},_edgeLengthM:function(e,t,n){n|=0;var i,s=0,a=0,l=0,A=0,d=0,f=0,p=0;if(i=I,I=I+176|0,0|(e=0|le(e|=0,t|=0,A=i)))return A=e,l=+o[n>>3],l*=6371.007180918475,l*=1e3,o[n>>3]=l,I=i,0|A;if(o[n>>3]=0,(0|(e=0|r[A>>2]))<=1)return A=0,l=0,l*=6371.007180918475,l*=1e3,o[n>>3]=l,I=i,0|A;t=e+-1|0,e=0,s=+o[A+8>>3],a=+o[A+16>>3],l=0;do{f=s,s=+o[A+8+((e=e+1|0)<<4)>>3],p=+h(.5*(s-f)),d=a,a=+o[A+8+(e<<4)+8>>3],d=p*p+(d=+h(.5*(a-d)))*(+u(+f)*+u(+s)*d),l+=2*+m(+ +c(+d),+ +c(+(1-d)))}while((0|e)!=(0|t));return o[n>>3]=l,A=0,p=l,p*=6371.007180918475,p*=1e3,o[n>>3]=p,I=i,0|A},_edgeLengthRads:function(e,t,n){n|=0;var i,s=0,a=0,l=0,A=0,d=0,f=0,p=0;if(i=I,I=I+176|0,0|(e=0|le(e|=0,t|=0,A=i)))return I=i,0|(A=e);if(o[n>>3]=0,(0|(e=0|r[A>>2]))<=1)return I=i,0|(A=0);t=e+-1|0,e=0,s=+o[A+8>>3],a=+o[A+16>>3],l=0;do{f=s,s=+o[A+8+((e=e+1|0)<<4)>>3],p=+h(.5*(s-f)),d=a,a=+o[A+8+(e<<4)+8>>3],d=p*p+(d=+h(.5*(a-d)))*(+u(+s)*+u(+f)*d),l+=2*+m(+ +c(+d),+ +c(+(1-d)))}while((0|e)<(0|t));return o[n>>3]=l,I=i,0|(A=0)},_emscripten_replace_memory:function(e){return i=new Int8Array(e),new Uint8Array(e),r=new Int32Array(e),new Float32Array(e),o=new Float64Array(e),n=e,!0},_free:St,_getBaseCellNumber:ve,_getDirectedEdgeDestination:function(e,t,n){e|=0,t|=0,n|=0;var i,o,s=0;return i=I,I=I+16|0,r[(s=i)>>2]=0,!0&268435456==(2013265920&t)?(o=0|Gt(0|e,0|t,56),x(),s=0|N(e,-2130706433&t|134217728,7&o,s,n),I=i,0|s):(I=i,0|(s=6))},_getDirectedEdgeOrigin:function(e,t,n){return e|=0,n|=0,!0&268435456==(2013265920&(t|=0))?(r[n>>2]=e,r[n+4>>2]=-2130706433&t|134217728,0|(n=0)):0|(n=6)},_getHexagonAreaAvgKm2:Xe,_getHexagonAreaAvgM2:function(e,t){return t|=0,(e|=0)>>>0>15?0|(t=4):(o[t>>3]=+o[20752+(e<<3)>>3],0|(t=0))},_getHexagonEdgeLengthAvgKm:function(e,t){return t|=0,(e|=0)>>>0>15?0|(t=4):(o[t>>3]=+o[20880+(e<<3)>>3],0|(t=0))},_getHexagonEdgeLengthAvgM:function(e,t){return t|=0,(e|=0)>>>0>15?0|(t=4):(o[t>>3]=+o[21008+(e<<3)>>3],0|(t=0))},_getIcosahedronFaces:function e(t,n,i){i|=0;var o,s=0,a=0,l=0,A=0,c=0,u=0,h=0,d=0;o=I,I=I+128|0,h=o+112|0,l=o+96|0,d=o,a=0|Gt(0|(t|=0),0|(n|=0),52),x(),c=15&a,r[h>>2]=c,A=0|Gt(0|t,0|n,45),x(),A&=127;e:do{if(0|H(A)){if(0|c)for(s=1;;){if(!(!((u=0|Vt(7,0,3*(15-s|0)|0))&t|0)&!((0|x())&n))){a=0;break e}if(!(s>>>0<c>>>0))break;s=s+1|0}if(!(1&a))return u=0|Vt(c+1|0,0,52),d=x()|-15728641&n,d=0|e((u|t)&~(h=0|Vt(7,0,3*(14-c|0)|0)),d&~x(),i),I=o,0|d;a=1}else a=0}while(0);if(!(s=0|Ne(t,n,l))){a?(fe(l,h,d),u=5):(_e(l,h,d),u=6);e:do{if(0|H(A))if(c)for(s=1;;){if(!(!((A=0|Vt(7,0,3*(15-s|0)|0))&t|0)&!((0|x())&n))){t=2;break e}if(!(s>>>0<c>>>0)){t=5;break}s=s+1|0}else t=5;else t=2}while(0);Kt(0|i,-1,t<<2);e:do{if(a)for(l=0;;){if(ge(A=d+(l<<4)|0,0|r[h>>2]),A=0|r[A>>2],-1==(0|(c=0|r[i>>2]))|(0|c)==(0|A))s=i;else{a=0;do{if((a=a+1|0)>>>0>=t>>>0){s=1;break e}c=0|r[(s=i+(a<<2)|0)>>2]}while(!(-1==(0|c)|(0|c)==(0|A)))}if(r[s>>2]=A,(l=l+1|0)>>>0>=u>>>0){s=0;break}}else for(l=0;;){if(pe(A=d+(l<<4)|0,0|r[h>>2],0,1),A=0|r[A>>2],-1==(0|(c=0|r[i>>2]))|(0|c)==(0|A))s=i;else{a=0;do{if((a=a+1|0)>>>0>=t>>>0){s=1;break e}c=0|r[(s=i+(a<<2)|0)>>2]}while(!(-1==(0|c)|(0|c)==(0|A)))}if(r[s>>2]=A,(l=l+1|0)>>>0>=u>>>0){s=0;break}}}while(0)}return I=o,0|(d=s)},_getIndexDigit:function(e,t,n,i){return i|=0,((n|=0)+-1|0)>>>0>14?0|(i=4):(n=0|Gt(0|(e|=0),0|(t|=0),3*(15-n|0)|0),x(),r[i>>2]=7&n,0|(i=0))},_getNumCells:Ke,_getPentagons:Ge,_getRes0Cells:function(e){e|=0;var t=0,n=0,i=0;t=0;do{Vt(0|t,0,45),i=134225919|x(),r[(n=e+(t<<3)|0)>>2]=-1,r[n+4>>2]=i,t=t+1|0}while(122!=(0|t));return 0},_getResolution:be,_greatCircleDistanceKm:Qe,_greatCircleDistanceM:function(e,t){e|=0;var n,i,r,s=0;return i=+o[(t|=0)>>3],n=+o[e>>3],s=(r=+h(.5*(i-n)))*r+(s=+h(.5*(+o[t+8>>3]-+o[e+8>>3])))*(+u(+i)*+u(+n)*s),2*+m(+ +c(+s),+ +c(+(1-s)))*6371.007180918475*1e3},_greatCircleDistanceRads:function(e,t){e|=0;var n,i,r,s=0;return i=+o[(t|=0)>>3],n=+o[e>>3],s=(r=+h(.5*(i-n)))*r+(s=+h(.5*(+o[t+8>>3]-+o[e+8>>3])))*(+u(+i)*+u(+n)*s),2*+m(+ +c(+s),+ +c(+(1-s)))},_gridDisk:L,_gridDiskDistances:F,_gridDistance:Ye,_gridPathCells:function(e,t,n,i,o){o|=0;var s,a,l=0,A=0;return a=I,I=I+16|0,0|(A=0|Ye(e|=0,t|=0,n|=0,i|=0,l=a))?(I=a,0|(o=A)):!(0|(l=0|r[(A=l)>>2]))&!(0|(A=0|r[A+4>>2]))?(r[o>>2]=e,r[o+4>>2]=t,I=a,0|(o=0)):(s=0|Ze(e,t,n,i,l,A,o,0,0,1,0))?(o=!(0|Ze(n,i,e,t,l,A,o,l,A,-1,-1)),I=a,0|(o=o?0:s)):(I=a,0|(o=0))},_gridPathCellsSize:function(e,t,n,i,o){o|=0;var s,a=0;return s=I,I=I+16|0,0|(e=0|Ye(e|=0,t|=0,n|=0,i|=0,a=s))?(I=s,0|(a=e)):(n=0|Bt(0|r[(n=a)>>2],0|r[n+4>>2],1,0),i=0|x(),r[(a=o)>>2]=n,r[a+4>>2]=i,I=s,0|(a=0))},_gridRing:function(e,t,n,i){return 0|k(e|=0,t|=0,n|=0,i|=0)?(Kt(0|i,0,48*n|0),0|(i=0|U(e,t,n,i))):0|(i=0)},_gridRingUnsafe:k,_i64Add:Bt,_i64Subtract:It,_isPentagon:xe,_isResClassIII:function(e,t){return t=0|Gt(0|(e|=0),0|(t|=0),52),x(),1&t},_isValidCell:ye,_isValidDirectedEdge:se,_isValidIndex:function(e,t){e|=0;var n=0,r=0,o=0,s=0;if(!0&134217728==(-16777216&(t|=0))&&(r=0|Gt(0|e,0|t,52),x(),r&=15,n=0|Gt(0|e,0|t,45),x(),(n&=127)>>>0<=121)&&!(613566756&(s=0|Vt(0|(o=0|Gt(0|e,0|t,0|(s=3*(15^r)|0))),0|x(),0|s))&(0|It(-1227133514,-1171,0|s,0|(o=0|x()))))&!(4681&o&x())&&15==(0|r)|!(0|(s=0|Gt(0|(0|Vt(0|~e,0|~t,0|(s=19+(3*r|0)|0))),0|x(),0|s)))&!(0|x())){if(!(0|i[20496+n|0]))return 0|(s=1);if(!(0|e)&!(0|(n=8191&t)))return 0|(s=1);if(s=0|zt(0|e,0|n,0),x(),(63-s|0)%3|0)return 0|(s=1)}return 0|se(e,t)?0|(s=1):0|(s=1&!!(0|gt(e,t)))},_isValidVertex:gt,_latLngToCell:De,_llvm_ctlz_i64:zt,_llvm_maxnum_f64:Ht,_llvm_minnum_f64:Wt,_llvm_round_f64:jt,_localIjToCell:function(e,t,n,i,o){e|=0,t|=0,o|=0;var s,a,l,A=0,c=0,u=0,h=0;return l=I,I=I+16|0,h=l,0|(i|=0)?(I=l,0|(h=15)):(u=0|r[(n|=0)>>2],c=0|r[n+4>>2],r[h>>2]=u,r[(s=h+4|0)>>2]=c,r[(a=h+8|0)>>2]=0,i=(n=(0|c)<(0|u))?u:c,(0|(n=n?c:u))<0&&(-2147483648==(0|n)||((0|i)>0?(2147483647-i|0)<(0|n):(-2147483648-i|0)>(0|n))||((0|i)>-1?(-2147483648|i)>=(0|n):(-2147483648^i)<(0|n)))?i=1:A=5,5==(0|A)&&(i=c-u|0,A=0-u|0,(0|u)<0?(r[s>>2]=i,r[a>>2]=A,r[h>>2]=0,u=0):(i=c,A=0),c=u-i|0,n=A-i|0,(0|i)<0?(r[h>>2]=c,r[a>>2]=n,r[s>>2]=0,u=c,i=0):n=A,c=u-n|0,A=i-n|0,(0|n)<0?(r[h>>2]=c,r[s>>2]=A,r[a>>2]=0,n=0):(A=i,c=u),(0|(i=(0|n)<(0|(i=(0|A)<(0|c)?A:c))?n:i))>0&&(r[h>>2]=c-i,r[s>>2]=A-i,r[a>>2]=n-i),i=0|qe(e,t,h,o)),I=l,0|(h=i))},_malloc:Tt,_maxFaceCount:function(e,t,n){n|=0;var i=0,o=0;if(o=0|Gt(0|(e|=0),0|(t|=0),45),x(),!(0|H(127&o)))return o=2,r[n>>2]=o,0;if(o=0|Gt(0|e,0|t,52),x(),!(o&=15))return o=5,r[n>>2]=o,0;for(i=1;;){if(!(!((0|Vt(7,0,3*(15-i|0)|0))&e|0)&!((0|x())&t))){i=2,e=6;break}if(!(i>>>0<o>>>0)){i=5,e=6;break}i=i+1|0}return 6==(0|e)?(r[n>>2]=i,0):0},_maxGridDiskSize:function(e,t){t|=0;var n=0,i=0,o=0;return(0|(e|=0))<0?0|(t=2):(0|e)>13780509?0|(t=0|Ke(15,t)):(o=0|Ot(0|e,0|(n=((0|e)<0)<<31>>31),3,0),i=0|x(),n=0|Bt(0|e,0|n,1,0),n=0|Bt(0|(n=0|Ot(0|o,0|i,0|n,0|x())),0|x(),1,0),e=0|x(),r[t>>2]=n,r[t+4>>2]=e,0|(t=0))},_maxPolygonToCellsSize:function(e,t,n,i){e|=0,t|=0,i|=0;var o,s=0,a=0,l=0,A=0,c=0;if(o=I,I=I+48|0,s=o+16|0,a=o+8|0,l=o,0|(n=0|st(n|=0)))return I=o,0|(l=n);if(A=0|r[(c=e)+4>>2],r[(n=a)>>2]=r[c>>2],r[n+4>>2]=A,ot(a,s),!(n=0|ne(s,t,l))){if(t=0|r[a>>2],(0|(a=0|r[e+8>>2]))>0){s=0|r[e+12>>2],n=0;do{t=(0|r[s+(n<<3)>>2])+t|0,n=n+1|0}while((0|n)<(0|a))}s=0|r[(n=l)>>2],(0|(n=0|r[n+4>>2]))<(0|(a=((0|t)<0)<<31>>31))|(0|n)==(0|a)&s>>>0<t>>>0?(r[(n=l)>>2]=t,r[n+4>>2]=a,n=a):t=s,A=0|Bt(0|t,0|n,12,0),c=0|x(),r[(n=l)>>2]=A,r[n+4>>2]=c,r[(n=i)>>2]=A,r[n+4>>2]=c,n=0}return I=o,0|(c=n)},_maxPolygonToCellsSizeExperimental:function(e,t,n,s){t|=0,n|=0,s|=0;var a,l,c=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0;if(l=I,I=I+48|0,p=l+32|0,f=l+40|0,a=l,!(0|r[(e|=0)>>2]))return r[(g=s)>>2]=0,r[g+4>>2]=0,I=l,0|(g=0);Ce(p,0,0,0),c=0|r[(d=p)>>2],d=0|r[d+4>>2];do{if(t>>>0>15)r[(g=a)>>2]=0,r[g+4>>2]=0,r[a+8>>2]=4,r[a+12>>2]=-1,n=a+29|0,r[(g=a+16|0)>>2]=0,r[g+4>>2]=0,r[g+8>>2]=0,i[g+12|0]=0,i[n|0]=0|i[f|0],i[n+1|0]=0|i[f+1|0],i[n+2|0]=0|i[f+2|0],n=4,g=9;else{if(0|(n=0|st(n))){r[(p=a)>>2]=0,r[p+4>>2]=0,r[a+8>>2]=n,r[a+12>>2]=-1,g=a+29|0,r[(p=a+16|0)>>2]=0,r[p+4>>2]=0,r[p+8>>2]=0,i[p+12|0]=0,i[g|0]=0|i[f|0],i[g+1|0]=0|i[f+1|0],i[g+2|0]=0|i[f+2|0],g=9;break}if(!(n=0|Pt(1+(0|r[e+8>>2])|0,32))){r[(g=a)>>2]=0,r[g+4>>2]=0,r[a+8>>2]=13,r[a+12>>2]=-1,n=a+29|0,r[(g=a+16|0)>>2]=0,r[g+4>>2]=0,r[g+8>>2]=0,i[g+12|0]=0,i[n|0]=0|i[f|0],i[n+1|0]=0|i[f+1|0],i[n+2|0]=0|i[f+2|0],n=13,g=9;break}at(e,n),r[(_=a)>>2]=c,r[_+4>>2]=d,r[(d=a+8|0)>>2]=0,r[a+12>>2]=t,r[a+20>>2]=e,r[a+24>>2]=n,i[a+28|0]=0,i[(c=a+29|0)|0]=0|i[f|0],i[c+1|0]=0|i[f+1|0],i[c+2|0]=0|i[f+2|0],r[a+16>>2]=3,m=+Y(n),m*=+q(n),h=+A(+ +o[n>>3]),h=m/+u(+ +Wt(+h,+ +A(+ +o[n+8>>3])))*6371.007180918475*6371.007180918475,n=0|r[(c=a+12|0)>>2];e:do{if((0|n)>0)do{if(Xe(n+-1|0,p),!(h/+o[p>>3]>10))break e;n=(_=0|r[c>>2])+-1|0,r[c>>2]=n}while((0|_)>1)}while(0);if(nt(a),r[(c=s)>>2]=0,r[c+4>>2]=0,!(!(0|(n=0|r[(c=a)>>2]))&!(0|(c=0|r[c+4>>2]))))do{Ee(n,c,t,p),f=p,f=0|Bt(0|r[(e=s)>>2],0|r[e+4>>2],0|r[f>>2],0|r[f+4>>2]),e=0|x(),r[(_=s)>>2]=f,r[_+4>>2]=e,nt(a),n=0|r[(_=a)>>2],c=0|r[_+4>>2]}while(!(!(0|n)&!(0|c)));n=0|r[d>>2]}}while(0);return I=l,0|(_=n)},_memcpy:Qt,_memmove:Xt,_memset:Kt,_originToDirectedEdges:ae,_pentagonCount:function(){return 12},_polygonToCells:function(e,t,n,i){e|=0,t|=0,i|=0;var o,s,a,l,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0,_=0,b=0,v=0,y=0,C=0,w=0,E=0,T=0,S=0,P=0,M=0,R=0,B=0,L=0,F=0,N=0,k=0,U=0;if(l=I,I=I+112|0,o=l+80|0,d=l+72|0,s=l,a=l+56|0,0|(A=0|st(n|=0)))return I=l,0|(U=A);if(!(U=0|Tt(32+(r[(f=e+8|0)>>2]<<5)|0)))return I=l,0|(U=13);if(at(e,U),!(A=0|st(n))){if(k=0|r[(N=e)+4>>2],r[(A=d)>>2]=r[N>>2],r[A+4>>2]=k,ot(d,o),A=0|ne(o,t,s))N=0,k=0;else{if(A=0|r[d>>2],(0|(c=0|r[f>>2]))>0){u=0|r[e+12>>2],n=0;do{A=(0|r[u+(n<<3)>>2])+A|0,n=n+1|0}while((0|n)!=(0|c));n=A}else n=A;c=0|r[(A=s)>>2],(0|(A=0|r[A+4>>2]))<(0|(u=((0|n)<0)<<31>>31))|(0|A)==(0|u)&c>>>0<n>>>0?(r[(A=s)>>2]=n,r[A+4>>2]=u,A=u):n=c,N=0|Bt(0|n,0|A,12,0),k=0|x(),r[(A=s)>>2]=N,r[A+4>>2]=k,A=0}if(!A){if(!(n=0|Pt(N,8)))return St(U),I=l,0|(U=13);if(!(h=0|Pt(N,8)))return St(U),St(n),I=l,0|(U=13);r[(L=o)>>2]=0,r[L+4>>2]=0,F=0|r[(L=e)+4>>2],r[(A=d)>>2]=r[L>>2],r[A+4>>2]=F,A=0|V(d,N,k,t,o,n,h);e:do{if(A)St(n),St(h),St(U);else{t:do{if((0|r[f>>2])>0){for(u=e+12|0,c=0;A=0|V((0|r[u>>2])+(c<<3)|0,N,k,t,o,n,h),c=c+1|0,!(0|A);)if((0|c)>=(0|r[f>>2]))break t;St(n),St(h),St(U);break e}}while(0);(0|k)>0|!(0|k)&N>>>0>0&&Kt(0|h,0,N<<3),L=0|r[(F=o)+4>>2];t:do{if((0|L)>0|!(0|L)&(0|r[F>>2])>>>0>0){M=n,R=h,B=n,L=h,F=n,A=n,T=n,S=h,P=h,n=h;n:for(;;){for(y=0,C=0,w=0,E=0,c=0,u=0;;){d=(h=s)+56|0;do{r[h>>2]=0,h=h+4|0}while((0|h)<(0|d));if(0|D(f=0|r[(t=M+(y<<3)|0)>>2],t=0|r[t+4>>2],1,s,0)){d=(h=s)+56|0;do{r[h>>2]=0,h=h+4|0}while((0|h)<(0|d));0|(h=0|Pt(7,4))&&(O(f,t,1,s,h,7,0,0),St(h))}for(v=0;;){_=0|r[(b=s+(v<<3)|0)>>2],b=0|r[b+4>>2];i:do{if(!(0|_)&!(0|b))h=c,d=u;else{if(p=0|kt(0|_,0|b,0|N,0|k),f=0|x(),!(!(0|(d=0|r[(t=h=i+(p<<3)|0)>>2]))&!(0|(t=0|r[t+4>>2])))){g=0,m=0;do{if((0|g)>(0|k)|(0|g)==(0|k)&m>>>0>N>>>0)break n;if((0|d)==(0|_)&(0|t)==(0|b)){h=c,d=u;break i}p=0|Nt(0|(h=0|Bt(0|p,0|f,1,0)),0|x(),0|N,0|k),f=0|x(),m=0|Bt(0|m,0|g,1,0),g=0|x(),d=0|r[(t=h=i+(p<<3)|0)>>2],t=0|r[t+4>>2]}while(!(!(0|d)&!(0|t)))}if(!(0|_)&!(0|b)){h=c,d=u;break}ke(_,b,a),0|lt(e,U,a)&&(m=0|Bt(0|c,0|u,1,0),u=0|x(),r[(g=h)>>2]=_,r[g+4>>2]=b,r[(c=R+(c<<3)|0)>>2]=_,r[c+4>>2]=b,c=m),h=c,d=u}}while(0);if((v=v+1|0)>>>0>=7)break;c=h,u=d}if(y=0|Bt(0|y,0|C,1,0),C=0|x(),w=0|Bt(0|w,0|E,1,0),E=0|x(),c=0|r[(u=o)>>2],!((0|E)<(0|(u=0|r[u+4>>2]))|(0|E)==(0|u)&w>>>0<c>>>0))break;c=h,u=d}if((0|u)>0|!(0|u)&c>>>0>0){c=0,u=0;do{r[(E=M+(c<<3)|0)>>2]=0,r[E+4>>2]=0,c=0|Bt(0|c,0|u,1,0),u=0|x(),w=0|r[(E=o)+4>>2]}while((0|u)<(0|w)|((0|u)==(0|w)?c>>>0<(0|r[E>>2])>>>0:0))}if(r[(E=o)>>2]=h,r[E+4>>2]=d,!((0|d)>0|!(0|d)&h>>>0>0))break t;v=n,y=P,C=F,w=S,E=R,n=T,P=A,S=B,T=v,A=y,F=L,L=C,B=w,R=M,M=E}St(B),St(L),St(U),A=1;break e}A=h}while(0);St(U),St(n),St(A),A=0}}while(0);return I=l,0|(U=A)}}return St(U),I=l,0|(U=A)},_polygonToCellsExperimental:function(e,t,n,i,o,s){i|=0,o|=0,s|=0;var a,l,A,c=0,u=0,h=0,d=0,f=0,p=0,g=0,m=0;A=I,I=I+160|0,u=A+64|0,f=A+112|0,m=A,tt(d=A+80|0,e|=0,t|=0,n|=0),Ve(u,0|r[(h=d)>>2],0|r[h+4>>2],t),a=0|r[(h=u)>>2],h=0|r[h+4>>2],c=0|r[d+8>>2],r[(p=f+4|0)>>2]=r[d>>2],r[p+4>>2]=r[d+4>>2],r[p+8>>2]=r[d+8>>2],r[p+12>>2]=r[d+12>>2],r[p+16>>2]=r[d+16>>2],r[p+20>>2]=r[d+20>>2],r[p+24>>2]=r[d+24>>2],r[p+28>>2]=r[d+28>>2],r[(p=m)>>2]=a,r[p+4>>2]=h,r[(p=m+8|0)>>2]=c,t=f,n=(e=m+12|0)+36|0;do{r[e>>2]=r[t>>2],e=e+4|0,t=t+4|0}while((0|e)<(0|n));if(r[(f=m+48|0)>>2]=r[u>>2],r[f+4>>2]=r[u+4>>2],r[f+8>>2]=r[u+8>>2],r[f+12>>2]=r[u+12>>2],!(0|a)&!(0|h))return I=A,0|(m=c);n=m+16|0,l=m+24|0,d=m+28|0,c=0,u=0,t=a,e=h;do{if(!((0|c)<(0|o)|(0|c)==(0|o)&u>>>0<i>>>0)){g=4;break}if(h=u,u=0|Bt(0|u,0|c,1,0),c=0|x(),r[(h=s+(h<<3)|0)>>2]=t,r[h+4>>2]=e,He(f),!(0|(t=0|r[(e=f)>>2]))&!(0|(e=0|r[e+4>>2]))){if(nt(n),!(0|(e=0|r[(t=n)>>2]))&!(0|(t=0|r[t+4>>2]))){g=10;break}ze(e,t,0|r[d>>2],f),t=0|r[(e=f)>>2],e=0|r[e+4>>2]}r[(h=m)>>2]=t,r[h+4>>2]=e}while(!(!(0|t)&!(0|e)));return 4==(0|g)?(0|(t=0|r[(e=m+40|0)>>2])&&St(t),r[(g=m+16|0)>>2]=0,r[g+4>>2]=0,r[l>>2]=0,r[m+36>>2]=0,r[d>>2]=-1,r[m+32>>2]=0,r[e>>2]=0,ze(0,0,0,f),r[m>>2]=0,r[m+4>>2]=0,r[p>>2]=0,I=A,0|(m=14)):(10==(0|g)&&(r[m>>2]=0,r[m+4>>2]=0,r[p>>2]=r[l>>2]),m=0|r[p>>2],I=A,0|m)},_readInt64AsDoubleFromPointer:function(e){return+(+((0|r[(e|=0)>>2])>>>0)+4294967296*+(0|r[e+4>>2]))},_res0CellCount:function(){return 122},_reverseDirectedEdge:Ae,_round:Jt,_sbrk:qt,_sizeOfCellBoundary:function(){return 168},_sizeOfCoordIJ:function(){return 8},_sizeOfGeoLoop:function(){return 8},_sizeOfGeoPolygon:function(){return 16},_sizeOfH3Index:function(){return 8},_sizeOfLatLng:function(){return 16},_sizeOfLinkedGeoPolygon:function(){return 12},_uncompactCells:function(e,t,n,i,o,s,a){e|=0,i|=0,o|=0,s|=0;var l,A=0,c=0,u=0,h=0,d=0,f=0,p=0,g=0;if(l=I,I=I+16|0,g=l,!((0|(n|=0))>0|!(0|n)&(t|=0)>>>0>0))return I=l,0|(g=0);if((0|(a|=0))>=16)return I=l,0|(g=12);f=0,p=0,d=0,A=0;e:for(;;){if(h=0|Gt(0|(c=0|r[(u=e+(f<<3)|0)>>2]),0|(u=0|r[u+4>>2]),52),x(),(15&h)>(0|a)){A=12,c=11;break}if(Ve(g,c,u,a),!(0|(u=0|r[(h=g)>>2]))&!(0|(h=0|r[h+4>>2])))c=d;else{c=d;do{if(!((0|A)<(0|s)|(0|A)==(0|s)&c>>>0<o>>>0)){c=10;break e}r[(d=i+(c<<3)|0)>>2]=u,r[d+4>>2]=h,c=0|Bt(0|c,0|A,1,0),A=0|x(),He(g),u=0|r[(d=g)>>2],h=0|r[d+4>>2]}while(!(!(0|u)&!(0|h)))}if(f=0|Bt(0|f,0|p,1,0),!((0|(p=0|x()))<(0|n)|(0|p)==(0|n)&f>>>0<t>>>0)){A=0,c=11;break}d=c}return 10==(0|c)?(I=l,0|(g=14)):11==(0|c)?(I=l,0|A):0},_uncompactCellsSize:function(e,t,n,i,o){e|=0,t|=0,n|=0,i|=0,o|=0;var s,a,l=0,A=0,c=0,u=0,h=0,d=0;a=I,I=I+16|0,s=a;e:do{if((0|n)>0|!(0|n)&t>>>0>0){for(h=0,A=0,l=0,d=0;;){if(!(!(0|(c=0|r[(u=e+(h<<3)|0)>>2]))&!(0|(u=0|r[u+4>>2]))||(u=!(0|Ee(c,u,i,s)),A=0|Bt(0|r[(c=s)>>2],0|r[c+4>>2],0|A,0|l),l=0|x(),u))){l=12;break}if(h=0|Bt(0|h,0|d,1,0),!((0|(d=0|x()))<(0|n)|(0|d)==(0|n)&h>>>0<t>>>0))break e}return I=a,0|l}A=0,l=0}while(0);return r[o>>2]=A,r[o+4>>2]=l,I=a,0|(o=0)},_vertexToLatLng:function(e,t,n){n|=0;var i,o,s,a,l=0,A=0;return a=I,I=I+192|0,o=a,s=a+168|0,l=0|Gt(0|(e|=0),0|(t|=0),56),x(),l&=7,0|(i=0|Ne(e,A=-2130706433&t|134217728,s))?(I=a,0|(A=i)):(t=0|Gt(0|e,0|t,52),x(),t&=15,0|xe(e,A)?de(s,t,l,1,o):me(s,t,l,1,o),A=o+8|0,r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],r[n+12>>2]=r[A+12>>2],I=a,0|(A=0))},dynCall_iii:function(e,t,n){return t|=0,n|=0,0|Yt[3&(e|=0)](0|t,0|n)},establishStackSpace:function(e,t){I=e|=0},stackAlloc:function(e){var t;return t=I,I=(I=I+(e|=0)|0)+15&-16,0|t},stackRestore:function(e){I=e|=0},stackSave:function(){return 0|I}}}({Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},$,p),te=(n.___divdi3=ee.___divdi3,n.___muldi3=ee.___muldi3,n.___remdi3=ee.___remdi3,n.___uremdi3=ee.___uremdi3,n._areNeighborCells=ee._areNeighborCells,n._bitshift64Ashr=ee._bitshift64Ashr,n._bitshift64Lshr=ee._bitshift64Lshr,n._bitshift64Shl=ee._bitshift64Shl,n._calloc=ee._calloc,n._cellAreaKm2=ee._cellAreaKm2,n._cellAreaM2=ee._cellAreaM2,n._cellAreaRads2=ee._cellAreaRads2,n._cellToBoundary=ee._cellToBoundary,n._cellToCenterChild=ee._cellToCenterChild,n._cellToChildPos=ee._cellToChildPos,n._cellToChildren=ee._cellToChildren,n._cellToChildrenSize=ee._cellToChildrenSize,n._cellToLatLng=ee._cellToLatLng,n._cellToLocalIj=ee._cellToLocalIj,n._cellToParent=ee._cellToParent,n._cellToVertex=ee._cellToVertex,n._cellToVertexes=ee._cellToVertexes,n._cellsToDirectedEdge=ee._cellsToDirectedEdge,n._cellsToLinkedMultiPolygon=ee._cellsToLinkedMultiPolygon,n._childPosToCell=ee._childPosToCell,n._compactCells=ee._compactCells,n._constructCell=ee._constructCell,n._destroyLinkedMultiPolygon=ee._destroyLinkedMultiPolygon,n._directedEdgeToBoundary=ee._directedEdgeToBoundary,n._directedEdgeToCells=ee._directedEdgeToCells,n._edgeLengthKm=ee._edgeLengthKm,n._edgeLengthM=ee._edgeLengthM,n._edgeLengthRads=ee._edgeLengthRads,n._emscripten_replace_memory=ee._emscripten_replace_memory),ne=(n._free=ee._free,n._getBaseCellNumber=ee._getBaseCellNumber,n._getDirectedEdgeDestination=ee._getDirectedEdgeDestination,n._getDirectedEdgeOrigin=ee._getDirectedEdgeOrigin,n._getHexagonAreaAvgKm2=ee._getHexagonAreaAvgKm2,n._getHexagonAreaAvgM2=ee._getHexagonAreaAvgM2,n._getHexagonEdgeLengthAvgKm=ee._getHexagonEdgeLengthAvgKm,n._getHexagonEdgeLengthAvgM=ee._getHexagonEdgeLengthAvgM,n._getIcosahedronFaces=ee._getIcosahedronFaces,n._getIndexDigit=ee._getIndexDigit,n._getNumCells=ee._getNumCells,n._getPentagons=ee._getPentagons,n._getRes0Cells=ee._getRes0Cells,n._getResolution=ee._getResolution,n._greatCircleDistanceKm=ee._greatCircleDistanceKm,n._greatCircleDistanceM=ee._greatCircleDistanceM,n._greatCircleDistanceRads=ee._greatCircleDistanceRads,n._gridDisk=ee._gridDisk,n._gridDiskDistances=ee._gridDiskDistances,n._gridDistance=ee._gridDistance,n._gridPathCells=ee._gridPathCells,n._gridPathCellsSize=ee._gridPathCellsSize,n._gridRing=ee._gridRing,n._gridRingUnsafe=ee._gridRingUnsafe,n._i64Add=ee._i64Add,n._i64Subtract=ee._i64Subtract,n._isPentagon=ee._isPentagon,n._isResClassIII=ee._isResClassIII,n._isValidCell=ee._isValidCell,n._isValidDirectedEdge=ee._isValidDirectedEdge,n._isValidIndex=ee._isValidIndex,n._isValidVertex=ee._isValidVertex,n._latLngToCell=ee._latLngToCell,n._llvm_ctlz_i64=ee._llvm_ctlz_i64,n._llvm_maxnum_f64=ee._llvm_maxnum_f64,n._llvm_minnum_f64=ee._llvm_minnum_f64,n._llvm_round_f64=ee._llvm_round_f64,n._localIjToCell=ee._localIjToCell,n._malloc=ee._malloc,n._maxFaceCount=ee._maxFaceCount,n._maxGridDiskSize=ee._maxGridDiskSize,n._maxPolygonToCellsSize=ee._maxPolygonToCellsSize,n._maxPolygonToCellsSizeExperimental=ee._maxPolygonToCellsSizeExperimental,n._memcpy=ee._memcpy,n._memmove=ee._memmove,n._memset=ee._memset,n._originToDirectedEdges=ee._originToDirectedEdges,n._pentagonCount=ee._pentagonCount,n._polygonToCells=ee._polygonToCells,n._polygonToCellsExperimental=ee._polygonToCellsExperimental,n._readInt64AsDoubleFromPointer=ee._readInt64AsDoubleFromPointer,n._res0CellCount=ee._res0CellCount,n._reverseDirectedEdge=ee._reverseDirectedEdge,n._round=ee._round,n._sbrk=ee._sbrk,n._sizeOfCellBoundary=ee._sizeOfCellBoundary,n._sizeOfCoordIJ=ee._sizeOfCoordIJ,n._sizeOfGeoLoop=ee._sizeOfGeoLoop,n._sizeOfGeoPolygon=ee._sizeOfGeoPolygon,n._sizeOfH3Index=ee._sizeOfH3Index,n._sizeOfLatLng=ee._sizeOfLatLng,n._sizeOfLinkedGeoPolygon=ee._sizeOfLinkedGeoPolygon,n._uncompactCells=ee._uncompactCells,n._uncompactCellsSize=ee._uncompactCellsSize,n._vertexToLatLng=ee._vertexToLatLng,n.establishStackSpace=ee.establishStackSpace,n.stackAlloc=ee.stackAlloc),ie=n.stackRestore=ee.stackRestore,re=n.stackSave=ee.stackSave;n.dynCall_iii=ee.dynCall_iii;if(n.asm=ee,n.cwrap=function(e,t,n,i){var r=(n=n||[]).every(function(e){return"number"===e});return"string"!==t&&r&&!i?u(e):function(){return h(e,t,n,arguments)}},n.setValue=function(e,t,n,i){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":g[e|0]=t;break;case"i16":_[e>>1]=t;break;case"i32":b[e>>2]=t;break;case"i64":G=[t>>>0,(U=t,+I(U)>=1?U>0?(0|D(+F(U/4294967296),4294967295))>>>0:~~+L((U-+(~~U>>>0))/4294967296)>>>0:0)],b[e>>2]=G[0],b[e+4>>2]=G[1];break;case"float":v[e>>2]=t;break;case"double":y[e>>3]=t;break;default:ce("invalid type for setValue: "+n)}},n.getValue=function(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return g[e|0];case"i16":return _[e>>1];case"i32":case"i64":return b[e>>2];case"float":return v[e>>2];case"double":return y[e>>3];default:ce("invalid type for getValue: "+t)}return null},V){H(V)||(Y=V,V=n.locateFile?n.locateFile(Y,s):s+Y),O++,n.monitorRunDependencies&&n.monitorRunDependencies(O);var oe=function(e){e.byteLength&&(e=new Uint8Array(e)),m.set(e,8),n.memoryInitializerRequest&&delete n.memoryInitializerRequest.response,function(){if(O--,n.monitorRunDependencies&&n.monitorRunDependencies(O),0==O&&(null!==N&&(clearInterval(N),N=null),k)){var e=k;k=null,e()}}()},se=function(){r(V,oe,function(){throw"could not load memory initializer "+V})},ae=q(V);if(ae)oe(ae.buffer);else if(n.memoryInitializerRequest){var le=function(){var e=n.memoryInitializerRequest,t=e.response;if(200!==e.status&&0!==e.status){var i=q(n.memoryInitializerRequestURL);if(!i)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+e.status+", retrying "+V),void se();t=i.buffer}oe(t)};n.memoryInitializerRequest.response?setTimeout(le,0):n.memoryInitializerRequest.addEventListener("load",le)}else se()}function Ae(e){function t(){Z||(Z=!0,c||(x(S),x(P),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)B(n.postRun.shift());x(M)}()))}e=e||o,O>0||(!function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)R(n.preRun.shift());x(T)}(),O>0||(n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),t()},1)):t()))}function ce(e){throw n.onAbort&&n.onAbort(e),a(e+=""),l(e),c=!0,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(k=function e(){Z||Ae(),Z||(k=e)},n.run=Ae,n.abort=ce,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Ae(),e}("object"==typeof Sg?Sg:{}),Pg="number",Mg={0:"Success",1:"The operation failed but a more specific error is not available",2:"Argument was outside of acceptable range",3:"Latitude or longitude arguments were outside of acceptable range",4:"Resolution argument was outside of acceptable range",5:"Cell argument was not valid",6:"Directed edge argument was not valid",7:"Undirected edge argument was not valid",8:"Vertex argument was not valid",9:"Pentagon distortion was encountered",10:"Duplicate input",11:"Cell arguments were not neighbors",12:"Cell arguments had incompatible resolutions",13:"Memory allocation failed",14:"Bounds of provided memory were insufficient",15:"Mode or flags argument was not valid",16:"Index argument was not valid",17:"Base cell number was outside of acceptable range",18:"Child indexing digits invalid",19:"Child indexing digits refer to a deleted subsequence"},Rg=1e3,Bg={1e3:"Unknown unit",1001:"Array length out of bounds",1002:"Got unexpected null value for H3 index"};function Ig(e,t,n){var i=n&&"value"in n,r=new Error((e[t]||"Unknown error")+" (code: "+t+(i?", value: "+n.value:"")+")");return r.code=t,r}function Lg(e,t){return Ig(Mg,e,2===arguments.length?{value:t}:{})}function Fg(e,t){return Ig(Bg,e,2===arguments.length?{value:t}:{})}function Dg(e){if(0!==e)throw Lg(e)}var Og={};[["sizeOfH3Index",Pg],["sizeOfLatLng",Pg],["sizeOfCellBoundary",Pg],["sizeOfGeoLoop",Pg],["sizeOfGeoPolygon",Pg],["sizeOfLinkedGeoPolygon",Pg],["sizeOfCoordIJ",Pg],["readInt64AsDoubleFromPointer",Pg],["isValidCell",Pg,[Pg,Pg]],["isValidIndex",Pg,[Pg,Pg]],["latLngToCell",Pg,[Pg,Pg,Pg,Pg]],["cellToLatLng",Pg,[Pg,Pg,Pg]],["cellToBoundary",Pg,[Pg,Pg,Pg]],["maxGridDiskSize",Pg,[Pg,Pg]],["gridDisk",Pg,[Pg,Pg,Pg,Pg]],["gridDiskDistances",Pg,[Pg,Pg,Pg,Pg,Pg]],["gridRing",Pg,[Pg,Pg,Pg,Pg]],["gridRingUnsafe",Pg,[Pg,Pg,Pg,Pg]],["maxPolygonToCellsSize",Pg,[Pg,Pg,Pg,Pg]],["polygonToCells",Pg,[Pg,Pg,Pg,Pg]],["maxPolygonToCellsSizeExperimental",Pg,[Pg,Pg,Pg,Pg]],["polygonToCellsExperimental",Pg,[Pg,Pg,Pg,Pg,Pg,Pg]],["cellsToLinkedMultiPolygon",Pg,[Pg,Pg,Pg]],["destroyLinkedMultiPolygon",null,[Pg]],["compactCells",Pg,[Pg,Pg,Pg,Pg]],["uncompactCells",Pg,[Pg,Pg,Pg,Pg,Pg,Pg]],["uncompactCellsSize",Pg,[Pg,Pg,Pg,Pg,Pg]],["isPentagon",Pg,[Pg,Pg]],["isResClassIII",Pg,[Pg,Pg]],["getBaseCellNumber",Pg,[Pg,Pg]],["getResolution",Pg,[Pg,Pg]],["getIndexDigit",Pg,[Pg,Pg,Pg]],["constructCell",Pg,[Pg,Pg,Pg,Pg]],["maxFaceCount",Pg,[Pg,Pg,Pg]],["getIcosahedronFaces",Pg,[Pg,Pg,Pg]],["cellToParent",Pg,[Pg,Pg,Pg,Pg]],["cellToChildren",Pg,[Pg,Pg,Pg,Pg]],["cellToCenterChild",Pg,[Pg,Pg,Pg,Pg]],["cellToChildrenSize",Pg,[Pg,Pg,Pg,Pg]],["cellToChildPos",Pg,[Pg,Pg,Pg,Pg]],["childPosToCell",Pg,[Pg,Pg,Pg,Pg,Pg,Pg]],["areNeighborCells",Pg,[Pg,Pg,Pg,Pg,Pg]],["cellsToDirectedEdge",Pg,[Pg,Pg,Pg,Pg,Pg]],["getDirectedEdgeOrigin",Pg,[Pg,Pg,Pg]],["getDirectedEdgeDestination",Pg,[Pg,Pg,Pg]],["isValidDirectedEdge",Pg,[Pg,Pg]],["directedEdgeToCells",Pg,[Pg,Pg,Pg]],["originToDirectedEdges",Pg,[Pg,Pg,Pg]],["directedEdgeToBoundary",Pg,[Pg,Pg,Pg]],["reverseDirectedEdge",Pg,[Pg,Pg,Pg]],["gridDistance",Pg,[Pg,Pg,Pg,Pg,Pg]],["gridPathCells",Pg,[Pg,Pg,Pg,Pg,Pg]],["gridPathCellsSize",Pg,[Pg,Pg,Pg,Pg,Pg]],["cellToLocalIj",Pg,[Pg,Pg,Pg,Pg,Pg,Pg]],["localIjToCell",Pg,[Pg,Pg,Pg,Pg,Pg]],["getHexagonAreaAvgM2",Pg,[Pg,Pg]],["getHexagonAreaAvgKm2",Pg,[Pg,Pg]],["getHexagonEdgeLengthAvgM",Pg,[Pg,Pg]],["getHexagonEdgeLengthAvgKm",Pg,[Pg,Pg]],["greatCircleDistanceM",Pg,[Pg,Pg]],["greatCircleDistanceKm",Pg,[Pg,Pg]],["greatCircleDistanceRads",Pg,[Pg,Pg]],["cellAreaM2",Pg,[Pg,Pg,Pg]],["cellAreaKm2",Pg,[Pg,Pg,Pg]],["cellAreaRads2",Pg,[Pg,Pg,Pg]],["edgeLengthM",Pg,[Pg,Pg,Pg]],["edgeLengthKm",Pg,[Pg,Pg,Pg]],["edgeLengthRads",Pg,[Pg,Pg,Pg]],["getNumCells",Pg,[Pg,Pg]],["getRes0Cells",Pg,[Pg]],["res0CellCount",Pg],["getPentagons",Pg,[Pg,Pg]],["pentagonCount",Pg],["cellToVertex",Pg,[Pg,Pg,Pg,Pg]],["cellToVertexes",Pg,[Pg,Pg,Pg]],["vertexToLatLng",Pg,[Pg,Pg,Pg]],["isValidVertex",Pg,[Pg,Pg]]].forEach(function(e){Og[e[0]]=Sg.cwrap.apply(Sg,e)});var Ng=16,kg=Og.sizeOfH3Index(),Ug=Og.sizeOfLatLng(),Gg=Og.sizeOfCellBoundary(),Vg=(Og.sizeOfGeoPolygon(),Og.sizeOfGeoLoop(),Og.sizeOfLinkedGeoPolygon()),zg=(Og.sizeOfCoordIJ(),"m"),Hg="km";function Wg(e){if("number"!=typeof e||e<0||e>15||Math.floor(e)!==e)throw Lg(4,e);return e}function jg(e){if(!e)throw Fg(1002);return e}Math.pow(2,32),Math.pow(2,31);var Qg=/[^0-9a-fA-F]/;function Xg(e){if(Array.isArray(e)&&2===e.length&&Number.isInteger(e[0])&&Number.isInteger(e[1]))return e;if("string"!=typeof e||Qg.test(e))return[0,0];var t=parseInt(e.substring(0,e.length-8),Ng);return[parseInt(e.substring(e.length-8),Ng),t]}function Kg(e){if(e>=0)return e.toString(Ng);var t=Jg(8,(e&=2147483647).toString(Ng));return t=(parseInt(t[0],Ng)+8).toString(Ng)+t.substring(1)}function Jg(e,t){for(var n=e-t.length,i="",r=0;r<n;r++)i+="0";return i+=t}Math.pow(2,32);function qg(e,t){void 0===t&&(t=0);var n=Sg.getValue(e+kg*t,"i32"),i=Sg.getValue(e+kg*t+4,"i32");return i?function(e,t){return Kg(t)+Jg(8,Kg(e))}(n,i):null}function Yg(e,t){return void 0===t&&(t=0),Sg.getValue(e+8*t,"double")}function Zg(e){return Og.readInt64AsDoubleFromPointer(e)}function $g(e,t,n){Sg.HEAPU32.set(Xg(e),t/4+2*n)}function em(e,t){for(var n=t.length,i=0;i<n;i++)$g(t[i],e,i)}function tm(e){return 180*Sg.getValue(e,"double")/Math.PI}function nm(e){return[tm(e),tm(e+8)]}function im(e){return[tm(e+8),tm(e)]}function rm(e,t,n){for(var i=Sg.getValue(e,"i32"),r=e+8,o=[],s=t?im:nm,a=0;a<2*i;a+=2)o.push(s(r+8*a));return n&&o.push(o[0]),o}function om(e){var t=Xg(e),n=t[0],i=t[1];return Boolean(Og.isPentagon(n,i))}function sm(e){var t=Xg(e),n=t[0],i=t[1];return Og.isValidCell(n,i)?Og.getResolution(n,i):-1}function am(e){var t=Sg._malloc(Ug),n=Xg(e),i=n[0],r=n[1];try{return Dg(Og.cellToLatLng(i,r,t)),nm(t)}finally{Sg._free(t)}}function lm(e,t){if(!e||!e.length)return[];var n=e.length,i=Sg._calloc(n,kg);em(i,e);var r=Sg._calloc(Vg);try{return Dg(Og.cellsToLinkedMultiPolygon(i,n,r)),function(e,t){for(var n,i,r,o,s=[],a=t?im:nm;e;){for(s.push(n=[]),i=Sg.getValue(e,"i8*");i;){for(n.push(r=[]),o=Sg.getValue(i,"i8*");o;)r.push(a(o)),o=Sg.getValue(o+16,"i8*");t&&r.push(r[0]),i=Sg.getValue(i+8,"i8*")}e=Sg.getValue(e+8,"i8*")}return s}(r,t)}finally{Og.destroyLinkedMultiPolygon(r),Sg._free(r),Sg._free(i)}}function Am(e,t){Wg(e);var n=Sg._malloc(8);try{switch(t){case zg:Dg(Og.getHexagonEdgeLengthAvgM(e,n));break;case Hg:Dg(Og.getHexagonEdgeLengthAvgKm(e,n));break;default:throw Fg(Rg,t)}return Yg(n)}finally{Sg._free(n)}}function cm(e){return e*Math.PI/180}function um(e,t){t=void 0===t?e[0][0]:t;for(const n of e){const e=n[0]-t;e>180?n[0]-=360:e<-180&&(n[0]+=360)}}function hm(e,t,n){const i=e(t,n),[r,o]=am(i);return[o,r]}function dm(e,t=1){const n=function(e,t){var n=Sg._malloc(Gg),i=Xg(e),r=i[0],o=i[1];try{return Dg(Og.cellToBoundary(r,o,n)),rm(n,t,t)}finally{Sg._free(n)}}(e,!0);return 1!==t?function(e,t,n){const[i,r]=am(e),o=t.length;um(t,r);const s=t[0]===t[o-1]?o-1:o;for(let e=0;e<s;e++)t[e][0]=(0,cn.Cc)(r,t[e][0],n),t[e][1]=(0,cn.Cc)(i,t[e][1],n)}(e,n,t):um(n),n}function fm(e){const t=new Float64Array(2*e.length);let n=0;for(const i of e)t[n++]=i[0],t[n++]=i[1];return t}class A5Layer extends su{indexToBounds(){const{data:e,getPentagon:t}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(e,n)=>{const i=t(e,n);return fm(Eg("string"==typeof i?BigInt(`0x${i}`):i,{closedRing:!0,segments:"auto"}))}}}}A5Layer.layerName="A5Layer",A5Layer.defaultProps={getPentagon:{type:"accessor",value:e=>e.pentagon}};const pm=A5Layer;class GreatCircleLayer extends ms{}GreatCircleLayer.layerName="GreatCircleLayer",GreatCircleLayer.defaultProps={getHeight:{type:"accessor",value:0},greatCircle:!0};const gm=GreatCircleLayer;var mm=n(81456);const _m=180/Math.PI;function bm(e,t,n){const i=1<<t;return[(e[0]+n[0])/i,(e[1]+n[1])/i]}function vm(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function ym(e){return[vm(e[0]),vm(e[1])]}function Cm(e,[t,n]){switch(e){case 0:return[1,t,n];case 1:return[-t,1,n];case 2:return[-t,-n,1];case 3:return[-1,-n,-t];case 4:return[n,-1,-t];case 5:return[n,t,-1];default:throw new Error("Invalid face")}}function wm([e,t,n]){const i=Math.atan2(n,Math.sqrt(e*e+t*t));return[Math.atan2(t,e)*_m,i*_m]}function Em(e,t,n,i){if(0===i){1===n&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);const i=t[0];t[0]=t[1],t[1]=i}}function xm(e){if("string"==typeof e){if(e.indexOf("/")>0)return e;e=function(e){const t=e.padEnd(16,"0");return mm.fromString(t,16)}(e)}return function(e){let t=mm.fromString(e,!0,10).toString(2);for(;t.length<64;)t="0"+t;const n=t.lastIndexOf("1"),i=t.substring(0,3),r=t.substring(3,n),o=r.length/2,s=mm.fromString(i,!0,2).toString(10);let a=mm.fromString(r,!0,2).toString(4);for(;a.length<o;)a="0"+a;return`${s}/${a}`}(e.toString())}function Tm(e){const t=function(e){const t=e.split("/"),n=parseInt(t[0],10),i=t[1],r=i.length,o=[0,0];let s;for(let e=r-1;e>=0;e--){s=r-e;const t=i[e];let n=0,a=0;"1"===t?a=1:"2"===t?(n=1,a=1):"3"===t&&(n=1);const l=Math.pow(2,s-1);Em(l,o,n,a),o[0]+=l*n,o[1]+=l*a}if(n%2==1){const e=o[0];o[0]=o[1],o[1]=e}return{face:n,ij:o,level:s}}(xm(e));return function({face:e,ij:t,level:n}){const i=[[0,0],[0,1],[1,1],[1,0],[0,0]],r=Math.max(1,Math.ceil(100*Math.pow(2,-n))),o=new Float64Array(4*r*2+2);let s=0,a=0;for(let l=0;l<4;l++){const A=i[l].slice(0),c=i[l+1],u=(c[0]-A[0])/r,h=(c[1]-A[1])/r;for(let i=0;i<r;i++){A[0]+=u,A[1]+=h;const i=wm(Cm(e,ym(bm(t,n,A))));Math.abs(i[1])>89.999&&(i[0]=a);const r=i[0]-a;i[0]+=r>180?-360:r<-180?360:0,o[s++]=i[0],o[s++]=i[1],a=i[0]}}return o[s++]=o[0],o[s++]=o[1],o}(t)}class S2Layer extends su{indexToBounds(){const{data:e,getS2Token:t}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(e,n)=>Tm(t(e,n))}}}S2Layer.layerName="S2Layer",S2Layer.defaultProps={getS2Token:{type:"accessor",value:e=>e.token}};const Sm=S2Layer;function Pm(e,t=1){const[n,i]=function(e,t){let n=0,i=0,r=1<<e.length;const o=r/512;for(let t=0;t<e.length;t++){r>>=1;const o=parseInt(e[t]);o%2&&(n|=r),o>1&&(i|=r)}return[[n/o,512-i/o],[(n+t)/o,512-(i+t)/o]]}(e,t),[r,o]=(0,_n.iV)(n),[s,a]=(0,_n.iV)(i);return[s,o,s,a,r,a,r,o,s,o]}class QuadkeyLayer extends su{indexToBounds(){const{data:e,extruded:t,getQuadkey:n}=this.props,i=t?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(e,t)=>Pm(n(e,t),i),updateTriggers:{getPolygon:i}}}}QuadkeyLayer.layerName="QuadkeyLayer",QuadkeyLayer.defaultProps={getQuadkey:{type:"accessor",value:e=>e.quadkey}};const Mm=QuadkeyLayer;const Rm={...Al.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:e=>e.hexagon},extruded:!0};class H3HexagonLayer extends fo{initializeState(){H3HexagonLayer._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:t}){if(!0!==e.highPrecision&&(t.dataChanged||t.updateTriggersChanged&&t.updateTriggersChanged.getHexagon)){const e=this._calculateH3DataProps();this.setState(e)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,t=!1,n=!1;const{iterable:i,objectInfo:r}=or(this.props.data);for(const o of i){r.index++;const i=this.props.getHexagon(o,r),s=sm(i);if(e<0){if(e=s,!this.props.highPrecision)break}else if(e!==s){n=!0;break}if(om(i)){t=!0;break}}return{resolution:e,edgeLengthKM:e>=0?Am(e,"km"):0,hasMultipleRes:n,hasPentagon:t}}_shouldUseHighPrecision(){if("auto"===this.props.highPrecision){const{resolution:e,hasPentagon:t,hasMultipleRes:n}=this.state,{viewport:i}=this.context;return Boolean(i?.resolution)||n||t||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;const{resolution:t,edgeLengthKM:n,centerHex:i}=this.state;if(t<0)return;const r=this.props.centerHexagon||function(e,t,n){var i=Sg._malloc(Ug);Sg.HEAPF64.set([e,t].map(cm),i/8);var r=Sg._malloc(kg);try{return Dg(Og.latLngToCell(i,n,r)),jg(qg(r))}finally{Sg._free(r),Sg._free(i)}}(e.latitude,e.longitude,t);if(i===r)return;if(i)try{if(function(e,t){var n=Xg(e),i=n[0],r=n[1],o=Xg(t),s=o[0],a=o[1],l=Sg._malloc(8);try{return Dg(Og.gridDistance(i,r,s,a,l)),Zg(l)}finally{Sg._free(l)}}(i,r)*n<10)return}catch{}const{unitsPerMeter:o}=e.distanceScales;let s=dm(r);const[a,l]=am(r),[A,c]=e.projectFlat([l,a]);s=s.map(t=>{const n=e.projectFlat(t);return[(n[0]-A)/o[0],(n[1]-c)/o[1]]}),this.setState({centerHex:r,vertices:s})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:e,material:t,coverage:n,extruded:i,wireframe:r,stroked:o,filled:s,lineWidthUnits:a,lineWidthScale:l,lineWidthMinPixels:A,lineWidthMaxPixels:c,getFillColor:u,getElevation:h,getLineColor:d,getLineWidth:f,transitions:p,updateTriggers:g}=this.props;return{elevationScale:e,extruded:i,coverage:n,wireframe:r,stroked:o,filled:s,lineWidthUnits:a,lineWidthScale:l,lineWidthMinPixels:A,lineWidthMaxPixels:c,material:t,getElevation:h,getFillColor:u,getLineColor:d,getLineWidth:f,transitions:p,updateTriggers:{getFillColor:g.getFillColor,getElevation:g.getElevation,getLineColor:g.getLineColor,getLineWidth:g.getLineWidth}}}_renderPolygonLayer(){const{data:e,getHexagon:t,updateTriggers:n,coverage:i}=this.props,r=this.getSubLayerClass("hexagon-cell-hifi",Al),o=this._getForwardProps();return o.updateTriggers.getPolygon=function(e,t){let n;return n=null==e?t:"object"==typeof e?{...e,coverage:t}:{getHexagon:e,coverage:t},n}(n.getHexagon,i),new r(o,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:o.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(e,n)=>fm(dm(t(e,n),i))})}_renderColumnLayer(){const{data:e,getHexagon:t,updateTriggers:n}=this.props,i=this.getSubLayerClass("hexagon-cell",da),r=this._getForwardProps();return r.updateTriggers.getPosition=n.getHexagon,new i(r,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:r.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:hm.bind(null,t)})}}H3HexagonLayer.defaultProps=Rm,H3HexagonLayer.layerName="H3HexagonLayer",H3HexagonLayer._checkH3Lib=()=>{};const Bm=H3HexagonLayer;class H3ClusterLayer extends su{initializeState(){Bm._checkH3Lib()}updateState({props:e,changeFlags:t}){if(t.dataChanged||t.updateTriggersChanged&&t.updateTriggersChanged.getHexagons){const{data:t,getHexagons:n}=e,i=[],{iterable:r,objectInfo:o}=or(t);for(const e of r){o.index++;const t=lm(n(e,o),!0);for(const n of t){for(const e of n)um(e);i.push(this.getSubLayerRow({polygon:n},e,o.index))}}this.setState({polygons:i})}}indexToBounds(){const{getElevation:e,getFillColor:t,getLineColor:n,getLineWidth:i}=this.props;return{data:this.state.polygons,getPolygon:e=>e.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(t),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(i)}}}H3ClusterLayer.layerName="H3ClusterLayer",H3ClusterLayer.defaultProps={getHexagons:{type:"accessor",value:e=>e.hexagons}};const Im=H3ClusterLayer,Lm={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0};class RequestScheduler{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...Lm,...e},this.stats=new Ke.A({id:this.props.id}),this.stats.get("Queued Requests"),this.stats.get("Active Requests"),this.stats.get("Cancelled Requests"),this.stats.get("Queued Requests Ever"),this.stats.get("Active Requests Ever")}setProps(e){void 0!==e.throttleRequests&&(this.props.throttleRequests=e.throttleRequests),void 0!==e.maxRequests&&(this.props.maxRequests=e.maxRequests),void 0!==e.debounceTime&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);const n={handle:e,priority:0,getPriority:t},i=new Promise(e=>(n.resolve=e,n));return this.requestQueue.push(n),this.requestMap.set(e,i),this._issueNewRequests(),i}_issueRequest(e){const{handle:t,resolve:n}=e;let i=!1;const r=()=>{i||(i=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:r}):Promise.resolve({done:r})}_issueNewRequests(){null!==this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){null!==this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=null;const e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(0!==e){this._updateAllRequests();for(let t=0;t<e;++t){const e=this.requestQueue.shift();e&&this._issueRequest(e)}}}_updateAllRequests(){const e=this.requestQueue;for(let t=0;t<e.length;++t){const n=e[t];this._updateRequest(n)||(e.splice(t,1),this.requestMap.delete(n.handle),t--)}e.sort((e,t)=>e.priority-t.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),!(e.priority<0)||(e.resolve(null),!1)}}class Tile2DHeader{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,this.boundingBox="west"in e?[[e.west,e.south],[e.east,e.north]]:[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){const e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:t,onLoad:n,onError:i}){const{index:r,id:o,bbox:s,userData:a,zoom:l}=this,A=this._loaderId;this._abortController=new AbortController;const{signal:c}=this._abortController,u=await t.scheduleRequest(this,e=>e.isSelected?1:-1);if(!u)return void(this._isCancelled=!0);if(this._isCancelled)return void u.done();let h,d=null;try{d=await e({index:r,id:o,bbox:s,userData:a,zoom:l,signal:c})}catch(e){h=e||!0}finally{u.done()}A===this._loaderId&&(this._loader=void 0,this.content=d,!this._isCancelled||d?(this._isLoaded=!0,this._isCancelled=!1,h?i(h,this):n(this)):this._isLoaded=!1)}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}}const Fm=-1,Dm=0,Om=1,Nm=new Xn.P,km=new Xn.P;class AxisAlignedBoundingBox{constructor(e=[0,0,0],t=[0,0,0],n){n=n||Nm.copy(e).add(t).scale(.5),this.center=new Xn.P(n),this.halfDiagonal=new Xn.P(t).subtract(this.center),this.minimum=new Xn.P(e),this.maximum=new Xn.P(t)}clone(){return new AxisAlignedBoundingBox(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){const{halfDiagonal:t}=this,n=km.from(e.normal),i=t.x*Math.abs(n.x)+t.y*Math.abs(n.y)+t.z*Math.abs(n.z),r=this.center.dot(n)+e.distance;return r-i>0?Om:r+i<0?Fm:Dm}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){const t=Nm.from(e).subtract(this.center),{halfDiagonal:n}=this;let i,r=0;return i=Math.abs(t.x)-n.x,i>0&&(r+=i*i),i=Math.abs(t.y)-n.y,i>0&&(r+=i*i),i=Math.abs(t.z)-n.z,i>0&&(r+=i*i),r}}var Um=n(90218);const Gm=new Xn.P,Vm=new Xn.P;class BoundingSphere{constructor(e=[0,0,0],t=0){this.radius=-0,this.center=new Xn.P,this.fromCenterRadius(e,t)}fromCenterRadius(e,t){return this.center.from(e),this.radius=t,this}fromCornerPoints(e,t){return t=Gm.from(t),this.center=(new Xn.P).from(e).add(t).scale(.5),this.radius=this.center.distance(t),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new BoundingSphere(this.center,this.radius)}union(e){const t=this.center,n=this.radius,i=e.center,r=e.radius,o=Gm.copy(i).subtract(t),s=o.magnitude();if(n>=s+r)return this.clone();if(r>=s+n)return e.clone();const a=.5*(n+s+r);return Vm.copy(o).scale((-n+a)/s).add(t),this.center.copy(Vm),this.radius=a,this}expand(e){const t=Gm.from(e).subtract(this.center).magnitude();return t>this.radius&&(this.radius=t),this}transform(e){this.center.transform(e);const t=Um.IL(Gm,e);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}distanceSquaredTo(e){const t=this.distanceTo(e);return t*t}distanceTo(e){const t=Gm.from(e).subtract(this.center);return Math.max(0,t.len()-this.radius)}intersectPlane(e){const t=this.center,n=this.radius,i=e.normal.dot(t)+e.distance;return i<-n?Fm:i<n?Dm:Om}}var zm=n(46022),Hm=n(73731),Wm=n(68225),jm=n(50741);function Qm(e,t,n){const i=t[0],r=t[1],o=t[2],s=t[3],a=t[4],l=t[5],A=t[6],c=t[7],u=t[8],h=n[0],d=n[1],f=n[2],p=n[3],g=n[4],m=n[5],_=n[6],b=n[7],v=n[8];return e[0]=h*i+d*s+f*A,e[1]=h*r+d*a+f*c,e[2]=h*o+d*l+f*u,e[3]=p*i+g*s+m*A,e[4]=p*r+g*a+m*c,e[5]=p*o+g*l+m*u,e[6]=_*i+b*s+v*A,e[7]=_*r+b*a+v*c,e[8]=_*o+b*l+v*u,e}function Xm(e,t,n){const i=n[0],r=n[1];return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=r*t[3],e[4]=r*t[4],e[5]=r*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}var Km,Jm=n(83588);!function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL1ROW0=3]="COL1ROW0",e[e.COL1ROW1=4]="COL1ROW1",e[e.COL1ROW2=5]="COL1ROW2",e[e.COL2ROW0=6]="COL2ROW0",e[e.COL2ROW1=7]="COL2ROW1",e[e.COL2ROW2=8]="COL2ROW2"}(Km||(Km={}));const qm=Object.freeze([1,0,0,0,1,0,0,0,1]);class Matrix3 extends zm.u{static get IDENTITY(){return function(){Zm||(Zm=new Matrix3,Object.freeze(Zm));return Zm}()}static get ZERO(){return function(){Ym||(Ym=new Matrix3([0,0,0,0,0,0,0,0,0]),Object.freeze(Ym));return Ym}()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Km}constructor(e,...t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),1===arguments.length&&Array.isArray(e)?this.copy(e):t.length>0?this.copy([e,...t]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(qm)}fromObject(e){return this.check()}fromQuaternion(e){return function(e,t){const n=t[0],i=t[1],r=t[2],o=t[3],s=n+n,a=i+i,l=r+r,A=n*s,c=i*s,u=i*a,h=r*s,d=r*a,f=r*l,p=o*s,g=o*a,m=o*l;e[0]=1-u-f,e[3]=c-m,e[6]=h+g,e[1]=c+m,e[4]=1-A-f,e[7]=d-p,e[2]=h-g,e[5]=d+p,e[8]=1-A-u}(this,e),this.check()}set(e,t,n,i,r,o,s,a,l){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this[4]=r,this[5]=o,this[6]=s,this[7]=a,this[8]=l,this.check()}setRowMajor(e,t,n,i,r,o,s,a,l){return this[0]=e,this[1]=i,this[2]=s,this[3]=t,this[4]=r,this[5]=a,this[6]=n,this[7]=o,this[8]=l,this.check()}determinant(){return function(e){const t=e[0],n=e[1],i=e[2],r=e[3],o=e[4],s=e[5],a=e[6],l=e[7],A=e[8];return t*(A*o-s*l)+n*(-A*r+s*a)+i*(l*r-o*a)}(this)}transpose(){return function(e,t){if(e===t){const n=t[1],i=t[2],r=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=i,e[7]=r}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8]}(this,this),this.check()}invert(){return function(e,t){const n=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],A=t[7],c=t[8],u=c*s-a*A,h=-c*o+a*l,d=A*o-s*l;let f=n*u+i*h+r*d;f&&(f=1/f,e[0]=u*f,e[1]=(-c*i+r*A)*f,e[2]=(a*i-r*s)*f,e[3]=h*f,e[4]=(c*n-r*l)*f,e[5]=(-a*n+r*o)*f,e[6]=d*f,e[7]=(-A*n+i*l)*f,e[8]=(s*n-i*o)*f)}(this,this),this.check()}multiplyLeft(e){return Qm(this,e,this),this.check()}multiplyRight(e){return Qm(this,this,e),this.check()}rotate(e){return function(e,t,n){const i=t[0],r=t[1],o=t[2],s=t[3],a=t[4],l=t[5],A=t[6],c=t[7],u=t[8],h=Math.sin(n),d=Math.cos(n);e[0]=d*i+h*s,e[1]=d*r+h*a,e[2]=d*o+h*l,e[3]=d*s-h*i,e[4]=d*a-h*r,e[5]=d*l-h*o,e[6]=A,e[7]=c,e[8]=u}(this,this,e),this.check()}scale(e){return Array.isArray(e)?Xm(this,this,e):Xm(this,this,[e,e]),this.check()}translate(e){return function(e,t,n){const i=t[0],r=t[1],o=t[2],s=t[3],a=t[4],l=t[5],A=t[6],c=t[7],u=t[8],h=n[0],d=n[1];e[0]=i,e[1]=r,e[2]=o,e[3]=s,e[4]=a,e[5]=l,e[6]=h*i+d*s+A,e[7]=h*r+d*a+c,e[8]=h*o+d*l+u}(this,this,e),this.check()}transform(e,t){let n;switch(e.length){case 2:n=(0,Jm.ei)(t||[-0,-0],e,this);break;case 3:n=(0,bn.ei)(t||[-0,-0,-0],e,this);break;case 4:n=(0,Wm.vE)(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return(0,Hm.qk)(n,e.length),n}transformVector(e,t){return this.transform(e,t)}transformVector2(e,t){return this.transform(e,t)}transformVector3(e,t){return this.transform(e,t)}}let Ym,Zm=null;var $m=n(58073),e_=n(54272);let t_;class Vector4 extends e_.M{static get ZERO(){return t_||(t_=new Vector4(0,0,0,0),Object.freeze(t_)),t_}constructor(e=0,t=0,n=0,i=0){super(-0,-0,-0,-0),(0,cn.cy)(e)&&1===arguments.length?this.copy(e):(cn.$W.debug&&((0,Hm.ws)(e),(0,Hm.ws)(t),(0,Hm.ws)(n),(0,Hm.ws)(i)),this[0]=e,this[1]=t,this[2]=n,this[3]=i)}set(e,t,n,i){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return cn.$W.debug&&((0,Hm.ws)(e.x),(0,Hm.ws)(e.y),(0,Hm.ws)(e.z),(0,Hm.ws)(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=(0,Hm.ws)(e)}get w(){return this[3]}set w(e){this[3]=(0,Hm.ws)(e)}transform(e){return(0,bn.Z0)(this,this,e),this.check()}transformByMatrix3(e){return(0,Wm.vE)(this,this,e),this.check()}transformByMatrix2(e){return(0,Wm.Cg)(this,this,e),this.check()}transformByQuaternion(e){return(0,bn.gL)(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}}function n_(){const e=new jm.tb(4);return jm.tb!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function i_(e,t,n){n*=.5;const i=Math.sin(n);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(n),e}function r_(e,t,n){const i=t[0],r=t[1],o=t[2],s=t[3],a=n[0],l=n[1],A=n[2],c=n[3];return e[0]=i*c+s*a+r*A-o*l,e[1]=r*c+s*l+o*a-i*A,e[2]=o*c+s*A+i*l-r*a,e[3]=s*c-i*a-r*l-o*A,e}function o_(e,t,n,i){const r=t[0],o=t[1],s=t[2],a=t[3];let l,A,c,u,h,d=n[0],f=n[1],p=n[2],g=n[3];return l=r*d+o*f+s*p+a*g,l<0&&(l=-l,d=-d,f=-f,p=-p,g=-g),1-l>jm.p8?(A=Math.acos(l),h=Math.sin(A),c=Math.sin((1-i)*A)/h,u=Math.sin(i*A)/h):(c=1-i,u=i),e[0]=c*r+u*d,e[1]=c*o+u*f,e[2]=c*s+u*p,e[3]=c*a+u*g,e}function s_(e,t){const n=t[0]+t[4]+t[8];let i;if(n>0)i=Math.sqrt(n+1),e[3]=.5*i,i=.5/i,e[0]=(t[5]-t[7])*i,e[1]=(t[6]-t[2])*i,e[2]=(t[1]-t[3])*i;else{let n=0;t[4]>t[0]&&(n=1),t[8]>t[3*n+n]&&(n=2);const r=(n+1)%3,o=(n+2)%3;i=Math.sqrt(t[3*n+n]-t[3*r+r]-t[3*o+o]+1),e[n]=.5*i,i=.5/i,e[3]=(t[3*r+o]-t[3*o+r])*i,e[r]=(t[3*r+n]+t[3*n+r])*i,e[o]=(t[3*o+n]+t[3*n+o])*i}return e}vn.o8,vn.fA,vn.C,vn.hZ;const a_=vn.WQ,l_=vn.hs,A_=vn.Om,c_=vn.Cc,u_=vn.Bw,h_=vn.m3,d_=vn.S8;vn.t2;const f_=function(){const e=bn.vt(),t=bn.fA(1,0,0),n=bn.fA(0,1,0);return function(i,r,o){const s=bn.Om(r,o);return s<-.999999?(bn.$A(e,t,r),bn.Il(e)<1e-6&&bn.$A(e,n,r),bn.S8(e,e),i_(i,e,Math.PI),i):s>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(bn.$A(e,r,o),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+s,d_(i,i))}}(),p_=(function(){const e=n_(),t=n_()}(),function(){const e=function(){const e=new jm.tb(9);return jm.tb!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}()}(),[0,0,0,1]);class Quaternion extends $m.a{constructor(e=0,t=0,n=0,i=1){super(-0,-0,-0,-0),Array.isArray(e)&&1===arguments.length?this.copy(e):this.set(e,t,n,i)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,t,n,i){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return s_(this,e),this.check()}fromAxisRotation(e,t){return i_(this,e,t),this.check()}identity(){return function(e){e[0]=0,e[1]=0,e[2]=0,e[3]=1}(this),this.check()}setAxisAngle(e,t){return this.fromAxisRotation(e,t)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=(0,Hm.ws)(e)}get y(){return this[1]}set y(e){this[1]=(0,Hm.ws)(e)}get z(){return this[2]}set z(e){this[2]=(0,Hm.ws)(e)}get w(){return this[3]}set w(e){this[3]=(0,Hm.ws)(e)}len(){return u_(this)}lengthSquared(){return h_(this)}dot(e){return A_(this,e)}rotationTo(e,t){return f_(this,e,t),this.check()}add(e){return a_(this,this,e),this.check()}calculateW(){return function(e,t){const n=t[0],i=t[1],r=t[2];e[0]=n,e[1]=i,e[2]=r,e[3]=Math.sqrt(Math.abs(1-n*n-i*i-r*r))}(this,this),this.check()}conjugate(){return function(e,t){e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3]}(this,this),this.check()}invert(){return function(e,t){const n=t[0],i=t[1],r=t[2],o=t[3],s=n*n+i*i+r*r+o*o,a=s?1/s:0;e[0]=-n*a,e[1]=-i*a,e[2]=-r*a,e[3]=o*a}(this,this),this.check()}lerp(e,t,n){return void 0===n?this.lerp(this,e,t):(c_(this,e,t,n),this.check())}multiplyRight(e){return r_(this,this,e),this.check()}multiplyLeft(e){return r_(this,e,this),this.check()}normalize(){const e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,0===e&&(this[3]=1),this.check()}rotateX(e){return function(e,t,n){n*=.5;const i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);e[0]=i*l+s*a,e[1]=r*l+o*a,e[2]=o*l-r*a,e[3]=s*l-i*a}(this,this,e),this.check()}rotateY(e){return function(e,t,n){n*=.5;const i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);e[0]=i*l-o*a,e[1]=r*l+s*a,e[2]=o*l+i*a,e[3]=s*l-r*a}(this,this,e),this.check()}rotateZ(e){return function(e,t,n){n*=.5;const i=t[0],r=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);e[0]=i*l+r*a,e[1]=r*l-i*a,e[2]=o*l+s*a,e[3]=s*l-o*a}(this,this,e),this.check()}scale(e){return l_(this,this,e),this.check()}slerp(e,t,n){let i,r,o;switch(arguments.length){case 1:({start:i=p_,target:r,ratio:o}=e);break;case 2:i=this,r=e,o=t;break;default:i=e,r=t,o=n}return o_(this,i,r,o),this.check()}transformVector4(e,t=new Vector4){return(0,vn.gL)(t,e,this),(0,Hm.qk)(t,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,t){return this.setAxisAngle(e,t)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}}const g_=new Xn.P,m_=new Xn.P,__=new Xn.P,b_=new Xn.P,v_=new Xn.P,y_=new Xn.P,C_=new Xn.P,w_=0,E_=1,x_=2,T_=3,S_=4,P_=5,M_=6,R_=7,B_=8;class OrientedBoundingBox{constructor(e=[0,0,0],t=[0,0,0,0,0,0,0,0,0]){this.center=(new Xn.P).from(e),this.halfAxes=new Matrix3(t)}get halfSize(){const e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new Xn.P(e).len(),new Xn.P(t).len(),new Xn.P(n).len()]}get quaternion(){const e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),i=new Xn.P(e).normalize(),r=new Xn.P(t).normalize(),o=new Xn.P(n).normalize();return(new Quaternion).fromMatrix3(new Matrix3([...i,...r,...o]))}fromCenterHalfSizeQuaternion(e,t,n){const i=new Quaternion(n),r=(new Matrix3).fromQuaternion(i);return r[0]=r[0]*t[0],r[1]=r[1]*t[0],r[2]=r[2]*t[0],r[3]=r[3]*t[1],r[4]=r[4]*t[1],r[5]=r[5]*t[1],r[6]=r[6]*t[2],r[7]=r[7]*t[2],r[8]=r[8]*t[2],this.center=(new Xn.P).from(e),this.halfAxes=r,this}clone(){return new OrientedBoundingBox(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new BoundingSphere){const t=this.halfAxes,n=t.getColumn(0,__),i=t.getColumn(1,b_),r=t.getColumn(2,v_),o=g_.copy(n).add(i).add(r);return e.center.copy(this.center),e.radius=o.magnitude(),e}intersectPlane(e){const t=this.center,n=e.normal,i=this.halfAxes,r=n.x,o=n.y,s=n.z,a=Math.abs(r*i[w_]+o*i[E_]+s*i[x_])+Math.abs(r*i[T_]+o*i[S_]+s*i[P_])+Math.abs(r*i[M_]+o*i[R_]+s*i[B_]),l=n.dot(t)+e.distance;return l<=-a?Fm:l>=a?Om:Dm}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){const t=m_.from(e).subtract(this.center),n=this.halfAxes,i=n.getColumn(0,__),r=n.getColumn(1,b_),o=n.getColumn(2,v_),s=i.magnitude(),a=r.magnitude(),l=o.magnitude();i.normalize(),r.normalize(),o.normalize();let A,c=0;return A=Math.abs(t.dot(i))-s,A>0&&(c+=A*A),A=Math.abs(t.dot(r))-a,A>0&&(c+=A*A),A=Math.abs(t.dot(o))-l,A>0&&(c+=A*A),c}computePlaneDistances(e,t,n=[-0,-0]){let i=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;const o=this.center,s=this.halfAxes,a=s.getColumn(0,__),l=s.getColumn(1,b_),A=s.getColumn(2,v_),c=y_.copy(a).add(l).add(A).add(o),u=C_.copy(c).subtract(e);let h=t.dot(u);return i=Math.min(h,i),r=Math.max(h,r),c.copy(o).add(a).add(l).subtract(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),c.copy(o).add(a).subtract(l).add(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),c.copy(o).add(a).subtract(l).subtract(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),o.copy(c).subtract(a).add(l).add(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),o.copy(c).subtract(a).add(l).subtract(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),o.copy(c).subtract(a).subtract(l).add(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),o.copy(c).subtract(a).subtract(l).subtract(A),u.copy(c).subtract(e),h=t.dot(u),i=Math.min(h,i),r=Math.max(h,r),n[0]=i,n[1]=r,n}transform(e){this.center.transformAsPoint(e);const t=this.halfAxes.getColumn(0,__);t.transformAsPoint(e);const n=this.halfAxes.getColumn(1,b_);n.transformAsPoint(e);const i=this.halfAxes.getColumn(2,v_);return i.transformAsPoint(e),this.halfAxes=new Matrix3([...t,...n,...i]),this}getTransform(){throw new Error("not implemented")}}var I_=n(4990);const L_=new Xn.P,F_=new Xn.P;class Plane{constructor(e=[0,0,1],t=0){this.normal=new Xn.P,this.distance=-0,this.fromNormalDistance(e,t)}fromNormalDistance(e,t){return(0,I_.v)(Number.isFinite(t)),this.normal.from(e).normalize(),this.distance=t,this}fromPointNormal(e,t){e=L_.from(e),this.normal.from(t).normalize();const n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,t,n,i){return this.normal.set(e,t,n),(0,I_.v)((0,cn.aI)(this.normal.len(),1)),this.distance=i,this}clone(){return new Plane(this.normal,this.distance)}equals(e){return(0,cn.aI)(this.distance,e.distance)&&(0,cn.aI)(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){const t=F_.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,t)}projectPointOntoPlane(e,t=[0,0,0]){const n=L_.from(e),i=this.getPointDistance(n),r=F_.copy(this.normal).scale(i);return n.subtract(r).to(t)}}const D_=[new Xn.P([1,0,0]),new Xn.P([0,1,0]),new Xn.P([0,0,1])],O_=new Xn.P,N_=new Xn.P;class CullingVolume{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*D_.length;const t=e.center,n=e.radius;let i=0;for(const e of D_){let r=this.planes[i],o=this.planes[i+1];r||(r=this.planes[i]=new Plane),o||(o=this.planes[i+1]=new Plane);const s=O_.copy(e).scale(-n).add(t);r.fromPointNormal(s,e);const a=O_.copy(e).scale(n).add(t),l=N_.copy(e).negate();o.fromPointNormal(a,l),i+=2}return this}computeVisibility(e){let t=Om;for(const n of this.planes){switch(e.intersectPlane(n)){case Fm:return Fm;case Dm:t=Dm}}return t}computeVisibilityWithPlaneMask(e,t){if((0,I_.v)(Number.isFinite(t),"parentPlaneMask is required."),t===CullingVolume.MASK_OUTSIDE||t===CullingVolume.MASK_INSIDE)return t;let n=CullingVolume.MASK_INSIDE;const i=this.planes;for(let r=0;r<this.planes.length;++r){const o=r<31?1<<r:0;if(r<31&&0===(t&o))continue;const s=i[r],a=e.intersectPlane(s);if(a===Fm)return CullingVolume.MASK_OUTSIDE;a===Dm&&(n|=o)}return n}}CullingVolume.MASK_OUTSIDE=4294967295,CullingVolume.MASK_INSIDE=0,CullingVolume.MASK_INDETERMINATE=2147483647;new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P;new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P,new Xn.P;const k_=new Matrix3,U_=new Matrix3,G_=new Matrix3,V_=new Matrix3,z_=new Matrix3;function H_(e,t={}){let n=0,i=0;const r=U_,o=G_;r.identity(),o.copy(e);const s=1e-20*function(e){let t=0;for(let n=0;n<9;++n){const i=e[n];t+=i*i}return Math.sqrt(t)}(o);for(;i<10&&Q_(o)>s;)X_(o,V_),z_.copy(V_).transpose(),o.multiplyRight(V_),o.multiplyLeft(z_),r.multiplyRight(V_),++n>2&&(++i,n=0);return t.unitary=r.toTarget(t.unitary),t.diagonal=o.toTarget(t.diagonal),t}const W_=[1,0,0],j_=[2,2,1];function Q_(e){let t=0;for(let n=0;n<3;++n){const i=e[k_.getElementIndex(j_[n],W_[n])];t+=2*i*i}return Math.sqrt(t)}function X_(e,t){let n=0,i=1;for(let t=0;t<3;++t){const r=Math.abs(e[k_.getElementIndex(j_[t],W_[t])]);r>n&&(i=t,n=r)}const r=W_[i],o=j_[i];let s=1,a=0;if(Math.abs(e[k_.getElementIndex(o,r)])>1e-15){const t=(e[k_.getElementIndex(o,o)]-e[k_.getElementIndex(r,r)])/2/e[k_.getElementIndex(o,r)];let n;n=t<0?-1/(-t+Math.sqrt(1+t*t)):1/(t+Math.sqrt(1+t*t)),s=1/Math.sqrt(1+n*n),a=n*s}return Matrix3.IDENTITY.to(t),t[k_.getElementIndex(r,r)]=t[k_.getElementIndex(o,o)]=s,t[k_.getElementIndex(o,r)]=a,t[k_.getElementIndex(r,o)]=-a,t}const K_=new Xn.P,J_=new Xn.P,q_=new Xn.P,Y_=new Xn.P,Z_=new Xn.P,$_=new Matrix3,eb={diagonal:new Matrix3,unitary:new Matrix3};function tb(e,t=new OrientedBoundingBox){if(!e||0===e.length)return t.halfAxes=new Matrix3([0,0,0,0,0,0,0,0,0]),t.center=new Xn.P,t;const n=e.length,i=new Xn.P(0,0,0);for(const t of e)i.add(t);const r=1/n;i.multiplyByScalar(r);let o=0,s=0,a=0,l=0,A=0,c=0;for(const t of e){const e=K_.copy(t).subtract(i);o+=e.x*e.x,s+=e.x*e.y,a+=e.x*e.z,l+=e.y*e.y,A+=e.y*e.z,c+=e.z*e.z}o*=r,s*=r,a*=r,l*=r,A*=r,c*=r;const u=$_;u[0]=o,u[1]=s,u[2]=a,u[3]=s,u[4]=l,u[5]=A,u[6]=a,u[7]=A,u[8]=c;const{unitary:h}=H_(u,eb),d=t.halfAxes.copy(h);let f=d.getColumn(0,q_),p=d.getColumn(1,Y_),g=d.getColumn(2,Z_),m=-Number.MAX_VALUE,_=-Number.MAX_VALUE,b=-Number.MAX_VALUE,v=Number.MAX_VALUE,y=Number.MAX_VALUE,C=Number.MAX_VALUE;for(const t of e)K_.copy(t),m=Math.max(K_.dot(f),m),_=Math.max(K_.dot(p),_),b=Math.max(K_.dot(g),b),v=Math.min(K_.dot(f),v),y=Math.min(K_.dot(p),y),C=Math.min(K_.dot(g),C);f=f.multiplyByScalar(.5*(v+m)),p=p.multiplyByScalar(.5*(y+_)),g=g.multiplyByScalar(.5*(C+b)),t.center.copy(f).add(p).add(g);const w=J_.set(m-v,_-y,b-C).multiplyByScalar(.5),E=new Matrix3([w[0],0,0,0,w[1],0,0,0,w[2]]);return t.halfAxes.multiplyRight(E),t}const nb=512,ib=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],rb=ib.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),ob=rb.concat([[.25,.5],[.75,.5]]);class OSMNode{constructor(e,t,n){this.x=e,this.y=t,this.z=n}get children(){if(!this._children){const e=2*this.x,t=2*this.y,n=this.z+1;this._children=[new OSMNode(e,t,n),new OSMNode(e,t+1,n),new OSMNode(e+1,t,n),new OSMNode(e+1,t+1,n)]}return this._children}update(e){const{viewport:t,cullingVolume:n,elevationBounds:i,minZ:r,maxZ:o,bounds:s,offset:a,project:l}=e,A=this.getBoundingVolume(i,a,l);if(s&&!this.insideBounds(s))return!1;if(n.computeVisibility(A)<0)return!1;if(!this.childVisible){let{z:e}=this;if(e<o&&e>=r){const n=A.distanceTo(t.cameraPosition)*t.scale/t.height;e+=Math.floor(Math.log2(n))}if(e>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const t of this.children)t.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(const t of this._children)t.getSelected(e);return e}insideBounds([e,t,n,i]){const r=Math.pow(2,this.z),o=nb/r;return this.x*o<n&&this.y*o<i&&(this.x+1)*o>e&&(this.y+1)*o>t}getBoundingVolume(e,t,n){if(n){const t=this.z<1?ob:this.z<2?rb:ib,i=[];for(const r of t){const t=fb(this.x+r[0],this.y+r[1],this.z);t[2]=e[0],i.push(n(t)),e[0]!==e[1]&&(t[2]=e[1],i.push(n(t)))}return tb(i)}const i=Math.pow(2,this.z),r=nb/i,o=this.x*r+t*nb,s=nb-(this.y+1)*r;return new AxisAlignedBoundingBox([o,s,e[0]],[o+r,s+r,e[1]])}}const sb=512,ab=[-1/0,-1/0,1/0,1/0],lb={type:"object",value:null,validate:(e,t)=>t.optional&&null===e||"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e),equal:(e,t)=>{if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}};function Ab(e,t){const n=[t.transformAsPoint([e[0],e[1]]),t.transformAsPoint([e[2],e[1]]),t.transformAsPoint([e[0],e[3]]),t.transformAsPoint([e[2],e[3]])],i=[Math.min(...n.map(e=>e[0])),Math.min(...n.map(e=>e[1])),Math.max(...n.map(e=>e[0])),Math.max(...n.map(e=>e[1]))];return i}function cb(e,t){if(!e||!e.length)return null;const{index:n,id:i}=t;if(Array.isArray(e)){const t=function(e){return Math.abs(e.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0))}(i)%e.length;e=e[t]}let r=e;for(const e of Object.keys(n)){const t=new RegExp(`{${e}}`,"g");r=r.replace(t,String(n[e]))}return Number.isInteger(n.y)&&Number.isInteger(n.z)&&(r=r.replace(/\{-y\}/g,String(Math.pow(2,n.z)-n.y-1))),r}function ub({viewport:e,z:t,cullRect:n}){return(e.subViewports||[e]).map(e=>hb(e,t||0,n))}function hb(e,t,n){if(!Array.isArray(t)){const i=n.x-e.x,r=n.y-e.y,{width:o,height:s}=n,a={targetZ:t},l=e.unproject([i,r],a),A=e.unproject([i+o,r],a),c=e.unproject([i,r+s],a),u=e.unproject([i+o,r+s],a);return[Math.min(l[0],A[0],c[0],u[0]),Math.min(l[1],A[1],c[1],u[1]),Math.max(l[0],A[0],c[0],u[0]),Math.max(l[1],A[1],c[1],u[1])]}const i=hb(e,t[0],n),r=hb(e,t[1],n);return[Math.min(i[0],r[0]),Math.min(i[1],r[1]),Math.max(i[2],r[2]),Math.max(i[3],r[3])]}function db(e,t){return Math.pow(2,e)*sb/t}function fb(e,t,n){const i=db(n,sb),r=e/i*360-180,o=Math.PI-2*Math.PI*t/i;return[r,180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)))]}function pb(e,t,n,i){const r=db(n,i);return[e/r*sb,t/r*sb]}function gb(e,t,n,i,r=512){if(e.isGeospatial){const[e,r]=fb(t,n,i),[o,s]=fb(t+1,n+1,i);return{west:e,north:r,east:o,south:s}}const[o,s]=pb(t,n,i,r),[a,l]=pb(t+1,n+1,i,r);return{left:o,top:s,right:a,bottom:l}}function mb(e,t,n,i,r){const o=function(e,t,n){let i;if(t&&2===t.length){const[n,r]=t,o=e.getBounds({z:n}),s=e.getBounds({z:r});i=[Math.min(o[0],s[0]),Math.min(o[1],s[1]),Math.max(o[2],s[2]),Math.max(o[3],s[3])]}else i=e.getBounds();return e.isGeospatial?[Math.max(i[0],n[0]),Math.max(i[1],n[1]),Math.min(i[2],n[2]),Math.min(i[3],n[3])]:[Math.max(Math.min(i[0],n[2]),n[0]),Math.max(Math.min(i[1],n[3]),n[1]),Math.min(Math.max(i[2],n[0]),n[2]),Math.min(Math.max(i[3],n[1]),n[3])]}(e,null,i),s=db(t,n),[a,l,A,c]=function(e,t,n){if(n){const i=Ab(e,n).map(e=>e*t/sb);return i}return e.map(e=>e*t/sb)}(o,s,r),u=[];for(let e=Math.floor(a);e<A;e++)for(let n=Math.floor(l);n<c;n++)u.push({x:e,y:n,z:t});return u}function _b({viewport:e,maxZoom:t,minZoom:n,zRange:i,extent:r,tileSize:o=512,modelMatrix:s,modelMatrixInverse:a,zoomOffset:l=0,visibleMinZoom:A,visibleMaxZoom:c}){let u=e.isGeospatial?Math.round(e.zoom+Math.log2(sb/o)+l):Math.ceil(e.zoom+l);if("number"==typeof n&&Number.isFinite(n)&&u<n){if(!r)return[];u=n}if("number"==typeof t&&Number.isFinite(t)&&u>t&&(u=t),null!=A&&e.zoom<A)return[];if(null!=c&&e.zoom>c)return[];let h=r;return s&&a&&r&&!e.isGeospatial&&(h=Ab(r,s)),e.isGeospatial?function(e,t,n,i){const r=e instanceof Tn&&e.resolution?e.projectPosition:null,o=Object.values(e.getFrustumPlanes()).map(({normal:e,distance:t})=>new Plane(e.clone().negate(),t)),s=new CullingVolume(o),a=e.distanceScales.unitsPerMeter[2],l=n&&n[0]*a||0,A=n&&n[1]*a||0,c=e instanceof An.A&&e.pitch<=60?t:0;if(i){const[e,t,n,r]=i,o=(0,_n.Gw)([e,r]),s=(0,_n.Gw)([n,t]);i=[o[0],nb-o[1],s[0],nb-s[1]]}const u=new OSMNode(0,0,0),h={viewport:e,project:r,cullingVolume:s,elevationBounds:[l,A],minZ:c,maxZ:t,bounds:i,offset:0};if(u.update(h),e instanceof An.A&&e.subViewports&&e.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-3););for(h.offset=1;u.update(h)&&!(++h.offset>3););}return u.getSelected()}(e,u,i,r):mb(e,u,o,h||ab,a)}function bb(e,t){if(e===t)return!0;if(Array.isArray(e)){const n=e.length;if(!t||t.length!==n)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}return!1}const vb="never",yb="no-overlap",Cb="best-available",wb={[Cb]:function(e){for(const t of e)t.state=0;for(const t of e)t.isSelected&&!xb(t)&&Tb(t);for(const t of e)t.isVisible=Boolean(2&t.state)},[yb]:function(e){for(const t of e)t.state=0;for(const t of e)t.isSelected&&xb(t);const t=Array.from(e).sort((e,t)=>e.zoom-t.zoom);for(const e of t)if(e.isVisible=Boolean(2&e.state),e.children&&(e.isVisible||1&e.state))for(const t of e.children)t.state=1;else e.isSelected&&Tb(e)},[vb]:()=>{}},Eb={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}};class Tileset2D{constructor(e){this._getCullBounds=function(e){let t,n={};return i=>{for(const r in i)if(!bb(i[r],n[r])){t=e(i),n=i;break}return t}}(ub),this.opts={...Eb,...e},this.setOptions(this.opts),this.onTileLoad=e=>{this.opts.onTileLoad?.(e),null!==this.opts.maxCacheByteSize&&(this._cacheByteSize+=e.byteLength,this._resizeCache())},this._requestScheduler=new RequestScheduler({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new gn.k,this._modelMatrixInverse=new gn.k}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return null!==this._selectedTiles&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return null!==this._selectedTiles&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(const e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const e of this._cache.keys()){const t=this._cache.get(e);this._selectedTiles&&this._selectedTiles.includes(t)?t.setNeedsReload():this._cache.delete(e)}}update(e,{zRange:t,modelMatrix:n}={zRange:null,modelMatrix:null}){const i=n?new gn.k(n):new gn.k,r=!i.equals(this._modelMatrix);if(this._viewport&&e.equals(this._viewport)&&(0,cn.aI)(this._zRange,t)&&!r)this.needsReload&&(this._selectedTiles=this._selectedTiles.map(e=>this._getTile(e.index,!0)));else{r&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=t;const n=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=n.map(e=>this._getTile(e,!0)),this._dirty&&this._rebuildTree()}const o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(e,t,n){if(!e.isVisible)return!1;if(t&&this._viewport){const i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:t});let{bbox:r}=e;for(const[e,t,o,s]of i){let i;if("west"in r)i=r.west<o&&r.east>e&&r.south<s&&r.north>t;else{if(n&&!gn.k.IDENTITY.equals(n)){const[e,t,i,o]=Ab([r.left,r.top,r.right,r.bottom],n);r={left:e,top:t,right:i,bottom:o}}const a=Math.min(r.top,r.bottom),l=Math.max(r.top,r.bottom);i=r.left<o&&r.right>e&&a<s&&l>t}if(i)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:t,minZoom:n,zRange:i,modelMatrix:r,modelMatrixInverse:o}){const{tileSize:s,extent:a,zoomOffset:l,visibleMinZoom:A,visibleMaxZoom:c}=this.opts;return _b({viewport:e,maxZoom:t,minZoom:n,zRange:i,tileSize:s,extent:a,modelMatrix:r,modelMatrixInverse:o,zoomOffset:l,visibleMinZoom:A,visibleMaxZoom:c})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){const{tileSize:t}=this.opts;return{bbox:gb(this._viewport,e.x,e.y,e.z,t)}}getParentIndex(e){return{x:Math.floor(e.x/2),y:Math.floor(e.y/2),z:e.z-1}}updateTileStates(){const e=this.opts.refinementStrategy||Cb,t=new Array(this._cache.size);let n=0;for(const e of this._cache.values())t[n++]=e.isVisible,e.isSelected=!1,e.isVisible=!1;for(const e of this._selectedTiles)e.isSelected=!0,e.isVisible=!0;("function"==typeof e?e:wb[e])(Array.from(this._cache.values())),n=0;for(const e of this._cache.values())if(t[n++]!==e.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:e=0}=this.opts,t=[];let n=0;for(const e of this._cache.values())e.isLoading&&(n++,e.isSelected||e.isVisible||t.push(e));for(;e>0&&n>e&&t.length>0;){t.shift().abort(),n--}}_rebuildTree(){const{_cache:e}=this;for(const t of e.values())t.parent=null,t.children&&(t.children.length=0);for(const t of e.values()){const e=this._getNearestAncestor(t);t.parent=e,e?.children&&e.children.push(t)}}_resizeCache(){const{_cache:e,opts:t}=this,n=t.maxCacheSize??(null!==t.maxCacheByteSize?1/0:5*this.selectedTiles.length),i=t.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>i){for(const[r,o]of e)if(o.isVisible||o.isSelected||(this._cacheByteSize-=null!==t.maxCacheByteSize?o.byteLength:0,e.delete(r),this.opts.onTileUnload?.(o)),e.size<=n&&this._cacheByteSize<=i)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((e,t)=>e.zoom-t.zoom),this._dirty=!1)}_getTile(e,t){const n=this.getTileId(e);let i=this._cache.get(n),r=!1;return!i&&t?(i=new Tile2DHeader(e),Object.assign(i,this.getTileMetadata(i.index)),Object.assign(i,{id:n,zoom:this.getTileZoom(i.index)}),r=!0,this._cache.set(n,i),this._dirty=!0):i&&i.needsReload&&(r=!0),i&&r&&i.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){const{_minZoom:t=0}=this;let n=e.index;for(;this.getTileZoom(n)>t;){n=this.getParentIndex(n);const e=this._getTile(n);if(e)return e}return null}}function xb(e){let t=e;for(;t;){if(t.isLoaded||t.content)return t.state|=2,!0;t=t.parent}return!1}function Tb(e){for(const t of e.children)t.isLoaded||t.content?t.state|=2:Tb(t)}const Sb={TilesetClass:Tileset2D,data:{type:"data",value:[]},dataComparator:lb.equal,renderSubLayers:{type:"function",value:e=>new ql(e)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:e=>{}},onTileUnload:{type:"function",value:e=>{}},onTileError:{type:"function",value:e=>console.error(e)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Cb,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null};class TileLayer extends fo{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(e=>e.isLoaded))))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:t}=this.state;const n=e.propsOrDataChanged||e.updateTriggersChanged,i=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);t?n&&(t.setOptions(this._getTilesetOptions()),i?t.reloadAll():t.tiles.forEach(e=>{e.layers=null})):(t=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:t})),this._updateTileset()}_getTilesetOptions(){const{tileSize:e,maxCacheSize:t,maxCacheByteSize:n,refinementStrategy:i,extent:r,maxZoom:o,minZoom:s,maxRequests:a,debounceTime:l,zoomOffset:A,visibleMinZoom:c,visibleMaxZoom:u}=this.props;return{maxCacheSize:t,maxCacheByteSize:n,maxZoom:o,minZoom:s,tileSize:e,refinementStrategy:i,extent:r,maxRequests:a,debounceTime:l,zoomOffset:A,visibleMinZoom:c,visibleMaxZoom:u,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const e=this.state.tileset,{zRange:t,modelMatrix:n}=this.props,i=e.update(this.context.viewport,{zRange:t,modelMatrix:n}),{isLoaded:r}=e,o=this.state.isLoaded!==r,s=this.state.frameNumber!==i;r&&(o||s)&&this._onViewportLoad(),s&&this.setState({frameNumber:i}),this.state.isLoaded=r}_onViewportLoad(){const{tileset:e}=this.state,{onViewportLoad:t}=this.props;t&&t(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,t){this.props.onTileError(e),t.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){const{data:t,getTileData:n,fetch:i}=this.props,{signal:r}=e;return e.url="string"==typeof t||Array.isArray(t)?cb(t,e):null,n?n(e):i&&e.url?i(e.url,{propName:"data",layer:this,signal:r}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){const t=e.sourceLayer,n=t.props.tile,i=e.info;return i.picked&&(i.tile=n),i.sourceTile=n,i.sourceTileSubLayer=t,i}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){const{visibleMinZoom:e,visibleMaxZoom:t,minZoom:n,extent:i}=this.props,r=this.context.viewport.zoom;if(null!=e&&r<e||null!=t&&r>t||null!=n&&!i&&r<n){for(const e of this.state.tileset.tiles)e.layers=null;return[]}return this.state.tileset.tiles.map(e=>{const t=this.getSubLayerPropsByTile(e);if(e.isLoaded||e.content)if(e.layers)t&&e.layers[0]&&Object.keys(t).some(n=>e.layers[0].props[n]!==t[n])&&(e.layers=e.layers.map(e=>e.clone(t)));else{const n=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=je(n,Boolean).map(n=>n.clone({tile:e,...t}))}else;return e.layers})}filterSubLayer({layer:e,cullRect:t}){const{tile:n}=e.props,{modelMatrix:i}=this.props;return this.state.tileset.isTileVisible(n,t,i?new gn.k(i):null)}}TileLayer.defaultProps=Sb,TileLayer.layerName="TileLayer";const Pb=TileLayer,Mb="layout(std140) uniform tripsUniforms {\n bool fadeTrail;\n float trailLength;\n float currentTime;\n} trips;\n",Rb={name:"trips",vs:Mb,fs:Mb,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};class TripsLayer extends ka{getShaders(){const e=super.getShaders();return e.inject={"vs:#decl":"in float instanceTimestamps;\nin float instanceNextTimestamps;\nout float vTime;\n","vs:#main-end":"vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;\n","fs:#decl":"in float vTime;\n","fs:#main-start":"if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {\n discard;\n}\n","fs:DECKGL_FILTER_COLOR":"if(trips.fadeTrail) {\n color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;\n}\n"},e.modules=[...e.modules,Rb],e}initializeState(){super.initializeState();this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){const{fadeTrail:t,trailLength:n,currentTime:i}=this.props,r={fadeTrail:t,trailLength:n,currentTime:i};this.state.model.shaderInputs.setProps({trips:r}),super.draw(e)}}TripsLayer.layerName="TripsLayer",TripsLayer.defaultProps={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:e=>e.timestamps}};const Bb=TripsLayer,Ib="#ifdef USE_IBL\nuniform samplerCube pbr_diffuseEnvSampler;\nuniform samplerCube pbr_specularEnvSampler;\nuniform sampler2D pbr_brdfLUT;\n#endif\n",Lb="layout(std140) uniform pbrProjectionUniforms {\n mat4 modelViewProjectionMatrix;\n mat4 modelMatrix;\n mat4 normalMatrix;\n vec3 camera;\n} pbrProjection;\n",Fb={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3}],dependencies:[Vo,{name:"ibl",firstBindingSlot:32,bindingLayout:[{name:"pbr_diffuseEnvSampler",group:2},{name:"pbr_specularEnvSampler",group:2},{name:"pbr_brdfLUT",group:2}],source:"#ifdef USE_IBL\n@group(2) @binding(auto) var pbr_diffuseEnvSampler: texture_cube<f32>;\n@group(2) @binding(auto) var pbr_diffuseEnvSamplerSampler: sampler;\n@group(2) @binding(auto) var pbr_specularEnvSampler: texture_cube<f32>;\n@group(2) @binding(auto) var pbr_specularEnvSamplerSampler: sampler;\n@group(2) @binding(auto) var pbr_brdfLUT: texture_2d<f32>;\n@group(2) @binding(auto) var pbr_brdfLUTSampler: sampler;\n#endif\n",vs:Ib,fs:Ib},{name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:"struct pbrProjectionUniforms {\n modelViewProjectionMatrix: mat4x4<f32>,\n modelMatrix: mat4x4<f32>,\n normalMatrix: mat4x4<f32>,\n camera: vec3<f32>\n};\n\n@group(0) @binding(auto) var<uniform> pbrProjection: pbrProjectionUniforms;\n",vs:Lb,fs:Lb,getUniforms:e=>e,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}}],source:"struct PBRFragmentInputs {\n pbr_vPosition: vec3f,\n pbr_vUV0: vec2f,\n pbr_vUV1: vec2f,\n pbr_vTBN: mat3x3f,\n pbr_vNormal: vec3f\n};\n\nvar<private> fragmentInputs: PBRFragmentInputs;\n\nfn pbr_setPositionNormalTangentUV(\n position: vec4f,\n normal: vec4f,\n tangent: vec4f,\n uv0: vec2f,\n uv1: vec2f\n)\n{\n var pos: vec4f = pbrProjection.modelMatrix * position;\n fragmentInputs.pbr_vPosition = pos.xyz / pos.w;\n fragmentInputs.pbr_vNormal = vec3f(0.0, 0.0, 1.0);\n fragmentInputs.pbr_vTBN = mat3x3f(\n vec3f(1.0, 0.0, 0.0),\n vec3f(0.0, 1.0, 0.0),\n vec3f(0.0, 0.0, 1.0)\n );\n fragmentInputs.pbr_vUV0 = vec2f(0.0, 0.0);\n fragmentInputs.pbr_vUV1 = uv1;\n\n#ifdef HAS_NORMALS\n let normalW: vec3f = normalize((pbrProjection.normalMatrix * vec4f(normal.xyz, 0.0)).xyz);\n fragmentInputs.pbr_vNormal = normalW;\n#ifdef HAS_TANGENTS\n let tangentW: vec3f = normalize((pbrProjection.modelMatrix * vec4f(tangent.xyz, 0.0)).xyz);\n let bitangentW: vec3f = cross(normalW, tangentW) * tangent.w;\n fragmentInputs.pbr_vTBN = mat3x3f(tangentW, bitangentW, normalW);\n#endif\n#endif\n\n#ifdef HAS_UV\n fragmentInputs.pbr_vUV0 = uv0;\n#endif\n}\n\nstruct pbrMaterialUniforms {\n // Material is unlit\n unlit: u32,\n\n // Base color map\n baseColorMapEnabled: u32,\n baseColorFactor: vec4f,\n\n normalMapEnabled : u32,\n normalScale: f32, // #ifdef HAS_NORMALMAP\n\n emissiveMapEnabled: u32,\n emissiveFactor: vec3f, // #ifdef HAS_EMISSIVEMAP\n\n metallicRoughnessValues: vec2f,\n metallicRoughnessMapEnabled: u32,\n\n occlusionMapEnabled: i32,\n occlusionStrength: f32, // #ifdef HAS_OCCLUSIONMAP\n \n alphaCutoffEnabled: i32,\n alphaCutoff: f32, // #ifdef ALPHA_CUTOFF\n\n specularColorFactor: vec3f,\n specularIntensityFactor: f32,\n specularColorMapEnabled: i32,\n specularIntensityMapEnabled: i32,\n\n ior: f32,\n\n transmissionFactor: f32,\n transmissionMapEnabled: i32,\n\n thicknessFactor: f32,\n attenuationDistance: f32,\n attenuationColor: vec3f,\n\n clearcoatFactor: f32,\n clearcoatRoughnessFactor: f32,\n clearcoatMapEnabled: i32,\n clearcoatRoughnessMapEnabled: i32,\n\n sheenColorFactor: vec3f,\n sheenRoughnessFactor: f32,\n sheenColorMapEnabled: i32,\n sheenRoughnessMapEnabled: i32,\n\n iridescenceFactor: f32,\n iridescenceIor: f32,\n iridescenceThicknessRange: vec2f,\n iridescenceMapEnabled: i32,\n\n anisotropyStrength: f32,\n anisotropyRotation: f32,\n anisotropyDirection: vec2f,\n anisotropyMapEnabled: i32,\n\n emissiveStrength: f32,\n \n // IBL\n IBLenabled: i32,\n scaleIBLAmbient: vec2f, // #ifdef USE_IBL\n \n // debugging flags used for shader output of intermediate PBR variables\n // #ifdef PBR_DEBUG\n scaleDiffBaseMR: vec4f,\n scaleFGDSpec: vec4f,\n // #endif\n\n baseColorUVSet: i32,\n baseColorUVTransform: mat3x3f,\n metallicRoughnessUVSet: i32,\n metallicRoughnessUVTransform: mat3x3f,\n normalUVSet: i32,\n normalUVTransform: mat3x3f,\n occlusionUVSet: i32,\n occlusionUVTransform: mat3x3f,\n emissiveUVSet: i32,\n emissiveUVTransform: mat3x3f,\n specularColorUVSet: i32,\n specularColorUVTransform: mat3x3f,\n specularIntensityUVSet: i32,\n specularIntensityUVTransform: mat3x3f,\n transmissionUVSet: i32,\n transmissionUVTransform: mat3x3f,\n thicknessUVSet: i32,\n thicknessUVTransform: mat3x3f,\n clearcoatUVSet: i32,\n clearcoatUVTransform: mat3x3f,\n clearcoatRoughnessUVSet: i32,\n clearcoatRoughnessUVTransform: mat3x3f,\n clearcoatNormalUVSet: i32,\n clearcoatNormalUVTransform: mat3x3f,\n sheenColorUVSet: i32,\n sheenColorUVTransform: mat3x3f,\n sheenRoughnessUVSet: i32,\n sheenRoughnessUVTransform: mat3x3f,\n iridescenceUVSet: i32,\n iridescenceUVTransform: mat3x3f,\n iridescenceThicknessUVSet: i32,\n iridescenceThicknessUVTransform: mat3x3f,\n anisotropyUVSet: i32,\n anisotropyUVTransform: mat3x3f,\n}\n\n@group(3) @binding(auto) var<uniform> pbrMaterial : pbrMaterialUniforms;\n\n// Samplers\n#ifdef HAS_BASECOLORMAP\n@group(3) @binding(auto) var pbr_baseColorSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_baseColorSamplerSampler: sampler;\n#endif\n#ifdef HAS_NORMALMAP\n@group(3) @binding(auto) var pbr_normalSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_normalSamplerSampler: sampler;\n#endif\n#ifdef HAS_EMISSIVEMAP\n@group(3) @binding(auto) var pbr_emissiveSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_emissiveSamplerSampler: sampler;\n#endif\n#ifdef HAS_METALROUGHNESSMAP\n@group(3) @binding(auto) var pbr_metallicRoughnessSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_metallicRoughnessSamplerSampler: sampler;\n#endif\n#ifdef HAS_OCCLUSIONMAP\n@group(3) @binding(auto) var pbr_occlusionSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_occlusionSamplerSampler: sampler;\n#endif\n#ifdef HAS_SPECULARCOLORMAP\n@group(3) @binding(auto) var pbr_specularColorSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_specularColorSamplerSampler: sampler;\n#endif\n#ifdef HAS_SPECULARINTENSITYMAP\n@group(3) @binding(auto) var pbr_specularIntensitySampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_specularIntensitySamplerSampler: sampler;\n#endif\n#ifdef HAS_TRANSMISSIONMAP\n@group(3) @binding(auto) var pbr_transmissionSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_transmissionSamplerSampler: sampler;\n#endif\n#ifdef HAS_THICKNESSMAP\n@group(3) @binding(auto) var pbr_thicknessSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_thicknessSamplerSampler: sampler;\n#endif\n#ifdef HAS_CLEARCOATMAP\n@group(3) @binding(auto) var pbr_clearcoatSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_clearcoatSamplerSampler: sampler;\n#endif\n#ifdef HAS_CLEARCOATROUGHNESSMAP\n@group(3) @binding(auto) var pbr_clearcoatRoughnessSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_clearcoatRoughnessSamplerSampler: sampler;\n#endif\n#ifdef HAS_CLEARCOATNORMALMAP\n@group(3) @binding(auto) var pbr_clearcoatNormalSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_clearcoatNormalSamplerSampler: sampler;\n#endif\n#ifdef HAS_SHEENCOLORMAP\n@group(3) @binding(auto) var pbr_sheenColorSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_sheenColorSamplerSampler: sampler;\n#endif\n#ifdef HAS_SHEENROUGHNESSMAP\n@group(3) @binding(auto) var pbr_sheenRoughnessSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_sheenRoughnessSamplerSampler: sampler;\n#endif\n#ifdef HAS_IRIDESCENCEMAP\n@group(3) @binding(auto) var pbr_iridescenceSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_iridescenceSamplerSampler: sampler;\n#endif\n#ifdef HAS_IRIDESCENCETHICKNESSMAP\n@group(3) @binding(auto) var pbr_iridescenceThicknessSampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_iridescenceThicknessSamplerSampler: sampler;\n#endif\n#ifdef HAS_ANISOTROPYMAP\n@group(3) @binding(auto) var pbr_anisotropySampler: texture_2d<f32>;\n@group(3) @binding(auto) var pbr_anisotropySamplerSampler: sampler;\n#endif\n// Encapsulate the various inputs used by the various functions in the shading equation\n// We store values in this struct to simplify the integration of alternative implementations\n// of the shading terms, outlined in the Readme.MD Appendix.\nstruct PBRInfo {\n NdotL: f32, // cos angle between normal and light direction\n NdotV: f32, // cos angle between normal and view direction\n NdotH: f32, // cos angle between normal and half vector\n LdotH: f32, // cos angle between light direction and half vector\n VdotH: f32, // cos angle between view direction and half vector\n perceptualRoughness: f32, // roughness value, as authored by the model creator (input to shader)\n metalness: f32, // metallic value at the surface\n reflectance0: vec3f, // full reflectance color (normal incidence angle)\n reflectance90: vec3f, // reflectance color at grazing angle\n alphaRoughness: f32, // roughness mapped to a more linear change in the roughness (proposed by [2])\n diffuseColor: vec3f, // color contribution from diffuse lighting\n specularColor: vec3f, // color contribution from specular lighting\n n: vec3f, // normal at surface point\n v: vec3f, // vector from surface point to camera\n};\n\nconst M_PI = 3.141592653589793;\nconst c_MinRoughness = 0.04;\n\nfn SRGBtoLINEAR(srgbIn: vec4f ) -> vec4f\n{\n var linOut: vec3f = srgbIn.xyz;\n#ifdef MANUAL_SRGB\n let bLess: vec3f = step(vec3f(0.04045), srgbIn.xyz);\n linOut = mix(\n srgbIn.xyz / vec3f(12.92),\n pow((srgbIn.xyz + vec3f(0.055)) / vec3f(1.055), vec3f(2.4)),\n bLess\n );\n#ifdef SRGB_FAST_APPROXIMATION\n linOut = pow(srgbIn.xyz, vec3f(2.2));\n#endif\n#endif\n return vec4f(linOut, srgbIn.w);\n}\n\nfn getMaterialUV(uvSet: i32, uvTransform: mat3x3f) -> vec2f\n{\n var baseUV = fragmentInputs.pbr_vUV0;\n if (uvSet == 1) {\n baseUV = fragmentInputs.pbr_vUV1;\n }\n return (uvTransform * vec3f(baseUV, 1.0)).xy;\n}\n\n// Build the tangent basis from interpolated attributes or screen-space derivatives.\nfn getTBN(uv: vec2f) -> mat3x3f\n{\n let pos_dx: vec3f = dpdx(fragmentInputs.pbr_vPosition);\n let pos_dy: vec3f = dpdy(fragmentInputs.pbr_vPosition);\n let tex_dx: vec3f = dpdx(vec3f(uv, 0.0));\n let tex_dy: vec3f = dpdy(vec3f(uv, 0.0));\n var t: vec3f = (tex_dy.y * pos_dx - tex_dx.y * pos_dy) / (tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y);\n\n var ng: vec3f = cross(pos_dx, pos_dy);\n#ifdef HAS_NORMALS\n ng = normalize(fragmentInputs.pbr_vNormal);\n#endif\n t = normalize(t - ng * dot(ng, t));\n var b: vec3f = normalize(cross(ng, t));\n var tbn: mat3x3f = mat3x3f(t, b, ng);\n#ifdef HAS_TANGENTS\n tbn = fragmentInputs.pbr_vTBN;\n#endif\n\n return tbn;\n}\n\n// Find the normal for this fragment, pulling either from a predefined normal map\n// or from the interpolated mesh normal and tangent attributes.\nfn getMappedNormal(\n normalSampler: texture_2d<f32>,\n normalSamplerBinding: sampler,\n tbn: mat3x3f,\n normalScale: f32,\n uv: vec2f\n) -> vec3f\n{\n let n = textureSample(normalSampler, normalSamplerBinding, uv).rgb;\n return normalize(tbn * ((2.0 * n - 1.0) * vec3f(normalScale, normalScale, 1.0)));\n}\n\nfn getNormal(tbn: mat3x3f, uv: vec2f) -> vec3f\n{\n // The tbn matrix is linearly interpolated, so we need to re-normalize\n var n: vec3f = normalize(tbn[2].xyz);\n#ifdef HAS_NORMALMAP\n n = getMappedNormal(\n pbr_normalSampler,\n pbr_normalSamplerSampler,\n tbn,\n pbrMaterial.normalScale,\n uv\n );\n#endif\n\n return n;\n}\n\nfn getClearcoatNormal(tbn: mat3x3f, baseNormal: vec3f, uv: vec2f) -> vec3f\n{\n#ifdef HAS_CLEARCOATNORMALMAP\n return getMappedNormal(\n pbr_clearcoatNormalSampler,\n pbr_clearcoatNormalSamplerSampler,\n tbn,\n 1.0,\n uv\n );\n#else\n return baseNormal;\n#endif\n}\n\n// Calculation of the lighting contribution from an optional Image Based Light source.\n// Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1].\n// See our README.md on Environment Maps [3] for additional discussion.\n#ifdef USE_IBL\nfn getIBLContribution(pbrInfo: PBRInfo, n: vec3f, reflection: vec3f) -> vec3f\n{\n let mipCount: f32 = 9.0; // resolution of 512x512\n let lod: f32 = pbrInfo.perceptualRoughness * mipCount;\n // retrieve a scale and bias to F0. See [1], Figure 3\n let brdf = SRGBtoLINEAR(\n textureSampleLevel(\n pbr_brdfLUT,\n pbr_brdfLUTSampler,\n vec2f(pbrInfo.NdotV, 1.0 - pbrInfo.perceptualRoughness),\n 0.0\n )\n ).rgb;\n let diffuseLight =\n SRGBtoLINEAR(\n textureSampleLevel(pbr_diffuseEnvSampler, pbr_diffuseEnvSamplerSampler, n, 0.0)\n ).rgb;\n var specularLight = SRGBtoLINEAR(\n textureSampleLevel(\n pbr_specularEnvSampler,\n pbr_specularEnvSamplerSampler,\n reflection,\n 0.0\n )\n ).rgb;\n#ifdef USE_TEX_LOD\n specularLight = SRGBtoLINEAR(\n textureSampleLevel(\n pbr_specularEnvSampler,\n pbr_specularEnvSamplerSampler,\n reflection,\n lod\n )\n ).rgb;\n#endif\n\n let diffuse = diffuseLight * pbrInfo.diffuseColor * pbrMaterial.scaleIBLAmbient.x;\n let specular =\n specularLight * (pbrInfo.specularColor * brdf.x + brdf.y) * pbrMaterial.scaleIBLAmbient.y;\n\n return diffuse + specular;\n}\n#endif\n\n// Basic Lambertian diffuse\n// Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog\n// See also [1], Equation 1\nfn diffuse(pbrInfo: PBRInfo) -> vec3<f32> {\n return pbrInfo.diffuseColor / M_PI;\n}\n\n// The following equation models the Fresnel reflectance term of the spec equation (aka F())\n// Implementation of fresnel from [4], Equation 15\nfn specularReflection(pbrInfo: PBRInfo) -> vec3<f32> {\n return pbrInfo.reflectance0 +\n (pbrInfo.reflectance90 - pbrInfo.reflectance0) *\n pow(clamp(1.0 - pbrInfo.VdotH, 0.0, 1.0), 5.0);\n}\n\n// This calculates the specular geometric attenuation (aka G()),\n// where rougher material will reflect less light back to the viewer.\n// This implementation is based on [1] Equation 4, and we adopt their modifications to\n// alphaRoughness as input as originally proposed in [2].\nfn geometricOcclusion(pbrInfo: PBRInfo) -> f32 {\n let NdotL: f32 = pbrInfo.NdotL;\n let NdotV: f32 = pbrInfo.NdotV;\n let r: f32 = pbrInfo.alphaRoughness;\n\n let attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));\n let attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));\n return attenuationL * attenuationV;\n}\n\n// The following equation(s) model the distribution of microfacet normals across\n// the area being drawn (aka D())\n// Implementation from \"Average Irregularity Representation of a Roughened Surface\n// for Ray Reflection\" by T. S. Trowbridge, and K. P. Reitz\n// Follows the distribution function recommended in the SIGGRAPH 2013 course notes\n// from EPIC Games [1], Equation 3.\nfn microfacetDistribution(pbrInfo: PBRInfo) -> f32 {\n let roughnessSq = pbrInfo.alphaRoughness * pbrInfo.alphaRoughness;\n let f = (pbrInfo.NdotH * roughnessSq - pbrInfo.NdotH) * pbrInfo.NdotH + 1.0;\n return roughnessSq / (M_PI * f * f);\n}\n\nfn maxComponent(value: vec3f) -> f32 {\n return max(max(value.r, value.g), value.b);\n}\n\nfn getDielectricF0(ior: f32) -> f32 {\n let clampedIor = max(ior, 1.0);\n let ratio = (clampedIor - 1.0) / (clampedIor + 1.0);\n return ratio * ratio;\n}\n\nfn normalizeDirection(direction: vec2f) -> vec2f {\n let directionLength = length(direction);\n if (directionLength > 0.0001) {\n return direction / directionLength;\n }\n\n return vec2f(1.0, 0.0);\n}\n\nfn rotateDirection(direction: vec2f, rotation: f32) -> vec2f {\n let s = sin(rotation);\n let c = cos(rotation);\n return vec2f(direction.x * c - direction.y * s, direction.x * s + direction.y * c);\n}\n\nfn getIridescenceTint(iridescence: f32, thickness: f32, NdotV: f32) -> vec3f {\n if (iridescence <= 0.0) {\n return vec3f(1.0);\n }\n\n let phase = 0.015 * thickness * pbrMaterial.iridescenceIor + (1.0 - NdotV) * 6.0;\n let thinFilmTint =\n 0.5 +\n 0.5 *\n cos(vec3f(phase, phase + 2.0943951, phase + 4.1887902));\n return mix(vec3f(1.0), thinFilmTint, iridescence);\n}\n\nfn getVolumeAttenuation(thickness: f32) -> vec3f {\n if (thickness <= 0.0) {\n return vec3f(1.0);\n }\n\n let attenuationCoefficient =\n -log(max(pbrMaterial.attenuationColor, vec3f(0.0001))) /\n max(pbrMaterial.attenuationDistance, 0.0001);\n return exp(-attenuationCoefficient * thickness);\n}\n\nfn createClearcoatPBRInfo(\n basePBRInfo: PBRInfo,\n clearcoatNormal: vec3f,\n clearcoatRoughness: f32\n) -> PBRInfo {\n let perceptualRoughness = clamp(clearcoatRoughness, c_MinRoughness, 1.0);\n let alphaRoughness = perceptualRoughness * perceptualRoughness;\n let NdotV = clamp(abs(dot(clearcoatNormal, basePBRInfo.v)), 0.001, 1.0);\n\n return PBRInfo(\n basePBRInfo.NdotL,\n NdotV,\n basePBRInfo.NdotH,\n basePBRInfo.LdotH,\n basePBRInfo.VdotH,\n perceptualRoughness,\n 0.0,\n vec3f(0.04),\n vec3f(1.0),\n alphaRoughness,\n vec3f(0.0),\n vec3f(0.04),\n clearcoatNormal,\n basePBRInfo.v\n );\n}\n\nfn calculateClearcoatContribution(\n pbrInfo: PBRInfo,\n lightColor: vec3f,\n clearcoatNormal: vec3f,\n clearcoatFactor: f32,\n clearcoatRoughness: f32\n) -> vec3f {\n if (clearcoatFactor <= 0.0) {\n return vec3f(0.0);\n }\n\n let clearcoatPBRInfo = createClearcoatPBRInfo(pbrInfo, clearcoatNormal, clearcoatRoughness);\n return calculateFinalColor(clearcoatPBRInfo, lightColor) * clearcoatFactor;\n}\n\n#ifdef USE_IBL\nfn calculateClearcoatIBLContribution(\n pbrInfo: PBRInfo,\n clearcoatNormal: vec3f,\n reflection: vec3f,\n clearcoatFactor: f32,\n clearcoatRoughness: f32\n) -> vec3f {\n if (clearcoatFactor <= 0.0) {\n return vec3f(0.0);\n }\n\n let clearcoatPBRInfo = createClearcoatPBRInfo(pbrInfo, clearcoatNormal, clearcoatRoughness);\n return getIBLContribution(clearcoatPBRInfo, clearcoatNormal, reflection) * clearcoatFactor;\n}\n#endif\n\nfn calculateSheenContribution(\n pbrInfo: PBRInfo,\n lightColor: vec3f,\n sheenColor: vec3f,\n sheenRoughness: f32\n) -> vec3f {\n if (maxComponent(sheenColor) <= 0.0) {\n return vec3f(0.0);\n }\n\n let sheenFresnel = pow(clamp(1.0 - pbrInfo.VdotH, 0.0, 1.0), 5.0);\n let sheenVisibility = mix(1.0, pbrInfo.NdotL * pbrInfo.NdotV, sheenRoughness);\n return pbrInfo.NdotL *\n lightColor *\n sheenColor *\n (0.25 + 0.75 * sheenFresnel) *\n sheenVisibility *\n (1.0 - pbrInfo.metalness);\n}\n\nfn calculateAnisotropyBoost(\n pbrInfo: PBRInfo,\n anisotropyTangent: vec3f,\n anisotropyStrength: f32\n) -> f32 {\n if (anisotropyStrength <= 0.0) {\n return 1.0;\n }\n\n let anisotropyBitangent = normalize(cross(pbrInfo.n, anisotropyTangent));\n let bitangentViewAlignment = abs(dot(pbrInfo.v, anisotropyBitangent));\n return mix(1.0, 0.65 + 0.7 * bitangentViewAlignment, anisotropyStrength);\n}\n\nfn calculateMaterialLightColor(\n pbrInfo: PBRInfo,\n lightColor: vec3f,\n clearcoatNormal: vec3f,\n clearcoatFactor: f32,\n clearcoatRoughness: f32,\n sheenColor: vec3f,\n sheenRoughness: f32,\n anisotropyTangent: vec3f,\n anisotropyStrength: f32\n) -> vec3f {\n let anisotropyBoost = calculateAnisotropyBoost(pbrInfo, anisotropyTangent, anisotropyStrength);\n var color = calculateFinalColor(pbrInfo, lightColor) * anisotropyBoost;\n color += calculateClearcoatContribution(\n pbrInfo,\n lightColor,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness\n );\n color += calculateSheenContribution(pbrInfo, lightColor, sheenColor, sheenRoughness);\n return color;\n}\n\nfn PBRInfo_setAmbientLight(pbrInfo: ptr<function, PBRInfo>) {\n (*pbrInfo).NdotL = 1.0;\n (*pbrInfo).NdotH = 0.0;\n (*pbrInfo).LdotH = 0.0;\n (*pbrInfo).VdotH = 1.0;\n}\n\nfn PBRInfo_setDirectionalLight(pbrInfo: ptr<function, PBRInfo>, lightDirection: vec3<f32>) {\n let n = (*pbrInfo).n;\n let v = (*pbrInfo).v;\n let l = normalize(lightDirection); // Vector from surface point to light\n let h = normalize(l + v); // Half vector between both l and v\n\n (*pbrInfo).NdotL = clamp(dot(n, l), 0.001, 1.0);\n (*pbrInfo).NdotH = clamp(dot(n, h), 0.0, 1.0);\n (*pbrInfo).LdotH = clamp(dot(l, h), 0.0, 1.0);\n (*pbrInfo).VdotH = clamp(dot(v, h), 0.0, 1.0);\n}\n\nfn PBRInfo_setPointLight(pbrInfo: ptr<function, PBRInfo>, pointLight: PointLight) {\n let light_direction = normalize(pointLight.position - fragmentInputs.pbr_vPosition);\n PBRInfo_setDirectionalLight(pbrInfo, light_direction);\n}\n\nfn PBRInfo_setSpotLight(pbrInfo: ptr<function, PBRInfo>, spotLight: SpotLight) {\n let light_direction = normalize(spotLight.position - fragmentInputs.pbr_vPosition);\n PBRInfo_setDirectionalLight(pbrInfo, light_direction);\n}\n\nfn calculateFinalColor(pbrInfo: PBRInfo, lightColor: vec3<f32>) -> vec3<f32> {\n // Calculate the shading terms for the microfacet specular shading model\n let F = specularReflection(pbrInfo);\n let G = geometricOcclusion(pbrInfo);\n let D = microfacetDistribution(pbrInfo);\n\n // Calculation of analytical lighting contribution\n let diffuseContrib = (1.0 - F) * diffuse(pbrInfo);\n let specContrib = F * G * D / (4.0 * pbrInfo.NdotL * pbrInfo.NdotV);\n // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)\n return pbrInfo.NdotL * lightColor * (diffuseContrib + specContrib);\n}\n\nfn pbr_filterColor(colorUnused: vec4<f32>) -> vec4<f32> {\n let baseColorUV = getMaterialUV(pbrMaterial.baseColorUVSet, pbrMaterial.baseColorUVTransform);\n let metallicRoughnessUV = getMaterialUV(\n pbrMaterial.metallicRoughnessUVSet,\n pbrMaterial.metallicRoughnessUVTransform\n );\n let normalUV = getMaterialUV(pbrMaterial.normalUVSet, pbrMaterial.normalUVTransform);\n let occlusionUV = getMaterialUV(pbrMaterial.occlusionUVSet, pbrMaterial.occlusionUVTransform);\n let emissiveUV = getMaterialUV(pbrMaterial.emissiveUVSet, pbrMaterial.emissiveUVTransform);\n let specularColorUV = getMaterialUV(\n pbrMaterial.specularColorUVSet,\n pbrMaterial.specularColorUVTransform\n );\n let specularIntensityUV = getMaterialUV(\n pbrMaterial.specularIntensityUVSet,\n pbrMaterial.specularIntensityUVTransform\n );\n let transmissionUV = getMaterialUV(\n pbrMaterial.transmissionUVSet,\n pbrMaterial.transmissionUVTransform\n );\n let thicknessUV = getMaterialUV(pbrMaterial.thicknessUVSet, pbrMaterial.thicknessUVTransform);\n let clearcoatUV = getMaterialUV(pbrMaterial.clearcoatUVSet, pbrMaterial.clearcoatUVTransform);\n let clearcoatRoughnessUV = getMaterialUV(\n pbrMaterial.clearcoatRoughnessUVSet,\n pbrMaterial.clearcoatRoughnessUVTransform\n );\n let clearcoatNormalUV = getMaterialUV(\n pbrMaterial.clearcoatNormalUVSet,\n pbrMaterial.clearcoatNormalUVTransform\n );\n let sheenColorUV = getMaterialUV(\n pbrMaterial.sheenColorUVSet,\n pbrMaterial.sheenColorUVTransform\n );\n let sheenRoughnessUV = getMaterialUV(\n pbrMaterial.sheenRoughnessUVSet,\n pbrMaterial.sheenRoughnessUVTransform\n );\n let iridescenceUV = getMaterialUV(\n pbrMaterial.iridescenceUVSet,\n pbrMaterial.iridescenceUVTransform\n );\n let iridescenceThicknessUV = getMaterialUV(\n pbrMaterial.iridescenceThicknessUVSet,\n pbrMaterial.iridescenceThicknessUVTransform\n );\n let anisotropyUV = getMaterialUV(\n pbrMaterial.anisotropyUVSet,\n pbrMaterial.anisotropyUVTransform\n );\n\n // The albedo may be defined from a base texture or a flat color\n var baseColor: vec4<f32> = pbrMaterial.baseColorFactor;\n #ifdef HAS_BASECOLORMAP\n baseColor = SRGBtoLINEAR(\n textureSample(pbr_baseColorSampler, pbr_baseColorSamplerSampler, baseColorUV)\n ) * pbrMaterial.baseColorFactor;\n #endif\n\n #ifdef ALPHA_CUTOFF\n if (baseColor.a < pbrMaterial.alphaCutoff) {\n discard;\n }\n #endif\n\n var color = vec3<f32>(0.0, 0.0, 0.0);\n var transmission = 0.0;\n\n if (pbrMaterial.unlit != 0u) {\n color = baseColor.rgb;\n } else {\n // Metallic and Roughness material properties are packed together\n // In glTF, these factors can be specified by fixed scalar values\n // or from a metallic-roughness map\n var perceptualRoughness = pbrMaterial.metallicRoughnessValues.y;\n var metallic = pbrMaterial.metallicRoughnessValues.x;\n #ifdef HAS_METALROUGHNESSMAP\n // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.\n // This layout intentionally reserves the 'r' channel for (optional) occlusion map data\n let mrSample = textureSample(\n pbr_metallicRoughnessSampler,\n pbr_metallicRoughnessSamplerSampler,\n metallicRoughnessUV\n );\n perceptualRoughness = mrSample.g * perceptualRoughness;\n metallic = mrSample.b * metallic;\n #endif\n perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);\n metallic = clamp(metallic, 0.0, 1.0);\n let tbn = getTBN(normalUV);\n let n = getNormal(tbn, normalUV); // normal at surface point\n let v = normalize(pbrProjection.camera - fragmentInputs.pbr_vPosition); // Vector from surface point to camera\n let NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);\n var useExtendedPBR = false;\n #ifdef USE_MATERIAL_EXTENSIONS\n useExtendedPBR =\n pbrMaterial.specularColorMapEnabled != 0 ||\n pbrMaterial.specularIntensityMapEnabled != 0 ||\n abs(pbrMaterial.specularIntensityFactor - 1.0) > 0.0001 ||\n maxComponent(abs(pbrMaterial.specularColorFactor - vec3f(1.0))) > 0.0001 ||\n abs(pbrMaterial.ior - 1.5) > 0.0001 ||\n pbrMaterial.transmissionMapEnabled != 0 ||\n pbrMaterial.transmissionFactor > 0.0001 ||\n pbrMaterial.clearcoatMapEnabled != 0 ||\n pbrMaterial.clearcoatRoughnessMapEnabled != 0 ||\n pbrMaterial.clearcoatFactor > 0.0001 ||\n pbrMaterial.clearcoatRoughnessFactor > 0.0001 ||\n pbrMaterial.sheenColorMapEnabled != 0 ||\n pbrMaterial.sheenRoughnessMapEnabled != 0 ||\n maxComponent(pbrMaterial.sheenColorFactor) > 0.0001 ||\n pbrMaterial.sheenRoughnessFactor > 0.0001 ||\n pbrMaterial.iridescenceMapEnabled != 0 ||\n pbrMaterial.iridescenceFactor > 0.0001 ||\n abs(pbrMaterial.iridescenceIor - 1.3) > 0.0001 ||\n abs(pbrMaterial.iridescenceThicknessRange.x - 100.0) > 0.0001 ||\n abs(pbrMaterial.iridescenceThicknessRange.y - 400.0) > 0.0001 ||\n pbrMaterial.anisotropyMapEnabled != 0 ||\n pbrMaterial.anisotropyStrength > 0.0001 ||\n abs(pbrMaterial.anisotropyRotation) > 0.0001 ||\n length(pbrMaterial.anisotropyDirection - vec2f(1.0, 0.0)) > 0.0001;\n #endif\n\n if (!useExtendedPBR) {\n let alphaRoughness = perceptualRoughness * perceptualRoughness;\n\n let f0 = vec3<f32>(0.04);\n var diffuseColor = baseColor.rgb * (vec3<f32>(1.0) - f0);\n diffuseColor *= 1.0 - metallic;\n let specularColor = mix(f0, baseColor.rgb, metallic);\n\n let reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n let reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n let specularEnvironmentR0 = specularColor;\n let specularEnvironmentR90 = vec3<f32>(1.0, 1.0, 1.0) * reflectance90;\n let reflection = -normalize(reflect(v, n));\n\n var pbrInfo = PBRInfo(\n 0.0, // NdotL\n NdotV,\n 0.0, // NdotH\n 0.0, // LdotH\n 0.0, // VdotH\n perceptualRoughness,\n metallic,\n specularEnvironmentR0,\n specularEnvironmentR90,\n alphaRoughness,\n diffuseColor,\n specularColor,\n n,\n v\n );\n\n #ifdef USE_LIGHTS\n PBRInfo_setAmbientLight(&pbrInfo);\n color += calculateFinalColor(pbrInfo, lighting.ambientColor);\n\n for (var i = 0; i < lighting.directionalLightCount; i++) {\n if (i < lighting.directionalLightCount) {\n PBRInfo_setDirectionalLight(&pbrInfo, lighting_getDirectionalLight(i).direction);\n color += calculateFinalColor(pbrInfo, lighting_getDirectionalLight(i).color);\n }\n }\n\n for (var i = 0; i < lighting.pointLightCount; i++) {\n if (i < lighting.pointLightCount) {\n PBRInfo_setPointLight(&pbrInfo, lighting_getPointLight(i));\n let attenuation = getPointLightAttenuation(\n lighting_getPointLight(i),\n distance(lighting_getPointLight(i).position, fragmentInputs.pbr_vPosition)\n );\n color += calculateFinalColor(pbrInfo, lighting_getPointLight(i).color / attenuation);\n }\n }\n\n for (var i = 0; i < lighting.spotLightCount; i++) {\n if (i < lighting.spotLightCount) {\n PBRInfo_setSpotLight(&pbrInfo, lighting_getSpotLight(i));\n let attenuation = getSpotLightAttenuation(\n lighting_getSpotLight(i),\n fragmentInputs.pbr_vPosition\n );\n color += calculateFinalColor(pbrInfo, lighting_getSpotLight(i).color / attenuation);\n }\n }\n #endif\n\n #ifdef USE_IBL\n if (pbrMaterial.IBLenabled != 0) {\n color += getIBLContribution(pbrInfo, n, reflection);\n }\n #endif\n\n #ifdef HAS_OCCLUSIONMAP\n if (pbrMaterial.occlusionMapEnabled != 0) {\n let ao = textureSample(pbr_occlusionSampler, pbr_occlusionSamplerSampler, occlusionUV).r;\n color = mix(color, color * ao, pbrMaterial.occlusionStrength);\n }\n #endif\n\n var emissive = pbrMaterial.emissiveFactor;\n #ifdef HAS_EMISSIVEMAP\n if (pbrMaterial.emissiveMapEnabled != 0u) {\n emissive *= SRGBtoLINEAR(\n textureSample(pbr_emissiveSampler, pbr_emissiveSamplerSampler, emissiveUV)\n ).rgb;\n }\n #endif\n color += emissive * pbrMaterial.emissiveStrength;\n\n #ifdef PBR_DEBUG\n color = mix(color, baseColor.rgb, pbrMaterial.scaleDiffBaseMR.y);\n color = mix(color, vec3<f32>(metallic), pbrMaterial.scaleDiffBaseMR.z);\n color = mix(color, vec3<f32>(perceptualRoughness), pbrMaterial.scaleDiffBaseMR.w);\n #endif\n\n return vec4<f32>(pow(color, vec3<f32>(1.0 / 2.2)), baseColor.a);\n }\n\n var specularIntensity = pbrMaterial.specularIntensityFactor;\n #ifdef HAS_SPECULARINTENSITYMAP\n if (pbrMaterial.specularIntensityMapEnabled != 0) {\n specularIntensity *= textureSample(\n pbr_specularIntensitySampler,\n pbr_specularIntensitySamplerSampler,\n specularIntensityUV\n ).a;\n }\n #endif\n\n var specularFactor = pbrMaterial.specularColorFactor;\n #ifdef HAS_SPECULARCOLORMAP\n if (pbrMaterial.specularColorMapEnabled != 0) {\n specularFactor *= SRGBtoLINEAR(\n textureSample(\n pbr_specularColorSampler,\n pbr_specularColorSamplerSampler,\n specularColorUV\n )\n ).rgb;\n }\n #endif\n\n transmission = pbrMaterial.transmissionFactor;\n #ifdef HAS_TRANSMISSIONMAP\n if (pbrMaterial.transmissionMapEnabled != 0) {\n transmission *= textureSample(\n pbr_transmissionSampler,\n pbr_transmissionSamplerSampler,\n transmissionUV\n ).r;\n }\n #endif\n transmission = clamp(transmission * (1.0 - metallic), 0.0, 1.0);\n var thickness = max(pbrMaterial.thicknessFactor, 0.0);\n #ifdef HAS_THICKNESSMAP\n thickness *= textureSample(\n pbr_thicknessSampler,\n pbr_thicknessSamplerSampler,\n thicknessUV\n ).g;\n #endif\n\n var clearcoatFactor = pbrMaterial.clearcoatFactor;\n var clearcoatRoughness = pbrMaterial.clearcoatRoughnessFactor;\n #ifdef HAS_CLEARCOATMAP\n if (pbrMaterial.clearcoatMapEnabled != 0) {\n clearcoatFactor *= textureSample(\n pbr_clearcoatSampler,\n pbr_clearcoatSamplerSampler,\n clearcoatUV\n ).r;\n }\n #endif\n #ifdef HAS_CLEARCOATROUGHNESSMAP\n if (pbrMaterial.clearcoatRoughnessMapEnabled != 0) {\n clearcoatRoughness *= textureSample(\n pbr_clearcoatRoughnessSampler,\n pbr_clearcoatRoughnessSamplerSampler,\n clearcoatRoughnessUV\n ).g;\n }\n #endif\n clearcoatFactor = clamp(clearcoatFactor, 0.0, 1.0);\n clearcoatRoughness = clamp(clearcoatRoughness, c_MinRoughness, 1.0);\n let clearcoatNormal = getClearcoatNormal(getTBN(clearcoatNormalUV), n, clearcoatNormalUV);\n\n var sheenColor = pbrMaterial.sheenColorFactor;\n var sheenRoughness = pbrMaterial.sheenRoughnessFactor;\n #ifdef HAS_SHEENCOLORMAP\n if (pbrMaterial.sheenColorMapEnabled != 0) {\n sheenColor *= SRGBtoLINEAR(\n textureSample(\n pbr_sheenColorSampler,\n pbr_sheenColorSamplerSampler,\n sheenColorUV\n )\n ).rgb;\n }\n #endif\n #ifdef HAS_SHEENROUGHNESSMAP\n if (pbrMaterial.sheenRoughnessMapEnabled != 0) {\n sheenRoughness *= textureSample(\n pbr_sheenRoughnessSampler,\n pbr_sheenRoughnessSamplerSampler,\n sheenRoughnessUV\n ).a;\n }\n #endif\n sheenRoughness = clamp(sheenRoughness, c_MinRoughness, 1.0);\n\n var iridescence = pbrMaterial.iridescenceFactor;\n #ifdef HAS_IRIDESCENCEMAP\n if (pbrMaterial.iridescenceMapEnabled != 0) {\n iridescence *= textureSample(\n pbr_iridescenceSampler,\n pbr_iridescenceSamplerSampler,\n iridescenceUV\n ).r;\n }\n #endif\n iridescence = clamp(iridescence, 0.0, 1.0);\n var iridescenceThickness = mix(\n pbrMaterial.iridescenceThicknessRange.x,\n pbrMaterial.iridescenceThicknessRange.y,\n 0.5\n );\n #ifdef HAS_IRIDESCENCETHICKNESSMAP\n iridescenceThickness = mix(\n pbrMaterial.iridescenceThicknessRange.x,\n pbrMaterial.iridescenceThicknessRange.y,\n textureSample(\n pbr_iridescenceThicknessSampler,\n pbr_iridescenceThicknessSamplerSampler,\n iridescenceThicknessUV\n ).g\n );\n #endif\n\n var anisotropyStrength = clamp(pbrMaterial.anisotropyStrength, 0.0, 1.0);\n var anisotropyDirection = normalizeDirection(pbrMaterial.anisotropyDirection);\n #ifdef HAS_ANISOTROPYMAP\n if (pbrMaterial.anisotropyMapEnabled != 0) {\n let anisotropySample = textureSample(\n pbr_anisotropySampler,\n pbr_anisotropySamplerSampler,\n anisotropyUV\n ).rgb;\n anisotropyStrength *= anisotropySample.b;\n let mappedDirection = anisotropySample.rg * 2.0 - 1.0;\n if (length(mappedDirection) > 0.0001) {\n anisotropyDirection = normalize(mappedDirection);\n }\n }\n #endif\n anisotropyDirection = rotateDirection(anisotropyDirection, pbrMaterial.anisotropyRotation);\n var anisotropyTangent =\n normalize(tbn[0] * anisotropyDirection.x + tbn[1] * anisotropyDirection.y);\n if (length(anisotropyTangent) < 0.0001) {\n anisotropyTangent = normalize(tbn[0]);\n }\n let anisotropyViewAlignment = abs(dot(v, anisotropyTangent));\n perceptualRoughness = mix(\n perceptualRoughness,\n clamp(perceptualRoughness * (1.0 - 0.6 * anisotropyViewAlignment), c_MinRoughness, 1.0),\n anisotropyStrength\n );\n\n // Roughness is authored as perceptual roughness; as is convention,\n // convert to material roughness by squaring the perceptual roughness [2].\n let alphaRoughness = perceptualRoughness * perceptualRoughness;\n\n let dielectricF0 = getDielectricF0(pbrMaterial.ior);\n var dielectricSpecularF0 = min(\n vec3f(dielectricF0) * specularFactor * specularIntensity,\n vec3f(1.0)\n );\n let iridescenceTint = getIridescenceTint(iridescence, iridescenceThickness, NdotV);\n dielectricSpecularF0 = mix(\n dielectricSpecularF0,\n dielectricSpecularF0 * iridescenceTint,\n iridescence\n );\n var diffuseColor = baseColor.rgb * (vec3f(1.0) - dielectricSpecularF0);\n diffuseColor *= (1.0 - metallic) * (1.0 - transmission);\n var specularColor = mix(dielectricSpecularF0, baseColor.rgb, metallic);\n\n let baseLayerEnergy = 1.0 - clearcoatFactor * 0.25;\n diffuseColor *= baseLayerEnergy;\n specularColor *= baseLayerEnergy;\n\n // Compute reflectance.\n let reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n\n // For typical incident reflectance range (between 4% to 100%) set the grazing\n // reflectance to 100% for typical fresnel effect.\n // For very low reflectance range on highly diffuse objects (below 4%),\n // incrementally reduce grazing reflectance to 0%.\n let reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n let specularEnvironmentR0 = specularColor;\n let specularEnvironmentR90 = vec3<f32>(1.0, 1.0, 1.0) * reflectance90;\n let reflection = -normalize(reflect(v, n));\n\n var pbrInfo = PBRInfo(\n 0.0, // NdotL\n NdotV,\n 0.0, // NdotH\n 0.0, // LdotH\n 0.0, // VdotH\n perceptualRoughness,\n metallic,\n specularEnvironmentR0,\n specularEnvironmentR90,\n alphaRoughness,\n diffuseColor,\n specularColor,\n n,\n v\n );\n\n #ifdef USE_LIGHTS\n // Apply ambient light\n PBRInfo_setAmbientLight(&pbrInfo);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting.ambientColor,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n\n // Apply directional light\n for (var i = 0; i < lighting.directionalLightCount; i++) {\n if (i < lighting.directionalLightCount) {\n PBRInfo_setDirectionalLight(&pbrInfo, lighting_getDirectionalLight(i).direction);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getDirectionalLight(i).color,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n\n // Apply point light\n for (var i = 0; i < lighting.pointLightCount; i++) {\n if (i < lighting.pointLightCount) {\n PBRInfo_setPointLight(&pbrInfo, lighting_getPointLight(i));\n let attenuation = getPointLightAttenuation(\n lighting_getPointLight(i),\n distance(lighting_getPointLight(i).position, fragmentInputs.pbr_vPosition)\n );\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getPointLight(i).color / attenuation,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n\n for (var i = 0; i < lighting.spotLightCount; i++) {\n if (i < lighting.spotLightCount) {\n PBRInfo_setSpotLight(&pbrInfo, lighting_getSpotLight(i));\n let attenuation = getSpotLightAttenuation(lighting_getSpotLight(i), fragmentInputs.pbr_vPosition);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getSpotLight(i).color / attenuation,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n #endif\n\n // Calculate lighting contribution from image based lighting source (IBL)\n #ifdef USE_IBL\n if (pbrMaterial.IBLenabled != 0) {\n color += getIBLContribution(pbrInfo, n, reflection) *\n calculateAnisotropyBoost(pbrInfo, anisotropyTangent, anisotropyStrength);\n color += calculateClearcoatIBLContribution(\n pbrInfo,\n clearcoatNormal,\n -normalize(reflect(v, clearcoatNormal)),\n clearcoatFactor,\n clearcoatRoughness\n );\n color += sheenColor * pbrMaterial.scaleIBLAmbient.x * (1.0 - sheenRoughness) * 0.25;\n }\n #endif\n\n // Apply optional PBR terms for additional (optional) shading\n #ifdef HAS_OCCLUSIONMAP\n if (pbrMaterial.occlusionMapEnabled != 0) {\n let ao = textureSample(pbr_occlusionSampler, pbr_occlusionSamplerSampler, occlusionUV).r;\n color = mix(color, color * ao, pbrMaterial.occlusionStrength);\n }\n #endif\n\n var emissive = pbrMaterial.emissiveFactor;\n #ifdef HAS_EMISSIVEMAP\n if (pbrMaterial.emissiveMapEnabled != 0u) {\n emissive *= SRGBtoLINEAR(\n textureSample(pbr_emissiveSampler, pbr_emissiveSamplerSampler, emissiveUV)\n ).rgb;\n }\n #endif\n color += emissive * pbrMaterial.emissiveStrength;\n\n if (transmission > 0.0) {\n color = mix(color, color * getVolumeAttenuation(thickness), transmission);\n }\n\n // This section uses mix to override final color for reference app visualization\n // of various parameters in the lighting equation.\n #ifdef PBR_DEBUG\n // TODO: Figure out how to debug multiple lights\n\n // color = mix(color, F, pbr_scaleFGDSpec.x);\n // color = mix(color, vec3(G), pbr_scaleFGDSpec.y);\n // color = mix(color, vec3(D), pbr_scaleFGDSpec.z);\n // color = mix(color, specContrib, pbr_scaleFGDSpec.w);\n\n // color = mix(color, diffuseContrib, pbr_scaleDiffBaseMR.x);\n color = mix(color, baseColor.rgb, pbrMaterial.scaleDiffBaseMR.y);\n color = mix(color, vec3<f32>(metallic), pbrMaterial.scaleDiffBaseMR.z);\n color = mix(color, vec3<f32>(perceptualRoughness), pbrMaterial.scaleDiffBaseMR.w);\n #endif\n }\n\n let alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);\n return vec4<f32>(pow(color, vec3<f32>(1.0 / 2.2)), alpha);\n}\n",vs:"out vec3 pbr_vPosition;\nout vec2 pbr_vUV0;\nout vec2 pbr_vUV1;\n\n#ifdef HAS_NORMALS\n# ifdef HAS_TANGENTS\nout mat3 pbr_vTBN;\n# else\nout vec3 pbr_vNormal;\n# endif\n#endif\n\nvoid pbr_setPositionNormalTangentUV(\n vec4 position,\n vec4 normal,\n vec4 tangent,\n vec2 uv0,\n vec2 uv1\n)\n{\n vec4 pos = pbrProjection.modelMatrix * position;\n pbr_vPosition = vec3(pos.xyz) / pos.w;\n\n#ifdef HAS_NORMALS\n#ifdef HAS_TANGENTS\n vec3 normalW = normalize(vec3(pbrProjection.normalMatrix * vec4(normal.xyz, 0.0)));\n vec3 tangentW = normalize(vec3(pbrProjection.modelMatrix * vec4(tangent.xyz, 0.0)));\n vec3 bitangentW = cross(normalW, tangentW) * tangent.w;\n pbr_vTBN = mat3(tangentW, bitangentW, normalW);\n#else // HAS_TANGENTS != 1\n pbr_vNormal = normalize(vec3(pbrProjection.modelMatrix * vec4(normal.xyz, 0.0)));\n#endif\n#endif\n\n#ifdef HAS_UV\n pbr_vUV0 = uv0;\n#else\n pbr_vUV0 = vec2(0.,0.);\n#endif\n\n pbr_vUV1 = uv1;\n}\n",fs:"precision highp float;\n\nlayout(std140) uniform pbrMaterialUniforms {\n // Material is unlit\n bool unlit;\n\n // Base color map\n bool baseColorMapEnabled;\n vec4 baseColorFactor;\n\n bool normalMapEnabled; \n float normalScale; // #ifdef HAS_NORMALMAP\n\n bool emissiveMapEnabled;\n vec3 emissiveFactor; // #ifdef HAS_EMISSIVEMAP\n\n vec2 metallicRoughnessValues;\n bool metallicRoughnessMapEnabled;\n\n bool occlusionMapEnabled;\n float occlusionStrength; // #ifdef HAS_OCCLUSIONMAP\n \n bool alphaCutoffEnabled;\n float alphaCutoff; // #ifdef ALPHA_CUTOFF\n\n vec3 specularColorFactor;\n float specularIntensityFactor;\n bool specularColorMapEnabled;\n bool specularIntensityMapEnabled;\n\n float ior;\n\n float transmissionFactor;\n bool transmissionMapEnabled;\n\n float thicknessFactor;\n float attenuationDistance;\n vec3 attenuationColor;\n\n float clearcoatFactor;\n float clearcoatRoughnessFactor;\n bool clearcoatMapEnabled;\n bool clearcoatRoughnessMapEnabled;\n\n vec3 sheenColorFactor;\n float sheenRoughnessFactor;\n bool sheenColorMapEnabled;\n bool sheenRoughnessMapEnabled;\n\n float iridescenceFactor;\n float iridescenceIor;\n vec2 iridescenceThicknessRange;\n bool iridescenceMapEnabled;\n\n float anisotropyStrength;\n float anisotropyRotation;\n vec2 anisotropyDirection;\n bool anisotropyMapEnabled;\n\n float emissiveStrength;\n \n // IBL\n bool IBLenabled;\n vec2 scaleIBLAmbient; // #ifdef USE_IBL\n \n // debugging flags used for shader output of intermediate PBR variables\n // #ifdef PBR_DEBUG\n vec4 scaleDiffBaseMR;\n vec4 scaleFGDSpec;\n // #endif\n\n int baseColorUVSet;\n mat3 baseColorUVTransform;\n int metallicRoughnessUVSet;\n mat3 metallicRoughnessUVTransform;\n int normalUVSet;\n mat3 normalUVTransform;\n int occlusionUVSet;\n mat3 occlusionUVTransform;\n int emissiveUVSet;\n mat3 emissiveUVTransform;\n int specularColorUVSet;\n mat3 specularColorUVTransform;\n int specularIntensityUVSet;\n mat3 specularIntensityUVTransform;\n int transmissionUVSet;\n mat3 transmissionUVTransform;\n int thicknessUVSet;\n mat3 thicknessUVTransform;\n int clearcoatUVSet;\n mat3 clearcoatUVTransform;\n int clearcoatRoughnessUVSet;\n mat3 clearcoatRoughnessUVTransform;\n int clearcoatNormalUVSet;\n mat3 clearcoatNormalUVTransform;\n int sheenColorUVSet;\n mat3 sheenColorUVTransform;\n int sheenRoughnessUVSet;\n mat3 sheenRoughnessUVTransform;\n int iridescenceUVSet;\n mat3 iridescenceUVTransform;\n int iridescenceThicknessUVSet;\n mat3 iridescenceThicknessUVTransform;\n int anisotropyUVSet;\n mat3 anisotropyUVTransform;\n} pbrMaterial;\n\n// Samplers\n#ifdef HAS_BASECOLORMAP\nuniform sampler2D pbr_baseColorSampler;\n#endif\n#ifdef HAS_NORMALMAP\nuniform sampler2D pbr_normalSampler;\n#endif\n#ifdef HAS_EMISSIVEMAP\nuniform sampler2D pbr_emissiveSampler;\n#endif\n#ifdef HAS_METALROUGHNESSMAP\nuniform sampler2D pbr_metallicRoughnessSampler;\n#endif\n#ifdef HAS_OCCLUSIONMAP\nuniform sampler2D pbr_occlusionSampler;\n#endif\n#ifdef HAS_SPECULARCOLORMAP\nuniform sampler2D pbr_specularColorSampler;\n#endif\n#ifdef HAS_SPECULARINTENSITYMAP\nuniform sampler2D pbr_specularIntensitySampler;\n#endif\n#ifdef HAS_TRANSMISSIONMAP\nuniform sampler2D pbr_transmissionSampler;\n#endif\n#ifdef HAS_THICKNESSMAP\nuniform sampler2D pbr_thicknessSampler;\n#endif\n#ifdef HAS_CLEARCOATMAP\nuniform sampler2D pbr_clearcoatSampler;\n#endif\n#ifdef HAS_CLEARCOATROUGHNESSMAP\nuniform sampler2D pbr_clearcoatRoughnessSampler;\n#endif\n#ifdef HAS_CLEARCOATNORMALMAP\nuniform sampler2D pbr_clearcoatNormalSampler;\n#endif\n#ifdef HAS_SHEENCOLORMAP\nuniform sampler2D pbr_sheenColorSampler;\n#endif\n#ifdef HAS_SHEENROUGHNESSMAP\nuniform sampler2D pbr_sheenRoughnessSampler;\n#endif\n#ifdef HAS_IRIDESCENCEMAP\nuniform sampler2D pbr_iridescenceSampler;\n#endif\n#ifdef HAS_IRIDESCENCETHICKNESSMAP\nuniform sampler2D pbr_iridescenceThicknessSampler;\n#endif\n#ifdef HAS_ANISOTROPYMAP\nuniform sampler2D pbr_anisotropySampler;\n#endif\n// Inputs from vertex shader\n\nin vec3 pbr_vPosition;\nin vec2 pbr_vUV0;\nin vec2 pbr_vUV1;\n\n#ifdef HAS_NORMALS\n#ifdef HAS_TANGENTS\nin mat3 pbr_vTBN;\n#else\nin vec3 pbr_vNormal;\n#endif\n#endif\n\n// Encapsulate the various inputs used by the various functions in the shading equation\n// We store values in this struct to simplify the integration of alternative implementations\n// of the shading terms, outlined in the Readme.MD Appendix.\nstruct PBRInfo {\n float NdotL; // cos angle between normal and light direction\n float NdotV; // cos angle between normal and view direction\n float NdotH; // cos angle between normal and half vector\n float LdotH; // cos angle between light direction and half vector\n float VdotH; // cos angle between view direction and half vector\n float perceptualRoughness; // roughness value, as authored by the model creator (input to shader)\n float metalness; // metallic value at the surface\n vec3 reflectance0; // full reflectance color (normal incidence angle)\n vec3 reflectance90; // reflectance color at grazing angle\n float alphaRoughness; // roughness mapped to a more linear change in the roughness (proposed by [2])\n vec3 diffuseColor; // color contribution from diffuse lighting\n vec3 specularColor; // color contribution from specular lighting\n vec3 n; // normal at surface point\n vec3 v; // vector from surface point to camera\n};\n\nconst float M_PI = 3.141592653589793;\nconst float c_MinRoughness = 0.04;\n\nvec3 calculateFinalColor(PBRInfo pbrInfo, vec3 lightColor);\n\nvec4 SRGBtoLINEAR(vec4 srgbIn)\n{\n#ifdef MANUAL_SRGB\n#ifdef SRGB_FAST_APPROXIMATION\n vec3 linOut = pow(srgbIn.xyz,vec3(2.2));\n#else // SRGB_FAST_APPROXIMATION\n vec3 bLess = step(vec3(0.04045),srgbIn.xyz);\n vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );\n#endif //SRGB_FAST_APPROXIMATION\n return vec4(linOut,srgbIn.w);;\n#else //MANUAL_SRGB\n return srgbIn;\n#endif //MANUAL_SRGB\n}\n\nvec2 getMaterialUV(int uvSet, mat3 uvTransform)\n{\n vec2 baseUV = uvSet == 1 ? pbr_vUV1 : pbr_vUV0;\n return (uvTransform * vec3(baseUV, 1.0)).xy;\n}\n\n// Build the tangent basis from interpolated attributes or screen-space derivatives.\nmat3 getTBN(vec2 uv)\n{\n#ifndef HAS_TANGENTS\n vec3 pos_dx = dFdx(pbr_vPosition);\n vec3 pos_dy = dFdy(pbr_vPosition);\n vec3 tex_dx = dFdx(vec3(uv, 0.0));\n vec3 tex_dy = dFdy(vec3(uv, 0.0));\n vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);\n\n#ifdef HAS_NORMALS\n vec3 ng = normalize(pbr_vNormal);\n#else\n vec3 ng = cross(pos_dx, pos_dy);\n#endif\n\n t = normalize(t - ng * dot(ng, t));\n vec3 b = normalize(cross(ng, t));\n mat3 tbn = mat3(t, b, ng);\n#else // HAS_TANGENTS\n mat3 tbn = pbr_vTBN;\n#endif\n\n return tbn;\n}\n\n// Find the normal for this fragment, pulling either from a predefined normal map\n// or from the interpolated mesh normal and tangent attributes.\nvec3 getMappedNormal(sampler2D normalSampler, mat3 tbn, float normalScale, vec2 uv)\n{\n vec3 n = texture(normalSampler, uv).rgb;\n return normalize(tbn * ((2.0 * n - 1.0) * vec3(normalScale, normalScale, 1.0)));\n}\n\nvec3 getNormal(mat3 tbn, vec2 uv)\n{\n#ifdef HAS_NORMALMAP\n vec3 n = getMappedNormal(pbr_normalSampler, tbn, pbrMaterial.normalScale, uv);\n#else\n // The tbn matrix is linearly interpolated, so we need to re-normalize\n vec3 n = normalize(tbn[2].xyz);\n#endif\n\n return n;\n}\n\nvec3 getClearcoatNormal(mat3 tbn, vec3 baseNormal, vec2 uv)\n{\n#ifdef HAS_CLEARCOATNORMALMAP\n return getMappedNormal(pbr_clearcoatNormalSampler, tbn, 1.0, uv);\n#else\n return baseNormal;\n#endif\n}\n\n// Calculation of the lighting contribution from an optional Image Based Light source.\n// Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1].\n// See our README.md on Environment Maps [3] for additional discussion.\n#ifdef USE_IBL\nvec3 getIBLContribution(PBRInfo pbrInfo, vec3 n, vec3 reflection)\n{\n float mipCount = 9.0; // resolution of 512x512\n float lod = (pbrInfo.perceptualRoughness * mipCount);\n // retrieve a scale and bias to F0. See [1], Figure 3\n vec3 brdf = SRGBtoLINEAR(texture(pbr_brdfLUT,\n vec2(pbrInfo.NdotV, 1.0 - pbrInfo.perceptualRoughness))).rgb;\n vec3 diffuseLight = SRGBtoLINEAR(texture(pbr_diffuseEnvSampler, n)).rgb;\n\n#ifdef USE_TEX_LOD\n vec3 specularLight = SRGBtoLINEAR(texture(pbr_specularEnvSampler, reflection, lod)).rgb;\n#else\n vec3 specularLight = SRGBtoLINEAR(texture(pbr_specularEnvSampler, reflection)).rgb;\n#endif\n\n vec3 diffuse = diffuseLight * pbrInfo.diffuseColor;\n vec3 specular = specularLight * (pbrInfo.specularColor * brdf.x + brdf.y);\n\n // For presentation, this allows us to disable IBL terms\n diffuse *= pbrMaterial.scaleIBLAmbient.x;\n specular *= pbrMaterial.scaleIBLAmbient.y;\n\n return diffuse + specular;\n}\n#endif\n\n// Basic Lambertian diffuse\n// Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog\n// See also [1], Equation 1\nvec3 diffuse(PBRInfo pbrInfo)\n{\n return pbrInfo.diffuseColor / M_PI;\n}\n\n// The following equation models the Fresnel reflectance term of the spec equation (aka F())\n// Implementation of fresnel from [4], Equation 15\nvec3 specularReflection(PBRInfo pbrInfo)\n{\n return pbrInfo.reflectance0 +\n (pbrInfo.reflectance90 - pbrInfo.reflectance0) *\n pow(clamp(1.0 - pbrInfo.VdotH, 0.0, 1.0), 5.0);\n}\n\n// This calculates the specular geometric attenuation (aka G()),\n// where rougher material will reflect less light back to the viewer.\n// This implementation is based on [1] Equation 4, and we adopt their modifications to\n// alphaRoughness as input as originally proposed in [2].\nfloat geometricOcclusion(PBRInfo pbrInfo)\n{\n float NdotL = pbrInfo.NdotL;\n float NdotV = pbrInfo.NdotV;\n float r = pbrInfo.alphaRoughness;\n\n float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));\n float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));\n return attenuationL * attenuationV;\n}\n\n// The following equation(s) model the distribution of microfacet normals across\n// the area being drawn (aka D())\n// Implementation from \"Average Irregularity Representation of a Roughened Surface\n// for Ray Reflection\" by T. S. Trowbridge, and K. P. Reitz\n// Follows the distribution function recommended in the SIGGRAPH 2013 course notes\n// from EPIC Games [1], Equation 3.\nfloat microfacetDistribution(PBRInfo pbrInfo)\n{\n float roughnessSq = pbrInfo.alphaRoughness * pbrInfo.alphaRoughness;\n float f = (pbrInfo.NdotH * roughnessSq - pbrInfo.NdotH) * pbrInfo.NdotH + 1.0;\n return roughnessSq / (M_PI * f * f);\n}\n\nfloat maxComponent(vec3 value)\n{\n return max(max(value.r, value.g), value.b);\n}\n\nfloat getDielectricF0(float ior)\n{\n float clampedIor = max(ior, 1.0);\n float ratio = (clampedIor - 1.0) / (clampedIor + 1.0);\n return ratio * ratio;\n}\n\nvec2 normalizeDirection(vec2 direction)\n{\n float directionLength = length(direction);\n return directionLength > 0.0001 ? direction / directionLength : vec2(1.0, 0.0);\n}\n\nvec2 rotateDirection(vec2 direction, float rotation)\n{\n float s = sin(rotation);\n float c = cos(rotation);\n return vec2(direction.x * c - direction.y * s, direction.x * s + direction.y * c);\n}\n\nvec3 getIridescenceTint(float iridescence, float thickness, float NdotV)\n{\n if (iridescence <= 0.0) {\n return vec3(1.0);\n }\n\n float phase = 0.015 * thickness * pbrMaterial.iridescenceIor + (1.0 - NdotV) * 6.0;\n vec3 thinFilmTint =\n 0.5 + 0.5 * cos(vec3(phase, phase + 2.0943951, phase + 4.1887902));\n return mix(vec3(1.0), thinFilmTint, iridescence);\n}\n\nvec3 getVolumeAttenuation(float thickness)\n{\n if (thickness <= 0.0) {\n return vec3(1.0);\n }\n\n vec3 attenuationCoefficient =\n -log(max(pbrMaterial.attenuationColor, vec3(0.0001))) /\n max(pbrMaterial.attenuationDistance, 0.0001);\n return exp(-attenuationCoefficient * thickness);\n}\n\nPBRInfo createClearcoatPBRInfo(PBRInfo basePBRInfo, vec3 clearcoatNormal, float clearcoatRoughness)\n{\n float perceptualRoughness = clamp(clearcoatRoughness, c_MinRoughness, 1.0);\n float alphaRoughness = perceptualRoughness * perceptualRoughness;\n float NdotV = clamp(abs(dot(clearcoatNormal, basePBRInfo.v)), 0.001, 1.0);\n\n return PBRInfo(\n basePBRInfo.NdotL,\n NdotV,\n basePBRInfo.NdotH,\n basePBRInfo.LdotH,\n basePBRInfo.VdotH,\n perceptualRoughness,\n 0.0,\n vec3(0.04),\n vec3(1.0),\n alphaRoughness,\n vec3(0.0),\n vec3(0.04),\n clearcoatNormal,\n basePBRInfo.v\n );\n}\n\nvec3 calculateClearcoatContribution(\n PBRInfo pbrInfo,\n vec3 lightColor,\n vec3 clearcoatNormal,\n float clearcoatFactor,\n float clearcoatRoughness\n) {\n if (clearcoatFactor <= 0.0) {\n return vec3(0.0);\n }\n\n PBRInfo clearcoatPBRInfo = createClearcoatPBRInfo(pbrInfo, clearcoatNormal, clearcoatRoughness);\n return calculateFinalColor(clearcoatPBRInfo, lightColor) * clearcoatFactor;\n}\n\n#ifdef USE_IBL\nvec3 calculateClearcoatIBLContribution(\n PBRInfo pbrInfo,\n vec3 clearcoatNormal,\n vec3 reflection,\n float clearcoatFactor,\n float clearcoatRoughness\n) {\n if (clearcoatFactor <= 0.0) {\n return vec3(0.0);\n }\n\n PBRInfo clearcoatPBRInfo = createClearcoatPBRInfo(pbrInfo, clearcoatNormal, clearcoatRoughness);\n return getIBLContribution(clearcoatPBRInfo, clearcoatNormal, reflection) * clearcoatFactor;\n}\n#endif\n\nvec3 calculateSheenContribution(\n PBRInfo pbrInfo,\n vec3 lightColor,\n vec3 sheenColor,\n float sheenRoughness\n) {\n if (maxComponent(sheenColor) <= 0.0) {\n return vec3(0.0);\n }\n\n float sheenFresnel = pow(clamp(1.0 - pbrInfo.VdotH, 0.0, 1.0), 5.0);\n float sheenVisibility = mix(1.0, pbrInfo.NdotL * pbrInfo.NdotV, sheenRoughness);\n return pbrInfo.NdotL *\n lightColor *\n sheenColor *\n (0.25 + 0.75 * sheenFresnel) *\n sheenVisibility *\n (1.0 - pbrInfo.metalness);\n}\n\nfloat calculateAnisotropyBoost(\n PBRInfo pbrInfo,\n vec3 anisotropyTangent,\n float anisotropyStrength\n) {\n if (anisotropyStrength <= 0.0) {\n return 1.0;\n }\n\n vec3 anisotropyBitangent = normalize(cross(pbrInfo.n, anisotropyTangent));\n float bitangentViewAlignment = abs(dot(pbrInfo.v, anisotropyBitangent));\n return mix(1.0, 0.65 + 0.7 * bitangentViewAlignment, anisotropyStrength);\n}\n\nvec3 calculateMaterialLightColor(\n PBRInfo pbrInfo,\n vec3 lightColor,\n vec3 clearcoatNormal,\n float clearcoatFactor,\n float clearcoatRoughness,\n vec3 sheenColor,\n float sheenRoughness,\n vec3 anisotropyTangent,\n float anisotropyStrength\n) {\n float anisotropyBoost = calculateAnisotropyBoost(pbrInfo, anisotropyTangent, anisotropyStrength);\n vec3 color = calculateFinalColor(pbrInfo, lightColor) * anisotropyBoost;\n color += calculateClearcoatContribution(\n pbrInfo,\n lightColor,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness\n );\n color += calculateSheenContribution(pbrInfo, lightColor, sheenColor, sheenRoughness);\n return color;\n}\n\nvoid PBRInfo_setAmbientLight(inout PBRInfo pbrInfo) {\n pbrInfo.NdotL = 1.0;\n pbrInfo.NdotH = 0.0;\n pbrInfo.LdotH = 0.0;\n pbrInfo.VdotH = 1.0;\n}\n\nvoid PBRInfo_setDirectionalLight(inout PBRInfo pbrInfo, vec3 lightDirection) {\n vec3 n = pbrInfo.n;\n vec3 v = pbrInfo.v;\n vec3 l = normalize(lightDirection); // Vector from surface point to light\n vec3 h = normalize(l+v); // Half vector between both l and v\n\n pbrInfo.NdotL = clamp(dot(n, l), 0.001, 1.0);\n pbrInfo.NdotH = clamp(dot(n, h), 0.0, 1.0);\n pbrInfo.LdotH = clamp(dot(l, h), 0.0, 1.0);\n pbrInfo.VdotH = clamp(dot(v, h), 0.0, 1.0);\n}\n\nvoid PBRInfo_setPointLight(inout PBRInfo pbrInfo, PointLight pointLight) {\n vec3 light_direction = normalize(pointLight.position - pbr_vPosition);\n PBRInfo_setDirectionalLight(pbrInfo, light_direction);\n}\n\nvoid PBRInfo_setSpotLight(inout PBRInfo pbrInfo, SpotLight spotLight) {\n vec3 light_direction = normalize(spotLight.position - pbr_vPosition);\n PBRInfo_setDirectionalLight(pbrInfo, light_direction);\n}\n\nvec3 calculateFinalColor(PBRInfo pbrInfo, vec3 lightColor) {\n // Calculate the shading terms for the microfacet specular shading model\n vec3 F = specularReflection(pbrInfo);\n float G = geometricOcclusion(pbrInfo);\n float D = microfacetDistribution(pbrInfo);\n\n // Calculation of analytical lighting contribution\n vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInfo);\n vec3 specContrib = F * G * D / (4.0 * pbrInfo.NdotL * pbrInfo.NdotV);\n // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)\n return pbrInfo.NdotL * lightColor * (diffuseContrib + specContrib);\n}\n\nvec4 pbr_filterColor(vec4 colorUnused)\n{\n vec2 baseColorUV = getMaterialUV(pbrMaterial.baseColorUVSet, pbrMaterial.baseColorUVTransform);\n vec2 metallicRoughnessUV = getMaterialUV(\n pbrMaterial.metallicRoughnessUVSet,\n pbrMaterial.metallicRoughnessUVTransform\n );\n vec2 normalUV = getMaterialUV(pbrMaterial.normalUVSet, pbrMaterial.normalUVTransform);\n vec2 occlusionUV = getMaterialUV(pbrMaterial.occlusionUVSet, pbrMaterial.occlusionUVTransform);\n vec2 emissiveUV = getMaterialUV(pbrMaterial.emissiveUVSet, pbrMaterial.emissiveUVTransform);\n vec2 specularColorUV = getMaterialUV(\n pbrMaterial.specularColorUVSet,\n pbrMaterial.specularColorUVTransform\n );\n vec2 specularIntensityUV = getMaterialUV(\n pbrMaterial.specularIntensityUVSet,\n pbrMaterial.specularIntensityUVTransform\n );\n vec2 transmissionUV = getMaterialUV(\n pbrMaterial.transmissionUVSet,\n pbrMaterial.transmissionUVTransform\n );\n vec2 thicknessUV = getMaterialUV(pbrMaterial.thicknessUVSet, pbrMaterial.thicknessUVTransform);\n vec2 clearcoatUV = getMaterialUV(pbrMaterial.clearcoatUVSet, pbrMaterial.clearcoatUVTransform);\n vec2 clearcoatRoughnessUV = getMaterialUV(\n pbrMaterial.clearcoatRoughnessUVSet,\n pbrMaterial.clearcoatRoughnessUVTransform\n );\n vec2 clearcoatNormalUV = getMaterialUV(\n pbrMaterial.clearcoatNormalUVSet,\n pbrMaterial.clearcoatNormalUVTransform\n );\n vec2 sheenColorUV = getMaterialUV(\n pbrMaterial.sheenColorUVSet,\n pbrMaterial.sheenColorUVTransform\n );\n vec2 sheenRoughnessUV = getMaterialUV(\n pbrMaterial.sheenRoughnessUVSet,\n pbrMaterial.sheenRoughnessUVTransform\n );\n vec2 iridescenceUV = getMaterialUV(\n pbrMaterial.iridescenceUVSet,\n pbrMaterial.iridescenceUVTransform\n );\n vec2 iridescenceThicknessUV = getMaterialUV(\n pbrMaterial.iridescenceThicknessUVSet,\n pbrMaterial.iridescenceThicknessUVTransform\n );\n vec2 anisotropyUV = getMaterialUV(\n pbrMaterial.anisotropyUVSet,\n pbrMaterial.anisotropyUVTransform\n );\n\n // The albedo may be defined from a base texture or a flat color\n#ifdef HAS_BASECOLORMAP\n vec4 baseColor =\n SRGBtoLINEAR(texture(pbr_baseColorSampler, baseColorUV)) * pbrMaterial.baseColorFactor;\n#else\n vec4 baseColor = pbrMaterial.baseColorFactor;\n#endif\n\n#ifdef ALPHA_CUTOFF\n if (baseColor.a < pbrMaterial.alphaCutoff) {\n discard;\n }\n#endif\n\n vec3 color = vec3(0, 0, 0);\n\n float transmission = 0.0;\n\n if(pbrMaterial.unlit){\n color.rgb = baseColor.rgb;\n }\n else{\n // Metallic and Roughness material properties are packed together\n // In glTF, these factors can be specified by fixed scalar values\n // or from a metallic-roughness map\n float perceptualRoughness = pbrMaterial.metallicRoughnessValues.y;\n float metallic = pbrMaterial.metallicRoughnessValues.x;\n#ifdef HAS_METALROUGHNESSMAP\n // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.\n // This layout intentionally reserves the 'r' channel for (optional) occlusion map data\n vec4 mrSample = texture(pbr_metallicRoughnessSampler, metallicRoughnessUV);\n perceptualRoughness = mrSample.g * perceptualRoughness;\n metallic = mrSample.b * metallic;\n#endif\n perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);\n metallic = clamp(metallic, 0.0, 1.0);\n mat3 tbn = getTBN(normalUV);\n vec3 n = getNormal(tbn, normalUV); // normal at surface point\n vec3 v = normalize(pbrProjection.camera - pbr_vPosition); // Vector from surface point to camera\n float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);\n#ifdef USE_MATERIAL_EXTENSIONS\n bool useExtendedPBR =\n pbrMaterial.specularColorMapEnabled ||\n pbrMaterial.specularIntensityMapEnabled ||\n abs(pbrMaterial.specularIntensityFactor - 1.0) > 0.0001 ||\n maxComponent(abs(pbrMaterial.specularColorFactor - vec3(1.0))) > 0.0001 ||\n abs(pbrMaterial.ior - 1.5) > 0.0001 ||\n pbrMaterial.transmissionMapEnabled ||\n pbrMaterial.transmissionFactor > 0.0001 ||\n pbrMaterial.clearcoatMapEnabled ||\n pbrMaterial.clearcoatRoughnessMapEnabled ||\n pbrMaterial.clearcoatFactor > 0.0001 ||\n pbrMaterial.clearcoatRoughnessFactor > 0.0001 ||\n pbrMaterial.sheenColorMapEnabled ||\n pbrMaterial.sheenRoughnessMapEnabled ||\n maxComponent(pbrMaterial.sheenColorFactor) > 0.0001 ||\n pbrMaterial.sheenRoughnessFactor > 0.0001 ||\n pbrMaterial.iridescenceMapEnabled ||\n pbrMaterial.iridescenceFactor > 0.0001 ||\n abs(pbrMaterial.iridescenceIor - 1.3) > 0.0001 ||\n abs(pbrMaterial.iridescenceThicknessRange.x - 100.0) > 0.0001 ||\n abs(pbrMaterial.iridescenceThicknessRange.y - 400.0) > 0.0001 ||\n pbrMaterial.anisotropyMapEnabled ||\n pbrMaterial.anisotropyStrength > 0.0001 ||\n abs(pbrMaterial.anisotropyRotation) > 0.0001 ||\n length(pbrMaterial.anisotropyDirection - vec2(1.0, 0.0)) > 0.0001;\n#else\n bool useExtendedPBR = false;\n#endif\n\n if (!useExtendedPBR) {\n // Keep the baseline metallic-roughness implementation byte-for-byte equivalent in behavior.\n float alphaRoughness = perceptualRoughness * perceptualRoughness;\n\n vec3 f0 = vec3(0.04);\n vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);\n diffuseColor *= 1.0 - metallic;\n vec3 specularColor = mix(f0, baseColor.rgb, metallic);\n\n float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n vec3 specularEnvironmentR0 = specularColor.rgb;\n vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;\n vec3 reflection = -normalize(reflect(v, n));\n\n PBRInfo pbrInfo = PBRInfo(\n 0.0, // NdotL\n NdotV,\n 0.0, // NdotH\n 0.0, // LdotH\n 0.0, // VdotH\n perceptualRoughness,\n metallic,\n specularEnvironmentR0,\n specularEnvironmentR90,\n alphaRoughness,\n diffuseColor,\n specularColor,\n n,\n v\n );\n\n#ifdef USE_LIGHTS\n PBRInfo_setAmbientLight(pbrInfo);\n color += calculateFinalColor(pbrInfo, lighting.ambientColor);\n\n for(int i = 0; i < lighting.directionalLightCount; i++) {\n if (i < lighting.directionalLightCount) {\n PBRInfo_setDirectionalLight(pbrInfo, lighting_getDirectionalLight(i).direction);\n color += calculateFinalColor(pbrInfo, lighting_getDirectionalLight(i).color);\n }\n }\n\n for(int i = 0; i < lighting.pointLightCount; i++) {\n if (i < lighting.pointLightCount) {\n PBRInfo_setPointLight(pbrInfo, lighting_getPointLight(i));\n float attenuation = getPointLightAttenuation(lighting_getPointLight(i), distance(lighting_getPointLight(i).position, pbr_vPosition));\n color += calculateFinalColor(pbrInfo, lighting_getPointLight(i).color / attenuation);\n }\n }\n\n for(int i = 0; i < lighting.spotLightCount; i++) {\n if (i < lighting.spotLightCount) {\n PBRInfo_setSpotLight(pbrInfo, lighting_getSpotLight(i));\n float attenuation = getSpotLightAttenuation(lighting_getSpotLight(i), pbr_vPosition);\n color += calculateFinalColor(pbrInfo, lighting_getSpotLight(i).color / attenuation);\n }\n }\n#endif\n\n#ifdef USE_IBL\n if (pbrMaterial.IBLenabled) {\n color += getIBLContribution(pbrInfo, n, reflection);\n }\n#endif\n\n#ifdef HAS_OCCLUSIONMAP\n if (pbrMaterial.occlusionMapEnabled) {\n float ao = texture(pbr_occlusionSampler, occlusionUV).r;\n color = mix(color, color * ao, pbrMaterial.occlusionStrength);\n }\n#endif\n\n vec3 emissive = pbrMaterial.emissiveFactor;\n#ifdef HAS_EMISSIVEMAP\n if (pbrMaterial.emissiveMapEnabled) {\n emissive *= SRGBtoLINEAR(texture(pbr_emissiveSampler, emissiveUV)).rgb;\n }\n#endif\n color += emissive * pbrMaterial.emissiveStrength;\n\n#ifdef PBR_DEBUG\n color = mix(color, baseColor.rgb, pbrMaterial.scaleDiffBaseMR.y);\n color = mix(color, vec3(metallic), pbrMaterial.scaleDiffBaseMR.z);\n color = mix(color, vec3(perceptualRoughness), pbrMaterial.scaleDiffBaseMR.w);\n#endif\n\n return vec4(pow(color, vec3(1.0 / 2.2)), baseColor.a);\n }\n\n float specularIntensity = pbrMaterial.specularIntensityFactor;\n#ifdef HAS_SPECULARINTENSITYMAP\n if (pbrMaterial.specularIntensityMapEnabled) {\n specularIntensity *= texture(pbr_specularIntensitySampler, specularIntensityUV).a;\n }\n#endif\n\n vec3 specularFactor = pbrMaterial.specularColorFactor;\n#ifdef HAS_SPECULARCOLORMAP\n if (pbrMaterial.specularColorMapEnabled) {\n specularFactor *= SRGBtoLINEAR(texture(pbr_specularColorSampler, specularColorUV)).rgb;\n }\n#endif\n\n transmission = pbrMaterial.transmissionFactor;\n#ifdef HAS_TRANSMISSIONMAP\n if (pbrMaterial.transmissionMapEnabled) {\n transmission *= texture(pbr_transmissionSampler, transmissionUV).r;\n }\n#endif\n transmission = clamp(transmission * (1.0 - metallic), 0.0, 1.0);\n float thickness = max(pbrMaterial.thicknessFactor, 0.0);\n#ifdef HAS_THICKNESSMAP\n thickness *= texture(pbr_thicknessSampler, thicknessUV).g;\n#endif\n\n float clearcoatFactor = pbrMaterial.clearcoatFactor;\n float clearcoatRoughness = pbrMaterial.clearcoatRoughnessFactor;\n#ifdef HAS_CLEARCOATMAP\n if (pbrMaterial.clearcoatMapEnabled) {\n clearcoatFactor *= texture(pbr_clearcoatSampler, clearcoatUV).r;\n }\n#endif\n#ifdef HAS_CLEARCOATROUGHNESSMAP\n if (pbrMaterial.clearcoatRoughnessMapEnabled) {\n clearcoatRoughness *= texture(pbr_clearcoatRoughnessSampler, clearcoatRoughnessUV).g;\n }\n#endif\n clearcoatFactor = clamp(clearcoatFactor, 0.0, 1.0);\n clearcoatRoughness = clamp(clearcoatRoughness, c_MinRoughness, 1.0);\n vec3 clearcoatNormal = getClearcoatNormal(getTBN(clearcoatNormalUV), n, clearcoatNormalUV);\n\n vec3 sheenColor = pbrMaterial.sheenColorFactor;\n float sheenRoughness = pbrMaterial.sheenRoughnessFactor;\n#ifdef HAS_SHEENCOLORMAP\n if (pbrMaterial.sheenColorMapEnabled) {\n sheenColor *= SRGBtoLINEAR(texture(pbr_sheenColorSampler, sheenColorUV)).rgb;\n }\n#endif\n#ifdef HAS_SHEENROUGHNESSMAP\n if (pbrMaterial.sheenRoughnessMapEnabled) {\n sheenRoughness *= texture(pbr_sheenRoughnessSampler, sheenRoughnessUV).a;\n }\n#endif\n sheenRoughness = clamp(sheenRoughness, c_MinRoughness, 1.0);\n\n float iridescence = pbrMaterial.iridescenceFactor;\n#ifdef HAS_IRIDESCENCEMAP\n if (pbrMaterial.iridescenceMapEnabled) {\n iridescence *= texture(pbr_iridescenceSampler, iridescenceUV).r;\n }\n#endif\n iridescence = clamp(iridescence, 0.0, 1.0);\n float iridescenceThickness = mix(\n pbrMaterial.iridescenceThicknessRange.x,\n pbrMaterial.iridescenceThicknessRange.y,\n 0.5\n );\n#ifdef HAS_IRIDESCENCETHICKNESSMAP\n iridescenceThickness = mix(\n pbrMaterial.iridescenceThicknessRange.x,\n pbrMaterial.iridescenceThicknessRange.y,\n texture(pbr_iridescenceThicknessSampler, iridescenceThicknessUV).g\n );\n#endif\n\n float anisotropyStrength = clamp(pbrMaterial.anisotropyStrength, 0.0, 1.0);\n vec2 anisotropyDirection = normalizeDirection(pbrMaterial.anisotropyDirection);\n#ifdef HAS_ANISOTROPYMAP\n if (pbrMaterial.anisotropyMapEnabled) {\n vec3 anisotropySample = texture(pbr_anisotropySampler, anisotropyUV).rgb;\n anisotropyStrength *= anisotropySample.b;\n vec2 mappedDirection = anisotropySample.rg * 2.0 - 1.0;\n if (length(mappedDirection) > 0.0001) {\n anisotropyDirection = normalize(mappedDirection);\n }\n }\n#endif\n anisotropyDirection = rotateDirection(anisotropyDirection, pbrMaterial.anisotropyRotation);\n vec3 anisotropyTangent = normalize(tbn[0] * anisotropyDirection.x + tbn[1] * anisotropyDirection.y);\n if (length(anisotropyTangent) < 0.0001) {\n anisotropyTangent = normalize(tbn[0]);\n }\n float anisotropyViewAlignment = abs(dot(v, anisotropyTangent));\n perceptualRoughness = mix(\n perceptualRoughness,\n clamp(perceptualRoughness * (1.0 - 0.6 * anisotropyViewAlignment), c_MinRoughness, 1.0),\n anisotropyStrength\n );\n\n // Roughness is authored as perceptual roughness; as is convention,\n // convert to material roughness by squaring the perceptual roughness [2].\n float alphaRoughness = perceptualRoughness * perceptualRoughness;\n\n float dielectricF0 = getDielectricF0(pbrMaterial.ior);\n vec3 dielectricSpecularF0 = min(\n vec3(dielectricF0) * specularFactor * specularIntensity,\n vec3(1.0)\n );\n vec3 iridescenceTint = getIridescenceTint(iridescence, iridescenceThickness, NdotV);\n dielectricSpecularF0 = mix(\n dielectricSpecularF0,\n dielectricSpecularF0 * iridescenceTint,\n iridescence\n );\n vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - dielectricSpecularF0);\n diffuseColor *= (1.0 - metallic) * (1.0 - transmission);\n vec3 specularColor = mix(dielectricSpecularF0, baseColor.rgb, metallic);\n\n float baseLayerEnergy = 1.0 - clearcoatFactor * 0.25;\n diffuseColor *= baseLayerEnergy;\n specularColor *= baseLayerEnergy;\n\n // Compute reflectance.\n float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n\n // For typical incident reflectance range (between 4% to 100%) set the grazing\n // reflectance to 100% for typical fresnel effect.\n // For very low reflectance range on highly diffuse objects (below 4%),\n // incrementally reduce grazing reflecance to 0%.\n float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n vec3 specularEnvironmentR0 = specularColor.rgb;\n vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;\n vec3 reflection = -normalize(reflect(v, n));\n\n PBRInfo pbrInfo = PBRInfo(\n 0.0, // NdotL\n NdotV,\n 0.0, // NdotH\n 0.0, // LdotH\n 0.0, // VdotH\n perceptualRoughness,\n metallic,\n specularEnvironmentR0,\n specularEnvironmentR90,\n alphaRoughness,\n diffuseColor,\n specularColor,\n n,\n v\n );\n\n\n#ifdef USE_LIGHTS\n // Apply ambient light\n PBRInfo_setAmbientLight(pbrInfo);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting.ambientColor,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n\n // Apply directional light\n for(int i = 0; i < lighting.directionalLightCount; i++) {\n if (i < lighting.directionalLightCount) {\n PBRInfo_setDirectionalLight(pbrInfo, lighting_getDirectionalLight(i).direction);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getDirectionalLight(i).color,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n\n // Apply point light\n for(int i = 0; i < lighting.pointLightCount; i++) {\n if (i < lighting.pointLightCount) {\n PBRInfo_setPointLight(pbrInfo, lighting_getPointLight(i));\n float attenuation = getPointLightAttenuation(lighting_getPointLight(i), distance(lighting_getPointLight(i).position, pbr_vPosition));\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getPointLight(i).color / attenuation,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n\n for(int i = 0; i < lighting.spotLightCount; i++) {\n if (i < lighting.spotLightCount) {\n PBRInfo_setSpotLight(pbrInfo, lighting_getSpotLight(i));\n float attenuation = getSpotLightAttenuation(lighting_getSpotLight(i), pbr_vPosition);\n color += calculateMaterialLightColor(\n pbrInfo,\n lighting_getSpotLight(i).color / attenuation,\n clearcoatNormal,\n clearcoatFactor,\n clearcoatRoughness,\n sheenColor,\n sheenRoughness,\n anisotropyTangent,\n anisotropyStrength\n );\n }\n }\n#endif\n\n // Calculate lighting contribution from image based lighting source (IBL)\n#ifdef USE_IBL\n if (pbrMaterial.IBLenabled) {\n color += getIBLContribution(pbrInfo, n, reflection) *\n calculateAnisotropyBoost(pbrInfo, anisotropyTangent, anisotropyStrength);\n color += calculateClearcoatIBLContribution(\n pbrInfo,\n clearcoatNormal,\n -normalize(reflect(v, clearcoatNormal)),\n clearcoatFactor,\n clearcoatRoughness\n );\n color += sheenColor * pbrMaterial.scaleIBLAmbient.x * (1.0 - sheenRoughness) * 0.25;\n }\n#endif\n\n // Apply optional PBR terms for additional (optional) shading\n#ifdef HAS_OCCLUSIONMAP\n if (pbrMaterial.occlusionMapEnabled) {\n float ao = texture(pbr_occlusionSampler, occlusionUV).r;\n color = mix(color, color * ao, pbrMaterial.occlusionStrength);\n }\n#endif\n\n vec3 emissive = pbrMaterial.emissiveFactor;\n#ifdef HAS_EMISSIVEMAP\n if (pbrMaterial.emissiveMapEnabled) {\n emissive *= SRGBtoLINEAR(texture(pbr_emissiveSampler, emissiveUV)).rgb;\n }\n#endif\n color += emissive * pbrMaterial.emissiveStrength;\n\n if (transmission > 0.0) {\n color = mix(color, color * getVolumeAttenuation(thickness), transmission);\n }\n\n // This section uses mix to override final color for reference app visualization\n // of various parameters in the lighting equation.\n#ifdef PBR_DEBUG\n // TODO: Figure out how to debug multiple lights\n\n // color = mix(color, F, pbr_scaleFGDSpec.x);\n // color = mix(color, vec3(G), pbr_scaleFGDSpec.y);\n // color = mix(color, vec3(D), pbr_scaleFGDSpec.z);\n // color = mix(color, specContrib, pbr_scaleFGDSpec.w);\n\n // color = mix(color, diffuseContrib, pbr_scaleDiffBaseMR.x);\n color = mix(color, baseColor.rgb, pbrMaterial.scaleDiffBaseMR.y);\n color = mix(color, vec3(metallic), pbrMaterial.scaleDiffBaseMR.z);\n color = mix(color, vec3(perceptualRoughness), pbrMaterial.scaleDiffBaseMR.w);\n#endif\n\n }\n\n float alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);\n return vec4(pow(color,vec3(1.0/2.2)), alpha);\n}\n",defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:e=>e,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>"}};function Db(e,t){if(!e)throw new Error(t)}class ScenegraphNode{id;matrix=new gn.k;display=!0;position=new Xn.P;rotation=new Xn.P;scale=new Xn.P(1,1,1);userData={};props={};constructor(e={}){const{id:t}=e;this.id=t||(0,ns.L)(this.constructor.name),this._setScenegraphNodeProps(e)}getBounds(){return null}destroy(){}delete(){this.destroy()}setProps(e){return this._setScenegraphNodeProps(e),this}toString(){return`{type: ScenegraphNode, id: ${this.id})}`}setPosition(e){return Db(3===e.length,"setPosition requires vector argument"),this.position=e,this}setRotation(e){return Db(3===e.length||4===e.length,"setRotation requires vector argument"),this.rotation=e,this}setScale(e){return Db(3===e.length,"setScale requires vector argument"),this.scale=e,this}setMatrix(e,t=!0){t?this.matrix.copy(e):this.matrix=e}setMatrixComponents(e){const{position:t,rotation:n,scale:i,update:r=!0}=e;return t&&this.setPosition(t),n&&this.setRotation(n),i&&this.setScale(i),r&&this.updateMatrix(),this}updateMatrix(){if(this.matrix.identity(),this.matrix.translate(this.position),4===this.rotation.length){const e=(new gn.k).fromQuaternion(this.rotation);this.matrix.multiplyRight(e)}else this.matrix.rotateXYZ(this.rotation);return this.matrix.scale(this.scale),this}update({position:e,rotation:t,scale:n}={}){return e&&this.setPosition(e),t&&this.setRotation(t),n&&this.setScale(n),this.updateMatrix(),this}getCoordinateUniforms(e,t){t=t||this.matrix;const n=new gn.k(e).multiplyRight(t),i=n.invert(),r=i.transpose();return{viewMatrix:e,modelMatrix:t,objectMatrix:t,worldMatrix:n,worldInverseMatrix:i,worldInverseTransposeMatrix:r}}_setScenegraphNodeProps(e){e?.position&&this.setPosition(e.position),e?.rotation&&this.setRotation(e.rotation),e?.scale&&this.setScale(e.scale),this.updateMatrix(),e?.matrix&&this.setMatrix(e.matrix),Object.assign(this.props,e)}}class GroupNode extends ScenegraphNode{children;constructor(e={}){e=Array.isArray(e)?{children:e}:e;const{children:t=[]}=e;Bi.R.assert(t.every(e=>e instanceof ScenegraphNode),"every child must an instance of ScenegraphNode"),super(e),this.children=t}getBounds(){const e=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];return this.traverse((t,{worldMatrix:n})=>{const i=t.getBounds();if(!i)return;const[r,o]=i,s=new Xn.P(r).add(o).divide([2,2,2]);n.transformAsPoint(s,s);const a=new Xn.P(o).subtract(r).divide([2,2,2]);n.transformAsVector(a,a);for(let t=0;t<8;t++){const n=new Xn.P(1&t?-1:1,2&t?-1:1,4&t?-1:1).multiply(a).add(s);for(let t=0;t<3;t++)e[0][t]=Math.min(e[0][t],n[t]),e[1][t]=Math.max(e[1][t],n[t])}}),Number.isFinite(e[0][0])?e:null}destroy(){this.children.forEach(e=>e.destroy()),this.removeAll(),super.destroy()}add(...e){for(const t of e)Array.isArray(t)?this.add(...t):this.children.push(t);return this}remove(e){const t=this.children,n=t.indexOf(e);return n>-1&&t.splice(n,1),this}removeAll(){return this.children=[],this}traverse(e,{worldMatrix:t=new gn.k}={}){const n=new gn.k(t).multiplyRight(this.matrix);for(const t of this.children)t instanceof GroupNode?t.traverse(e,{worldMatrix:n}):e(t,{worldMatrix:n})}preorderTraversal(e,{worldMatrix:t=new gn.k}={}){const n=new gn.k(t).multiplyRight(this.matrix);e(this,{worldMatrix:n});for(const t of this.children)t instanceof GroupNode?t.preorderTraversal(e,{worldMatrix:n}):e(t,{worldMatrix:n})}}class ModelNode extends ScenegraphNode{model;bounds=null;managedResources;constructor(e){super(e),this.model=e.model,this.managedResources=e.managedResources||[],this.bounds=e.bounds||null,this.setProps(e)}destroy(){this.model&&(this.model.destroy(),this.model=null),this.managedResources.forEach(e=>e.destroy()),this.managedResources=[]}getBounds(){return this.bounds}draw(e){return this.model.draw(e)}}var Ob=n(99427),Nb=n(24114),kb=n(75638),Ub=n(89277),Gb=n(22798),Vb=n(16698);class Material{id;device;factory;shaderInputs;bindings={};_uniformStore;_bindGroupCacheToken={};constructor(e,t={}){this.id=t.id||(0,ns.L)("material"),this.device=e,this.factory=t.factory||new MaterialFactory(e,{modules:t.modules||t.shaderInputs?.getModules()||[]});const n=Object.fromEntries((t.shaderInputs?.getModules()||this.factory.modules).map(e=>[e.name,e]));this.shaderInputs=t.shaderInputs||new Ob.l(n),this._uniformStore=new Nb.K(this.device,this.shaderInputs.modules);for(const[e,t]of Object.entries(this.shaderInputs.modules))if(this.ownsModule(e)&&(0,Vb.f)(t)){const t=this._uniformStore.getManagedUniformBuffer(e);this.bindings[`${e}Uniforms`]=t}this.updateShaderInputs(),t.bindings&&this._replaceOwnedBindings(t.bindings)}destroy(){this._uniformStore.destroy()}clone(e={}){const t=this.factory.createMaterial({id:e.id,shaderInputs:e.shaderInputs,bindings:{...this.getResourceBindings(),...e.bindings}});return e.shaderInputs||t.setProps(this.shaderInputs.getUniformValues()),e.moduleProps&&t.setProps(e.moduleProps),t}ownsBinding(e){return this.factory.ownsBinding(e)}ownsModule(e){return this.factory.ownsModule(e)}setProps(e){this.shaderInputs.setProps(e),this.updateShaderInputs()}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());this._setOwnedBindings(this.shaderInputs.getBindingValues())&&(this._bindGroupCacheToken={})}getResourceBindings(){const e={};for(const[t,n]of Object.entries(this.bindings))Hb(t)||(e[t]=n);return e}getBindings(){const e={},t=e;for(const[e,n]of Object.entries(this.bindings))n instanceof Gb.R?n.isReady&&(t[e]=n.texture):t[e]=n;return e}getBindingsByGroup(){return this.factory.getBindingsByGroup(this.getBindings())}getBindGroupCacheKey(e){return 3===e?this._bindGroupCacheToken:null}getBindingsUpdateTimestamp(){let e=0;for(const t of Object.values(this.bindings))t instanceof kb.X?e=Math.max(e,t.texture.updateTimestamp):t instanceof gi.h||t instanceof pi.g?e=Math.max(e,t.updateTimestamp):t instanceof Gb.R?e=t.texture?Math.max(e,t.texture.updateTimestamp):1/0:t instanceof Ub.L||(e=Math.max(e,t.buffer.updateTimestamp));return e}_replaceOwnedBindings(e){this._setOwnedBindings(e)&&(this._bindGroupCacheToken={})}_setOwnedBindings(e){let t=!1;for(const[n,i]of Object.entries(e))void 0!==i&&this.ownsBinding(n)&&this.bindings[n]!==i&&(this.bindings[n]=i,t=!0);return t}}const zb=3;class MaterialFactory{device;modules;_materialBindingNames;_materialModuleNames;constructor(e,t={}){this.device=e,this.modules=t.modules||[];const n=new Ob.l(Object.fromEntries(this.modules.map(e=>[e.name,e])));this._materialBindingNames=function(e){const t=new Set;for(const n of Object.values(e.modules))for(const e of n.bindingLayout||[])3===e.group&&t.add(e.name);return t}(n),this._materialModuleNames=function(e){const t=new Set;for(const n of Object.values(e.modules))n.name&&n.bindingLayout?.some(e=>3===e.group&&e.name===n.name)&&t.add(n.name);return t}(n)}createMaterial(e={}){return new Material(this.device,{...e,factory:this})}getBindingNames(){return Array.from(this._materialBindingNames)}ownsBinding(e){if(this._materialBindingNames.has(e))return!0;const t=Hb(e);return!!t&&this._materialModuleNames.has(t)}ownsModule(e){return this._materialModuleNames.has(e)}getBindingsByGroup(e){return Object.keys(e).length>0?{[zb]:e}:{}}}function Hb(e){return e.endsWith("Uniforms")?e.slice(0,-8):null}var Wb;!function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ONE=1]="ONE",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST=9728]="NEAREST",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"}(Wb||(Wb={}));const jb={props:{},uniforms:{},name:"skin",bindingLayout:[{name:"skin",group:0}],dependencies:[],source:"\nstruct skinUniforms {\n jointMatrix: array<mat4x4<f32>, 20>,\n};\n\n@group(0) @binding(auto) var<uniform> skin: skinUniforms;\n\nfn getSkinMatrix(weights: vec4f, joints: vec4u) -> mat4x4<f32> {\n return (weights.x * skin.jointMatrix[joints.x])\n + (weights.y * skin.jointMatrix[joints.y])\n + (weights.z * skin.jointMatrix[joints.z])\n + (weights.w * skin.jointMatrix[joints.w]);\n}\n",vs:"\nlayout(std140) uniform skinUniforms {\n mat4 jointMatrix[SKIN_MAX_JOINTS];\n} skin;\n\nmat4 getSkinMatrix(vec4 weights, uvec4 joints) {\n return (weights.x * skin.jointMatrix[joints.x])\n + (weights.y * skin.jointMatrix[joints.y])\n + (weights.z * skin.jointMatrix[joints.z])\n + (weights.w * skin.jointMatrix[joints.w]);\n}\n\n",fs:"",defines:{SKIN_MAX_JOINTS:20},getUniforms:(e={},t)=>{const{scenegraphsFromGLTF:n}=e;if(!n?.gltf?.skins?.[0])return{jointMatrix:[]};const{inverseBindMatrices:i,joints:r,skeleton:o}=n.gltf.skins[0],s=[],a=i.value.length/16;for(let e=0;e<a;e++){const t=i.value.subarray(16*e,16*e+16);s.push(new gn.k(Array.from(t)))}const l=n.gltfNodeIndexToNodeMap.get(o),A={};l.preorderTraversal((e,{worldMatrix:t})=>{A[e.id]=t});const c=new Float32Array(320);for(let e=0;e<20;++e){const t=r[e];if(void 0===t)break;const i=A[n.gltfNodeIndexToNodeMap.get(t).id],o=s[e],a=(new gn.k).copy(i).multiplyRight(o),l=16*e;for(let e=0;e<16;e++)c[l+e]=a[e]}return{jointMatrix:c}},uniformTypes:{jointMatrix:["mat4x4<f32>",20]}};function Qb(e,t){const n=t.materialFactory||new MaterialFactory(e,{modules:[Fb]}),i={...t.parsedPPBRMaterial.uniforms};delete i.camera;const r=Object.fromEntries(Object.entries({...i,...t.parsedPPBRMaterial.bindings}).filter(([e,t])=>n.ownsBinding(e)&&function(e){return e instanceof gi.h||e instanceof Gb.R||e instanceof Ub.L||e instanceof pi.g||e instanceof kb.X}(t))),o=n.createMaterial({id:t.id,bindings:r});return o.setProps({pbrMaterial:i}),o}function Xb(e,t){const{id:n,geometry:i,parsedPPBRMaterial:r,vertexCount:o,modelOptions:s={}}=t;Bi.R.info(4,"createGLTFModel defines: ",r.defines)();const a={id:n,source:"\nstruct VertexInputs {\n @location(0) positions: vec3f,\n#ifdef HAS_NORMALS\n @location(1) normals: vec3f,\n#endif\n#ifdef HAS_TANGENTS\n @location(2) TANGENT: vec4f,\n#endif\n#ifdef HAS_UV\n @location(3) texCoords: vec2f,\n#endif\n#ifdef HAS_UV_1\n @location(4) texCoords1: vec2f,\n#endif\n#ifdef HAS_SKIN\n @location(5) JOINTS_0: vec4u,\n @location(6) WEIGHTS_0: vec4f,\n#endif\n};\n\nstruct FragmentInputs {\n @builtin(position) position: vec4f,\n @location(0) pbrPosition: vec3f,\n @location(1) pbrUV0: vec2f,\n @location(2) pbrUV1: vec2f,\n @location(3) pbrNormal: vec3f,\n#ifdef HAS_TANGENTS\n @location(4) pbrTangent: vec4f,\n#endif\n};\n\n@vertex\nfn vertexMain(inputs: VertexInputs) -> FragmentInputs {\n var outputs: FragmentInputs;\n var position = vec4f(inputs.positions, 1.0);\n var normal = vec3f(0.0, 0.0, 1.0);\n var tangent = vec4f(1.0, 0.0, 0.0, 1.0);\n var uv0 = vec2f(0.0, 0.0);\n var uv1 = vec2f(0.0, 0.0);\n\n#ifdef HAS_NORMALS\n normal = inputs.normals;\n#endif\n#ifdef HAS_UV\n uv0 = inputs.texCoords;\n#endif\n#ifdef HAS_UV_1\n uv1 = inputs.texCoords1;\n#endif\n#ifdef HAS_TANGENTS\n tangent = inputs.TANGENT;\n#endif\n#ifdef HAS_SKIN\n let skinMatrix = getSkinMatrix(inputs.WEIGHTS_0, inputs.JOINTS_0);\n position = skinMatrix * position;\n normal = normalize((skinMatrix * vec4f(normal, 0.0)).xyz);\n#ifdef HAS_TANGENTS\n tangent = vec4f(normalize((skinMatrix * vec4f(tangent.xyz, 0.0)).xyz), tangent.w);\n#endif\n#endif\n\n let worldPosition = pbrProjection.modelMatrix * position;\n\n#ifdef HAS_NORMALS\n normal = normalize((pbrProjection.normalMatrix * vec4f(normal, 0.0)).xyz);\n#endif\n#ifdef HAS_TANGENTS\n let worldTangent = normalize((pbrProjection.modelMatrix * vec4f(tangent.xyz, 0.0)).xyz);\n outputs.pbrTangent = vec4f(worldTangent, tangent.w);\n#endif\n\n outputs.position = pbrProjection.modelViewProjectionMatrix * position;\n outputs.pbrPosition = worldPosition.xyz / worldPosition.w;\n outputs.pbrUV0 = uv0;\n outputs.pbrUV1 = uv1;\n outputs.pbrNormal = normal;\n return outputs;\n}\n\n@fragment\nfn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {\n fragmentInputs.pbr_vPosition = inputs.pbrPosition;\n fragmentInputs.pbr_vUV0 = inputs.pbrUV0;\n fragmentInputs.pbr_vUV1 = inputs.pbrUV1;\n fragmentInputs.pbr_vNormal = inputs.pbrNormal;\n#ifdef HAS_TANGENTS\n let tangent = normalize(inputs.pbrTangent.xyz);\n let bitangent = normalize(cross(inputs.pbrNormal, tangent)) * inputs.pbrTangent.w;\n fragmentInputs.pbr_vTBN = mat3x3f(tangent, bitangent, inputs.pbrNormal);\n#endif\n return pbr_filterColor(vec4f(1.0));\n}\n",vs:"#version 300 es\n\n // in vec4 POSITION;\n in vec4 positions;\n\n #ifdef HAS_NORMALS\n // in vec4 NORMAL;\n in vec4 normals;\n #endif\n\n #ifdef HAS_TANGENTS\n in vec4 TANGENT;\n #endif\n\n #ifdef HAS_UV\n // in vec2 TEXCOORD_0;\n in vec2 texCoords;\n #endif\n\n #ifdef HAS_UV_1\n in vec2 texCoords1;\n #endif\n\n #ifdef HAS_SKIN\n in uvec4 JOINTS_0;\n in vec4 WEIGHTS_0;\n #endif\n\n void main(void) {\n vec4 _NORMAL = vec4(0.);\n vec4 _TANGENT = vec4(0.);\n vec2 _TEXCOORD_0 = vec2(0.);\n vec2 _TEXCOORD_1 = vec2(0.);\n\n #ifdef HAS_NORMALS\n _NORMAL = normals;\n #endif\n\n #ifdef HAS_TANGENTS\n _TANGENT = TANGENT;\n #endif\n\n #ifdef HAS_UV\n _TEXCOORD_0 = texCoords;\n #endif\n\n #ifdef HAS_UV_1\n _TEXCOORD_1 = texCoords1;\n #endif\n\n vec4 pos = positions;\n\n #ifdef HAS_SKIN\n mat4 skinMat = getSkinMatrix(WEIGHTS_0, JOINTS_0);\n pos = skinMat * pos;\n _NORMAL = skinMat * _NORMAL;\n _TANGENT = vec4((skinMat * vec4(_TANGENT.xyz, 0.)).xyz, _TANGENT.w);\n #endif\n\n pbr_setPositionNormalTangentUV(pos, _NORMAL, _TANGENT, _TEXCOORD_0, _TEXCOORD_1);\n gl_Position = pbrProjection.modelViewProjectionMatrix * pos;\n }\n",fs:"#version 300 es\n out vec4 fragmentColor;\n\n void main(void) {\n vec3 pos = pbr_vPosition;\n fragmentColor = pbr_filterColor(vec4(1.0));\n }\n",geometry:i,topology:i.topology,vertexCount:o,modules:[Fb,jb],...s,defines:{...r.defines,...s.defines},parameters:{depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back",...r.parameters,...s.parameters}},l=t.material||Qb(e,{id:n?`${n}-material`:void 0,parsedPPBRMaterial:r});a.material=l;const A=new dr.K(e,a),c={...r.uniforms,...s.uniforms,...r.bindings,...s.bindings},u=function(e,t,n){const i=new Map;for(const t of e){for(const e of Object.keys(t.uniformTypes||{}))i.set(e,t.name);for(const e of t.bindingLayout||[])i.set(e.name,t.name)}const r={};for(const[e,o]of Object.entries(n)){if(void 0===o)continue;const n=i.get(e);n&&!t.ownsModule(n)&&(r[n]||={},r[n][e]=o)}return r}(A.shaderInputs.getModules(),l,c);return A.shaderInputs.setProps(u),new ModelNode({managedResources:[],model:A})}var Kb=n(42528);function Jb(e){return{addressModeU:qb(e.wrapS),addressModeV:qb(e.wrapT),magFilter:Yb(e.magFilter),...Zb(e.minFilter)}}function qb(e){switch(e){case Wb.CLAMP_TO_EDGE:return"clamp-to-edge";case Wb.REPEAT:return"repeat";case Wb.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function Yb(e){switch(e){case Wb.NEAREST:return"nearest";case Wb.LINEAR:return"linear";default:return}}function Zb(e){switch(e){case Wb.NEAREST:return{minFilter:"nearest"};case Wb.LINEAR:return{minFilter:"linear"};case Wb.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case Wb.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case Wb.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case Wb.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}const $b=[tv("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),tv("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),tv("normal","pbr_normalSampler","normalTexture",["normalTexture"]),tv("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),tv("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),tv("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),tv("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),tv("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),tv("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),tv("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),tv("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),tv("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),tv("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),tv("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),tv("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),tv("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),tv("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],ev=new Map($b.map(e=>[e.slot,e]));function tv(e,t,n,i){return{slot:e,binding:t,displayName:n,pathSegments:i,uvSetUniform:`${e}UVSet`,uvTransformUniform:`${e}UVTransform`}}function nv(e){const t=ev.get(e);if(!t)throw new Error(`Unknown PBR texture transform slot ${e}`);return t}function iv(e){const t=e?.extensions?.KHR_texture_transform;return{offset:t?.offset?[t.offset[0],t.offset[1]]:[0,0],rotation:t?.rotation??0,scale:t?.scale?[t.scale[0],t.scale[1]]:[1,1]}}function rv(e){const t=e?.extensions?.KHR_texture_transform;return t?.texCoord??e?.texCoord??0}function ov(e){const t=(new Matrix3).set(1,0,0,0,1,0,e.offset[0],e.offset[1],1),n=(new Matrix3).set(Math.cos(e.rotation),Math.sin(e.rotation),0,-Math.sin(e.rotation),Math.cos(e.rotation),0,0,0,1),i=(new Matrix3).set(e.scale[0],0,0,0,e.scale[1],0,0,0,1);return Array.from(t.multiplyRight(n).multiplyRight(i))}function sv(e,t){const n=new Matrix3(ov(e)),i=new Matrix3(ov(t)),r=new Matrix3(n).invert();return Array.from(i.multiplyRight(r))}function av(e,t,n,i){const r={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};r.defines.USE_TEX_LOD=!0;const{imageBasedLightingEnvironment:o}=i;return o&&(r.bindings.pbr_diffuseEnvSampler=o.diffuseEnvSampler.texture,r.bindings.pbr_specularEnvSampler=o.specularEnvSampler.texture,r.bindings.pbr_brdfLUT=o.brdfLutTexture.texture,r.uniforms.IBLenabled=!0,r.uniforms.scaleIBLAmbient=[1,1]),i?.pbrDebug&&(r.defines.PBR_DEBUG=!0,r.uniforms.scaleDiffBaseMR=[0,0,0,0],r.uniforms.scaleFGDSpec=[0,0,0,0]),n.NORMAL&&(r.defines.HAS_NORMALS=!0),n.TANGENT&&i?.useTangents&&(r.defines.HAS_TANGENTS=!0),n.TEXCOORD_0&&(r.defines.HAS_UV=!0),n.TEXCOORD_1&&(r.defines.HAS_UV_1=!0),n.JOINTS_0&&n.WEIGHTS_0&&(r.defines.HAS_SKIN=!0),n.COLOR_0&&(r.defines.HAS_COLORS=!0),i?.imageBasedLightingEnvironment&&(r.defines.USE_IBL=!0),i?.lights&&(r.defines.USE_LIGHTS=!0),t&&(!1!==i.validateAttributes&&function(e,t){const n=lv(e,0);n.length>0&&!t.TEXCOORD_0&&Bi.R.warn(`glTF material uses ${n.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();const i=lv(e,1);i.length>0&&!t.TEXCOORD_1&&Bi.R.warn(`glTF material uses ${i.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)();const r=Boolean(e.unlit||e.extensions?.KHR_materials_unlit);if(r||t.NORMAL)return;const o=e.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";Bi.R.warn(`glTF primitive is missing NORMAL while using ${o}; shading will fall back to geometric normals`)()}(t,n),function(e,t,n,i,r){n.uniforms.unlit=Boolean(t.unlit||t.extensions?.KHR_materials_unlit),t.pbrMetallicRoughness&&function(e,t,n,i,r){t.baseColorTexture&&cv(e,t.baseColorTexture,"pbr_baseColorSampler",n,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:r,attributes:i,textureTransformSlot:"baseColor"});n.uniforms.baseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&cv(e,t.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",n,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:r,attributes:i,textureTransformSlot:"metallicRoughness"});const{metallicFactor:o=1,roughnessFactor:s=1}=t;n.uniforms.metallicRoughnessValues=[o,s]}(e,t.pbrMetallicRoughness,n,i,r);if(t.normalTexture){cv(e,t.normalTexture,"pbr_normalSampler",n,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:r,attributes:i,textureTransformSlot:"normal"});const{scale:o=1}=t.normalTexture;n.uniforms.normalScale=o}if(t.occlusionTexture){cv(e,t.occlusionTexture,"pbr_occlusionSampler",n,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:r,attributes:i,textureTransformSlot:"occlusion"});const{strength:o=1}=t.occlusionTexture;n.uniforms.occlusionStrength=o}n.uniforms.emissiveFactor=t.emissiveFactor||[0,0,0],t.emissiveTexture&&cv(e,t.emissiveTexture,"pbr_emissiveSampler",n,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:r,attributes:i,textureTransformSlot:"emissive"});switch(function(e,t,n,i,r={}){if(!t)return;(function(e){return Boolean(e.KHR_materials_specular||e.KHR_materials_ior||e.KHR_materials_transmission||e.KHR_materials_volume||e.KHR_materials_clearcoat||e.KHR_materials_sheen||e.KHR_materials_iridescence||e.KHR_materials_anisotropy)})(t)&&(n.defines.USE_MATERIAL_EXTENSIONS=!0);(function(e,t,n,i,r={}){if(!t)return;t.specularColorFactor&&(n.uniforms.specularColorFactor=t.specularColorFactor);void 0!==t.specularFactor&&(n.uniforms.specularIntensityFactor=t.specularFactor);t.specularColorTexture&&cv(e,t.specularColorTexture,"pbr_specularColorSampler",n,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"specularColor"});t.specularTexture&&cv(e,t.specularTexture,"pbr_specularIntensitySampler",n,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"specularIntensity"})})(e,t.KHR_materials_specular,n,i,r),function(e,t){void 0!==e?.ior&&(t.uniforms.ior=e.ior)}(t.KHR_materials_ior,n),function(e,t,n,i,r={}){if(!t)return;void 0!==t.transmissionFactor&&(n.uniforms.transmissionFactor=t.transmissionFactor);t.transmissionTexture&&cv(e,t.transmissionTexture,"pbr_transmissionSampler",n,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"transmission"});((t.transmissionFactor??0)>0||t.transmissionTexture)&&(Bi.R.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),function(e){e.parameters.blend=!0,e.parameters.depthWriteEnabled=!1,e.parameters.blendColorOperation="add",e.parameters.blendColorSrcFactor="one",e.parameters.blendColorDstFactor="one-minus-src-alpha",e.parameters.blendAlphaOperation="add",e.parameters.blendAlphaSrcFactor="one",e.parameters.blendAlphaDstFactor="one-minus-src-alpha",e.glParameters.blend=!0,e.glParameters.depthMask=!1,e.glParameters.blendEquation=Wb.FUNC_ADD,e.glParameters.blendFunc=[Wb.ONE,Wb.ONE_MINUS_SRC_ALPHA,Wb.ONE,Wb.ONE_MINUS_SRC_ALPHA]}(n))}(e,t.KHR_materials_transmission,n,i,r),function(e,t,n,i,r={}){if(!t)return;void 0!==t.thicknessFactor&&(n.uniforms.thicknessFactor=t.thicknessFactor);t.thicknessTexture&&cv(e,t.thicknessTexture,"pbr_thicknessSampler",n,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:i,attributes:r,textureTransformSlot:"thickness"});void 0!==t.attenuationDistance&&(n.uniforms.attenuationDistance=t.attenuationDistance);t.attenuationColor&&(n.uniforms.attenuationColor=t.attenuationColor)}(e,t.KHR_materials_volume,n,i,r),function(e,t,n,i,r={}){if(!t)return;void 0!==t.clearcoatFactor&&(n.uniforms.clearcoatFactor=t.clearcoatFactor);void 0!==t.clearcoatRoughnessFactor&&(n.uniforms.clearcoatRoughnessFactor=t.clearcoatRoughnessFactor);t.clearcoatTexture&&cv(e,t.clearcoatTexture,"pbr_clearcoatSampler",n,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"clearcoat"});t.clearcoatRoughnessTexture&&cv(e,t.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",n,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"clearcoatRoughness"});t.clearcoatNormalTexture&&cv(e,t.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",n,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:i,attributes:r,textureTransformSlot:"clearcoatNormal"})}(e,t.KHR_materials_clearcoat,n,i,r),function(e,t,n,i,r={}){if(!t)return;t.sheenColorFactor&&(n.uniforms.sheenColorFactor=t.sheenColorFactor);void 0!==t.sheenRoughnessFactor&&(n.uniforms.sheenRoughnessFactor=t.sheenRoughnessFactor);t.sheenColorTexture&&cv(e,t.sheenColorTexture,"pbr_sheenColorSampler",n,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"sheenColor"});t.sheenRoughnessTexture&&cv(e,t.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",n,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"sheenRoughness"})}(e,t.KHR_materials_sheen,n,i,r),function(e,t,n,i,r={}){if(!t)return;void 0!==t.iridescenceFactor&&(n.uniforms.iridescenceFactor=t.iridescenceFactor);void 0!==t.iridescenceIor&&(n.uniforms.iridescenceIor=t.iridescenceIor);void 0===t.iridescenceThicknessMinimum&&void 0===t.iridescenceThicknessMaximum||(n.uniforms.iridescenceThicknessRange=[t.iridescenceThicknessMinimum??100,t.iridescenceThicknessMaximum??400]);t.iridescenceTexture&&cv(e,t.iridescenceTexture,"pbr_iridescenceSampler",n,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"iridescence"});t.iridescenceThicknessTexture&&cv(e,t.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",n,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:i,attributes:r,textureTransformSlot:"iridescenceThickness"})}(e,t.KHR_materials_iridescence,n,i,r),function(e,t,n,i,r={}){if(!t)return;void 0!==t.anisotropyStrength&&(n.uniforms.anisotropyStrength=t.anisotropyStrength);void 0!==t.anisotropyRotation&&(n.uniforms.anisotropyRotation=t.anisotropyRotation);t.anisotropyTexture&&cv(e,t.anisotropyTexture,"pbr_anisotropySampler",n,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:i,attributes:r,textureTransformSlot:"anisotropy"})}(e,t.KHR_materials_anisotropy,n,i,r),function(e,t){void 0!==e?.emissiveStrength&&(t.uniforms.emissiveStrength=e.emissiveStrength)}(t.KHR_materials_emissive_strength,n)}(e,t.extensions,n,r,i),t.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{const{alphaCutoff:e=.5}=t;n.defines.ALPHA_CUTOFF=!0,n.uniforms.alphaCutoffEnabled=!0,n.uniforms.alphaCutoff=e;break}case"BLEND":Bi.R.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),function(e){e.parameters.blend=!0,e.parameters.blendColorOperation="add",e.parameters.blendColorSrcFactor="src-alpha",e.parameters.blendColorDstFactor="one-minus-src-alpha",e.parameters.blendAlphaOperation="add",e.parameters.blendAlphaSrcFactor="one",e.parameters.blendAlphaDstFactor="one-minus-src-alpha",e.glParameters.blend=!0,e.glParameters.blendEquation=Wb.FUNC_ADD,e.glParameters.blendFunc=[Wb.SRC_ALPHA,Wb.ONE_MINUS_SRC_ALPHA,Wb.ONE,Wb.ONE_MINUS_SRC_ALPHA]}(n)}}(e,t,r,n,i.gltf)),r}function lv(e,t){const n=[];for(const i of $b){const r=Av(e,i.pathSegments);r&&(rv(r)===t&&n.push(i.displayName))}return n}function Av(e,t){let n=e;for(const e of t)if(n=n?.[e],!n)return null;return n}function cv(e,t,n,i,r={}){const{featureOptions:o={},gltf:s,attributes:a={},textureTransformSlot:l}=r,{define:A,enabledUniformName:c}=o,u=rv(t);if(u>1)return void Bi.R.warn(`Skipping ${String(n)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();if(1===u&&!a.TEXCOORD_1)return void Bi.R.warn(`Skipping ${String(n)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();const h=function(e,t){if(e.texture||void 0===e.index||!t?.textures)return e;const n=t.textures[e.index];if(!n)return e;if("texture"in n&&n.texture)return{...n,...e,texture:n.texture};if(!("source"in n))return e;return{...e,texture:n}}(t,s),d=h.texture?.source?.image;if(!d)return void Bi.R.warn(`Skipping unresolved glTF texture for ${String(n)}`)();const f={wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729,...h?.texture?.sampler},p={id:h.uniformName||h.id,sampler:Jb(f)};let g;if(d.compressed)g=function(e,t,n){let i;i=Array.isArray(t.data)&&t.data[0]?.data?t.data:"mipmaps"in t&&Array.isArray(t.mipmaps)?t.mipmaps:[];if(0===i.length||!i[0]?.data)return Bi.R.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),uv(e,n);const r=i[0],o=r.width??t.width??0,s=r.height??t.height??0;if(o<=0||s<=0)return Bi.R.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),uv(e,n);const a=hv(r);if(!a)return Bi.R.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),uv(e,n);const l=function(e,t,n){const{blockWidth:i=1,blockHeight:r=1}=Kb.vz.getInfo(n);let o=1;for(let n=1;;n++){const s=Math.max(1,e>>n),a=Math.max(1,t>>n);if(s<i||a<r)break;o++}return o}(o,s,a),A=Math.min(i.length,l);let c=1;for(let e=1;e<A;e++){const t=i[e];if(!t.data||t.width<=0||t.height<=0){Bi.R.warn(`createCompressedTexture: mip level ${e} has invalid data/dimensions, truncating`)();break}const n=hv(t);if(n&&n!==a){Bi.R.warn(`createCompressedTexture: mip level ${e} format '${n}' differs from base '${a}', truncating`)();break}const r=Math.max(1,o>>e),l=Math.max(1,s>>e);if(t.width!==r||t.height!==l){Bi.R.warn(`createCompressedTexture: mip level ${e} dimensions ${t.width}x${t.height} don't match expected ${r}x${l}, truncating`)();break}c++}const u=e.createTexture({...n,format:a,usage:pi.g.TEXTURE|pi.g.COPY_DST,width:o,height:s,mipLevels:c,data:r.data});for(let e=1;e<c;e++)u.writeData(i[e].data,{width:i[e].width,height:i[e].height,mipLevel:e});return u}(e,d,p);else{const{width:t,height:n}=e.getExternalImageSize(d);g=e.createTexture({...p,width:t,height:n,data:d})}if(i.bindings[n]=g,A&&(i.defines[A]=!0),c&&(i.uniforms[c]=!0),l){const e=nv(l);i.uniforms[e.uvSetUniform]=u,i.uniforms[e.uvTransformUniform]=ov(iv(t))}i.generatedTextures.push(g)}function uv(e,t){return e.createTexture({...t,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function hv(e){return e.textureFormat}const dv={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:void 0,lights:!0,useTangents:!1,useByteColors:!0};function fv(e,t,n={}){const i={...dv,...n},r=new MaterialFactory(e,{modules:[Fb]}),o=(t.materials||[]).map((n,o)=>Qb(e,{id:pv(n,o),parsedPPBRMaterial:av(e,n,{},{...i,gltf:t,validateAttributes:!1}),materialFactory:r})),s=new Map;(t.materials||[]).forEach((e,t)=>{s.set(e.id,o[t])});const a=new Map;t.meshes.forEach((n,r)=>{const o=function(e,t,n,i,r){const o=t.primitives||[],s=o.map((o,s)=>function({device:e,gltfPrimitive:t,primitiveIndex:n,gltfMesh:i,gltf:r,gltfMaterialIdToMaterialMap:o,options:s}){const a=t.name||`${i.name||i.id}-primitive-${n}`,l=function(e){switch(e){case Wb.POINTS:return"point-list";case Wb.LINES:return"line-list";case Wb.LINE_STRIP:return"line-strip";case Wb.TRIANGLES:return"triangle-list";case Wb.TRIANGLE_STRIP:return"triangle-strip";default:throw new Error(String(e))}}(t.mode??4),A=t.indices?t.indices.count:function(e){let t=1/0;for(const n of Object.values(e))if(n){const{value:e,size:i,components:r}=n,o=i??r;void 0!==e?.length&&o>=1&&(t=Math.min(t,e.length/o))}if(!Number.isFinite(t))throw new Error("Could not determine vertex count from attributes");return t}(t.attributes),c=function(e,t,n){const i={};for(const[e,n]of Object.entries(t.attributes)){const{components:t,size:r,value:o,normalized:s}=n;i[e]={size:r??t,value:o,normalized:s}}return new Geometry({id:e,topology:n,indices:t.indices?.value,attributes:i})}(a,t,l),u=av(e,t.material,c.attributes,{...s,gltf:r}),h=Xb(e,{id:a,geometry:c,material:t.material&&o.get(t.material.id)||null,parsedPPBRMaterial:u,modelOptions:s.modelOptions,vertexCount:A});return h.bounds=[t.attributes.POSITION.min,t.attributes.POSITION.max],h}({device:e,gltfPrimitive:o,primitiveIndex:s,gltfMesh:t,gltf:n,gltfMaterialIdToMaterialMap:i,options:r})),a=new GroupNode({id:t.name||t.id,children:s});return a}(e,n,t,s,i);a.set(n.id,o)});const l=new Map,A=new Map;t.nodes.forEach((e,t)=>{const n=function(e,t){return new GroupNode({id:t.name||t.id,children:[],matrix:t.matrix,position:t.translation,rotation:t.rotation,scale:t.scale})}(0,e);l.set(t,n),A.set(e.id,n)}),t.nodes.forEach((e,t)=>{if(l.get(t).add((e.children??[]).map(({id:e})=>{const n=A.get(e);if(!n)throw new Error(`Cannot find child ${e} of node ${t}`);return n})),e.mesh){const n=a.get(e.mesh.id);if(!n)throw new Error(`Cannot find mesh child ${e.mesh.id} of node ${t}`);l.get(t).add(n)}});return{scenes:t.scenes.map(e=>{const t=(e.nodes||[]).map(({id:t})=>{const n=A.get(t);if(!n)throw new Error(`Cannot find child ${t} of scene ${e.name||e.id}`);return n});return new GroupNode({id:e.name||e.id,children:t})}),materials:o,gltfMeshIdToNodeMap:a,gltfNodeIdToNodeMap:A,gltfNodeIndexToNodeMap:l}}function pv(e,t){return e.name||e.id||`material-${t}`}function gv(e,t={}){const n=e.lights||e.extensions?.KHR_lights_punctual?.lights;if(!n||!Array.isArray(n)||0===n.length)return[];const i=[],r=function(e){const t=new Map;for(const n of e)for(const e of n.children||[])t.set(e.id,n);return t}(e.nodes||[]),o=new Map;for(const s of e.nodes||[]){const e=s.light??s.extensions?.KHR_lights_punctual?.light;if("number"!=typeof e)continue;const a=n[e];if(!a)continue;const l=mv(a.color||[1,1,1],t.useByteColors??!0),A=a.intensity??1,c=a.range,u=yv(s,r,o);switch(a.type){case"directional":i.push(bv(u,l,A));break;case"point":i.push(_v(u,l,A,c));break;case"spot":i.push(vv(u,l,A,c,a.spot))}}return i}function mv(e,t){return t?e.map(e=>255*e):Fo(e,!1)}function _v(e,t,n,i){let r=[1,0,0];return void 0!==i&&i>0&&(r=[1,0,1/(i*i)]),{type:"point",position:Cv(e),color:t,intensity:n,attenuation:r}}function bv(e,t,n){return{type:"directional",direction:wv(e),color:t,intensity:n}}function vv(e,t,n,i,r={}){let o=[1,0,0];return void 0!==i&&i>0&&(o=[1,0,1/(i*i)]),{type:"spot",position:Cv(e),direction:wv(e),color:t,intensity:n,attenuation:o,innerConeAngle:r.innerConeAngle??0,outerConeAngle:r.outerConeAngle??Math.PI/4}}function yv(e,t,n){const i=n.get(e.id);if(i)return i;const r=function(e){if(e.matrix)return new gn.k(e.matrix);const t=new gn.k;e.translation&&t.translate(e.translation);e.rotation&&t.multiplyRight((new gn.k).fromQuaternion(e.rotation));e.scale&&t.scale(e.scale);return t}(e),o=t.get(e.id),s=o?new gn.k(yv(o,t,n)).multiplyRight(r):r;return n.set(e.id,s),s}function Cv(e){return e.transformAsPoint([0,0,0])}function wv(e){return e.transformDirection([0,0,-1])}function Ev(e,{input:t,interpolation:n,output:i},r,o){const s=xv(e,{input:t,interpolation:n,output:i},o);s&&function(e,t,n){switch(t){case"translation":return e.setPosition(n).updateMatrix();case"rotation":return e.setRotation(n).updateMatrix();case"scale":return e.setScale(n).updateMatrix();default:Bi.R.warn(`Bad animation path ${t}`)()}}(r,o,s)}function xv(e,{input:t,interpolation:n,output:i},r){const o=t[t.length-1];if(!Number.isFinite(o)||o<=0)return i[0]||null;const s=e%o,a=t.findIndex(e=>e>=s);if(a<0)return i[i.length-1]||null;const l=Math.max(0,a-1),A=t[l],c=t[a];switch(n){case"STEP":return i[l];case"LINEAR":if(c>A){const e=(s-A)/(c-A);return function(e,t,n,i){if("rotation"===e)return(new Quaternion).slerp({start:t,target:n,ratio:i});const r=[];for(let e=0;e<t.length;e++)r[e]=i*n[e]+(1-i)*t[e];return r}(r,i[l],i[a],e)}return i[l]||null;case"CUBICSPLINE":if(c>A){const e=(s-A)/(c-A),t=c-A;return function({p0:e,outTangent0:t,inTangent1:n,p1:i,tDiff:r,ratio:o}){const s=[];for(let a=0;a<e.length;a++){const l=t[a]*r,A=n[a]*r;s[a]=(2*Math.pow(o,3)-3*Math.pow(o,2)+1)*e[a]+(Math.pow(o,3)-2*Math.pow(o,2)+o)*l+(-2*Math.pow(o,3)+3*Math.pow(o,2))*i[a]+(Math.pow(o,3)-Math.pow(o,2))*A}return s}({p0:i[3*l+1],outTangent0:i[3*l+2],inTangent1:i[3*a+0],p1:i[3*a+1],tDiff:t,ratio:e})}return i[3*l+1]||null;default:return Bi.R.warn(`Interpolation ${n} not supported`)(),null}}class GLTFSingleAnimator{animation;gltfNodeIdToNodeMap;materials;startTime=0;playing=!0;speed=1;materialTextureTransformState=new Map;constructor(e){if(this.animation=e.animation,this.gltfNodeIdToNodeMap=e.gltfNodeIdToNodeMap,this.materials=e.materials||[],this.animation.name||="unnamed",Object.assign(this,e),this.animation.channels.some(e=>"node"!==e.type)&&!this.materials.length)throw new Error(`Animation ${this.animation.name} targets materials, but GLTFAnimator was created without a materials array`)}setTime(e){if(!this.playing)return;const t=(e/1e3-this.startTime)*this.speed;this.animation.channels.forEach(e=>{if("node"===e.type){const{sampler:n,targetNodeId:i,path:r}=e,o=this.gltfNodeIdToNodeMap.get(i);if(!o)throw new Error(`Cannot find animation target node ${i}`);return void Ev(t,n,o,r)}const n=this.materials[e.targetMaterialIndex];if(!n)throw new Error(`Cannot find animation target material ${e.targetMaterialIndex} for ${e.pointer}`);const i=xv(t,e.sampler);i&&("material"===e.type?function(e,t,n){const i=void 0!==t.component?{[t.property]:Sv(Tv(e,t.property),t.component,n[0])}:{[t.property]:1===n.length?n[0]:n};e.setProps({pbrMaterial:i})}(n,e,i):function(e,t,n,i){const r=nv(t.textureSlot),o=function(e,t,n){const i=e.get(t)||{};let r=i[n.textureSlot];r||(r={offset:[...n.baseTransform.offset],rotation:n.baseTransform.rotation,scale:[...n.baseTransform.scale]},i[n.textureSlot]=r,e.set(t,i));return r}(i,e,t);switch(t.path){case"offset":void 0!==t.component?o.offset[t.component]=n[0]:o.offset=[n[0],n[1]];break;case"rotation":o.rotation=n[0];break;case"scale":void 0!==t.component?o.scale[t.component]=n[0]:o.scale=[n[0],n[1]]}e.setProps({pbrMaterial:{[r.uvTransformUniform]:sv(t.baseTransform,o)}})}(n,e,i,this.materialTextureTransformState))})}}class GLTFAnimator{animations;constructor(e){this.animations=e.animations.map((t,n)=>{const i=t.name||`Animation-${n}`;return new GLTFSingleAnimator({gltfNodeIdToNodeMap:e.gltfNodeIdToNodeMap,materials:e.materials,animation:{name:i,channels:t.channels}})})}animate(e){Bi.R.warn("GLTFAnimator#animate is deprecated. Use GLTFAnimator#setTime instead")(),this.setTime(e)}setTime(e){this.animations.forEach(t=>t.setTime(e))}getAnimations(){return this.animations}}function Tv(e,t){const n=e.shaderInputs.getUniformValues(),i=n.pbrMaterial?.[t];return Array.isArray(i)?[...i]:[]}function Sv(e,t,n){const i=[...e];return i[t]=n,i}const Pv={supportLevel:"none",comment:"Not currently listed in the luma.gl glTF extension support registry."},Mv={KHR_draco_mesh_compression:{supportLevel:"built-in",comment:"Decoded by loaders.gl before luma.gl builds the scenegraph."},EXT_meshopt_compression:{supportLevel:"built-in",comment:"Meshopt-compressed primitives are decoded during load."},KHR_mesh_quantization:{supportLevel:"built-in",comment:"Quantized accessors are unpacked before geometry creation."},KHR_lights_punctual:{supportLevel:"built-in",comment:"Parsed into luma.gl Light objects."},KHR_materials_unlit:{supportLevel:"built-in",comment:"Unlit materials bypass the default lighting path."},KHR_materials_emissive_strength:{supportLevel:"built-in",comment:"Applied by the stock PBR shader."},KHR_texture_basisu:{supportLevel:"built-in",comment:"BasisU / KTX2 textures pass through when the device supports them."},KHR_texture_transform:{supportLevel:"built-in",comment:"UV transforms are applied during load."},EXT_texture_webp:{supportLevel:"loader-only",comment:"Texture source is resolved during load; final support depends on browser and device decode support."},EXT_texture_avif:{supportLevel:"loader-only",comment:"Texture source is resolved during load; final support depends on browser and device decode support."},KHR_materials_specular:{supportLevel:"built-in",comment:"The stock shader now applies specular factors and textures to the dielectric F0 term."},KHR_materials_ior:{supportLevel:"built-in",comment:"The stock shader now drives dielectric reflectance from the glTF IOR value."},KHR_materials_transmission:{supportLevel:"built-in",comment:"The stock shader now applies transmission to the base layer and exposes transparency through alpha, without a scene-color refraction buffer."},KHR_materials_volume:{supportLevel:"built-in",comment:"Thickness and attenuation now tint transmitted light in the stock shader."},KHR_materials_clearcoat:{supportLevel:"built-in",comment:"The stock shader now adds a secondary clearcoat specular lobe."},KHR_materials_sheen:{supportLevel:"built-in",comment:"The stock shader now adds a sheen lobe for cloth-like materials."},KHR_materials_iridescence:{supportLevel:"built-in",comment:"The stock shader now tints specular response with a view-dependent thin-film iridescence approximation."},KHR_materials_anisotropy:{supportLevel:"built-in",comment:"The stock shader now shapes highlights and IBL response with an anisotropy-direction approximation."},KHR_materials_pbrSpecularGlossiness:{supportLevel:"loader-only",comment:"Extension data can be loaded, but it is not translated into the default metallic-roughness material path."},KHR_materials_variants:{supportLevel:"loader-only",comment:"Variant metadata can be loaded, but applications must choose and apply variants."},EXT_mesh_gpu_instancing:{supportLevel:"none",comment:"GPU instancing data is not yet converted into luma.gl instanced draw setup."},KHR_node_visibility:{supportLevel:"none",comment:"Node-visibility animations and toggles are not mapped onto runtime scenegraph state."},KHR_animation_pointer:{supportLevel:"parsed-and-wired",comment:"Selected node TRS, material factor, and KHR_texture_transform offset/rotation/scale pointers are wired to runtime updates; unsupported targets are skipped."},KHR_materials_diffuse_transmission:{supportLevel:"none",comment:"Diffuse-transmission shading is not implemented in the stock PBR shader."},KHR_materials_dispersion:{supportLevel:"none",comment:"Chromatic dispersion is not implemented in the stock PBR shader."},KHR_materials_volume_scatter:{supportLevel:"none",comment:"Volume scattering is not implemented in the stock PBR shader."},KHR_xmp:{supportLevel:"none",comment:"Metadata payloads remain in the loaded glTF, but luma.gl does not interpret them."},KHR_xmp_json_ld:{supportLevel:"none",comment:"Metadata is preserved in the glTF, but luma.gl does not interpret it."},EXT_lights_image_based:{supportLevel:"none",comment:"Use loadPBREnvironment() or custom environment setup instead."},EXT_texture_video:{supportLevel:"none",comment:"Video textures are not created automatically by the stock pipeline."},MSFT_lod:{supportLevel:"none",comment:"Level-of-detail switching is not implemented in the stock scenegraph loader."}};function Rv(e){const t=Array.from(function(e){const t=e,n=new Set;Iv(n,e.extensionsUsed),Iv(n,e.extensionsRequired),Iv(n,t.extensionsRemoved),Iv(n,Object.keys(e.extensions||{})),(t.lights?.length||(e.nodes||[]).some(e=>"light"in e))&&n.add("KHR_lights_punctual");(e.materials||[]).some(e=>{const t=e;return t.unlit||t.extensions?.KHR_materials_unlit})&&n.add("KHR_materials_unlit");return n}(e)).sort(),n=t.map(e=>{const t=Mv[e]||Pv;return[e,{extensionName:e,supported:"built-in"===t.supportLevel||"parsed-and-wired"===t.supportLevel,supportLevel:t.supportLevel,comment:t.comment}]});return new Map(n)}function Bv(e){return Mv[e]||null}function Iv(e,t=[]){for(const n of t)e.add(n)}const Lv={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Fv={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Dv(e){const t=Fv[e.componentType],n=Lv[e.type],i=n*e.count,{buffer:r,byteOffset:o=0}=e.bufferView?.data??{};return{typedArray:new t(r,o+(e.byteOffset||0),i),components:n}}function Ov(e){const t=e.animations||[],n=new Map,i=new Map;return t.flatMap((t,r)=>{const o=t.name||`Animation-${r}`,s=new Map,a=t.channels.flatMap(({sampler:r,target:o})=>{let a=s.get(r);if(!a){const o=t.samplers[r];if(!o)throw new Error(`Cannot find animation sampler ${r}`);const{input:l,interpolation:A="LINEAR",output:c}=o;a={input:zv(e.accessors[l],n),interpolation:A,output:Hv(e.accessors[c],i)},s.set(r,a)}const l=function(e,t,n){if("pointer"===t.path)return function(e,t,n){const i=t.extensions?.KHR_animation_pointer?.pointer;if("string"!=typeof i||!i.startsWith("/"))return Bi.R.warn("KHR_animation_pointer channel is missing a valid JSON pointer and will be skipped")(),null;const r=function(e){return e.slice(1).split("/").map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}(i);switch(r[0]){case"nodes":return function(e,t,n,i){if(3!==t.length)return Vv(i,"node pointers must use /nodes/{index}/{translation|rotation|scale|weights}"),null;const r=Number(t[1]),o=e.nodes[r];if(!Number.isInteger(r)||!o)return Bi.R.warn(`KHR_animation_pointer target ${i} references a missing node and will be skipped`)(),null;const s=Nv(t[2]);if(!s)return Vv(i,`node property "${t[2]}" has no runtime animation mapping`),null;if("weights"===s)return Bi.R.warn(`KHR_animation_pointer target ${i} will be skipped because morph weights are not implemented in GLTFAnimator`)(),null;return{type:"node",sampler:n,targetNodeId:o.id,path:s}}(e,r,n,i);case"materials":return function(e,t,n,i){if(t.length<3)return Vv(i,"material pointers must include a material index and target property path"),null;const r=Number(t[1]),o=e.materials[r];if(!Number.isInteger(r)||!o)return Bi.R.warn(`KHR_animation_pointer target ${i} references a missing material and will be skipped`)(),null;const s=function(e,t){const n=function(e,t){const n=t.lastIndexOf("extensions");if(n<0||"KHR_texture_transform"!==t[n+1]||n<1)return{reason:"not-a-texture-transform-target"};const i=function(e){return $b.find(t=>t.pathSegments.length===e.length&&t.pathSegments.every((t,n)=>e[n]===t))||null}(t.slice(0,n));if(!i)return{reason:Uv(t.slice(0,n))};const r=function(e,t){let n=e;for(const e of t)if(n=n?.[e],!n)return null;return n}(e,i.pathSegments);if(!r)return{reason:`texture-transform target "${t.slice(0,n).join("/")}" does not exist on the referenced material`};const o=t[n+2];if("texCoord"===o)return{reason:"animated KHR_texture_transform.texCoord is unsupported because texCoord selection is structural, not a runtime float/vector update"};if("offset"!==o&&"rotation"!==o&&"scale"!==o)return{reason:`KHR_texture_transform property "${o}" is not animatable; supported properties are offset, rotation, and scale`};const s=t[n+3];if(t.length>n+4)return{reason:`KHR_texture_transform.${o} does not support nested property paths`};let a;if(void 0!==s){if(a=Number(s),"rotation"===o)return{reason:"KHR_texture_transform.rotation does not support component indices"};if(!Number.isInteger(a)||a<0||a>1)return{reason:`KHR_texture_transform.${o} component index "${s}" is invalid; only 0 and 1 are supported`}}return{type:"textureTransform",textureSlot:i.slot,path:o,component:a,baseTransform:iv(r)}}(e,t);if(!("reason"in n))return n;if("not-a-texture-transform-target"!==n.reason)return n;switch(t.join("/")){case"pbrMetallicRoughness/baseColorFactor":return e.pbrMetallicRoughness?{type:"material",property:"baseColorFactor"}:{reason:kv(t)};case"pbrMetallicRoughness/metallicFactor":return e.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:0}:{reason:kv(t)};case"pbrMetallicRoughness/roughnessFactor":return e.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:1}:{reason:kv(t)};case"normalTexture/scale":return e.normalTexture?{type:"material",property:"normalScale"}:{reason:kv(t)};case"occlusionTexture/strength":return e.occlusionTexture?{type:"material",property:"occlusionStrength"}:{reason:kv(t)};case"emissiveFactor":return{type:"material",property:"emissiveFactor"};case"alphaCutoff":return{type:"material",property:"alphaCutoff"};case"extensions/KHR_materials_specular/specularFactor":return e.extensions?.KHR_materials_specular?{type:"material",property:"specularIntensityFactor"}:{reason:kv(t)};case"extensions/KHR_materials_specular/specularColorFactor":return e.extensions?.KHR_materials_specular?{type:"material",property:"specularColorFactor"}:{reason:kv(t)};case"extensions/KHR_materials_ior/ior":return e.extensions?.KHR_materials_ior?{type:"material",property:"ior"}:{reason:kv(t)};case"extensions/KHR_materials_transmission/transmissionFactor":return e.extensions?.KHR_materials_transmission?{type:"material",property:"transmissionFactor"}:{reason:kv(t)};case"extensions/KHR_materials_volume/thicknessFactor":return e.extensions?.KHR_materials_volume?{type:"material",property:"thicknessFactor"}:{reason:kv(t)};case"extensions/KHR_materials_volume/attenuationDistance":return e.extensions?.KHR_materials_volume?{type:"material",property:"attenuationDistance"}:{reason:kv(t)};case"extensions/KHR_materials_volume/attenuationColor":return e.extensions?.KHR_materials_volume?{type:"material",property:"attenuationColor"}:{reason:kv(t)};case"extensions/KHR_materials_clearcoat/clearcoatFactor":return e.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatFactor"}:{reason:kv(t)};case"extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor":return e.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatRoughnessFactor"}:{reason:kv(t)};case"extensions/KHR_materials_sheen/sheenColorFactor":return e.extensions?.KHR_materials_sheen?{type:"material",property:"sheenColorFactor"}:{reason:kv(t)};case"extensions/KHR_materials_sheen/sheenRoughnessFactor":return e.extensions?.KHR_materials_sheen?{type:"material",property:"sheenRoughnessFactor"}:{reason:kv(t)};case"extensions/KHR_materials_iridescence/iridescenceFactor":return e.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceFactor"}:{reason:kv(t)};case"extensions/KHR_materials_iridescence/iridescenceIor":return e.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceIor"}:{reason:kv(t)};case"extensions/KHR_materials_iridescence/iridescenceThicknessMinimum":return e.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:0}:{reason:kv(t)};case"extensions/KHR_materials_iridescence/iridescenceThicknessMaximum":return e.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:1}:{reason:kv(t)};case"extensions/KHR_materials_anisotropy/anisotropyStrength":return e.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyStrength"}:{reason:kv(t)};case"extensions/KHR_materials_anisotropy/anisotropyRotation":return e.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyRotation"}:{reason:kv(t)};case"extensions/KHR_materials_emissive_strength/emissiveStrength":return e.extensions?.KHR_materials_emissive_strength?{type:"material",property:"emissiveStrength"}:{reason:kv(t)};default:return{reason:kv(t)}}}(o,t.slice(2));if("reason"in s)return Vv(i,s.reason),null;return{sampler:n,pointer:i,targetMaterialIndex:r,...s}}(e,r,n,i);default:return Vv(i,`top-level target "${r[0]}" has no runtime animation mapping`),null}}(e,t,n);const i=Nv(t.path);if(!i)return null;const r=e.nodes[t.node??0];if(!r)throw new Error(`Cannot find animation target ${t.node}`);return{type:"node",sampler:n,targetNodeId:r.id,path:i}}(e,o,a);return l?[l]:[]});return a.length?[{name:o,channels:a}]:[]})}function Nv(e){switch(e){case"translation":case"rotation":case"scale":case"weights":return e;default:return null}}function kv(e){const t=Gv(e);if(t){const e=Bv(t);if("none"===e?.supportLevel)return`${t} is referenced by this pointer, but ${e.comment.charAt(0).toLowerCase()}${e.comment.slice(1)}`}return`no runtime target exists for material property "${e.join("/")}"`}function Uv(e){const t=Gv(e);if(t){const e=Bv(t);if("none"===e?.supportLevel)return`${t} is referenced by this pointer, but ${e.comment.charAt(0).toLowerCase()}${e.comment.slice(1)}`}return`texture-transform target "${e.join("/")}" has no runtime texture-slot mapping`}function Gv(e){const t=e.indexOf("extensions"),n=e[t+1];return t>=0&&n?n:null}function Vv(e,t){Bi.R.warn(`KHR_animation_pointer target ${e} will be skipped because ${t}`)()}function zv(e,t){if(t.has(e))return t.get(e);const{typedArray:n,components:i}=Dv(e);Wv(1===i,"accessorToJsArray1D must have exactly 1 component");const r=Array.from(n);return t.set(e,r),r}function Hv(e,t){if(t.has(e))return t.get(e);const{typedArray:n,components:i}=Dv(e);Wv(i>=1,"accessorToJsArray2D must have at least 1 component");const r=[];for(let e=0;e<n.length;e+=i)r.push(Array.from(n.slice(e,e+i)));return t.set(e,r),r}function Wv(e,t){if(!e)throw new Error(t)}function jv(e,t,n){const{scenes:i,materials:r,gltfMeshIdToNodeMap:o,gltfNodeIdToNodeMap:s,gltfNodeIndexToNodeMap:a}=fv(e,t,n),l=Ov(t),A=new GLTFAnimator({animations:l,gltfNodeIdToNodeMap:s,materials:r}),c=gv(t,{useByteColors:n?.useByteColors??!0}),u=Rv(t),h=i.map(e=>Qv(e.getBounds())),d=function(e){let t=null;for(const n of e)if(n.bounds)if(t)for(let e=0;e<3;e++)t[0][e]=Math.min(t[0][e],n.bounds[0][e]),t[1][e]=Math.max(t[1][e],n.bounds[1][e]);else t=[[...n.bounds[0]],[...n.bounds[1]]];return Qv(t)}(h);return{scenes:i,materials:r,animator:A,lights:c,extensionSupport:u,sceneBounds:h,modelBounds:d,gltfMeshIdToNodeMap:o,gltfNodeIdToNodeMap:s,gltfNodeIndexToNodeMap:a,gltf:t}}function Qv(e){if(!e)return{bounds:null,center:[0,0,0],size:[0,0,0],radius:.5,recommendedOrbitDistance:1};const t=[[e[0][0],e[0][1],e[0][2]],[e[1][0],e[1][1],e[1][2]]],n=[t[1][0]-t[0][0],t[1][1]-t[0][1],t[1][2]-t[0][2]],i=[t[0][0]+.5*n[0],t[0][1]+.5*n[1],t[0][2]+.5*n[2]],r=.5*Math.max(n[0],n[1],n[2]),o=Math.max(.5*Math.hypot(n[0],n[1],n[2]),.001);return{bounds:t,center:i,size:n,radius:o,recommendedOrbitDistance:Math.max(Math.max(r,.001)/Math.tan(Math.PI/6)*1.15,1.1*o)}}function Xv(e,t,n){if(e.byteLength<=t+n)return"";const i=new DataView(e);let r="";for(let e=0;e<n;e++)r+=String.fromCharCode(i.getUint8(t+e));return r}function Kv(e){try{return JSON.parse(e)}catch(t){throw new Error(`Failed to parse JSON from data starting with "${function(e,t=5){if("string"==typeof e)return e.slice(0,t);if(ArrayBuffer.isView(e))return Xv(e.buffer,e.byteOffset,t);if(e instanceof ArrayBuffer)return Xv(e,0,t);return""}(e)}"`)}}async function Jv(e,t,n,i){return i._parse(e,t,n,i)}const qv={};function Yv(e={}){const t=e.useLocalLibraries??e.core?.useLocalLibraries,n=e.CDN??e.core?.CDN,i=e.modules;return{...void 0!==t?{useLocalLibraries:t}:{},...void 0!==n?{CDN:n}:{},...void 0!==i?{modules:i}:{}}}async function Zv(e,t=null,n={},i=null){return t&&(e=function(e,t,n={},i=null){if(n?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!n.useLocalLibraries&&e.startsWith("http"))return e;i=i||e;const r=n.modules||{};if(r[i])return r[i];if(!At)return`modules/${t}/dist/libs/${i}`;if(n.CDN)return dt(n.CDN.startsWith("http")),`${n.CDN}/${t}@${wt}/dist/libs/${i}`;if(ct)return`../src/libs/${i}`;return`modules/${t}/src/libs/${i}`}(e,t,n,i)),qv[e]=qv[e]||async function(e){if(e.endsWith("wasm"))return await async function(e){const{readFileAsArrayBuffer:t}=globalThis.loaders||{};if(At||!t||e.startsWith("http")){const t=await fetch(e);return await t.arrayBuffer()}try{return await t(e)}catch{if(e.includes("/dist/libs/"))return await t(e.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${e}`)}}(e);if(!At){const{requireFromFile:t}=globalThis.loaders||{};try{const n=await(t?.(e));return n||!e.includes("/dist/libs/")?n:await(t?.(e.replace("/dist/libs/","/src/libs/")))}catch(n){if(e.includes("/dist/libs/"))try{return await(t?.(e.replace("/dist/libs/","/src/libs/")))}catch{}return console.error(n),null}}if(ct)return importScripts(e);const t=await async function(e){const{readFileAsText:t}=globalThis.loaders||{};if(At||!t||e.startsWith("http")){const t=await fetch(e);return await t.text()}try{return await t(e)}catch{if(e.includes("/dist/libs/"))return await t(e.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${e}`)}}(e);return function(e,t){if(!At){const{requireFromString:n}=globalThis.loaders||{};return n?.(e,t)}if(ct)return eval.call(globalThis,e),null;const n=document.createElement("script");n.id=t;try{n.appendChild(document.createTextNode(e))}catch(t){n.text=e}return document.body.appendChild(n),null}(t,e)}(e),await qv[e]}const $v="basis_transcoder.js",ey="basis_transcoder.wasm",ty="basis_encoder.js",ny="basis_encoder.wasm";let iy,ry;async function oy(e){var t;t=e.modules,globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t);const n=function(e){const t=globalThis.loaders?.modules?.[e];return t||null}("basis");return n||(iy||=async function(e){let t=null,n=null;return[t,n]=await Promise.all([await Zv($v,"textures",e),await Zv(ey,"textures",e)]),t=t||globalThis.BASIS,await function(e,t){const n={};t&&(n.wasmBinary=t);return new Promise(t=>{e(n).then(e=>{const{BasisFile:n,initializeBasis:i}=e;i(),t({BasisFile:n})})})}(t,n)}(e),await iy)}async function sy(e){const t=e.modules||{};return t.basisEncoder?t.basisEncoder:(ry=ry||async function(e){let t=null,n=null;return[t,n]=await Promise.all([await Zv(ty,"textures",e),await Zv(ny,"textures",e)]),t=t||globalThis.BASIS,await function(e,t){const n={};t&&(n.wasmBinary=t);return new Promise(t=>{e(n).then(e=>{const{BasisFile:n,KTX2File:i,initializeBasis:r,BasisEncoder:o}=e;r(),t({BasisFile:n,KTX2File:i,BasisEncoder:o})})})}(t,n)}(e),await ry)}const ay=["","WEBKIT_","MOZ_"],ly={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};let Ay=null;function cy(e){if(!Ay){e=e||function(){try{return document.createElement("canvas").getContext("webgl")}catch(e){return null}}()||void 0,Ay=new Set;for(const t of ay)for(const n in ly)if(e&&e.getExtension(`${t}${n}`))for(const e of ly[n])Ay.add(e)}return Ay}const uy=[171,75,84,88,32,50,48,187,13,10,26,10];let hy=Promise.resolve();const dy={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}};Object.freeze(Object.keys(dy));function fy(e,t,n){const i=new e(new Uint8Array(t));try{if(!i.startTranscoding())throw new Error("Failed to start basis transcoding");const e=i.getNumImages(),t=[];for(let r=0;r<e;r++){const e=i.getNumLevels(r),o=[];for(let t=0;t<e;t++)o.push(py(i,r,t,n));t.push(o)}return t}finally{i.close(),i.delete()}}function py(e,t,n,i){const r=e.getImageWidth(t,n),o=e.getImageHeight(t,n),s=e.getHasAlpha(),{compressed:a,format:l,basisFormat:A,textureFormat:c}=_y(i,s),u=e.getImageTranscodedSizeInBytes(t,n,A),h=new Uint8Array(u);if(!e.transcodeImage(h,t,n,A,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:r,height:o,data:h,compressed:a,...void 0!==l?{format:l}:{},...void 0!==c?{textureFormat:c}:{},hasAlpha:s}}function gy(e,t,n){const i=new e(new Uint8Array(t));try{if(!i.startTranscoding())throw new Error("failed to start KTX2 transcoding");const e=i.getLevels(),t=[];for(let r=0;r<e;r++)t.push(my(i,r,n));return[t]}finally{i.close(),i.delete()}}function my(e,t,n){const{alphaFlag:i,height:r,width:o}=e.getImageLevelInfo(t,0,0),{compressed:s,format:a,basisFormat:l,textureFormat:A}=_y(n,i),c=e.getImageTranscodedSizeInBytes(t,0,0,l),u=new Uint8Array(c);if(!e.transcodeImage(u,t,0,0,l,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:o,height:r,data:u,compressed:s,...void 0!==a?{format:a}:{},...void 0!==A?{textureFormat:A}:{},levelSize:c,hasAlpha:i}}function _y(e,t){let n=e.basis?.format||"auto";"auto"===n&&(n=e.basis?.supportedTextureFormats?by(e.basis.supportedTextureFormats):by()),"object"==typeof n&&(n=t?n.alpha:n.noAlpha);const i=n.toLowerCase(),r=dy[i];if(!r)throw new Error(`Unknown Basis format ${n}`);return r}function by(e=cy()){const t=new Set(e);return vy(t,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":vy(t,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:vy(t,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:vy(t,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:vy(t,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":t.has("etc1-rgb-unorm-webgl")?"etc1":vy(t,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function vy(e,t){return t.some(t=>e.has(t))}const yy={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:"4.4.3",worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}},parse:async function(e,t={}){const n=Yv(t);return await async function(e){const t=hy;let n;hy=new Promise(e=>{n=e}),await t;try{return await e()}finally{n()}}(async()=>{if(!t.basis?.containerFormat||"auto"===t.basis.containerFormat){if(function(e){const t=new Uint8Array(e);return!(t.byteLength<uy.length||t[0]!==uy[0]||t[1]!==uy[1]||t[2]!==uy[2]||t[3]!==uy[3]||t[4]!==uy[4]||t[5]!==uy[5]||t[6]!==uy[6]||t[7]!==uy[7]||t[8]!==uy[8]||t[9]!==uy[9]||t[10]!==uy[10]||t[11]!==uy[11])}(e)){return gy((await sy(n)).KTX2File,e,t)}const{BasisFile:i}=await oy(n);return fy(i,e,t)}if("encoder"===t.basis.module){const i=await sy(n);return"ktx2"===t.basis.containerFormat?gy(i.KTX2File,e,t):fy(i.BasisFile,e,t)}{const{BasisFile:i}=await oy(n);return fy(i,e,t)}})}};function Cy(e,t){if(!e)throw new Error(t||"assert failed: gltf")}function wy(e,t){return f(e>=0),f(t>0),e+(t-1)&~(t-1)}function Ey(e,t,n){let i;if(e instanceof ArrayBuffer)i=new Uint8Array(e);else{const t=e.byteOffset,n=e.byteLength;i=new Uint8Array(e.buffer||e.arrayBuffer,t,n)}return t.set(i,n),n+wy(i.byteLength,4)}const xy=!0,Ty=1735152710,Sy=1313821514,Py=5130562;function My(e,t,n=0,i={}){const r=new DataView(t),o=function(e,t=0){return`${String.fromCharCode(e.getUint8(t+0))}${String.fromCharCode(e.getUint8(t+1))}${String.fromCharCode(e.getUint8(t+2))}${String.fromCharCode(e.getUint8(t+3))}`}(r,n+0),s=r.getUint32(n+4,xy),a=r.getUint32(n+8,xy);switch(Object.assign(e,{header:{byteOffset:n,byteLength:a,hasBinChunk:!1},type:o,version:s,json:{},binChunks:[]}),n+=12,e.version){case 1:return function(e,t,n){f(e.header.byteLength>20);const i=t.getUint32(n+0,xy),r=t.getUint32(n+4,xy);return n+=8,f(0===r),Ry(e,t,n,i),n+=i,n+=By(e,t,n,e.header.byteLength),n}(e,r,n);case 2:return function(e,t,n,i){return f(e.header.byteLength>20),function(e,t,n,i){for(;n+8<=e.header.byteLength;){const r=t.getUint32(n+0,xy),o=t.getUint32(n+4,xy);switch(n+=8,o){case Sy:Ry(e,t,n,r);break;case Py:By(e,t,n,r);break;case 0:i.strict||Ry(e,t,n,r);break;case 1:i.strict||By(e,t,n,r)}n+=wy(r,4)}}(e,t,n,i),n+e.header.byteLength}(e,r,n,{});default:throw new Error(`Invalid GLB version ${e.version}. Only supports version 1 and 2.`)}}function Ry(e,t,n,i){const r=new Uint8Array(t.buffer,n,i),o=new TextDecoder("utf8").decode(r);return e.json=JSON.parse(o),wy(i,4)}function By(e,t,n,i){return e.header.hasBinChunk=!0,e.binChunks.push({byteOffset:n,byteLength:i,arrayBuffer:t.buffer}),wy(i,4)}function Iy(e,t,n){if(e.startsWith("data:")||e.startsWith("http:")||e.startsWith("https:"))return e;const i=n?.baseUrl||function(e){if(!e)return;if(e.endsWith("/"))return e;const t=e.lastIndexOf("/");return t>=0?e.slice(0,t+1):""}(t?.core?.baseUrl);if(!i)throw new Error(`'baseUrl' must be provided to resolve relative url ${e}`);return i.endsWith("/")?`${i}${e}`:`${i}/${e}`}const Ly={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Fy={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};const Dy=["SCALAR","VEC2","VEC3","VEC4"],Oy=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Ny=new Map(Oy),ky={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Uy={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Gy={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Vy(e){return Dy[e-1]||Dy[0]}function zy(e){const t=Ny.get(e.constructor);if(!t)throw new Error("Illegal typed array");return t}function Hy(e,t){const n=Gy[e.componentType],i=ky[e.type],r=Uy[e.componentType],o=e.count*i,s=e.count*i*r;Cy(s>=0&&s<=t.byteLength);return{ArrayType:n,length:o,byteLength:s,componentByteSize:Fy[e.componentType],numberOfComponentsInElement:Ly[e.type]}}function Wy(e){let{images:t,bufferViews:n}=e;t=t||[],n=n||[];const i=t.map(e=>e.bufferView);n=n.filter(e=>!i.includes(e));const r=n.reduce((e,t)=>e+t.byteLength,0),o=t.reduce((e,t)=>{const{width:n,height:i}=t.image;return e+n*i},0);return r+Math.ceil(4*o*1.33)}function jy(e,t,n){const i=e.bufferViews[n];Cy(i);const r=t[i.buffer];Cy(r);const o=(i.byteOffset||0)+r.byteOffset;return new Uint8Array(r.arrayBuffer,o,i.byteLength)}class GLTFScenegraph{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]},buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){const t=this.getUsedExtensions().find(t=>t===e),n=this.getRequiredExtensions().find(t=>t===e);return"string"==typeof t||"string"==typeof n}getExtension(e){const t=this.getUsedExtensions().find(t=>t===e),n=this.json.extensions||{};return t?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(t=>t===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if("object"==typeof t)return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){const t=(e=this.getBufferView(e)).buffer,n=this.gltf.buffers[t];Cy(n);const i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){const t=this.getAccessor(e);return function(e,t,n){const i="number"==typeof n?e.accessors?.[n]:n;if(!i)throw new Error(`No gltf accessor ${JSON.stringify(n)}`);const r=e.bufferViews?.[i.bufferView||0];if(!r)throw new Error(`No gltf buffer view for accessor ${r}`);const{arrayBuffer:o,byteOffset:s}=t[r.buffer],a=(s||0)+(i.byteOffset||0)+(r.byteOffset||0),{ArrayType:l,length:A,componentByteSize:c,numberOfComponentsInElement:u}=Hy(i,r),h=c*u,d=r.byteStride||h;if(void 0===r.byteStride||r.byteStride===h)return new l(o,a,A);const f=new l(A);for(let e=0;e<i.count;e++){const t=new l(o,a+e*d,u);f.set(t,e*u)}return f}(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),n=this.getBuffer(t.buffer).data,i=t.byteOffset||0;return new Uint8Array(n,i,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){(e.extensions||{})[t]=n}removeObjectExtension(e,t){const n=e?.extensions||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const e=this.json.extensionsRemoved;e.includes(t)||e.push(t)}delete n[t]}addExtension(e,t={}){return Cy(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Cy(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const t=this.json.extensionsRemoved;t.includes(e)||t.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:i,mode:r=4}=e,o={primitives:[{attributes:this._addAttributes(t),mode:r}]};if(n){const e=this._addIndices(n);o.primitives[0].indices=e}return Number.isFinite(i)&&(o.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(o),this.json.meshes.length-1}addPointCloud(e){const t={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(t),this.json.meshes.length-1}addImage(e,t){const n=pe(e),i=t||n?.mimeType,r={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(r),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){const i=e.byteLength;Cy(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const r={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=wy(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(r),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:Vy(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let i={min:t.min,max:t.max};i.min&&i.max||(i=this._getAccessorMinMax(e,t.size));const r={size:t.size,componentType:zy(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(r,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){const e=this.byteLength,t=new ArrayBuffer(e),n=new Uint8Array(t);let i=0;for(const e of this.sourceBuffers||[])i=Ey(e,n,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){const i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const i=e[n],r=this._getGltfAttributeName(n),o=this.addBinaryBuffer(i.value,i);t[r]=o}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const i=e.subarray(0,t);for(const e of i)n.min.push(e),n.max.push(e);for(let i=t;i<e.length;i+=t)for(let r=0;r<t;r++)n.min[0+r]=Math.min(n.min[0+r],e[i+r]),n.max[0+r]=Math.max(n.max[0+r],e[i+r]);return n}}function Qy(e){return(e%1+1)%1}const Xy={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},Ky={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Jy={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function qy(e,t){return Jy[t]*Xy[e]}function Yy(e,t,n,i){if("UINT8"!==n&&"UINT16"!==n&&"UINT32"!==n&&"UINT64"!==n)return null;const r=Zy(e.getTypedArrayForBufferView(t),"SCALAR",n,i+1);return r instanceof BigInt64Array||r instanceof BigUint64Array?null:r}function Zy(e,t,n,i=1){const r=Ky[n],o=Jy[n],s=i*Xy[t],a=s*o;let l=e.buffer,A=e.byteOffset;if(A%o!==0){l=new Uint8Array(l).slice(A,A+a).buffer,A=0}return new r(Tt(l),A,s)}function $y(e,t,n){const i=`TEXCOORD_${t.texCoord||0}`,r=n.attributes[i],o=e.getTypedArrayForAccessor(r),s=e.gltf.json,a=t.index,l=s.textures?.[a]?.source;if(void 0!==l){const n=s.images?.[l]?.mimeType,i=e.gltf.images?.[l];if(i&&void 0!==i.width){const e=[];for(let r=0;r<o.length;r+=2){const s=tC(i,n,o,r,t.channels);e.push(s)}return e}}return[]}function eC(e,t,n,i,r){if(!n?.length)return;const o=[];for(const e of n){let t=i.findIndex(t=>t===e);-1===t&&(t=i.push(e)-1),o.push(t)}const s=new Uint32Array(o),a=e.gltf.buffers.push({arrayBuffer:s.buffer,byteOffset:s.byteOffset,byteLength:s.byteLength})-1,l=e.addBufferView(s,a,0),A=e.addAccessor(l,{size:1,componentType:zy(s),count:s.length});r.attributes[t]=A}function tC(e,t,n,i,r=[0]){const o={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},s=n[i],a=n[i+1];let l=1;!t||-1===t.indexOf("image/jpeg")&&-1===t.indexOf("image/png")||(l=4);const A=function(e,t,n,i=1){const r=n.width,o=Qy(e)*(r-1),s=Math.round(o),a=n.height,l=Qy(t)*(a-1),A=Math.round(l),c=n.components?n.components:i,u=(A*r+s)*c;return u}(s,a,e,l);let c=0;for(const t of r){const n="number"==typeof t?Object.values(o)[t]:o[t],i=A+n.offset,r=ie(e);if(r.data.length<=i)throw new Error(`${r.data.length} <= ${i}`);c|=r.data[i]<<n.shift}return c}function nC(e,t,n,i,r){const o=[];for(let s=0;s<t;s++){const t=n[s],a=n[s+1]-n[s];if(a+t>i)break;const l=t/r,A=a/r;o.push(e.slice(l,l+A))}return o}function iC(e,t,n){const i=[];for(let r=0;r<t;r++){const t=r*n;i.push(e.slice(t,t+n))}return i}function rC(e,t,n,i){if(n)throw new Error("Not implemented - arrayOffsets for strings is specified");if(i){const n=[],r=new TextDecoder("utf8");let o=0;for(let s=0;s<e;s++){const e=i[s+1]-i[s];if(e+o<=t.length){const i=t.subarray(o,e+o),s=r.decode(i);n.push(s),o+=e}}return n}return[]}const oC="EXT_mesh_features",sC=oC;async function aC(e,t){!function(e,t){const n=e.gltf.json;if(!n.meshes)return;for(const i of n.meshes)for(const n of i.primitives)AC(e,n,t)}(new GLTFScenegraph(e),t)}function lC(e,t){const n=new GLTFScenegraph(e);return function(e){const t=e.gltf.json.meshes;if(!t)return;for(const n of t)for(const t of n.primitives)uC(e,t)}(n),n.createBinaryChunk(),n.gltf}function AC(e,t,n){if(!n?.gltf?.loadBuffers)return;const i=t.extensions?.[oC],r=i?.featureIds;if(r)for(const i of r){let r;if(void 0!==i.attribute){const n=`_FEATURE_ID_${i.attribute}`,o=t.attributes[n];r=e.getTypedArrayForAccessor(o)}else r=void 0!==i.texture&&n?.gltf?.loadImages?$y(e,i.texture,t):[];i.data=r}}function cC(e,t,n,i){t.extensions||(t.extensions={});let r=t.extensions[oC];r||(r={featureIds:[]},t.extensions[oC]=r);const{featureIds:o}=r,s={featureCount:n.length,propertyTable:i,data:n};o.push(s),e.addObjectExtension(t,oC,r)}function uC(e,t){const n=t.extensions?.[oC];if(!n)return;const i=n.featureIds;i.forEach((n,r)=>{if(n.data){const{accessorKey:o,index:s}=function(e){const t="_FEATURE_ID_",n=Object.keys(e).filter(e=>0===e.indexOf(t));let i=-1;for(const e of n){const n=Number(e.substring(t.length));n>i&&(i=n)}i++;const r=`${t}${i}`;return{accessorKey:r,index:i}}(t.attributes),a=new Uint32Array(n.data);i[r]={featureCount:a.length,propertyTable:n.propertyTable,attribute:s},e.gltf.buffers.push({arrayBuffer:a.buffer,byteOffset:a.byteOffset,byteLength:a.byteLength});const l=e.addBufferView(a),A=e.addAccessor(l,{size:1,componentType:zy(a),count:a.length});t.attributes[o]=A}})}const hC="EXT_structural_metadata",dC=hC;async function fC(e,t){!function(e,t){if(!t.gltf?.loadBuffers)return;const n=e.getExtension(hC);if(!n)return;t.gltf?.loadImages&&function(e,t){const n=t.propertyTextures,i=e.gltf.json;if(n&&i.meshes)for(const r of i.meshes)for(const i of r.primitives)mC(e,n,i,t)}(e,n);!function(e,t){const n=t.schema;if(!n)return;const i=n.classes,r=t.propertyTables;if(i&&r)for(const t in i){const i=gC(r,t);i&&bC(e,n,i)}}(e,n)}(new GLTFScenegraph(e),t)}function pC(e,t){const n=new GLTFScenegraph(e);return function(e){const t=e.getExtension(hC);if(!t)return;if(t.propertyTables)for(const n of t.propertyTables){const i=n.class,r=t.schema?.classes?.[i];n.properties&&r&&wC(n,r,e)}}(n),n.createBinaryChunk(),n.gltf}function gC(e,t){for(const n of e)if(n.class===t)return n;return null}function mC(e,t,n,i){if(!t)return;const r=n.extensions?.[hC],o=r?.propertyTextures;if(o)for(const r of o){_C(e,t[r],n,i)}}function _C(e,t,n,i){if(!t.properties)return;i.dataAttributeNames||(i.dataAttributeNames=[]);const r=t.class;for(const o in t.properties){const s=`${r}_${o}`,a=t.properties?.[o];if(!a)continue;a.data||(a.data=[]);const l=a.data,A=$y(e,a,n);null!==A&&(eC(e,s,A,l,n),a.data=l,i.dataAttributeNames.push(s))}}function bC(e,t,n){const i=t.classes?.[n.class];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${n.class}`);const r=n.count;for(const o in i.properties){const s=i.properties[o],a=n.properties?.[o];if(a){const n=vC(e,t,s,r,a);a.data=n}}}function vC(e,t,n,i,r){let o=[];const s=r.values,a=e.getTypedArrayForBufferView(s),l=function(e,t,n,i){if(t.array&&void 0===t.count&&void 0!==n.arrayOffsets)return Yy(e,n.arrayOffsets,n.arrayOffsetType||"UINT32",i);return null}(e,n,r,i),A=function(e,t,n){if(void 0!==t.stringOffsets)return Yy(e,t.stringOffsets,t.stringOffsetType||"UINT32",n);return null}(e,r,i);switch(n.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":o=function(e,t,n,i){const r=e.array,o=e.count,s=qy(e.type,e.componentType),a=n.byteLength/s;let l;l=e.componentType?Zy(n,e.type,e.componentType,a):n;if(r)return i?nC(l,t,i,n.length,s):o?iC(l,t,o):[];return l}(n,i,a,l);break;case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${n.type}`);case"STRING":o=rC(i,a,l,A);break;case"ENUM":o=function(e,t,n,i,r){const o=t.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");const s=e.enums?.[o];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);const a=s.valueType||"UINT16",l=qy(t.type,a),A=i.byteLength/l;let c=Zy(i,t.type,a,A);c||(c=i);if(t.array){if(r)return function(e){const{valuesData:t,numberOfElements:n,arrayOffsets:i,valuesDataBytesLength:r,elementSize:o,enumEntry:s}=e,a=[];for(let e=0;e<n;e++){const n=i[e],l=i[e+1]-i[e];if(l+n>r)break;const A=yC(t,n/o,l/o,s);a.push(A)}return a}({valuesData:c,numberOfElements:n,arrayOffsets:r,valuesDataBytesLength:i.length,elementSize:l,enumEntry:s});const e=t.count;return e?function(e,t,n,i){const r=[];for(let o=0;o<t;o++){const t=yC(e,n*o,n,i);r.push(t)}return r}(c,n,e,s):[]}return yC(c,0,n,s)}(t,n,i,a,l);break;default:throw new Error(`Unknown classProperty type ${n.type}`)}return o}function yC(e,t,n,i){const r=[];for(let o=0;o<n;o++)if(e instanceof BigInt64Array||e instanceof BigUint64Array)r.push("");else{const n=CC(i,e[t+o]);n?r.push(n.name):r.push("")}return r}function CC(e,t){for(const n of e.values)if(n.value===t)return n;return null}function wC(e,t,n){for(const i in e.properties){const r=e.properties[i].data;if(r){const o=t.properties[i];if(o){const t=xC(r,o,n);e.properties[i]=t}}}}function EC(e,t,n="schemaClassId"){let i=e.getExtension(hC);i||(i=e.addExtension(hC)),i.schema=function(e,t,n){const i=n??{id:"schema_id"},r={properties:{}};for(const t of e){const e={type:t.elementType,componentType:t.componentType};r.properties[t.name]=e}return i.classes={},i.classes[t]=r,i}(t,n,i.schema);const r=function(e,t,n){const i={class:t,count:0};let r=0;const o=n.classes?.[t];for(const t of e){if(0===r&&(r=t.values.length),r!==t.values.length&&t.values.length)throw new Error("Illegal values in attributes");const e=o?.properties[t.name];e&&(i.properties||(i.properties={}),i.properties[t.name]={values:0,data:t.values})}return i.count=r,i}(t,n,i.schema);return i.propertyTables||(i.propertyTables=[]),i.propertyTables.push(r)-1}function xC(e,t,n){const i={values:0};if("STRING"===t.type){const{stringData:t,stringOffsets:r}=function(e){const t=new TextEncoder,n=[];let i=0;for(const r of e){const e=t.encode(r);i+=e.length,n.push(e)}const r=new Uint8Array(i),o=[];let s=0;for(const e of n)r.set(e,s),o.push(s),s+=e.length;o.push(s);const a=new Uint32Array(o);return{stringData:r,stringOffsets:a}}(e);i.stringOffsets=SC(r,n),i.values=SC(t,n)}else if("SCALAR"===t.type&&t.componentType){const r=function(e,t){const n=[];for(const t of e)n.push(Number(t));const i=TC[t];if(!i)throw new Error("Illegal component type");return new i(n)}(e,t.componentType);i.values=SC(r,n)}return i}const TC={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function SC(e,t){return t.gltf.buffers.push({arrayBuffer:Tt(e.buffer),byteOffset:e.byteOffset,byteLength:e.byteLength}),t.addBufferView(e)}const PC="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",MC="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",RC=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),BC=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),IC={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},LC={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};let FC;async function DC(){return FC||(FC=async function(){let e=PC;WebAssembly.validate(RC)&&(e=MC,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const t=await WebAssembly.instantiate(function(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n){const i=e.charCodeAt(n);t[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let n=0;for(let i=0;i<e.length;++i)t[n++]=t[i]<60?BC[t[i]]:64*(t[i]-60)+t[++i];return t.buffer.slice(0,n)}(e),{});return await t.instance.exports.__wasm_call_ctors(),t.instance}()),FC}function OC(e,t,n,i,r,o,s){const a=e.exports.sbrk,l=i+3&-4,A=a(l*r),c=a(o.length),u=new Uint8Array(e.exports.memory.buffer);u.set(o,c);const h=t(A,i,r,c,o.length);if(0===h&&s&&s(A,l,r),n.set(u.subarray(A,A+i*r)),a(A-a(0)),0!==h)throw new Error(`Malformed buffer data: ${h}`)}const NC="EXT_meshopt_compression",kC=NC;async function UC(e,t){const n=new GLTFScenegraph(e);if(!t?.gltf?.decompressMeshes||!t.gltf?.loadBuffers)return;const i=[];for(const t of e.json.bufferViews||[])i.push(GC(n,t));await Promise.all(i),n.removeExtension(NC)}async function GC(e,t){const n=e.getObjectExtension(t,NC);if(n){const{byteOffset:i=0,byteLength:r=0,byteStride:o,count:s,mode:a,filter:l="NONE",buffer:A}=n,c=e.gltf.buffers[A],u=new Uint8Array(c.arrayBuffer,c.byteOffset+i,r),h=new Uint8Array(e.gltf.buffers[t.buffer].arrayBuffer,t.byteOffset,t.byteLength);await async function(e,t,n,i,r,o="NONE"){const s=await DC();OC(s,s.exports[LC[r]],e,t,n,i,s.exports[IC[o||"NONE"]])}(h,s,o,u,a,l),e.removeObjectExtension(t,NC)}}const VC={};function zC(e){if(void 0===VC[e]){const t=F?function(e){switch(e){case"image/avif":case"image/webp":return function(e){try{const t=document.createElement("canvas");return 0===t.toDataURL(e).indexOf(`data:${e}`)}catch{return!1}}(e);default:return!0}}(e):HC(e);VC[e]=t}return VC[e]}function HC(e){const t=globalThis.loaders?.imageFormatsNode||["image/png","image/jpeg","image/gif"],n=globalThis.loaders?.parseImageNode;return Boolean(n)&&t.includes(e)}const WC="EXT_texture_webp",jC=WC;function QC(e,t){const n=new GLTFScenegraph(e);if(!zC("image/webp")){if(n.getRequiredExtensions().includes(WC))throw new Error(`gltf: Required extension ${WC} not supported by browser`);return}const{json:i}=n;for(const e of i.textures||[]){const t=n.getObjectExtension(e,WC);t&&(e.source=t.source),n.removeObjectExtension(e,WC)}n.removeExtension(WC)}const XC="KHR_texture_basisu",KC=XC;function JC(e,t){const n=new GLTFScenegraph(e),{json:i}=n;for(const e of i.textures||[]){const t=n.getObjectExtension(e,XC);t&&(e.source=t.source,n.removeObjectExtension(e,XC))}n.removeExtension(XC)}function qC(e){switch(e.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function YC(e,t,n){const i=qC(t.value),r=n||function(e){const t={};"byteOffset"in e&&(t.byteOffset=e.byteOffset.toString(10));"byteStride"in e&&(t.byteStride=e.byteStride.toString(10));"normalized"in e&&(t.normalized=e.normalized.toString());return t}(t);return{name:e,type:{type:"fixed-size-list",listSize:t.size,children:[{name:"value",type:i}]},nullable:!1,metadata:r}}function ZC(e,t,n){return YC(e,t,n?$C(n.metadata):void 0)}function $C(e){Object.entries(e);const t={};for(const n in e)t[`${n}.string`]=JSON.stringify(e[n]);return t}const ew={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},tw={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array};class DracoParser{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const i=this.decoder.GetEncodedGeometryType(n),r=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let e;switch(i){case this.draco.TRIANGULAR_MESH:e=this.decoder.DecodeBufferToMesh(n,r);break;case this.draco.POINT_CLOUD:e=this.decoder.DecodeBufferToPointCloud(n,r);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!e.ok()||!r.ptr){const t=`DRACO decompression failed: ${e.error_msg()}`;throw new Error(t)}const o=this._getDracoLoaderData(r,i,t),s=this._getMeshData(r,o,t),a=function(e){let t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,s=-1/0;const a=e.POSITION?e.POSITION.value:[],l=a&&a.length;for(let e=0;e<l;e+=3){const l=a[e],A=a[e+1],c=a[e+2];t=l<t?l:t,n=A<n?A:n,i=c<i?c:i,r=l>r?l:r,o=A>o?A:o,s=c>s?c:s}return[[t,n,i],[r,o,s]]}(s.attributes),l=function(e,t,n){const i=$C(t.metadata),r=[],o=function(e){const t={};for(const n in e){const i=e[n];t[i.name||"undefined"]=i}return t}(t.attributes);for(const t in e){const n=ZC(t,e[t],o[t]);r.push(n)}if(n){const e=ZC("indices",n);r.push(e)}return{fields:r,metadata:i}}(s.attributes,o,s.indices);return{loader:"draco",loaderData:o,header:{vertexCount:r.num_points(),boundingBox:a},...s,schema:l}}finally{this.draco.destroy(n),r&&this.draco.destroy(r)}}_getDracoLoaderData(e,t,n){const i=this._getTopLevelMetadata(e),r=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:r}}_getDracoAttributes(e,t){const n={};for(let i=0;i<e.num_attributes();i++){const r=this.decoder.GetAttribute(e,i),o=this._getAttributeMetadata(e,i);n[r.unique_id()]={unique_id:r.unique_id(),attribute_type:r.attribute_type(),data_type:r.data_type(),num_components:r.num_components(),byte_offset:r.byte_offset(),byte_stride:r.byte_stride(),normalized:r.normalized(),attribute_index:i,metadata:o};const s=this._getQuantizationTransform(r,t);s&&(n[r.unique_id()].quantization_transform=s);const a=this._getOctahedronTransform(r,t);a&&(n[r.unique_id()].octahedron_transform=a)}return n}_getMeshData(e,t,n){const i=this._getMeshAttributes(t,e,n);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");return e instanceof this.draco.Mesh?"triangle-strip"===n.topology?{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}}:{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}:{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){const i={};for(const r of Object.values(e.attributes)){const e=this._deduceAttributeName(r,n);r.name=e;const o=this._getAttributeValues(t,r);if(o){const{value:t,size:n}=o;i[e]={value:t,size:n,byteOffset:r.byte_offset,byteStride:r.byte_stride,normalized:r.normalized}}}return i}_getTriangleListIndices(e){const t=3*e.num_faces(),n=4*t,i=this.draco._malloc(n);try{return this.decoder.GetTrianglesUInt32Array(e,n,i),new Uint32Array(this.draco.HEAPF32.buffer,i,t).slice()}finally{this.draco._free(i)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),function(e){const t=e.size(),n=new Int32Array(t);for(let i=0;i<t;i++)n[i]=e.GetValue(i);return n}(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=tw[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;const i=t.num_components,r=e.num_points()*i,o=r*n.BYTES_PER_ELEMENT,s=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32;default:return e.DT_INVALID}}(this.draco,n);let a;const l=this.draco._malloc(o);try{const i=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,i,s,o,l),a=new n(this.draco.HEAPF32.buffer,l,r).slice()}finally{this.draco._free(l)}return{value:a,size:i}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[e,i]of Object.entries(t.extraAttributes||{}))if(i===n)return e;const i=e.attribute_type;for(const e in ew){if(this.draco[e]===i)return ew[e]}const r=t.attributeNameEntry||"name";return e.metadata[r]?e.metadata[r].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){const n=this.metadataQuerier.GetEntryName(e,i);t[n]=this._getDracoMetadataField(e,n)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const i=function(e){const t=e.size(),n=new Int32Array(t);for(let i=0;i<t;i++)n[i]=e.GetValue(i);return n}(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(const e of i)this.decoder.SkipAttributeTransform(this.draco[e])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(e=>this.decoder[e]).includes(i)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits(),range:t.range(),min_values:new Float32Array([1,2,3]).map(e=>t.min_value(e))}}finally{this.draco.destroy(t)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(e=>this.decoder[e]).includes(i)){const t=new this.draco.AttributeQuantizationTransform;try{if(t.InitFromAttribute(e))return{quantization_bits:t.quantization_bits()}}finally{this.draco.destroy(t)}}return null}}const nw="https://www.gstatic.com/draco/versioned/decoders/1.5.6",iw="draco_wasm_wrapper.js",rw="draco_decoder.wasm",ow="draco_decoder.js",sw="draco_encoder.js",aw={[iw]:`${nw}/${iw}`,[rw]:`${nw}/${rw}`,[ow]:`${nw}/${ow}`,[sw]:`https://raw.githubusercontent.com/google/draco/1.4.1/javascript/${sw}`};let lw;async function Aw(e={},t){const n=e.modules||{};return n.draco3d?lw||=n.draco3d.createDecoderModule({}).then(e=>({draco:e})):lw||=async function(e,t){let n,i;if("js"===t)n=await Zv(aw[ow],"draco",e,ow);else try{[n,i]=await Promise.all([await Zv(aw[iw],"draco",e,iw),await Zv(aw[rw],"draco",e,rw)])}catch{n=null,i=null}n=cw(n,"DracoDecoderModule"),n=n||globalThis.DracoDecoderModule,n||At||([n,i]=await Promise.all([await Zv(aw[iw],"draco",{...e,useLocalLibraries:!0},iw),await Zv(aw[rw],"draco",{...e,useLocalLibraries:!0},rw)]),n=cw(n,"DracoDecoderModule"),n=n||globalThis.DracoDecoderModule);return await function(e,t){if("function"!=typeof e)throw new Error("DracoDecoderModule could not be loaded");const n={};t&&(n.wasmBinary=t);return new Promise(t=>{e({...n,onModuleLoaded:e=>t({draco:e})})})}(n,i)}(e,t),await lw}function cw(e,t){if(e&&"object"==typeof e){if(e.default)return e.default;if(e[t])return e[t]}return e}const uw={...{dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:"4.4.3",worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:"object"==typeof WebAssembly?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},parse:async function(e,t){const{draco:n}=await Aw(Yv(t),t?.draco?.decoderType||"wasm"),i=new DracoParser(n);try{return i.parseSync(e,t?.draco)}finally{i.destroy()}}};function hw(e){const{buffer:t,size:n,count:i}=function(e){let t=e,n=1,i=0;e&&e.value&&(t=e.value,n=e.size||1);t&&(ArrayBuffer.isView(t)||(t=function(e,t,n=!1){if(!e)return null;if(Array.isArray(e))return new t(e);if(n&&!(e instanceof t))return new t(e);return e}(t,Float32Array)),i=t.length/n);return{buffer:t,size:n,count:i}}(e);return{value:t,size:n,byteOffset:0,count:i,type:Vy(n),componentType:zy(t)}}const dw="KHR_draco_mesh_compression",fw=dw;function pw(e,t,n){const i=new GLTFScenegraph(e);for(const e of vw(i))i.getObjectExtension(e,dw)}async function gw(e,t,n){if(!t?.gltf?.decompressMeshes)return;const i=new GLTFScenegraph(e),r=[];for(const e of vw(i))i.getObjectExtension(e,dw)&&r.push(_w(i,e,t,n));await Promise.all(r),i.removeExtension(dw)}function mw(e,t={}){const n=new GLTFScenegraph(e);for(const e of n.json.meshes||[])bw(e,t),n.addRequiredExtension(dw)}async function _w(e,t,n,i){const r=e.getObjectExtension(t,dw);if(!r)return;const o=e.getTypedArrayForBufferView(r.bufferView),s=Mt(o.buffer,o.byteOffset),a={...n};delete a["3d-tiles"];const l=await Jv(s,uw,a,i),A=function(e){const t={};for(const n in e){const i=e[n];if("indices"!==n){const e=hw(i);t[n]=e}}return t}(l.attributes);for(const[n,i]of Object.entries(A))if(n in t.attributes){const r=t.attributes[n],o=e.getAccessor(r);o?.min&&o?.max&&(i.min=o.min,i.max=o.max)}t.attributes=A,l.indices&&(t.indices=hw(l.indices)),e.removeObjectExtension(t,dw),function(e){if(!e.attributes&&Object.keys(e.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}(t)}function bw(e,t,n=4,i,r){if(!i.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const o=i.DracoWriter.encodeSync({attributes:e}),s=r?.parseSync?.({attributes:e}),a=i._addFauxAttributes(s.attributes),l=i.addBufferView(o);return{primitives:[{attributes:a,mode:n,extensions:{[dw]:{bufferView:l,attributes:a}}}]}}function*vw(e){for(const t of e.json.meshes||[])for(const e of t.primitives)yield e}const yw="KHR_texture_transform",Cw=yw,ww=new Xn.P,Ew=new Matrix3,xw=new Matrix3;async function Tw(e,t){if(!new GLTFScenegraph(e).hasExtension(yw)||!t.gltf?.loadBuffers)return;const n=e.json.materials||[];for(let t=0;t<n.length;t++)Sw(t,e)}function Sw(e,t){const n=t.json.materials?.[e],i=[n?.pbrMetallicRoughness?.baseColorTexture,n?.emissiveTexture,n?.normalTexture,n?.occlusionTexture,n?.pbrMetallicRoughness?.metallicRoughnessTexture],r=[];for(const n of i)n&&n?.extensions?.[yw]&&Pw(t,e,n,r)}function Pw(e,t,n,i){const r=function(e,t){const n=e.extensions?.[yw],{texCoord:i=0}=e,{texCoord:r=i}=n,o=-1!==t.findIndex(([e,t])=>e===i&&t===r);if(!o){const o=function(e){const{offset:t=[0,0],rotation:n=0,scale:i=[1,1]}=e,r=(new Matrix3).set(1,0,0,0,1,0,t[0],t[1],1),o=Ew.set(Math.cos(n),Math.sin(n),0,-Math.sin(n),Math.cos(n),0,0,0,1),s=xw.set(i[0],0,0,0,i[1],0,0,0,1);return r.multiplyRight(o).multiplyRight(s)}(n);return i!==r&&(e.texCoord=r),t.push([i,r]),{originalTexCoord:i,texCoord:r,matrix:o}}return null}(n,i);if(!r)return;const o=e.json.meshes||[];for(const n of o)for(const i of n.primitives){const n=i.material;Number.isFinite(n)&&t===n&&Mw(e,i,r)}}function Mw(e,t,n){const{originalTexCoord:i,texCoord:r,matrix:o}=n,s=t.attributes[`TEXCOORD_${i}`];if(Number.isFinite(s)){const n=e.json.accessors?.[s];if(n&&void 0!==n.bufferView){const s=e.json.bufferViews?.[n.bufferView];if(s){const{arrayBuffer:a,byteOffset:l}=e.buffers[s.buffer],A=(l||0)+(n.byteOffset||0)+(s.byteOffset||0),{ArrayType:c,length:u}=Hy(n,s),h=Fy[n.componentType],d=Ly[n.type],f=s.byteStride||h*d,p=new Float32Array(u);for(let e=0;e<n.count;e++){const t=new c(a,A+e*f,2);ww.set(t[0],t[1],1),ww.transformByMatrix3(o),p.set([ww[0],ww[1]],e*d)}i===r?function(e,t,n,i){e.componentType=5126,e.byteOffset=0;const r=t.json.accessors||[],o=r.reduce((e,t)=>t.bufferView===i?e+1:e,0),s=o>1;t.buffers.push({arrayBuffer:Tt(n.buffer),byteOffset:0,byteLength:n.buffer.byteLength});const a=t.buffers.length-1;if(t.json.bufferViews=t.json.bufferViews||[],s)return t.json.bufferViews.push({buffer:a,byteLength:n.buffer.byteLength,byteOffset:0}),void(e.bufferView=t.json.bufferViews.length-1);const l=t.json.bufferViews[i];if(!l)return;l.buffer=a,l.byteOffset=0,l.byteLength=n.buffer.byteLength,void 0!==l.byteStride&&delete l.byteStride}(n,e,p,n.bufferView):function(e,t,n,i,r){i.buffers.push({arrayBuffer:Tt(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength}),i.json.bufferViews=i.json.bufferViews||[];const o=i.json.bufferViews;o.push({buffer:i.buffers.length-1,byteLength:r.buffer.byteLength,byteOffset:0});const s=i.json.accessors;if(!s)return;s.push({bufferView:o?.length-1,byteOffset:0,componentType:5126,count:t.count,type:"VEC2"}),n.attributes[`TEXCOORD_${e}`]=s.length-1}(r,n,t,e,p)}}}}const Rw="KHR_lights_punctual",Bw=Rw;async function Iw(e){const t=new GLTFScenegraph(e),{json:n}=t,i=t.getExtension(Rw);i&&(t.json.lights=i.lights,t.removeExtension(Rw));for(const e of n.nodes||[]){const n=t.getObjectExtension(e,Rw);n&&(e.light=n.light),t.removeObjectExtension(e,Rw)}}async function Lw(e){const t=new GLTFScenegraph(e),{json:n}=t;if(n.lights){const e=t.addExtension(Rw);Cy(!e.lights),e.lights=n.lights,delete n.lights}if(t.json.lights){for(const e of t.json.lights){const n=e.node;t.addObjectExtension(n,Rw,e)}delete t.json.lights}}const Fw="KHR_materials_unlit",Dw=Fw;async function Ow(e){const t=new GLTFScenegraph(e),{json:n}=t;for(const e of n.materials||[]){e.extensions&&e.extensions.KHR_materials_unlit&&(e.unlit=!0),t.removeObjectExtension(e,Fw)}t.removeExtension(Fw)}function Nw(e){const t=new GLTFScenegraph(e),{json:n}=t;if(t.materials)for(const e of n.materials||[])e.unlit&&(delete e.unlit,t.addObjectExtension(e,Fw,{}),t.addExtension(Fw))}const kw="KHR_techniques_webgl",Uw=kw;async function Gw(e){const t=new GLTFScenegraph(e),{json:n}=t,i=t.getExtension(kw);if(i){const e=function(e,t){const{programs:n=[],shaders:i=[],techniques:r=[]}=e,o=new TextDecoder;return i.forEach(e=>{if(!Number.isFinite(e.bufferView))throw new Error("KHR_techniques_webgl: no shader code");e.code=o.decode(t.getTypedArrayForBufferView(e.bufferView))}),n.forEach(e=>{e.fragmentShader=i[e.fragmentShader],e.vertexShader=i[e.vertexShader]}),r.forEach(e=>{e.program=n[e.program]}),r}(i,t);for(const i of n.materials||[]){const n=t.getObjectExtension(i,kw);n&&(i.technique=Object.assign({},n,e[n.technique]),i.technique.values=zw(i.technique,t)),t.removeObjectExtension(i,kw)}t.removeExtension(kw)}}async function Vw(e,t){}function zw(e,t){const n=Object.assign({},e.values);return Object.keys(e.uniforms||{}).forEach(t=>{e.uniforms[t].value&&!(t in n)&&(n[t]=e.uniforms[t].value)}),Object.keys(n).forEach(e=>{"object"==typeof n[e]&&void 0!==n[e].index&&(n[e].texture=t.getTexture(n[e].index))}),n}const Hw="EXT_feature_metadata",Ww=Hw;async function jw(e,t){!function(e,t){if(!t.gltf?.loadBuffers)return;const n=e.getExtension(Hw);if(!n)return;t.gltf?.loadImages&&function(e,t){const n=t.schema;if(!n)return;const i=n.classes,{featureTextures:r}=t;if(i&&r)for(const t in i){const n=i[t],o=Xw(r,t);o&&Jw(e,o,n)}}(e,n);!function(e,t){const n=t.schema;if(!n)return;const i=n.classes,r=t.featureTables;if(i&&r)for(const t in i){const i=Qw(r,t);i&&Kw(e,n,i)}}(e,n)}(new GLTFScenegraph(e),t)}function Qw(e,t){for(const n in e){const i=e[n];if(i.class===t)return i}return null}function Xw(e,t){for(const n in e){const i=e[n];if(i.class===t)return i}return null}function Kw(e,t,n){if(!n.class)return;const i=t.classes?.[n.class];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${n.class}`);const r=n.count;for(const o in i.properties){const s=i.properties[o],a=n.properties?.[o];if(a){const n=qw(e,t,s,r,a);a.data=n}}}function Jw(e,t,n){const i=t.class;for(const r in n.properties){const n=t?.properties?.[r];if(n){const t=Yw(e,n,i);n.data=t}}}function qw(e,t,n,i,r){let o=[];const s=r.bufferView,a=e.getTypedArrayForBufferView(s),l=function(e,t,n,i){if("ARRAY"===t.type&&void 0===t.componentCount&&void 0!==n.arrayOffsetBufferView)return Yy(e,n.arrayOffsetBufferView,n.offsetType||"UINT32",i);return null}(e,n,r,i),A=function(e,t,n,i){if(void 0!==n.stringOffsetBufferView)return Yy(e,n.stringOffsetBufferView,n.offsetType||"UINT32",i);return null}(e,0,r,i);return"STRING"===n.type||"STRING"===n.componentType?o=rC(i,a,l,A):function(e){const t=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return t.includes(e.type)||void 0!==e.componentType&&t.includes(e.componentType)}(n)&&(o=function(e,t,n,i){const r="ARRAY"===e.type,o=e.componentCount,s="SCALAR",a=e.componentType||e.type,l=qy(s,a),A=n.byteLength/l,c=Zy(n,s,a,A);if(r)return i?nC(c,t,i,n.length,l):o?iC(c,t,o):[];return c}(n,i,a,l)),o}function Yw(e,t,n){const i=e.gltf.json;if(!i.meshes)return[];const r=[];for(const o of i.meshes)for(const i of o.primitives)Zw(e,n,t,r,i);return r}function Zw(e,t,n,i,r){const o=$y(e,{channels:n.channels,...n.texture},r);o&&eC(e,t,o,i,r)}const $w=[r,i,o,s,a,l,c,u,h,A,d];function eE(e,t){const n=t?.gltf?.excludeExtensions||{};return!(e in n&&!n[e])}const tE="KHR_binary_glTF";const nE={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},iE={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};class GLTFV1Normalizer{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:return void console.warn(`glTF: Unknown version ${n.asset.version}`)}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),function(e){const t=new GLTFScenegraph(e),{json:n}=t;for(const e of n.images||[]){const n=t.getObjectExtension(e,tE);n&&Object.assign(e,n),t.removeObjectExtension(e,tE)}n.buffers&&n.buffers[0]&&delete n.buffers[0].uri,t.removeExtension(tE)}(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in nE)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(n&&!Array.isArray(n)){e[t]=[];for(const i in n){const r=n[i];r.id=r.id||i;const o=e[t].length;e[t].push(r),this.idToIndexMap[t][i]=o}}}_convertObjectIdsToArrayIndices(e){for(const t in nE)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:e,indices:n,material:i}=t;for(const t in e)e[t]=this._convertIdToIndex(e[t],"accessor");n&&(t.indices=this._convertIdToIndex(n,"accessor")),i&&(t.material=this._convertIdToIndex(i,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(e=>this._convertIdToIndex(e,"node"))),e.meshes&&(e.meshes=e.meshes.map(e=>this._convertIdToIndex(e,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(e=>this._convertIdToIndex(e,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(const n of e[t])for(const e in n){const t=n[e],i=this._convertIdToIndex(t,e);n[e]=i}}_convertIdToIndex(e,t){const n=iE[t];if(n in this.idToIndexMap){const i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(const e of this.json.buffers)delete e.type}_updateMaterial(e){for(const t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const n=t.values?.tex||t.values?.texture2d_0||t.values?.diffuseTex,i=e.textures.findIndex(e=>e.id===n);-1!==i&&(t.pbrMetallicRoughness.baseColorTexture={index:i})}}}async function rE(e,t,n=0,i,r){return function(e,t,n,i){i.core?.baseUrl&&(e.baseUri=i.core?.baseUrl);if(t instanceof ArrayBuffer&&!function(e,t=0,n={}){const i=new DataView(e),{magic:r=Ty}=n,o=i.getUint32(t,!1);return o===r||o===Ty}(t,n,i.glb)){t=(new TextDecoder).decode(t)}if("string"==typeof t)e.json=Kv(t);else if(t instanceof ArrayBuffer){const r={};n=My(r,t,n,i.glb),Cy("glTF"===r.type,`Invalid GLB magic string ${r.type}`),e._glb=r,e.json=r.json}else Cy(!1,"GLTF: must be ArrayBuffer or string");const r=e.json.buffers||[];if(e.buffers=new Array(r.length).fill(null),e._glb&&e._glb.header.hasBinChunk){const{binChunks:t}=e._glb;e.buffers[0]={arrayBuffer:t[0].arrayBuffer,byteOffset:t[0].byteOffset,byteLength:t[0].byteLength}}const o=e.json.images||[];e.images=new Array(o.length).fill({})}(e,t,n,i),function(e,t={}){(new GLTFV1Normalizer).normalize(e,t)}(e,{normalize:i?.gltf?.normalize}),function(e,t={},n){const i=$w.filter(e=>eE(e.name,t));for(const r of i)r.preprocess?.(e,t,n)}(e,i,r),i?.gltf?.loadBuffers&&e.json.buffers&&await async function(e,t,n){const i=e.json.buffers||[];for(let r=0;r<i.length;++r){const o=i[r];if(o.uri){const{fetch:i}=n;Cy(i);const s=Iy(o.uri,t,n),a=await(n?.fetch?.(s)),l=await(a?.arrayBuffer?.());e.buffers[r]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete o.uri}else null===e.buffers[r]&&(e.buffers[r]={arrayBuffer:new ArrayBuffer(o.byteLength),byteOffset:0,byteLength:o.byteLength})}}(e,i,r),i?.gltf?.loadImages&&await async function(e,t,n){const i=function(e){const t=new Set,n=e.json.textures||[];for(const e of n)void 0!==e.source&&t.add(e.source);return Array.from(t).sort()}(e),r=e.json.images||[],o=[];for(const s of i)o.push(oE(e,r[s],s,t,n));return await Promise.all(o)}(e,i,r),await async function(e,t={},n){const i=$w.filter(e=>eE(e.name,t));for(const r of i)await(r.decode?.(e,t,n))}(e,i,r),e}async function oE(e,t,n,i,r){let o;if(t.uri&&!t.hasOwnProperty("bufferView")){const e=Iy(t.uri,i,r),{fetch:n}=r,s=await n(e);o=await s.arrayBuffer(),t.bufferView={data:o}}if(Number.isFinite(t.bufferView)){const n=jy(e.json,e.buffers,t.bufferView);o=Mt(n.buffer,n.byteOffset,n.byteLength)}Cy(o,"glTF image has no data");const s=i,a={...s,core:{...s?.core,mimeType:t.mimeType}};let l=await Jv(o,[me,yy],a,r);l&&l[0]&&(l={compressed:!0,mipmaps:!1,width:l[0].width,height:l[0].height,data:l[0]}),e.images=e.images||[],e.images[n]=l}const sE={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:"4.4.3",extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:async function(e,t={},n){const i={...sE.options,...t};i.gltf={...sE.options.gltf,...i.gltf};const r=t?.glb?.byteOffset||0;return await rE({},e,r,i,n)},options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};const aE={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},lE={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},AE=10240,cE=10241,uE=10242,hE=10243,dE=10497,fE=9729,pE=9986,gE={magFilter:AE,minFilter:cE,wrapS:uE,wrapT:hE},mE={[AE]:fE,[cE]:pE,[uE]:dE,[hE]:dE};class GLTFPostProcessor{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,t={}){const{json:n,buffers:i=[],images:r=[]}=e,{baseUri:o=""}=e;return Cy(n),this.baseUri=o,this.buffers=i,this.images=r,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,t),this.json}_resolveTree(e,t={}){const n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((e,t)=>this._resolveBufferView(e,t))),e.images&&(n.images=e.images.map((e,t)=>this._resolveImage(e,t))),e.samplers&&(n.samplers=e.samplers.map((e,t)=>this._resolveSampler(e,t))),e.textures&&(n.textures=e.textures.map((e,t)=>this._resolveTexture(e,t))),e.accessors&&(n.accessors=e.accessors.map((e,t)=>this._resolveAccessor(e,t))),e.materials&&(n.materials=e.materials.map((e,t)=>this._resolveMaterial(e,t))),e.meshes&&(n.meshes=e.meshes.map((e,t)=>this._resolveMesh(e,t))),e.nodes&&(n.nodes=e.nodes.map((e,t)=>this._resolveNode(e,t)),n.nodes=n.nodes.map((e,t)=>this._resolveNodeChildren(e))),e.skins&&(n.skins=e.skins.map((e,t)=>this._resolveSkin(e,t))),e.scenes&&(n.scenes=e.scenes.map((e,t)=>this._resolveScene(e,t))),"number"==typeof this.json.scene&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,t){if("object"==typeof t)return t;const n=e&&e[t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return{...e,id:e.id||`scene-${t}`,nodes:(e.nodes||[]).map(e=>this.getNode(e))}}_resolveNode(e,t){const n={...e,id:e?.id||`node-${t}`};return void 0!==e.mesh&&(n.mesh=this.getMesh(e.mesh)),void 0!==e.camera&&(n.camera=this.getCamera(e.camera)),void 0!==e.skin&&(n.skin=this.getSkin(e.skin)),void 0!==e.meshes&&e.meshes.length&&(n.mesh=e.meshes.reduce((e,t)=>{const n=this.getMesh(t);return e.id=n.id,e.primitives=e.primitives.concat(n.primitives),e},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(e=>this.getNode(e))),e}_resolveSkin(e,t){const n="number"==typeof e.inverseBindMatrices?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${t}`,inverseBindMatrices:n}}_resolveMesh(e,t){const n={...e,id:e.id||`mesh-${t}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(e=>{const t={...e,attributes:{},indices:void 0,material:void 0},n=e.attributes;for(const e in n)t.attributes[e]=this.getAccessor(n[e]);return void 0!==e.indices&&(t.indices=this.getAccessor(e.indices)),void 0!==e.material&&(t.material=this.getMaterial(e.material)),t})),n}_resolveMaterial(e,t){const n={...e,id:e.id||`material-${t}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};const e=n.pbrMetallicRoughness;e.baseColorTexture&&(e.baseColorTexture={...e.baseColorTexture},e.baseColorTexture.texture=this.getTexture(e.baseColorTexture.index)),e.metallicRoughnessTexture&&(e.metallicRoughnessTexture={...e.metallicRoughnessTexture},e.metallicRoughnessTexture.texture=this.getTexture(e.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,t){const n=(i=e.componentType,lE[i]);var i;const r=(o=e.type,aE[o]);var o;const s=n*r,a={...e,id:e.id||`accessor-${t}`,bytesPerComponent:n,components:r,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(void 0!==e.bufferView&&(a.bufferView=this.getBufferView(e.bufferView)),a.bufferView){const e=a.bufferView.buffer,{ArrayType:t,byteLength:n}=Hy(a,a.bufferView),i=(a.bufferView.byteOffset||0)+(a.byteOffset||0)+e.byteOffset;let r=St(e.arrayBuffer,i,n);a.bufferView.byteStride&&(r=this._getValueFromInterleavedBuffer(e,i,a.bufferView.byteStride,a.bytesPerElement,a.count)),a.value=new t(r)}return a}_getValueFromInterleavedBuffer(e,t,n,i,r){const o=new Uint8Array(r*i);for(let s=0;s<r;s++){const r=t+s*n;o.set(new Uint8Array(e.arrayBuffer.slice(r,r+i)),s*i)}return o.buffer}_resolveTexture(e,t){return{...e,id:e.id||`texture-${t}`,sampler:"number"==typeof e.sampler?this.getSampler(e.sampler):{id:"default-sampler",parameters:mE},source:"number"==typeof e.source?this.getImage(e.source):void 0}}_resolveSampler(e,t){const n={id:e.id||`sampler-${t}`,...e,parameters:{}};for(const e in n){const t=this._enumSamplerParameter(e);void 0!==t&&(n.parameters[t]=n[e])}return n}_enumSamplerParameter(e){return gE[e]}_resolveImage(e,t){const n={...e,id:e.id||`image-${t}`,image:null,bufferView:void 0!==e.bufferView?this.getBufferView(e.bufferView):void 0},i=this.images[t];return i&&(n.image=i),n}_resolveBufferView(e,t){const n=e.buffer,i=this.buffers[n].arrayBuffer;let r=this.buffers[n].byteOffset||0;e.byteOffset&&(r+=e.byteOffset);return{id:`bufferView-${t}`,...e,buffer:this.buffers[n],data:new Uint8Array(i,r,e.byteLength)}}_resolveCamera(e,t){const n={...e,id:e.id||`camera-${t}`};return n.perspective,n.orthographic,n}}function _E(e,t){return(new GLTFPostProcessor).postProcess(e,t)}async function bE(e){const t=[];return e.scenes.forEach(e=>{e.traverse(e=>{})}),await async function(e){for(;e();)await new Promise(e=>requestAnimationFrame(e))}(()=>t.some(e=>!e.loaded))}const vE=Math.PI/180,yE=new Float32Array(16),CE=new Float32Array(12);function wE(e,t,n){const i=t[0]*vE,r=t[1]*vE,o=t[2]*vE,s=Math.sin(o),a=Math.sin(i),l=Math.sin(r),A=Math.cos(o),c=Math.cos(i),u=Math.cos(r),h=n[0],d=n[1],f=n[2];e[0]=h*u*c,e[1]=h*l*c,e[2]=h*-a,e[3]=d*(-l*A+u*a*s),e[4]=d*(u*A+l*a*s),e[5]=d*c*s,e[6]=f*(l*s+u*a*A),e[7]=f*(-u*s+l*a*A),e[8]=f*c*A}function EE(e){return e[0]=e[0],e[1]=e[1],e[2]=e[2],e[3]=e[4],e[4]=e[5],e[5]=e[6],e[6]=e[8],e[7]=e[9],e[8]=e[10],e[9]=e[12],e[10]=e[13],e[11]=e[14],e.subarray(0,12)}const xE={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrixCol0:{size:3,elementOffset:0},instanceModelMatrixCol1:{size:3,elementOffset:3},instanceModelMatrixCol2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(e,{startRow:t,endRow:n}){const{data:i,getOrientation:r,getScale:o,getTranslation:s,getTransformMatrix:a}=this.props,l=Array.isArray(a),A=l&&16===a.length,c=Array.isArray(o),u=Array.isArray(r),h=Array.isArray(s),d=A||!l&&Boolean(a(i[0]));e.constant=d?A:u&&c&&h;const f=e.value;if(e.constant){let t;if(d)yE.set(a),t=EE(yE);else{t=CE;wE(t,r,o),t.set(s,9)}e.value=new Float32Array(t)}else{let l=t*e.size;const{iterable:p,objectInfo:g}=or(i,t,n);for(const e of p){let t;if(g.index++,d)yE.set(A?a:a(e,g)),t=EE(yE);else{t=CE;wE(t,u?r:r(e,g),c?o:o(e,g)),t.set(h?s:s(e,g),9)}f[l++]=t[0],f[l++]=t[1],f[l++]=t[2],f[l++]=t[3],f[l++]=t[4],f[l++]=t[5],f[l++]=t[6],f[l++]=t[7],f[l++]=t[8],f[l++]=t[9],f[l++]=t[10],f[l++]=t[11]}}}};function TE(e,t){return"cartesian"===t||"meter-offsets"===t||"default"===t&&!e.isGeospatial}const SE="layout(std140) uniform scenegraphUniforms {\n float sizeScale;\n float sizeMinPixels;\n float sizeMaxPixels;\n mat4 sceneModelMatrix;\n bool composeModelMatrix;\n} scenegraph;\n",PE={name:"scenegraph",vs:SE,fs:SE,uniformTypes:{sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",sceneModelMatrix:"mat4x4<f32>",composeModelMatrix:"f32"}},ME=[255,255,255,255],RE={scenegraph:{type:"object",value:null,async:!0},getScene:e=>e&&e.scenes?"object"==typeof e.scene?e.scene:e.scenes[e.scene||0]:e,getAnimator:e=>e&&e.animator,_animations:null,onFirstDraw:{type:"function",value:()=>{}},sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:ME},_lighting:"flat",_imageBasedLightingEnvironment:void 0,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[sE]};class ScenegraphLayer extends uo{getShaders(){const e={};let t;"pbr"===this.props._lighting?(t=Fb,e.LIGHTING_PBR=1):t={name:"pbrMaterial"};const n=[No,Oo,PE,t];return super.getShaders({defines:e,vs:"#version 300 es\n#define SHADER_NAME scenegraph-layer-vertex-shader\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nin vec3 instanceTranslation;\nin vec3 positions;\n#ifdef HAS_UV\nin vec2 texCoords;\n#endif\n#ifdef LIGHTING_PBR\n#ifdef HAS_NORMALS\nin vec3 normals;\n#endif\n#endif\nout vec4 vColor;\n#ifndef LIGHTING_PBR\n#ifdef HAS_UV\nout vec2 vTEXCOORD_0;\n#endif\n#endif\nvoid main(void) {\n#if defined(HAS_UV) && !defined(LIGHTING_PBR)\nvTEXCOORD_0 = texCoords;\ngeometry.uv = texCoords;\n#endif\ngeometry.worldPosition = instancePositions;\ngeometry.pickingColor = instancePickingColors;\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvec3 normal = vec3(0.0, 0.0, 1.0);\n#ifdef LIGHTING_PBR\n#ifdef HAS_NORMALS\nnormal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(normals, 0.0)).xyz;\n#endif\n#endif\nfloat originalSize = project_size_to_pixel(scenegraph.sizeScale);\nfloat clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels);\nvec3 pos = (instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(positions, 1.0)).xyz) * scenegraph.sizeScale * (clampedSize / originalSize) + instanceTranslation;\nif(scenegraph.composeModelMatrix) {\nDECKGL_FILTER_SIZE(pos, geometry);\ngeometry.normal = project_normal(normal);\ngeometry.worldPosition += pos;\ngl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\n}\nelse {\npos = project_size(pos);\nDECKGL_FILTER_SIZE(pos, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position);\ngeometry.normal = project_normal(normal);\n}\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n#ifdef LIGHTING_PBR\npbr_vPosition = geometry.position.xyz;\n#ifdef HAS_NORMALS\npbr_vNormal = geometry.normal;\n#endif\n#ifdef HAS_UV\npbr_vUV0 = texCoords;\n#else\npbr_vUV0 = vec2(0., 0.);\n#endif\npbr_vUV1 = vec2(0., 0.);\ngeometry.uv = pbr_vUV0;\n#endif\nvColor = instanceColors;\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME scenegraph-layer-fragment-shader\nin vec4 vColor;\nout vec4 fragColor;\n#ifndef LIGHTING_PBR\n#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)\nin vec2 vTEXCOORD_0;\nuniform sampler2D pbr_baseColorSampler;\n#endif\n#endif\nvoid main(void) {\n#ifdef LIGHTING_PBR\nfragColor = vColor * pbr_filterColor(vec4(0));\ngeometry.uv = pbr_vUV0;\n#else\n#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)\nfragColor = vColor * texture(pbr_baseColorSampler, vTEXCOORD_0);\ngeometry.uv = vTEXCOORD_0;\n#else\nfragColor = vColor;\n#endif\n#endif\nfragColor.a *= layer.opacity;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",modules:n})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),accessor:"getPosition",transition:!0},instanceColors:{type:"unorm8",size:this.props.colorFormat.length,accessor:"getColor",defaultValue:ME,transition:!0},instanceModelMatrix:xE})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e;t.scenegraph!==n.scenegraph?this._updateScenegraph():t._animations!==n._animations&&this._applyAnimationsProp(this.state.animator,t._animations)}finalizeState(e){super.finalizeState(e),this._destroyScenegraphAssets()}get isLoaded(){return Boolean(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){const e=this.props,{device:t}=this.context;let n=null;if(e.scenegraph instanceof ScenegraphNode)n={scenes:[e.scenegraph]};else if(e.scenegraph&&"object"==typeof e.scenegraph){const i=e.scenegraph,r=jv(t,i.json?_E(i):i,this._getModelOptions());n=r,bE(r).then(()=>this.setNeedsRedraw()).catch(e=>{this.raiseError(e,"loading glTF")})}const i={layer:this,device:this.context.device},r=e.getScene(n,i),o=e.getAnimator(n,i);if(r instanceof GroupNode){this._destroyScenegraphAssets(),this._applyAnimationsProp(o,e._animations);const t=[];r.traverse(e=>{e instanceof ModelNode&&t.push(e.model)}),this.setState({scenegraph:r,animator:o,materials:n?.materials||null,models:t,firstDrawSignaled:!1}),this.getAttributeManager().invalidateAll()}else null!==r&&_e.A.warn("invalid scenegraph:",r)()}_destroyScenegraphAssets(){this.state.scenegraph?.destroy(),this.state.materials?.forEach(e=>e.destroy()),this.state.scenegraph=null,this.state.animator=null,this.state.materials=null,this.state.models=[]}_applyAnimationsProp(e,t){if(!e||!t)return;const n=e.getAnimations();Object.keys(t).sort().forEach(e=>{const i=t[e];if("*"===e)n.forEach(e=>{Object.assign(e,i)});else if(Number.isFinite(Number(e))){const t=Number(e);t>=0&&t<n.length?Object.assign(n[t],i):_e.A.warn(`animation ${e} not found`)()}else{const t=n.find(({animation:t})=>t.name===e);t?Object.assign(t,i):_e.A.warn(`animation ${e} not found`)()}})}_getModelOptions(){const{_imageBasedLightingEnvironment:e}=this.props;let t;return e&&(t="function"==typeof e?e({gl:this.context.gl,layer:this}):e),{imageBasedLightingEnvironment:t,modelOptions:{id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),...this.getShaders()},useTangents:!1}}draw({context:e}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.setTime(e.timeline.getTime()),this.setNeedsRedraw());const{viewport:t,renderPass:n}=this.context,{sizeScale:i,sizeMinPixels:r,sizeMaxPixels:o,coordinateSystem:s}=this.props,a={camera:t.cameraPosition},l=this.getNumInstances();this.state.scenegraph.traverse((e,{worldMatrix:A})=>{if(e instanceof ModelNode){const{model:c}=e;c.setInstanceCount(l);const u={sizeScale:i,sizeMinPixels:r,sizeMaxPixels:o,composeModelMatrix:TE(t,s),sceneModelMatrix:A};c.shaderInputs.setProps({pbrProjection:a,scenegraph:u}),c.draw(n)}}),this.state.firstDrawSignaled||(this.state.firstDrawSignaled=!0,this.props.onFirstDraw?.())}}ScenegraphLayer.defaultProps=RE,ScenegraphLayer.layerName="ScenegraphLayer";const BE=ScenegraphLayer,IE="layout(std140) uniform simpleMeshUniforms {\n float sizeScale;\n bool composeModelMatrix;\n bool hasTexture;\n bool flatShading;\n} simpleMesh;\n",LE={name:"simpleMesh",vs:IE,fs:IE,uniformTypes:{sizeScale:"f32",composeModelMatrix:"f32",hasTexture:"f32",flatShading:"f32"}};function FE(e){const t=e.positions||e.POSITION;_e.A.assert(t,'no "postions" or "POSITION" attribute in mesh');const n=t.value.length/t.size;let i=e.COLOR_0||e.colors;i||(i={size:3,value:new Float32Array(3*n).fill(1)});let r=e.NORMAL||e.normals;r||(r={size:3,value:new Float32Array(3*n).fill(0)});let o=e.TEXCOORD_0||e.texCoords;return o||(o={size:2,value:new Float32Array(2*n).fill(0)}),{positions:t,colors:i,normals:r,texCoords:o}}function DE(e){return e instanceof Geometry?(e.attributes=FE(e.attributes),e):e.attributes?new Geometry({...e,topology:"triangle-list",attributes:FE(e.attributes)}):new Geometry({topology:"triangle-list",attributes:FE(e)})}const OE={mesh:{type:"object",value:null,async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:[0,0,0,255]},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},textureParameters:{type:"object",ignore:!0,value:null}};class SimpleMeshLayer extends uo{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nin vec3 instanceTranslation;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = texCoords;\ngeometry.pickingColor = instancePickingColors;\nvTexCoord = texCoords;\ncameraPosition = project.cameraPosition;\nvColor = vec4(colors * instanceColors.rgb, instanceColors.a);\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation;\nif (simpleMesh.composeModelMatrix) {\nDECKGL_FILTER_SIZE(pos, geometry);\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\ngeometry.worldPosition += pos;\ngl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\ngeometry.position = position_commonspace;\n}\nelse {\npos = project_size(pos);\nDECKGL_FILTER_SIZE(pos, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\ngeometry.position = position_commonspace;\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\n}\ngeometry.normal = normals_commonspace;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\nprecision highp float;\nuniform sampler2D sampler;\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = vTexCoord;\nvec3 normal;\nif (simpleMesh.flatShading) {\nnormal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n} else {\nnormal = normals_commonspace;\n}\nvec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;\nDECKGL_FILTER_COLOR(color, geometry);\nvec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\nfragColor = vec4(lightColor, color.a * layer.opacity);\n}\n",modules:[No,Zo,Oo,LE]})}getBounds(){if(this.props._instanced)return super.getBounds();let e=this.state.positionBounds;if(e)return e;const{mesh:t}=this.props;if(!t)return null;if(e=t.header?.boundingBox,!e){const{attributes:n}=DE(t);n.POSITION=n.POSITION||n.positions,e=function(e){let t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,s=-1/0;const a=e.POSITION?e.POSITION.value:[],l=a&&a.length;for(let e=0;e<l;e+=3){const l=a[e],A=a[e+1],c=a[e+2];t=l<t?l:t,n=A<n?A:n,i=c<i?c:i,r=l>r?l:r,o=A>o?A:o,s=c>s?c:s}return[[t,n,i],[r,o,s]]}(n)}return this.state.positionBounds=e,e}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{transition:!0,type:"float64",fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:"unorm8",transition:!0,size:this.props.colorFormat.length,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:xE}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e;if(t.mesh!==n.mesh||i.extensionsChanged){if(this.state.positionBounds=null,this.state.model?.destroy(),t.mesh){this.state.model=this.getModel(t.mesh);const e=t.mesh.attributes||t.mesh;this.setState({hasNormals:Boolean(e.NORMAL||e.normals)})}this.getAttributeManager().invalidateAll()}t.texture!==n.texture&&t.texture instanceof pi.g&&this.setTexture(t.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?"line-strip":"triangle-list")}finalizeState(e){super.finalizeState(e),this.state.emptyTexture.delete()}draw({uniforms:e}){const{model:t}=this.state;if(!t)return;const{viewport:n,renderPass:i}=this.context,{sizeScale:r,coordinateSystem:o,_instanced:s}=this.props,a={sizeScale:r,composeModelMatrix:!s||TE(n,o),flatShading:!this.state.hasNormals};t.shaderInputs.setProps({simpleMesh:a}),t.draw(i)}get isLoaded(){return Boolean(this.state?.model&&super.isLoaded)}getModel(e){const t=new dr.K(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:DE(e),isInstanced:!0}),{texture:n}=this.props,{emptyTexture:i}=this.state,r={sampler:n||i,hasTexture:Boolean(n)};return t.shaderInputs.setProps({simpleMesh:r}),t}setTexture(e){const{emptyTexture:t,model:n}=this.state;if(n){const i={sampler:e||t,hasTexture:Boolean(e)};n.shaderInputs.setProps({simpleMesh:i})}}}SimpleMeshLayer.defaultProps=OE,SimpleMeshLayer.layerName="SimpleMeshLayer";const NE=SimpleMeshLayer,kE="layout(std140) uniform meshUniforms {\n bool pickFeatureIds;\n} mesh;\n",UE={name:"mesh",vs:kE,fs:kE,uniformTypes:{pickFeatureIds:"f32"}};class MeshLayer extends NE{getShaders(){const e=super.getShaders();return e.modules.push(Fb,UE),{...e,vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec4 uvRegions;\nin vec3 featureIdsPickingColors;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\nvec2 applyUVRegion(vec2 uv) {\n#ifdef HAS_UV_REGIONS\nreturn fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;\n#else\nreturn uv;\n#endif\n}\nvoid main(void) {\nvec2 uv = applyUVRegion(texCoords);\ngeometry.uv = uv;\nif (mesh.pickFeatureIds) {\ngeometry.pickingColor = featureIdsPickingColors;\n} else {\ngeometry.pickingColor = instancePickingColors;\n}\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvTexCoord = uv;\ncameraPosition = project.cameraPosition;\nvColor = vec4(colors * instanceColors.rgb, instanceColors.a);\nvec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;\nvec3 projectedPosition = project_position(positions);\nposition_commonspace = vec4(projectedPosition, 1.0);\ngl_Position = project_common_position_to_clipspace(position_commonspace);\ngeometry.position = position_commonspace;\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\ngeometry.normal = normals_commonspace;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n#ifdef MODULE_PBRMATERIAL\npbr_vPosition = geometry.position.xyz;\n#ifdef HAS_NORMALS\npbr_vNormal = geometry.normal;\n#endif\n#ifdef HAS_UV\npbr_vUV0 = uv;\n#else\npbr_vUV0 = vec2(0., 0.);\n#endif\npbr_vUV1 = vec2(0., 0.);\ngeometry.uv = pbr_vUV0;\n#endif\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\nprecision highp float;\nuniform sampler2D sampler;\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\n#ifdef MODULE_PBRMATERIAL\nfragColor = vColor * pbr_filterColor(vec4(0));\ngeometry.uv = pbr_vUV0;\nfragColor.a *= layer.opacity;\n#else\ngeometry.uv = vTexCoord;\nvec3 normal;\nif (simpleMesh.flatShading) {\nnormal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n} else {\nnormal = normals_commonspace;\n}\nvec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;\nvec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\nfragColor = vec4(lightColor, color.a * layer.opacity);\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n"}}initializeState(){const{featureIds:e}=this.props;super.initializeState();const t=this.getAttributeManager();e&&t.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e;t.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(t.pbrMaterial)}draw(e){const{featureIds:t}=this.props,{model:n}=this.state;if(!n)return;const i={pickFeatureIds:Boolean(t)},r={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:r,mesh:i}),super.draw(e)}getModel(e){const{id:t}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});const i=this.getShaders();!function(e){const t=e.positions||e.POSITION,n=t.value.length/t.size;e.COLOR_0||e.colors||(e.colors={size:4,value:new Uint8Array(4*n).fill(255),normalized:!0})}(e.attributes);return new dr.K(this.context.device,{...this.getShaders(),id:t,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){const{model:t}=this.state;if(t){const{mesh:n}=this.props,i=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:i});const{pbr_baseColorSampler:r}=i.bindings,{emptyTexture:o}=this.state,s={sampler:r||o,hasTexture:Boolean(r)},{camera:a,...l}={...i.bindings,...i.uniforms};t.shaderInputs.setProps({simpleMesh:s,pbrMaterial:l})}}parseMaterial(e,t){const n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return av(this.context.device,{unlit:n,...e},{NORMAL:t.attributes.normals,TEXCOORD_0:t.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){const t=this.props.featureIds,n=new Uint8ClampedArray(t.length*e.size),i=[];for(let e=0;e<t.length;e++)this.encodePickingColor(t[e],i),n[3*e]=i[0],n[3*e+1]=i[1],n[3*e+2]=i[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(e=>e.destroy()),this.setState({parsedPBRMaterial:null})}}MeshLayer.layerName="MeshLayer",MeshLayer.defaultProps={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};const GE=MeshLayer,VE=6378137,zE=6378137,HE=6356752.314245179;Math.max(VE,zE,HE);function WE(e){return e}new Xn.P;function jE(e,t=[],n=WE){return"longitude"in e?(t[0]=n(e.longitude),t[1]=n(e.latitude),t[2]=e.height):"x"in e?(t[0]=n(e.x),t[1]=n(e.y),t[2]=e.z):(t[0]=n(e[0]),t[1]=n(e[1]),t[2]=e[2]),t}function QE(e,t,n=WE){return"longitude"in t?(t.longitude=n(e[0]),t.latitude=n(e[1]),t.height=e[2]):"x"in t?(t.x=n(e[0]),t.y=n(e[1]),t.z=e[2]):(t[0]=n(e[0]),t[1]=n(e[1]),t[2]=e[2]),t}const XE=new Xn.P,KE={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},JE={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},qE={east:new Xn.P,north:new Xn.P,up:new Xn.P,west:new Xn.P,south:new Xn.P,down:new Xn.P},YE=new Xn.P,ZE=new Xn.P,$E=new Xn.P;function ex(e,t,n,i,r,o){const s=KE[t]&&KE[t][n];let a,l,A;(0,I_.v)(s&&(!i||i===s));const c=XE.copy(r);if((0,cn.aI)(c.x,0,1e-14)&&(0,cn.aI)(c.y,0,1e-14)){const e=Math.sign(c.z);a=YE.fromArray(JE[t]),"east"!==t&&"west"!==t&&a.scale(e),l=ZE.fromArray(JE[n]),"east"!==n&&"west"!==n&&l.scale(e),A=$E.fromArray(JE[i]),"east"!==i&&"west"!==i&&A.scale(e)}else{const{up:r,east:o,north:s}=qE;o.set(-c.y,c.x,0).normalize(),e.geodeticSurfaceNormal(c,r),s.copy(r).cross(o);const{down:u,west:h,south:d}=qE;u.copy(r).scale(-1),h.copy(o).scale(-1),d.copy(s).scale(-1),a=qE[t],l=qE[n],A=qE[i]}return o[0]=a.x,o[1]=a.y,o[2]=a.z,o[3]=0,o[4]=l.x,o[5]=l.y,o[6]=l.z,o[7]=0,o[8]=A.x,o[9]=A.y,o[10]=A.z,o[11]=0,o[12]=c.x,o[13]=c.y,o[14]=c.z,o[15]=1,o}const tx=new Xn.P,nx=new Xn.P,ix=new Xn.P;const rx=new Xn.P,ox=new Xn.P,sx=new Xn.P,ax=new Xn.P,lx=new Xn.P,Ax=new Xn.P;class Ellipsoid{constructor(e=0,t=0,n=0){this.centerToleranceSquared=.1,(0,I_.v)(e>=0),(0,I_.v)(t>=0),(0,I_.v)(n>=0),this.radii=new Xn.P(e,t,n),this.radiiSquared=new Xn.P(e*e,t*t,n*n),this.radiiToTheFourth=new Xn.P(e*e*e*e,t*t*t*t,n*n*n*n),this.oneOverRadii=new Xn.P(0===e?0:1/e,0===t?0:1/t,0===n?0:1/n),this.oneOverRadiiSquared=new Xn.P(0===e?0:1/(e*e),0===t?0:1/(t*t),0===n?0:1/(n*n)),this.minimumRadius=Math.min(e,t,n),this.maximumRadius=Math.max(e,t,n),0!==this.radiiSquared.z&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,t=[0,0,0]){const n=ox,i=sx,[,,r]=e;this.geodeticSurfaceNormalCartographic(e,n),i.copy(this.radiiSquared).scale(n);const o=Math.sqrt(n.dot(i));return i.scale(1/o),n.scale(r),i.add(n),i.to(t)}cartesianToCartographic(e,t=[0,0,0]){Ax.from(e);const n=this.scaleToGeodeticSurface(Ax,ax);if(!n)return;const i=this.geodeticSurfaceNormal(n,ox),r=lx;r.copy(Ax).subtract(n);return function(e,t){return QE(e,t,cn.$W._cartographicRadians?WE:cn.xW)}([Math.atan2(i.y,i.x),Math.asin(i.z),Math.sign(bn.Om(r,Ax))*bn.Bw(r)],t)}eastNorthUpToFixedFrame(e,t=new gn.k){return ex(this,"east","north","up",e,t)}localFrameToFixedFrame(e,t,n,i,r=new gn.k){return ex(this,e,t,n,i,r)}geocentricSurfaceNormal(e,t=[0,0,0]){return rx.from(e).normalize().to(t)}geodeticSurfaceNormalCartographic(e,t=[0,0,0]){const n=function(e,t=[]){return jE(e,t,cn.$W._cartographicRadians?WE:cn.eh)}(e),i=n[0],r=n[1],o=Math.cos(r);return rx.set(o*Math.cos(i),o*Math.sin(i),Math.sin(r)).normalize(),rx.to(t)}geodeticSurfaceNormal(e,t=[0,0,0]){return rx.from(e).scale(this.oneOverRadiiSquared).normalize().to(t)}scaleToGeodeticSurface(e,t){return function(e,t,n=[]){const{oneOverRadii:i,oneOverRadiiSquared:r,centerToleranceSquared:o}=t;tx.from(e);const s=tx.x,a=tx.y,l=tx.z,A=i.x,c=i.y,u=i.z,h=s*s*A*A,d=a*a*c*c,f=l*l*u*u,p=h+d+f,g=Math.sqrt(1/p);if(!Number.isFinite(g))return;const m=nx;if(m.copy(e).scale(g),p<o)return m.to(n);const _=r.x,b=r.y,v=r.z,y=ix;y.set(m.x*_*2,m.y*b*2,m.z*v*2);let C,w,E,x,T=(1-g)*tx.len()/(.5*y.len()),S=0;do{T-=S,C=1/(1+T*_),w=1/(1+T*b),E=1/(1+T*v);const e=C*C,t=w*w,n=E*E;x=h*e+d*t+f*n-1,S=x/(-2*(h*(e*C)*_+d*(t*w)*b+f*(n*E)*v))}while(Math.abs(x)>1e-12);return tx.scale([C,w,E]).to(n)}(e,this,t)}scaleToGeocentricSurface(e,t=[0,0,0]){ax.from(e);const n=ax.x,i=ax.y,r=ax.z,o=this.oneOverRadiiSquared,s=1/Math.sqrt(n*n*o.x+i*i*o.y+r*r*o.z);return ax.multiplyScalar(s).to(t)}transformPositionToScaledSpace(e,t=[0,0,0]){return ax.from(e).scale(this.oneOverRadii).to(t)}transformPositionFromScaledSpace(e,t=[0,0,0]){return ax.from(e).scale(this.radii).to(t)}getSurfaceNormalIntersectionWithZAxis(e,t=0,n=[0,0,0]){(0,I_.v)((0,cn.aI)(this.radii.x,this.radii.y,1e-15)),(0,I_.v)(this.radii.z>0),ax.from(e);const i=ax.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-t))return ax.set(0,0,i).to(n)}}Ellipsoid.WGS84=new Ellipsoid(VE,zE,HE);class DoublyLinkedListNode{item;previous;next;constructor(e,t,n){this.item=e,this.previous=t,this.next=n}}class DoublyLinkedList{head=null;tail=null;_length=0;get length(){return this._length}add(e){const t=new DoublyLinkedListNode(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,t){e!==t&&(this.remove(t),this._insert(e,t))}_insert(e,t){const n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e,++this._length}}class TilesetCache{_list;_sentinel;_trimTiles;constructor(){this._list=new DoublyLinkedList,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){const t=e._cacheNode;t&&this._list.splice(this._sentinel,t)}add(e,t,n){t._cacheNode||(t._cacheNode=this._list.add(t),n&&n(e,t))}unloadTile(e,t,n){const i=t._cacheNode;i&&(this._list.remove(i),t._cacheNode=null,n&&n(e,t))}unloadTiles(e,t){const n=this._trimTiles;this._trimTiles=!1;const i=this._list,r=1024*e.maximumMemoryUsage*1024,o=this._sentinel;let s=i.head;for(;s!==o&&(e.gpuMemoryUsageInBytes>r||n);){const n=s.item;s=s.next,this.unloadTile(e,n,t)}}trim(){this._trimTiles=!0}}function cx(e,t){f(e),f(t);const{rtcCenter:n,gltfUpAxis:i}=t,{computedTransform:r,boundingVolume:{center:o}}=e;let s=new gn.k(r);switch(n&&s.translate(n),i){case"Z":default:break;case"Y":const e=(new gn.k).rotateX(Math.PI/2);s=s.multiplyRight(e);break;case"X":const t=(new gn.k).rotateY(-Math.PI/2);s=s.multiplyRight(t)}t.isQuantized&&s.translate(t.quantizedVolumeOffset).scale(t.quantizedVolumeScale);const a=new Xn.P(o);t.cartesianModelMatrix=s,t.cartesianOrigin=a;const l=Ellipsoid.WGS84.cartesianToCartographic(a,new Xn.P),A=Ellipsoid.WGS84.eastNorthUpToFixedFrame(a).invert();t.cartographicModelMatrix=A.multiplyRight(s),t.cartographicOrigin=l;const c=function(e){const t=e.gltf;if(!t)return null;const n="number"==typeof t.scene?t.scene:0,i=t.scenes?.[n],r=i?.nodes?.[0];if(!r?.matrix)return null;const o=r.matrix,s=o[12]*o[12]+o[13]*o[13]+o[14]*o[14];return s<=ux?null:r}(t);c&&(t.cartesianModelMatrix=new gn.k(s).multiplyRight(c.matrix),t.cartographicModelMatrix.multiplyRight(c.matrix),c.matrix=gn.k.IDENTITY),t.coordinateSystem||(t.modelMatrix=t.cartographicModelMatrix)}const ux=1e6**2;const hx=new Xn.P,dx=new Xn.P,fx=new CullingVolume([new Plane,new Plane,new Plane,new Plane,new Plane,new Plane]);function px(e,t){const{cameraDirection:n,cameraUp:i,height:r}=e,{metersPerUnit:o}=e.distanceScales,s=mx(e,e.center),a=Ellipsoid.WGS84.eastNorthUpToFixedFrame(s),l=e.unprojectPosition(e.cameraPosition),A=Ellipsoid.WGS84.cartographicToCartesian(l,new Xn.P),c=new Xn.P(a.transformAsVector(new Xn.P(n).scale(o))).normalize(),u=new Xn.P(a.transformAsVector(new Xn.P(i).scale(o))).normalize();!function(e){const t=e.getFrustumPlanes(),n=gx(t.near,e.cameraPosition),i=mx(e,n),r=mx(e,e.cameraPosition,dx);let o=0;fx.planes[o++].fromPointNormal(i,hx.copy(i).subtract(r));for(const r in t){if("near"===r)continue;const s=mx(e,gx(t[r],n,dx),dx);fx.planes[o++].fromPointNormal(s,hx.copy(i).subtract(s))}}(e);const h=e.constructor,{longitude:d,latitude:f,width:p,bearing:g,zoom:m}=e;return{camera:{position:A,direction:c,up:u},viewport:e,topDownViewport:new h({longitude:d,latitude:f,height:r,width:p,bearing:g,zoom:m,pitch:0}),height:r,cullingVolume:fx,frameNumber:t,sseDenominator:1.15}}function gx(e,t,n=new Xn.P){const i=e.normal.dot(t);return n.copy(e.normal).scale(e.distance-i).add(t),n}function mx(e,t,n=new Xn.P){const i=e.unprojectPosition(t);return Ellipsoid.WGS84.cartographicToCartesian(i,n)}const _x=6356752.314245179,bx=new Xn.P;function vx(e,t){if(e instanceof OrientedBoundingBox){const{halfAxes:n}=e,i=function(e){e.getColumn(0,bx);const t=e.getColumn(1),n=e.getColumn(2),i=bx.add(t).add(n).len();return i}(n);return Math.log2(_x/(i+t[2]))}if(e instanceof BoundingSphere){const{radius:n}=e;return Math.log2(_x/(n+t[2]))}if(e.width&&e.height){const{width:t,height:n}=e;return(Math.log2(6378137/t)+Math.log2(6378137/n))/2}return 1}function yx(e,t,n){Ellipsoid.WGS84.cartographicToCartesian([e.xmax,e.ymax,e.zmax],bx);const i=Math.sqrt(Math.pow(bx[0]-n[0],2)+Math.pow(bx[1]-n[1],2)+Math.pow(bx[2]-n[2],2));return Math.log2(_x/(i+t[2]))}const Cx=0,wx=1,Ex=3,xx=4,Tx=5;var Sx,Px,Mx,Rx;!function(e){e[e.ADD=1]="ADD",e[e.REPLACE=2]="REPLACE"}(Sx||(Sx={})),function(e){e.EMPTY="empty",e.SCENEGRAPH="scenegraph",e.POINTCLOUD="pointcloud",e.MESH="mesh"}(Px||(Px={})),function(e){e.I3S="I3S",e.TILES3D="TILES3D"}(Mx||(Mx={})),function(e){e.GEOMETRIC_ERROR="geometricError",e.MAX_SCREEN_THRESHOLD="maxScreenThreshold"}(Rx||(Rx={}));const Bx=1;function Ix(e){return null!=e}const Lx=new Xn.P,Fx=new Xn.P,Dx=new Xn.P,Ox=new Xn.P,Nx=new Xn.P,kx=new Xn.P,Ux=new Xn.P,Gx=new Xn.P;function Vx(e,t,n){if(f(e,"3D Tile: boundingVolume must be defined"),e.box)return Hx(e.box,t,n);if(e.region)return function(e){const[t,n,i,r,o,s]=e,a=Ellipsoid.WGS84.cartographicToCartesian([(0,cn.uj)(t),(0,cn.uj)(r),o],Dx),l=Ellipsoid.WGS84.cartographicToCartesian([(0,cn.uj)(i),(0,cn.uj)(n),s],Ox),A=(new Xn.P).addVectors(a,l).multiplyByScalar(.5);return Ellipsoid.WGS84.cartesianToCartographic(A,Nx),Ellipsoid.WGS84.cartographicToCartesian([(0,cn.uj)(i),Nx[1],Nx[2]],kx),Ellipsoid.WGS84.cartographicToCartesian([Nx[0],(0,cn.uj)(r),Nx[2]],Ux),Ellipsoid.WGS84.cartographicToCartesian([Nx[0],Nx[1],s],Gx),Hx([...A,...kx.subtract(A),...Ux.subtract(A),...Gx.subtract(A)],new gn.k)}(e.region);if(e.sphere)return function(e,t,n){const i=new Xn.P(e[0],e[1],e[2]);t.transform(i,i);const r=t.getScale(Fx),o=Math.max(Math.max(r[0],r[1]),r[2]),s=e[3]*o;if(Ix(n))return n.center=i,n.radius=s,n;return new BoundingSphere(i,s)}(e.sphere,t,n);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function zx(e,t){if(e.box)return function(e){const t=Wx(),{halfAxes:n}=e,i=new Xn.P(n.getColumn(0)),r=new Xn.P(n.getColumn(1)),o=new Xn.P(n.getColumn(2));for(let n=0;n<2;n++){for(let n=0;n<2;n++){for(let n=0;n<2;n++)Lx.copy(e.center),Lx.add(i),Lx.add(r),Lx.add(o),jx(t,Lx),o.negate();r.negate()}i.negate()}return t}(t);if(e.region){const[t,n,i,r,o,s]=e.region;return[[(0,cn.uj)(t),(0,cn.uj)(n),o],[(0,cn.uj)(i),(0,cn.uj)(r),s]]}if(e.sphere)return function(e){const t=Wx(),{center:n,radius:i}=e,r=Ellipsoid.WGS84.scaleToGeodeticSurface(n,Lx);let o;o=r?Ellipsoid.WGS84.geodeticSurfaceNormal(r):new Xn.P(0,0,1);let s=new Xn.P(o[2],-o[1],0);s.len()>0?s.normalize():s=new Xn.P(0,1,0);const a=s.clone().cross(o);for(const e of[s,a,o]){Fx.copy(e).scale(i);for(let e=0;e<2;e++)Lx.copy(n),Lx.add(Fx),jx(t,Lx),Fx.negate()}return t}(t);throw new Error("Unkown boundingVolume type")}function Hx(e,t,n){const i=new Xn.P(e[0],e[1],e[2]);t.transform(i,i);let r=[];if(10===e.length){const t=e.slice(3,6),n=new Quaternion;n.fromArray(e,6);const i=new Xn.P([1,0,0]),o=new Xn.P([0,1,0]),s=new Xn.P([0,0,1]);i.transformByQuaternion(n),i.scale(t[0]),o.transformByQuaternion(n),o.scale(t[1]),s.transformByQuaternion(n),s.scale(t[2]),r=[...i.toArray(),...o.toArray(),...s.toArray()]}else r=[...e.slice(3,6),...e.slice(6,9),...e.slice(9,12)];const o=t.transformAsVector(r.slice(0,3)),s=t.transformAsVector(r.slice(3,6)),a=t.transformAsVector(r.slice(6,9)),l=new Matrix3([o[0],o[1],o[2],s[0],s[1],s[2],a[0],a[1],a[2]]);return Ix(n)?(n.center=i,n.halfAxes=l,n):new OrientedBoundingBox(i,l)}function Wx(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function jx(e,t){Ellipsoid.WGS84.cartesianToCartographic(t,Lx),e[0][0]=Math.min(e[0][0],Lx[0]),e[0][1]=Math.min(e[0][1],Lx[1]),e[0][2]=Math.min(e[0][2],Lx[2]),e[1][0]=Math.max(e[1][0],Lx[0]),e[1][1]=Math.max(e[1][1],Lx[1]),e[1][2]=Math.max(e[1][2],Lx[2])}new Xn.P,new Xn.P,new gn.k,new Xn.P,new Xn.P,new Xn.P;function Qx(e,t){if(e.dynamicScreenSpaceError&&e.dynamicScreenSpaceErrorComputedDensity){const n=e.dynamicScreenSpaceErrorComputedDensity,i=e.dynamicScreenSpaceErrorFactor,r=function(e,t){const n=e*t;return 1-Math.exp(-n*n)}(t,n)*i;return r}return 0}const Xx=new Xn.P,Kx=new Xn.P,Jx=new Xn.P,qx=new Xn.P,Yx=new Xn.P,Zx=new gn.k,$x=new gn.k;function eT(e,t){const{topDownViewport:n}=t,i=e.header.mbs[1],r=e.header.mbs[0],o=e.header.mbs[2],s=e.header.mbs[3],a=[...e.boundingVolume.center],l=n.unprojectPosition(n.cameraPosition);Ellipsoid.WGS84.cartographicToCartesian(l,Xx),Kx.copy(Xx).subtract(a).normalize(),Ellipsoid.WGS84.eastNorthUpToFixedFrame(a,Zx),$x.copy(Zx).invert(),Jx.copy(Xx).transform($x);const A=Math.sqrt(Jx[0]*Jx[0]+Jx[1]*Jx[1]),c=A*A/Jx[2];qx.copy([Jx[0],Jx[1],c]);const u=qx.transform(Zx).subtract(a).normalize(),h=Kx.cross(u).normalize().scale(s).add(a),d=Ellipsoid.WGS84.cartesianToCartographic(h),f=n.project([r,i,o]),p=n.project(d);return Yx.copy(f).subtract(p).magnitude()}class ManagedArray{_map=new Map;_array;_length;constructor(e=0){this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return f(e<this._array.length),this._array[e]}set(e,t){f(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=t,this._map.set(t,e)}delete(e){const t=this._map.get(e);t>=0&&(this._array.splice(t,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){const t=this.length++;this._array[t]=e,this._map.set(e,t)}}pop(){const e=this._array[--this.length];return this._map.delete(e),e}reserve(e){f(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){f(e>=0),this.length=e}trim(e){null==e&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}}const tT={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""};class TilesetTraverser{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=(new Date).getTime();updateDebounceTime=1e3;_traversalStack=new ManagedArray;_emptyTraversalStack=new ManagedArray;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...tT,...e}}traverse(e,t,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,t){const n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){const e=n.pop();let i=!1;this.canTraverse(e,t)&&(this.updateChildTiles(e,t),i=this.updateAndPushChildren(e,t,n,e.hasRenderContent?e._selectionDepth+1:e._selectionDepth));const r=e.parent,o=Boolean(!r||r._shouldRefine),s=!i;e.hasRenderContent?e.refine===Sx.ADD?(this.loadTile(e,t),this.selectTile(e,t)):e.refine===Sx.REPLACE&&(this.loadTile(e,t),s&&this.selectTile(e,t)):(this.emptyTiles[e.id]=e,this.loadTile(e,t),s&&this.selectTile(e,t)),this.touchTile(e,t),e._shouldRefine=i&&o}const i=(new Date).getTime();(this.traversalFinished(t)||i-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=i,this.options.onTraversalEnd(t))}updateChildTiles(e,t){const n=e.children;for(const e of n)this.updateTile(e,t)}updateAndPushChildren(e,t,n,i){const{loadSiblings:r,skipLevelOfDetail:o}=this.options,s=e.children;s.sort(this.compareDistanceToCamera.bind(this));const a=e.refine===Sx.REPLACE&&e.hasRenderContent&&!o;let l=!1,A=!0;for(const e of s)if(e._selectionDepth=i,e.isVisibleAndInRequestVolume?(n.find(e)&&n.delete(e),n.push(e),l=!0):(a||r)&&(this.loadTile(e,t),this.touchTile(e,t)),a){let n;if(n=!!e._inRequestVolume&&(e.hasRenderContent?e.contentAvailable:this.executeEmptyTraversal(e,t)),A=A&&n,!A)return!1}return l||(A=!1),A}updateTile(e,t){this.updateTileVisibility(e,t)}selectTile(e,t){this.shouldSelectTile(e)&&(e._selectedFrame=t.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,t){this.shouldLoadTile(e)&&(e._requestedFrame=t.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,t){e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber}canTraverse(e,t){return!!e.hasChildren&&(e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,t))}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,t,n=!1){let i=e._screenSpaceError;return n&&(i=e.getScreenSpaceError(t,!0)),i>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,t){const n=[];if(this.options.viewportTraversersMap)for(const e in this.options.viewportTraversersMap){this.options.viewportTraversersMap[e]===t.viewport.id&&n.push(e)}else n.push(t.viewport.id);e.updateVisibility(t,n)}compareDistanceToCamera(e,t){return e._distanceToCamera-t._distanceToCamera}anyChildrenVisible(e,t){let n=!1;for(const i of e.children)i.updateVisibility(t),n=n||i.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,t){let n=!0;const i=this._emptyTraversalStack;for(i.push(e);i.length>0;){const e=i.pop(),r=!e.hasRenderContent&&this.canTraverse(e,t),o=!e.hasRenderContent&&0===e.children.length;if(r||e.contentAvailable||o||(n=!1),this.updateTile(e,t),e.isVisibleAndInRequestVolume||(this.loadTile(e,t),this.touchTile(e,t)),r){const t=e.children;for(const e of t)i.push(e)}}return e.hasEmptyContent||n}}const nT=new Xn.P;class Tile3D{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Cx;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new gn.k;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new TilesetTraverser({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new gn.k;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,t,n,i=""){this.header=t,this.tileset=e,this.id=i||t.id,this.url=t.url,this.parent=n,this.refine=this._getRefine(t.refine),this.type=t.type,this.contentUrl=t.contentUrl,this._initializeLodMetric(t),this._initializeTransforms(t),this._initializeBoundingVolumes(t),this._initializeContent(t),this._initializeRenderingState(t),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return null===this.header}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===Ex||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===Cx}get contentExpired(){return this.contentState===xx}get contentFailed(){return this.contentState===Tx}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=zx(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,t){switch(this.tileset.type){case Mx.I3S:return eT(this,e);case Mx.TILES3D:return function(e,t,n){const i=e.tileset,r=e.parent&&e.parent.lodMetricValue||e.lodMetricValue,o=n?r:e.lodMetricValue;if(0===o)return 0;const s=Math.max(e._distanceToCamera,1e-7),{height:a,sseDenominator:l}=t,{viewDistanceScale:A}=i.options;let c=o*a*(A||1)/(s*l);return c-=Qx(i,s),c}(this,e,t);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){const e=this.tileset._traverser,{skipLevelOfDetail:t}=e.options,n=this.refine===Sx.ADD||t;if(n&&!this.isVisible&&void 0!==this._visible)return-1;if(this.tileset._frameNumber-this._touchedFrame>=1)return-1;if(this.contentState===Cx)return-1;const i=this.parent,r=i&&(!n||0===this._screenSpaceError||i.hasTilesetContent)?i._screenSpaceError:this._screenSpaceError,o=e.root?e.root._screenSpaceError:0;return Math.max(o-r,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=wx;const e=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!e)return this.contentState=Cx,!1;try{const e=this.tileset.getTileUrl(this.contentUrl),t=this.tileset.loader,n=this.tileset.loadOptions[t.id]||{},i={...this.tileset.loadOptions,[t.id]:{...n,isTileset:"json"===this.type,...this._getLoaderSpecificOptions(t.id)}};return this.content=await Yt(e,t,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Ex,this._onContentLoaded(),!0}catch(e){throw this.contentState=Tx,e}finally{e.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=Cx,this.tileDrawn=!0,!0}updateVisibility(e,t){if(this._frameNumber===e.frameNumber)return;const n=this.parent,i=n?n._visibilityPlaneMask:CullingVolume.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){const e=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(e)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,i),this._visible=this._visibilityPlaneMask!==CullingVolume.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=t}visibility(e,t){const{cullingVolume:n}=e,{boundingVolume:i}=this;return n.computeVisibilityWithPlaneMask(i,t)}contentVisibility(){return!0}distanceToTile(e){const t=this.boundingVolume;return Math.sqrt(Math.max(t.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){const t=this.boundingVolume;return nT.subVectors(t.center,e.position),e.direction.dot(nT)}insideViewerRequestVolume(e){const t=this._viewerRequestVolume;return!t||t.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(function(e){return null!=e}(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){const e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=xx,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new gn.k(e.transform):new gn.k;const t=this.parent,n=this.tileset,i=t&&t.computedTransform?t.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new gn.k(i).multiplyRight(this.transform);const r=t&&t._initialTransform?t._initialTransform.clone():new gn.k;this._initialTransform=new gn.k(r).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Cx,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=CullingVolume.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(e){return e||this.parent&&this.parent.refine||Sx.REPLACE}_isTileset(){return-1!==this.contentUrl.indexOf(".json")}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=Vx(e.boundingVolume,this.computedTransform,this.boundingVolume);const t=e.content;t&&(t.boundingVolume&&(this._contentBoundingVolume=Vx(t.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=Vx(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new gn.k){const t=e.clone().multiplyRight(this.transform);!t.equals(this.computedTransform)&&(this.computedTransform=t,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){return"i3s"===e?{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1}:{assetGltfUpAxis:(t=this.tileset.tileset).asset&&t.asset.gltfUpAxis||"Y"};var t}}class Tileset3DTraverser extends TilesetTraverser{compareDistanceToCamera(e,t){return 0===t._distanceToCamera&&0===e._distanceToCamera?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,t){if(super.updateTileVisibility(e,t),!e.isVisibleAndInRequestVolume)return;const n=e.children.length>0;if(e.hasTilesetContent&&n){const n=e.children[0];return this.updateTileVisibility(n,t),void(e._visible=n._visible)}if(this.meetsScreenSpaceErrorEarly(e,t))return void(e._visible=!1);const i=e.refine===Sx.REPLACE,r=e._optimChildrenWithinParent===Bx;i&&r&&n&&!this.anyChildrenVisible(e,t)&&(e._visible=!1)}meetsScreenSpaceErrorEarly(e,t){const{parent:n}=e;return!(!n||n.hasTilesetContent||n.refine!==Sx.ADD)&&!this.shouldRefine(e,t,!0)}}class I3SPendingTilesRegister{frameNumberMap=new Map;register(e,t){const n=this.frameNumberMap.get(e)||new Map,i=n.get(t)||0;n.set(t,i+1),this.frameNumberMap.set(e,n)}deregister(e,t){const n=this.frameNumberMap.get(e);if(!n)return;const i=n.get(t)||1;n.set(t,i-1)}isZero(e,t){return 0===(this.frameNumberMap.get(e)?.get(t)||0)}}const iT="REQUESTED",rT="COMPLETED",oT="ERROR";class I3STileManager{_statusMap;pendingTilesRegister=new I3SPendingTilesRegister;constructor(){this._statusMap={}}add(e,t,n,i){if(!this._statusMap[t]){const{frameNumber:r,viewport:{id:o}}=i;this._statusMap[t]={request:e,callback:n,key:t,frameState:i,status:iT},this.pendingTilesRegister.register(o,r),e().then(e=>{this._statusMap[t].status=rT;const{frameNumber:n,viewport:{id:r}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(r,n),this._statusMap[t].callback(e,i)}).catch(e=>{this._statusMap[t].status=oT;const{frameNumber:i,viewport:{id:r}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(r,i),n(e)})}}update(e,t){if(this._statusMap[e]){const{frameNumber:n,viewport:{id:i}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(i,n);const{frameNumber:r,viewport:{id:o}}=t;this.pendingTilesRegister.register(o,r),this._statusMap[e].frameState=t}}find(e){return this._statusMap[e]}hasPendingTiles(e,t){return!this.pendingTilesRegister.isZero(e,t)}}class I3STilesetTraverser extends TilesetTraverser{_tileManager;constructor(e){super(e),this._tileManager=new I3STileManager}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,t){return e._lodJudge=function(e,t){if(0===e.lodMetricValue||isNaN(e.lodMetricValue))return"DIG";const n=2*eT(e,t);return n<2?"OUT":!e.header.children||n<=e.lodMetricValue?"DRAW":e.header.children?"DIG":"OUT"}(e,t),"DIG"===e._lodJudge}updateChildTiles(e,t){const n=e.header.children||[],i=e.children,r=e.tileset;for(const o of n){const n=`${o.id}-${t.viewport.id}`,s=i&&i.find(e=>e.id===n);if(s)s&&this.updateTile(s,t);else{let i=()=>this._loadTile(o.id,r);this._tileManager.find(n)?this._tileManager.update(n,t):(r.tileset.nodePages&&(i=()=>r.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(i,n,t=>this._onTileLoad(t,e,n),t))}}return!1}async _loadTile(e,t){const{loader:n}=t,i=t.getTileUrl(`${t.url}/nodes/${e}`),r={...t.loadOptions,i3s:{...t.loadOptions.i3s,isTileHeader:!0}};return await Yt(i,n,r)}_onTileLoad(e,t,n){const i=new Tile3D(t.tileset,e,t,n);t.children.push(i);const r=this._tileManager.find(i.id).frameState;this.updateTile(i,r),this._frameNumber===r.frameNumber&&(this.traversalFinished(r)||(new Date).getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(i,r)}}const sT={description:"",ellipsoid:Ellipsoid.WGS84,modelMatrix:new gn.k,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:e=>e,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},aT="Tiles In Tileset(s)",lT="Tiles In Memory",AT="Tiles In View",cT="Tiles To Render",uT="Tiles Loaded",hT="Tiles Loading",dT="Tiles Unloaded",fT="Failed Tile Loads",pT="Points/Vertices",gT="Tile Memory Use",mT="Maximum Screen Space Error";class Tileset3D{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new TilesetCache;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,t){this.options={...sT,...t},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||P(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new RequestScheduler({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=1024*this.options.maximumMemoryUsage*1024,this._cacheOverflowBytes=1024*this.options.memoryCacheOverflow*1024,this.stats=new Ke.A({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return 0===this._pendingCount&&0!==this._frameNumber&&0===this._requestedTiles.length}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let t=e;return this.queryParams.length&&(t=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),t}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(e=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),e(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles)return;if(this.traverseCounter>0)return;const t=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=t.length;const n=[];for(const e of t){const t=e.id;this._needTraverse(t)?n.push(t):this.traverseCounter--}for(const e of t){const t=e.id;if(this.roots[t]||(this.roots[t]=this._initializeTileHeaders(this.tileset,null)),!n.includes(t))continue;const i=px(e,this._frameNumber);this._traverser.traverse(this.roots[t],i,this.options)}}_needTraverse(e){let t=e;return this.options.viewportTraversersMap&&(t=this.options.viewportTraversersMap[e]),t===e}_onTraversalEnd(e){const t=e.viewport.id;this.frameStateData[t]||(this.frameStateData[t]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});const n=this.frameStateData[t],i=Object.values(this._traverser.selectedTiles),[r,o]=function(e,t,n){if(0===n||e.length<=n)return[e,[]];const i=[],{longitude:r,latitude:o}=t.viewport;for(const[t,n]of e.entries()){const[e,s]=n.header.mbs,a=Math.abs(r-e),l=Math.abs(o-s),A=Math.sqrt(l*l+a*a);i.push([t,A])}const s=i.sort((e,t)=>e[1]-t[1]),a=[];for(let t=0;t<n;t++)a.push(e[s[t][0]]);const l=[];for(let t=n;t<s.length;t++)l.push(e[s[t][0]]);return[a,l]}(i,e,this.options.maximumTilesSelected);n.selectedTiles=r;for(const e of o)e.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,this.traverseCounter>0||this._updateTiles()}_updateTiles(){const e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(const e in this.frameStateData){const t=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(t.selectedTiles),this._requestedTiles=this._requestedTiles.concat(t._requestedTiles),this._emptyTiles=this._emptyTiles.concat(t._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);const t=new Set(this.selectedTiles.map(e=>e.id)),n=this.selectedTiles.some(e=>!e.tileDrawn);let i=0;if(n){for(const e of t)this._heldTiles.add(e);for(const e of this._heldTiles){if(t.has(e))continue;const n=this._tiles[e];n&&n.contentAvailable?(n._selectedFrame=this._frameNumber,this.selectedTiles.push(n),i++):this._heldTiles.delete(e)}}else this._heldTiles=t;i>0&&setTimeout(()=>{this.selectTiles()},0);for(const e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,t){if(e.length!==t.length)return!0;const n=new Set(e.map(e=>e.id)),i=new Set(t.map(e=>e.id));let r=e.filter(e=>!i.has(e.id)).length>0;return r=r||t.filter(e=>!n.has(e.id)).length>0,r}_loadTiles(){this._requestedTiles.sort((e,t)=>e._priority-t._priority);for(const e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,t)=>e._unloadTile(t))}_updateStats(){let e=0,t=0;for(const n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?t+=n.content.pointCount:t+=n.content.vertexCount);this.stats.get(AT).count=this.selectedTiles.length,this.stats.get(cT).count=e,this.stats.get(pT).count=t,this.stats.get(mT).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===Mx.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===Mx.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===Mx.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){const e=this.tileset.fullExtent;if(e){const{xmin:t,xmax:n,ymin:i,ymax:r,zmin:o,zmax:s}=e;return this.cartographicCenter=new Xn.P(t+(n-t)/2,i+(r-i)/2,o+(s-o)/2),this.cartesianCenter=new Xn.P,Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),void(this.zoom=yx(e,this.cartographicCenter,this.cartesianCenter))}const t=this.tileset.store?.extent;if(t){const[e,n,i,r]=t;return this.cartographicCenter=new Xn.P(e+(i-e)/2,n+(r-n)/2,0),this.cartesianCenter=new Xn.P,Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),void(this.zoom=function(e,t,n){const[i,r,o,s]=e;return yx({xmin:i,xmax:o,ymin:r,ymax:s,zmin:0,zmax:0},t,n)}(t,this.cartographicCenter,this.cartesianCenter))}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new Xn.P,this.zoom=1}calculateViewPropsTiles3D(){const e=this.root,{center:t}=e.boundingVolume;if(!t)return console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new Xn.P,void(this.zoom=1);0!==t[0]||0!==t[1]||0!==t[2]?(this.cartographicCenter=new Xn.P,Ellipsoid.WGS84.cartesianToCartographic(t,this.cartographicCenter)):this.cartographicCenter=new Xn.P(0,0,-Ellipsoid.WGS84.radii[0]),this.cartesianCenter=t,this.zoom=vx(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(aT),this.stats.get(hT),this.stats.get(lT),this.stats.get(AT),this.stats.get(cT),this.stats.get(uT),this.stats.get(dT),this.stats.get(fT),this.stats.get(pT),this.stats.get(gT,"memory"),this.stats.get(mT)}_initializeTileHeaders(e,t){const n=new Tile3D(this,e.root,t);if(t&&(t.children.push(n),n.depth=t.depth+1),this.type===Mx.TILES3D){const e=[];for(e.push(n);e.length>0;){const t=e.pop();this.stats.get(aT).incrementCount();const n=t.header.children||[];for(const i of n){const n=new Tile3D(this,i,t);if(n.contentUrl?.includes("?session=")){const e=new URL(n.contentUrl).searchParams.get("session");e&&(this._queryParams.session=e)}t.children.push(n),n.depth=t.depth+1,e.push(n)}}}return n}_initializeTraverser(){let e;switch(this.type){case Mx.TILES3D:e=Tileset3DTraverser;break;case Mx.I3S:e=I3STilesetTraverser;break;default:e=TilesetTraverser}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let t;try{this._onStartTileLoading(),t=await e.loadContent()}catch(t){this._onTileLoadError(e,t instanceof Error?t:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,t)}}_onTileLoadError(e,t){this.stats.get(fT).incrementCount();const n=t.message||t.toString(),i=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,i)}_onTileLoad(e,t){if(t){if(this.type===Mx.I3S){const e=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(aT).reset(),this.stats.get(aT).addCount(e)}e&&e.content&&cx(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===Mx.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0}else if(this.type===Mx.TILES3D){const{extensionsRemoved:t=[]}=e.content?.gltf||{};t.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),t.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),t.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(hT).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(hT).decrementCount()}_addTileToCache(e){this._cache.add(this,e,t=>t._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(uT).incrementCount(),this.stats.get(lT).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(gT).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(lT).decrementCount(),this.stats.get(dT).incrementCount(),this.stats.get(gT).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){const e=[];for(this.root&&e.push(this.root);e.length>0;){const t=e.pop();for(const n of t.children)e.push(n);this._destroyTile(t)}this.root=null}_destroySubtree(e){const t=e,n=[];for(n.push(t);n.length>0;){e=n.pop();for(const t of e.children)n.push(t);e!==t&&this._destroyTile(e)}t.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){const t=new URLSearchParams(e.queryString),n=Object.fromEntries(t.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if("0.0"!==this.asset.version&&"1.0"!==this.asset.version&&"1.1"!==this.asset.version)throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){const e=this.loadOptions.i3s;e&&"object"==typeof e&&"token"in e&&(this._queryParams.token=e.token)}}const _T={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"};Object.keys(_T);function bT(e,t,n){f(e instanceof ArrayBuffer);const i=new TextDecoder("utf8"),r=new Uint8Array(e,t,n);return i.decode(r)}const vT={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},yT={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,...vT},CT={[vT.DOUBLE]:Float64Array,[vT.FLOAT]:Float32Array,[vT.UNSIGNED_SHORT]:Uint16Array,[vT.UNSIGNED_INT]:Uint32Array,[vT.UNSIGNED_BYTE]:Uint8Array,[vT.BYTE]:Int8Array,[vT.SHORT]:Int16Array,[vT.INT]:Int32Array},wT={DOUBLE:vT.DOUBLE,FLOAT:vT.FLOAT,UNSIGNED_SHORT:vT.UNSIGNED_SHORT,UNSIGNED_INT:vT.UNSIGNED_INT,UNSIGNED_BYTE:vT.UNSIGNED_BYTE,BYTE:vT.BYTE,SHORT:vT.SHORT,INT:vT.INT},ET="Failed to convert GL type";class GLType{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(const t in CT){if(CT[t]===e)return t}throw new Error(ET)}static fromName(e){const t=wT[e];if(!t)throw new Error(ET);return t}static getArrayType(e){switch(e){case vT.UNSIGNED_SHORT_5_6_5:case vT.UNSIGNED_SHORT_4_4_4_4:case vT.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:const t=CT[e];if(!t)throw new Error(ET);return t}}static getByteSize(e){return GLType.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(GLType.getArrayType(e))}static createTypedArray(e,t,n=0,i){void 0===i&&(i=(t.byteLength-n)/GLType.getByteSize(e));const r=ArrayBuffer.isView(t)?t.buffer:t;return new(GLType.getArrayType(e))(r,n,i)}}class Tile3DFeatureTable{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,t){this.json=e,this.buffer=t}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e,t=yT.UNSIGNED_INT,n=1){const i=this.json[e];return i&&Number.isFinite(i.byteOffset)?this._getTypedArrayFromBinary(e,t,n,1,i.byteOffset):i}getPropertyArray(e,t,n){const i=this.json[e];return i&&Number.isFinite(i.byteOffset)?("componentType"in i&&(t=GLType.fromName(i.componentType)),this._getTypedArrayFromBinary(e,t,n,this.featuresLength,i.byteOffset)):this._getTypedArrayFromArray(e,t,i)}getProperty(e,t,n,i,r){const o=this.json[e];if(!o)return o;const s=this.getPropertyArray(e,t,n);if(1===n)return s[i];for(let e=0;e<n;++e)r[e]=s[n*i+e];return r}_getTypedArrayFromBinary(e,t,n,i,r){const o=this._cachedTypedArrays;let s=o[e];return s||(s=GLType.createTypedArray(t,this.buffer.buffer,this.buffer.byteOffset+r,i*n),o[e]=s),s}_getTypedArrayFromArray(e,t,n){const i=this._cachedTypedArrays;let r=i[e];if(!r){if(ArrayBuffer.isView(n)){const e=n.byteOffset,i=n.byteLength/GLType.getByteSize(t);r=GLType.createTypedArray(t,n.buffer,e,i)}else if(n instanceof ArrayBuffer)r=GLType.createTypedArray(t,n);else{r=new(GLType.getArrayType(t))(n)}i[e]=r}return r}}const xT={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},TT={SCALAR:(e,t)=>e[t],VEC2:(e,t)=>[e[2*t+0],e[2*t+1]],VEC3:(e,t)=>[e[3*t+0],e[3*t+1],e[3*t+2]],VEC4:(e,t)=>[e[4*t+0],e[4*t+1],e[4*t+2],e[4*t+3]],MAT2:(e,t)=>[e[4*t+0],e[4*t+1],e[4*t+2],e[4*t+3]],MAT3:(e,t)=>[e[9*t+0],e[9*t+1],e[9*t+2],e[9*t+3],e[9*t+4],e[9*t+5],e[9*t+6],e[9*t+7],e[9*t+8]],MAT4:(e,t)=>[e[16*t+0],e[16*t+1],e[16*t+2],e[16*t+3],e[16*t+4],e[16*t+5],e[16*t+6],e[16*t+7],e[16*t+8],e[16*t+9],e[16*t+10],e[16*t+11],e[16*t+12],e[16*t+13],e[16*t+14],e[16*t+15]]},ST={SCALAR:(e,t,n)=>{t[n]=e},VEC2:(e,t,n)=>{t[2*n+0]=e[0],t[2*n+1]=e[1]},VEC3:(e,t,n)=>{t[3*n+0]=e[0],t[3*n+1]=e[1],t[3*n+2]=e[2]},VEC4:(e,t,n)=>{t[4*n+0]=e[0],t[4*n+1]=e[1],t[4*n+2]=e[2],t[4*n+3]=e[3]},MAT2:(e,t,n)=>{t[4*n+0]=e[0],t[4*n+1]=e[1],t[4*n+2]=e[2],t[4*n+3]=e[3]},MAT3:(e,t,n)=>{t[9*n+0]=e[0],t[9*n+1]=e[1],t[9*n+2]=e[2],t[9*n+3]=e[3],t[9*n+4]=e[4],t[9*n+5]=e[5],t[9*n+6]=e[6],t[9*n+7]=e[7],t[9*n+8]=e[8],t[9*n+9]=e[9]},MAT4:(e,t,n)=>{t[16*n+0]=e[0],t[16*n+1]=e[1],t[16*n+2]=e[2],t[16*n+3]=e[3],t[16*n+4]=e[4],t[16*n+5]=e[5],t[16*n+6]=e[6],t[16*n+7]=e[7],t[16*n+8]=e[8],t[16*n+9]=e[9],t[16*n+10]=e[10],t[16*n+11]=e[11],t[16*n+12]=e[12],t[16*n+13]=e[13],t[16*n+14]=e[14],t[16*n+15]=e[15]}};const PT=e=>void 0!==e;function MT(e,t,n){if(!t)return null;let i=e.getExtension("3DTILES_batch_table_hierarchy");const r=t.HIERARCHY;return r&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),t.extensions=t.extensions||{},t.extensions["3DTILES_batch_table_hierarchy"]=r,i=r),i?function(e,t){let n,i,r;const o=e.instancesLength,s=e.classes;let a,l=e.classIds,A=e.parentCounts,c=e.parentIds,u=o;PT(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,r=getBinaryAccessor(l),l=r.createArrayBufferView(t.buffer,t.byteOffset+l.byteOffset,o));if(PT(A))for(PT(A.byteOffset)&&(A.componentType=defaultValue(A.componentType,GL.UNSIGNED_SHORT),A.type=AttributeType.SCALAR,r=getBinaryAccessor(A),A=r.createArrayBufferView(t.buffer,t.byteOffset+A.byteOffset,o)),a=new Uint16Array(o),u=0,n=0;n<o;++n)a[n]=u,u+=A[n];PT(c)&&PT(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,r=getBinaryAccessor(c),c=r.createArrayBufferView(t.buffer,t.byteOffset+c.byteOffset,u));const h=s.length;for(n=0;n<h;++n){const e=s[n].length,i=s[n].instances,r=getBinaryProperties(e,i,t);s[n].instances=combine(r,i)}const d=new Array(h).fill(0),f=new Uint16Array(o);for(n=0;n<o;++n)i=l[n],f[n]=d[i],++d[i];const p={classes:s,classIds:l,classIndexes:f,parentCounts:A,parentIndexes:a,parentIds:c};return function(e){const t=e.classIds,n=t.length;for(let t=0;t<n;++t)BT(e,t,stack)}(p),p}(i,n):null}function RT(e,t,n){if(!e)return;const i=e.parentCounts;return e.parentIds?n(e,t):i>0?function(e,t,n){const i=e.classIds,r=e.parentCounts,o=e.parentIds,s=e.parentIndexes,a=i.length,l=scratchVisited;l.length=Math.max(l.length,a);const A=++marker,c=scratchStack;c.length=0,c.push(t);for(;c.length>0;){if(l[t=c.pop()]===A)continue;l[t]=A;const i=n(e,t);if(PT(i))return i;const a=r[t],u=s[t];for(let e=0;e<a;++e){const n=o[u+e];n!==t&&c.push(n)}}return null}(e,t,n):function(e,t,n){let i=!0;for(;i;){const r=n(e,t);if(PT(r))return r;const o=e.parentIds[t];i=o!==t,t=o}throw new Error("traverseHierarchySingleParent")}(e,t,n)}function BT(e,t,n){const i=e.parentCounts,r=e.parentIds,o=e.parentIndexes,s=e.classIds.length;if(!PT(r))return;assert(t<s,`Parent index ${t} exceeds the total number of instances: ${s}`),assert(-1===n.indexOf(t),"Circular dependency detected in the batch table hierarchy."),n.push(t);const a=PT(i)?i[t]:1,l=PT(i)?o[t]:t;for(let i=0;i<a;++i){const o=r[l+i];o!==t&&BT(e,o,n)}n.pop(t)}function IT(e){return null!=e}const LT=(e,t)=>e,FT={HIERARCHY:!0,extensions:!0,extras:!0};class Tile3DBatchTableParser{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,t,n,i={}){f(n>=0),this.json=e||{},this.binary=t,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(const e in this.json)FT[e]||(this._properties[e]=this.json[e]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=MT(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,t){if(this._checkBatchId(e),f("string"==typeof t,t),this._hierarchy){return IT(RT(this._hierarchy,e,(e,n)=>{const i=e.classIds[n];return e.classes[i].name===t}))}return!1}isExactClass(e,t){return f("string"==typeof t,t),this.getExactClassName(e)===t}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){const t=this._hierarchy.classIds[e];return this._hierarchy.classes[t].name}}hasProperty(e,t){return this._checkBatchId(e),f("string"==typeof t,t),IT(this._properties[t])||this._hasPropertyInHierarchy(e,t)}getPropertyNames(e,t){this._checkBatchId(e),(t=IT(t)?t:[]).length=0;const n=Object.keys(this._properties);return t.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,t),t}getProperty(e,t){if(this._checkBatchId(e),f("string"==typeof t,t),this._binaryProperties){const n=this._binaryProperties[t];if(IT(n))return this._getBinaryProperty(n,e)}const n=this._properties[t];if(IT(n))return LT(n[e]);if(this._hierarchy){const n=this._getHierarchyProperty(e,t);if(IT(n))return n}}setProperty(e,t,n){const i=this.featureCount;if(this._checkBatchId(e),f("string"==typeof t,t),this._binaryProperties){const i=this._binaryProperties[t];if(i)return void this._setBinaryProperty(i,e,n)}if(this._hierarchy&&this._setHierarchyProperty(this,e,t,n))return;let r=this._properties[t];IT(r)||(this._properties[t]=new Array(i),r=this._properties[t]),r[e]=LT(n)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,t){return e.unpack(e.typedArray,t)}_setBinaryProperty(e,t,n){e.pack(n,e.typedArray,t)}_initializeBinaryProperties(){let e=null;for(const t in this._properties){const n=this._properties[t],i=this._initializeBinaryProperty(t,n);i&&(e=e||{},e[t]=i)}return e}_initializeBinaryProperty(e,t){if("byteOffset"in t){const n=t;f(this.binary,`Property ${e} requires a batch table binary.`),f(n.type,`Property ${e} requires a type.`);const i=function(e,t,n,i){const{componentType:r}=e;f(e.componentType);const o="string"==typeof r?GLType.fromName(r):r,s=xT[e.type],a=TT[e.type],l=ST[e.type];return n+=e.byteOffset,{values:GLType.createTypedArray(o,t,n,s*i),type:o,size:s,unpacker:a,packer:l}}(n,this.binary.buffer,0|this.binary.byteOffset,this.featureCount);return{typedArray:i.values,componentCount:i.size,unpack:i.unpacker,pack:i.packer}}return null}_hasPropertyInHierarchy(e,t){if(!this._hierarchy)return!1;const n=RT(this._hierarchy,e,(e,n)=>{const i=e.classIds[n];return IT(e.classes[i].instances[t])});return IT(n)}_getPropertyNamesInHierarchy(e,t){RT(this._hierarchy,e,(e,n)=>{const i=e.classIds[n],r=e.classes[i].instances;for(const e in r)r.hasOwnProperty(e)&&-1===t.indexOf(e)&&t.push(e)})}_getHierarchyProperty(e,t){return RT(this._hierarchy,e,(e,n)=>{const i=e.classIds[n],r=e.classes[i],o=e.classIndexes[n],s=r.instances[t];return IT(s)?IT(s.typedArray)?this._getBinaryProperty(s,o):LT(s[o]):null})}_setHierarchyProperty(e,t,n,i){const r=RT(this._hierarchy,t,(e,r)=>{const o=e.classIds[r],s=e.classes[o],a=e.classIndexes[r],l=s.instances[n];return!!IT(l)&&(f(r===t,`Inherited property "${n}" is read-only.`),IT(l.typedArray)?this._setBinaryProperty(l,a,i):l[a]=LT(i),!0)});return IT(r)}}function DT(e,t,n=0){const i=new DataView(t);if(e.magic=i.getUint32(n,!0),n+=4,e.version=i.getUint32(n,!0),n+=4,e.byteLength=i.getUint32(n,!0),n+=4,1!==e.version)throw new Error(`3D Tile Version ${e.version} not supported`);return n}const OT="b3dm tile in legacy format.";function NT(e,t,n){const i=new DataView(t);let r;e.header=e.header||{};let o=i.getUint32(n,!0);n+=4;let s=i.getUint32(n,!0);n+=4;let a=i.getUint32(n,!0);n+=4;let l=i.getUint32(n,!0);return n+=4,a>=570425344?(n-=8,r=o,a=s,l=0,o=0,s=0,console.warn(OT)):l>=570425344&&(n-=4,r=a,a=o,l=s,o=0,s=0,console.warn(OT)),e.header.featureTableJsonByteLength=o,e.header.featureTableBinaryByteLength=s,e.header.batchTableJsonByteLength=a,e.header.batchTableBinaryByteLength=l,e.header.batchLength=r,n}function kT(e,t,n,i){return n=function(e,t,n){const{featureTableJsonByteLength:i,featureTableBinaryByteLength:r,batchLength:o}=e.header||{};if(e.featureTableJson={BATCH_LENGTH:o||0},i&&i>0){const r=bT(t,n,i);e.featureTableJson=JSON.parse(r)}return n+=i||0,e.featureTableBinary=new Uint8Array(t,n,r),n+=r||0,n}(e,t,n),n=function(e,t,n){const{batchTableJsonByteLength:i,batchTableBinaryByteLength:r}=e.header||{};if(i&&i>0){const o=bT(t,n,i);e.batchTableJson=JSON.parse(o),n+=i,r&&r>0&&(e.batchTableBinary=new Uint8Array(t,n,r),e.batchTableBinary=new Uint8Array(e.batchTableBinary),n+=r)}return n}(e,t,n),n}function UT(e,t=[0,0,0]){const n=e>>11&31,i=e>>5&63,r=31&e;return t[0]=n<<3,t[1]=i<<2,t[2]=r<<3,t}function GT(e,t,n){if(!(t||e&&e.batchIds&&n))return null;const{batchIds:i,isRGB565:r,pointCount:o=0}=e;if(i&&n){const e=new Uint8ClampedArray(3*o);for(let t=0;t<o;t++){const r=i[t],o=n.getProperty(r,"dimensions").map(e=>255*e);e[3*t]=o[0],e[3*t+1]=o[1],e[3*t+2]=o[2]}return{type:yT.UNSIGNED_BYTE,value:e,size:3,normalized:!0}}if(t&&r){const e=new Uint8ClampedArray(3*o);for(let n=0;n<o;n++){const i=UT(t[n]);e[3*n]=i[0],e[3*n+1]=i[1],e[3*n+2]=i[2]}return{type:yT.UNSIGNED_BYTE,value:e,size:3,normalized:!0}}return t&&t.length===3*o?{type:yT.UNSIGNED_BYTE,value:t,size:3,normalized:!0}:{type:yT.UNSIGNED_BYTE,value:t||new Uint8ClampedArray,size:4,normalized:!0}}class vector2_Vector2 extends e_.M{constructor(e=0,t=0){super(2),(0,cn.cy)(e)&&1===arguments.length?this.copy(e):(cn.$W.debug&&((0,Hm.ws)(e),(0,Hm.ws)(t)),this[0]=e,this[1]=t)}set(e,t){return this[0]=e,this[1]=t,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return cn.$W.debug&&((0,Hm.ws)(e.x),(0,Hm.ws)(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return(0,Jm.Z0)(this,this,e),this.check()}transformAsVector(e){return(0,Wm.B$)(this,this,e),this.check()}transformByMatrix3(e){return(0,Jm.ei)(this,this,e),this.check()}transformByMatrix2x3(e){return(0,Jm.l0)(this,this,e),this.check()}transformByMatrix2(e){return(0,Jm.ZF)(this,this,e),this.check()}}new vector2_Vector2,new Xn.P,new vector2_Vector2,new vector2_Vector2,new Uint8Array(1);function VT(e,t=255){return(0,cn.qE)(e,0,t)/t*2-1}function zT(e){return e<0?-1:1}function HT(e,t,n,i){if(function(e,t){if(!e)throw new Error(`math.gl assertion failed. ${t}`)}(i),e<0||e>n||t<0||t>n)throw new Error(`x and y must be unsigned normalized integers between 0 and ${n}`);if(i.x=VT(e,n),i.y=VT(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){const e=i.x;i.x=(1-Math.abs(i.y))*zT(e),i.y=(1-Math.abs(e))*zT(i.y)}return i.normalize()}function WT(e,t,n){return HT(e,t,255,n)}const jT=new Xn.P;function QT(e,t,n){return e.isQuantized?n["3d-tiles"]&&n["3d-tiles"].decodeQuantizedPositions?(e.isQuantized=!1,function(e,t){const n=new Xn.P,i=new Float32Array(3*e.pointCount);for(let r=0;r<e.pointCount;r++)n.set(t[3*r],t[3*r+1],t[3*r+2]).scale(1/e.quantizedRange).multiply(e.quantizedVolumeScale).add(e.quantizedVolumeOffset).toArray(i,3*r);return i}(e,t)):{type:yT.UNSIGNED_SHORT,value:t,size:3,normalized:!0}:t}async function XT(e,t,n,i,r){n=kT(e,t,n=NT(e,t,n=DT(e,t,n))),function(e){e.attributes={positions:null,colors:null,normals:null,batchIds:null},e.isQuantized=!1,e.isTranslucent=!1,e.isRGB565=!1,e.isOctEncoded16P=!1}(e);const{featureTable:o,batchTable:s}=function(e){const t=new Tile3DFeatureTable(e.featureTableJson,e.featureTableBinary),n=t.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(n))throw new Error("POINTS_LENGTH must be defined");t.featuresLength=n,e.featuresLength=n,e.pointsLength=n,e.pointCount=n,e.rtcCenter=t.getGlobalProperty("RTC_CENTER",yT.FLOAT,3);const i=function(e,t){let n=null;if(!e.batchIds&&t.hasProperty("BATCH_ID")&&(e.batchIds=t.getPropertyArray("BATCH_ID",yT.UNSIGNED_SHORT,1),e.batchIds)){const i=t.getGlobalProperty("BATCH_LENGTH");if(!i)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");const{batchTableJson:r,batchTableBinary:o}=e;n=new Tile3DBatchTableParser(r,o,i)}return n}(e,t);return{featureTable:t,batchTable:i}}(e);return await async function(e,t,n,i,r){let o,s,a;const l=e.batchTableJson&&e.batchTableJson.extensions&&e.batchTableJson.extensions["3DTILES_draco_point_compression"];l&&(a=l.properties);const A=t.getExtension("3DTILES_draco_point_compression");if(A){s=A.properties;const t=A.byteOffset,n=A.byteLength;if(!s||!Number.isFinite(t)||!n)throw new Error("Draco properties, byteOffset, and byteLength must be defined");o=(e.featureTableBinary||[]).slice(t,t+n),e.hasPositions=Number.isFinite(s.POSITION),e.hasColors=Number.isFinite(s.RGB)||Number.isFinite(s.RGBA),e.hasNormals=Number.isFinite(s.NORMAL),e.hasBatchIds=Number.isFinite(s.BATCH_ID),e.isTranslucent=Number.isFinite(s.RGBA)}if(!o)return!0;const c={buffer:o,properties:{...s,...a},featureTableProperties:s,batchTableProperties:a,dequantizeInShader:!1};return await async function(e,t,n,i){if(!i)return;const r={...n,draco:{...n?.draco,extraAttributes:t.batchTableProperties||{}}};delete r["3d-tiles"];const o=await Jv(t.buffer,uw,r,i),s=o.attributes.POSITION&&o.attributes.POSITION.value,a=o.attributes.COLOR_0&&o.attributes.COLOR_0.value,l=o.attributes.NORMAL&&o.attributes.NORMAL.value,A=o.attributes.BATCH_ID&&o.attributes.BATCH_ID.value,c=s&&o.attributes.POSITION.value.quantization,u=l&&o.attributes.NORMAL.value.quantization;if(c){const t=o.POSITION.data.quantization,n=t.range;e.quantizedVolumeScale=new Xn.P(n,n,n),e.quantizedVolumeOffset=new Xn.P(t.minValues),e.quantizedRange=(1<<t.quantizationBits)-1,e.isQuantizedDraco=!0}u&&(e.octEncodedRange=(1<<o.NORMAL.data.quantization.quantizationBits)-1,e.isOctEncodedDraco=!0);const h={};if(t.batchTableProperties)for(const e of Object.keys(t.batchTableProperties))o.attributes[e]&&o.attributes[e].value&&(h[e.toLowerCase()]=o.attributes[e].value);e.attributes={positions:s,colors:GT(e,a,void 0),normals:l,batchIds:A,...h}}(e,c,i,r)}(e,o,0,i,r),function(e,t,n){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.positions)if(t.hasProperty("POSITION"))e.attributes.positions=t.getPropertyArray("POSITION",yT.FLOAT,3);else if(t.hasProperty("POSITION_QUANTIZED")){const i=t.getPropertyArray("POSITION_QUANTIZED",yT.UNSIGNED_SHORT,3);if(e.isQuantized=!0,e.quantizedRange=65535,e.quantizedVolumeScale=t.getGlobalProperty("QUANTIZED_VOLUME_SCALE",yT.FLOAT,3),!e.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(e.quantizedVolumeOffset=t.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",yT.FLOAT,3),!e.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");e.attributes.positions=QT(e,i,n)}if(!e.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}(e,o,i),function(e,t,n){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.colors){let i=null;t.hasProperty("RGBA")?(i=t.getPropertyArray("RGBA",yT.UNSIGNED_BYTE,4),e.isTranslucent=!0):t.hasProperty("RGB")?i=t.getPropertyArray("RGB",yT.UNSIGNED_BYTE,3):t.hasProperty("RGB565")&&(i=t.getPropertyArray("RGB565",yT.UNSIGNED_SHORT,1),e.isRGB565=!0),e.attributes.colors=GT(e,i,n)}t.hasProperty("CONSTANT_RGBA")&&(e.constantRGBA=t.getGlobalProperty("CONSTANT_RGBA",yT.UNSIGNED_BYTE,4))}(e,o,s),function(e,t){if(e.attributes=e.attributes||{positions:null,colors:null,normals:null,batchIds:null},!e.attributes.normals){let n=null;t.hasProperty("NORMAL")?n=t.getPropertyArray("NORMAL",yT.FLOAT,3):t.hasProperty("NORMAL_OCT16P")&&(n=t.getPropertyArray("NORMAL_OCT16P",yT.UNSIGNED_BYTE,2),e.isOctEncoded16P=!0),e.attributes.normals=function(e,t){if(!t)return null;if(e.isOctEncoded16P){const n=new Float32Array(3*(e.pointsLength||0));for(let i=0;i<(e.pointsLength||0);i++)WT(t[2*i],t[2*i+1],jT),jT.toArray(n,3*i);return{type:yT.FLOAT,size:2,value:n}}return{type:yT.FLOAT,size:2,value:t}}(e,n)}}(e,o),n}const KT=0,JT=1;function qT(e,t,n,i){e.rotateYtoZ=!0;const r=(e.byteOffset||0)+(e.byteLength||0)-n;if(0===r)throw new Error("glTF byte length must be greater than 0.");return e.gltfUpAxis=i?.["3d-tiles"]&&i["3d-tiles"].assetGltfUpAxis?i["3d-tiles"].assetGltfUpAxis:"Y",e.gltfArrayBuffer=Mt(t,n,r),e.gltfByteOffset=0,e.gltfByteLength=r,n%4==0||console.warn(`${e.type}: embedded glb is not aligned to a 4-byte boundary.`),(e.byteOffset||0)+(e.byteLength||0)}async function YT(e,t,n,i){const r=n?.["3d-tiles"]||{};if(function(e,t){switch(t){case KT:if(e.gltfArrayBuffer){const t=new Uint8Array(e.gltfArrayBuffer,e.gltfByteOffset),n=(new TextDecoder).decode(t);e.gltfUrl=n.replace(/[\s\0]+$/,"")}delete e.gltfArrayBuffer,delete e.gltfByteOffset,delete e.gltfByteLength;break;case JT:break;default:throw new Error("b3dm: Illegal glTF format field")}}(e,t),r.loadGLTF){if(!i)return;if(e.gltfUrl){const{fetch:t}=i,r=await t(e.gltfUrl,n?.core);e.gltfArrayBuffer=await r.arrayBuffer(),e.gltfByteOffset=0}if(e.gltfArrayBuffer){const t=await Jv(e.gltfArrayBuffer,sE,n,i);e.gltf=_E(t),e.gpuMemoryUsageInBytes=Wy(e.gltf),delete e.gltfArrayBuffer,delete e.gltfByteOffset,delete e.gltfByteLength}}}async function ZT(e,t,n,i,r){n=function(e,t,n,i){n=DT(e,t,n),n=NT(e,t,n),n=kT(e,t,n),n=qT(e,t,n,i);const r=new Tile3DFeatureTable(e.featureTableJson,e.featureTableBinary);return e.rtcCenter=r.getGlobalProperty("RTC_CENTER",yT.FLOAT,3),n}(e,t,n,i),await YT(e,JT,i,r);const o=e?.gltf?.extensions;return o&&o.CESIUM_RTC&&(e.rtcCenter=o.CESIUM_RTC.center),n}async function $T(e,t,n,i,r){return n=function(e,t,n,i){if(n=DT(e,t,n),1!==e.version)throw new Error(`Instanced 3D Model version ${e.version} is not supported`);n=NT(e,t,n);const r=new DataView(t);if(e.gltfFormat=r.getUint32(n,!0),n+=4,n=kT(e,t,n),n=qT(e,t,n,i),!e?.header?.featureTableJsonByteLength||0===e.header.featureTableJsonByteLength)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");const o=new Tile3DFeatureTable(e.featureTableJson,e.featureTableBinary),s=o.getGlobalProperty("INSTANCES_LENGTH");if(o.featuresLength=s,!Number.isFinite(s))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");e.eastNorthUp=o.getGlobalProperty("EAST_NORTH_UP"),e.rtcCenter=o.getGlobalProperty("RTC_CENTER",yT.FLOAT,3);new Tile3DBatchTableParser(e.batchTableJson,e.batchTableBinary,s);return function(e,t,n,i){const r=new Array(i),o=new Xn.P,s=new Xn.P,a=new Xn.P,l=new Xn.P,A=new Matrix3,c=new Quaternion,u=new Xn.P,h={},d=new gn.k,f=[],p=[],g=[],m=[];for(let n=0;n<i;n++){let i;if(t.hasProperty("POSITION"))i=t.getProperty("POSITION",yT.FLOAT,3,n,o);else if(t.hasProperty("POSITION_QUANTIZED")){i=t.getProperty("POSITION_QUANTIZED",yT.UNSIGNED_SHORT,3,n,o);const e=t.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",yT.FLOAT,3);if(!e)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");const r=t.getGlobalProperty("QUANTIZED_VOLUME_SCALE",yT.FLOAT,3);if(!r)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");const s=65535;for(let t=0;t<3;t++)i[t]=i[t]/s*r[t]+e[t]}if(!i)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");o.copy(i),h.translation=o,e.normalUp=t.getProperty("NORMAL_UP",yT.FLOAT,3,n,f),e.normalRight=t.getProperty("NORMAL_RIGHT",yT.FLOAT,3,n,p);const _=!1;if(e.normalUp){if(!e.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");e.hasCustomOrientation=!0}else{if(e.octNormalUp=t.getProperty("NORMAL_UP_OCT32P",yT.UNSIGNED_SHORT,2,n,f),e.octNormalRight=t.getProperty("NORMAL_RIGHT_OCT32P",yT.UNSIGNED_SHORT,2,n,p),e.octNormalUp){if(!e.octNormalRight)throw new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");throw new Error("i3dm: oct-encoded orientation not implemented")}e.eastNorthUp?(Ellipsoid.WGS84.eastNorthUpToFixedFrame(o,d),d.getRotationMatrix3(A)):A.identity()}_&&(l.copy(s).cross(a).normalize(),A.setColumn(0,s),A.setColumn(1,a),A.setColumn(2,l)),c.fromMatrix3(A),h.rotation=c,u.set(1,1,1);const b=t.getProperty("SCALE",yT.FLOAT,1,n,g);Number.isFinite(b)&&u.multiplyByScalar(b);const v=t.getProperty("SCALE_NON_UNIFORM",yT.FLOAT,3,n,f);v&&u.scale(v),h.scale=u;let y=t.getProperty("BATCH_ID",yT.UNSIGNED_SHORT,1,n,m);void 0===y&&(y=n);const C=(new gn.k).fromQuaternion(h.rotation);d.identity(),d.translate(h.translation),d.multiplyRight(C),d.scale(h.scale);const w=d.clone();r[n]={modelMatrix:w,batchId:y}}e.instances=r}(e,o,0,s),n}(e,t,n,i),await YT(e,e.gltfFormat||0,i,r),n}async function eS(e,t=0,n,i,r={shape:"tile3d"}){switch(r.byteOffset=t,r.type=function(e,t=0){const n=new DataView(e);return`${String.fromCharCode(n.getUint8(t+0))}${String.fromCharCode(n.getUint8(t+1))}${String.fromCharCode(n.getUint8(t+2))}${String.fromCharCode(n.getUint8(t+3))}`}(e,t),r.type){case _T.COMPOSITE:return await async function(e,t,n,i,r,o){n=DT(e,t,n);const s=new DataView(t);for(e.tilesLength=s.getUint32(n,!0),n+=4,e.tiles=[];e.tiles.length<e.tilesLength&&(e.byteLength||0)-n>12;){const s={shape:"tile3d"};e.tiles.push(s),n=await o(t,n,i,r,s)}return n}(r,e,t,n,i,eS);case _T.BATCHED_3D_MODEL:return await ZT(r,e,t,n,i);case _T.GLTF:return await async function(e,t,n,i){if(e.rotateYtoZ=!0,e.gltfUpAxis=n?.["3d-tiles"]?.assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",n?.["3d-tiles"]?.loadGLTF){if(!i)return t.byteLength;const r=await Jv(t,sE,n,i);e.gltf=_E(r),e.gpuMemoryUsageInBytes=Wy(e.gltf)}else e.gltfArrayBuffer=t;return t.byteLength}(r,e,n,i);case _T.INSTANCED_3D_MODEL:return await $T(r,e,t,n,i);case _T.POINT_CLOUD:return await XT(r,e,t,n,i);default:throw new Error(`3DTileLoader: unknown type ${r.type}`)}}async function tS(e,t,n,i){const r=Number.isFinite(t.bitstream)?t.bitstream:t.bufferView;if("number"!=typeof r)return;const o=e.bufferViews[r],s=e.buffers[o.buffer];if(!i?.baseUrl)throw new Error("Url is not provided");if(!i.fetch)throw new Error("fetch is not provided");if(s.uri){const e=`${i?.baseUrl||""}/${s.uri}`,n=await i.fetch(e),r=await n.arrayBuffer();return void(t.explicitBitstream=new Uint8Array(r,o.byteOffset,o.byteLength))}const a=e.buffers.slice(0,o.buffer).reduce((e,t)=>e+t.byteLength,0);t.explicitBitstream=new Uint8Array(n.slice(a,a+s.byteLength),o.byteOffset,o.byteLength)}function nS(e){const t=new DataView(e);return t.getUint32(0,!0)+2**32*t.getUint32(4,!0)}const iS={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:"4.4.3",extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:async function(e,t,n){if(1952609651!==new Uint32Array(e.slice(0,4))[0])throw new Error("Wrong subtree file magic number");if(1!==new Uint32Array(e.slice(4,8))[0])throw new Error("Wrong subtree file verson, must be 1");const i=nS(e.slice(8,16)),r=new Uint8Array(e,24,i),o=new TextDecoder("utf8").decode(r),s=JSON.parse(o),a=nS(e.slice(16,24));let l=new ArrayBuffer(0);if(a&&(l=e.slice(24+i)),await tS(s,s.tileAvailability,l,n),Array.isArray(s.contentAvailability))for(const e of s.contentAvailability)await tS(s,e,l,n);else await tS(s,s.contentAvailability,l,n);return await tS(s,s.childSubtreeAvailability,l,n),s},options:{}};globalThis.probe={};const rS=new I.h({id:"@probe.gl/log"});var oS=null;try{oS=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function sS(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function aS(e){return!0===(e&&e.__isLong__)}function lS(e){var t=Math.clz32(e&-e);return e?31-t:t}sS.prototype.__isLong__,Object.defineProperty(sS.prototype,"__isLong__",{value:!0}),sS.isLong=aS;var AS={},cS={};function uS(e,t){var n,i,r;return t?(r=0<=(e>>>=0)&&e<256)&&(i=cS[e])?i:(n=dS(e,0,!0),r&&(cS[e]=n),n):(r=-128<=(e|=0)&&e<128)&&(i=AS[e])?i:(n=dS(e,e<0?-1:0,!1),r&&(AS[e]=n),n)}function hS(e,t){if(isNaN(e))return t?CS:yS;if(t){if(e<0)return CS;if(e>=_S)return SS}else{if(e<=-bS)return PS;if(e+1>=bS)return TS}return e<0?hS(-e,t).neg():dS(e%mS|0,e/mS|0,t)}function dS(e,t,n){return new sS(e,t,n)}sS.fromInt=uS,sS.fromNumber=hS,sS.fromBits=dS;var fS=Math.pow;function pS(e,t,n){if(0===e.length)throw Error("empty string");if("number"==typeof t?(n=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?CS:yS;if((n=n||10)<2||36<n)throw RangeError("radix");var i;if((i=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===i)return pS(e.substring(1),t,n).neg();for(var r=hS(fS(n,8)),o=yS,s=0;s<e.length;s+=8){var a=Math.min(8,e.length-s),l=parseInt(e.substring(s,s+a),n);if(a<8){var A=hS(fS(n,a));o=o.mul(A).add(hS(l))}else o=(o=o.mul(r)).add(hS(l))}return o.unsigned=t,o}function gS(e,t){return"number"==typeof e?hS(e,t):"string"==typeof e?pS(e,t):dS(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}sS.fromString=pS,sS.fromValue=gS;var mS=4294967296,_S=mS*mS,bS=_S/2,vS=uS(1<<24),yS=uS(0);sS.ZERO=yS;var CS=uS(0,!0);sS.UZERO=CS;var wS=uS(1);sS.ONE=wS;var ES=uS(1,!0);sS.UONE=ES;var xS=uS(-1);sS.NEG_ONE=xS;var TS=dS(-1,2147483647,!1);sS.MAX_VALUE=TS;var SS=dS(-1,-1,!0);sS.MAX_UNSIGNED_VALUE=SS;var PS=dS(0,-2147483648,!1);sS.MIN_VALUE=PS;var MS=sS.prototype;MS.toInt=function(){return this.unsigned?this.low>>>0:this.low},MS.toNumber=function(){return this.unsigned?(this.high>>>0)*mS+(this.low>>>0):this.high*mS+(this.low>>>0)},MS.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(PS)){var t=hS(e),n=this.div(t),i=n.mul(t).sub(this);return n.toString(e)+i.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var r=hS(fS(e,6),this.unsigned),o=this,s="";;){var a=o.div(r),l=(o.sub(a.mul(r)).toInt()>>>0).toString(e);if((o=a).isZero())return l+s;for(;l.length<6;)l="0"+l;s=""+l+s}},MS.getHighBits=function(){return this.high},MS.getHighBitsUnsigned=function(){return this.high>>>0},MS.getLowBits=function(){return this.low},MS.getLowBitsUnsigned=function(){return this.low>>>0},MS.getNumBitsAbs=function(){if(this.isNegative())return this.eq(PS)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<<t);t--);return 0!=this.high?t+33:t+1},MS.isSafeInteger=function(){var e=this.high>>21;return!e||!this.unsigned&&(-1===e&&!(0===this.low&&-2097152===this.high))},MS.isZero=function(){return 0===this.high&&0===this.low},MS.eqz=MS.isZero,MS.isNegative=function(){return!this.unsigned&&this.high<0},MS.isPositive=function(){return this.unsigned||this.high>=0},MS.isOdd=function(){return!(1&~this.low)},MS.isEven=function(){return!(1&this.low)},MS.equals=function(e){return aS(e)||(e=gS(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},MS.eq=MS.equals,MS.notEquals=function(e){return!this.eq(e)},MS.neq=MS.notEquals,MS.ne=MS.notEquals,MS.lessThan=function(e){return this.comp(e)<0},MS.lt=MS.lessThan,MS.lessThanOrEqual=function(e){return this.comp(e)<=0},MS.lte=MS.lessThanOrEqual,MS.le=MS.lessThanOrEqual,MS.greaterThan=function(e){return this.comp(e)>0},MS.gt=MS.greaterThan,MS.greaterThanOrEqual=function(e){return this.comp(e)>=0},MS.gte=MS.greaterThanOrEqual,MS.ge=MS.greaterThanOrEqual,MS.compare=function(e){if(aS(e)||(e=gS(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},MS.comp=MS.compare,MS.negate=function(){return!this.unsigned&&this.eq(PS)?PS:this.not().add(wS)},MS.neg=MS.negate,MS.add=function(e){aS(e)||(e=gS(e));var t=this.high>>>16,n=65535&this.high,i=this.low>>>16,r=65535&this.low,o=e.high>>>16,s=65535&e.high,a=e.low>>>16,l=0,A=0,c=0,u=0;return c+=(u+=r+(65535&e.low))>>>16,A+=(c+=i+a)>>>16,l+=(A+=n+s)>>>16,l+=t+o,dS((c&=65535)<<16|(u&=65535),(l&=65535)<<16|(A&=65535),this.unsigned)},MS.subtract=function(e){return aS(e)||(e=gS(e)),this.add(e.neg())},MS.sub=MS.subtract,MS.multiply=function(e){if(this.isZero())return this;if(aS(e)||(e=gS(e)),oS)return dS(oS.mul(this.low,this.high,e.low,e.high),oS.get_high(),this.unsigned);if(e.isZero())return this.unsigned?CS:yS;if(this.eq(PS))return e.isOdd()?PS:yS;if(e.eq(PS))return this.isOdd()?PS:yS;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(vS)&&e.lt(vS))return hS(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,n=65535&this.high,i=this.low>>>16,r=65535&this.low,o=e.high>>>16,s=65535&e.high,a=e.low>>>16,l=65535&e.low,A=0,c=0,u=0,h=0;return u+=(h+=r*l)>>>16,c+=(u+=i*l)>>>16,u&=65535,c+=(u+=r*a)>>>16,A+=(c+=n*l)>>>16,c&=65535,A+=(c+=i*a)>>>16,c&=65535,A+=(c+=r*s)>>>16,A+=t*l+n*a+i*s+r*o,dS((u&=65535)<<16|(h&=65535),(A&=65535)<<16|(c&=65535),this.unsigned)},MS.mul=MS.multiply,MS.divide=function(e){if(aS(e)||(e=gS(e)),e.isZero())throw Error("division by zero");var t,n,i;if(oS)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?dS((this.unsigned?oS.div_u:oS.div_s)(this.low,this.high,e.low,e.high),oS.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?CS:yS;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return CS;if(e.gt(this.shru(1)))return ES;i=CS}else{if(this.eq(PS))return e.eq(wS)||e.eq(xS)?PS:e.eq(PS)?wS:(t=this.shr(1).div(e).shl(1)).eq(yS)?e.isNegative()?wS:xS:(n=this.sub(e.mul(t)),i=t.add(n.div(e)));if(e.eq(PS))return this.unsigned?CS:yS;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=yS}for(n=this;n.gte(e);){t=Math.max(1,Math.floor(n.toNumber()/e.toNumber()));for(var r=Math.ceil(Math.log(t)/Math.LN2),o=r<=48?1:fS(2,r-48),s=hS(t),a=s.mul(e);a.isNegative()||a.gt(n);)a=(s=hS(t-=o,this.unsigned)).mul(e);s.isZero()&&(s=wS),i=i.add(s),n=n.sub(a)}return i},MS.div=MS.divide,MS.modulo=function(e){return aS(e)||(e=gS(e)),oS?dS((this.unsigned?oS.rem_u:oS.rem_s)(this.low,this.high,e.low,e.high),oS.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},MS.mod=MS.modulo,MS.rem=MS.modulo,MS.not=function(){return dS(~this.low,~this.high,this.unsigned)},MS.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},MS.clz=MS.countLeadingZeros,MS.countTrailingZeros=function(){return this.low?lS(this.low):lS(this.high)+32},MS.ctz=MS.countTrailingZeros,MS.and=function(e){return aS(e)||(e=gS(e)),dS(this.low&e.low,this.high&e.high,this.unsigned)},MS.or=function(e){return aS(e)||(e=gS(e)),dS(this.low|e.low,this.high|e.high,this.unsigned)},MS.xor=function(e){return aS(e)||(e=gS(e)),dS(this.low^e.low,this.high^e.high,this.unsigned)},MS.shiftLeft=function(e){return aS(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?dS(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):dS(0,this.low<<e-32,this.unsigned)},MS.shl=MS.shiftLeft,MS.shiftRight=function(e){return aS(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?dS(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):dS(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},MS.shr=MS.shiftRight,MS.shiftRightUnsigned=function(e){return aS(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?dS(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):dS(32===e?this.high:this.high>>>e-32,0,this.unsigned)},MS.shru=MS.shiftRightUnsigned,MS.shr_u=MS.shiftRightUnsigned,MS.rotateLeft=function(e){var t;return aS(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?dS(this.high,this.low,this.unsigned):e<32?(t=32-e,dS(this.low<<e|this.high>>>t,this.high<<e|this.low>>>t,this.unsigned)):(t=32-(e-=32),dS(this.high<<e|this.low>>>t,this.low<<e|this.high>>>t,this.unsigned))},MS.rotl=MS.rotateLeft,MS.rotateRight=function(e){var t;return aS(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?dS(this.high,this.low,this.unsigned):e<32?(t=32-e,dS(this.high<<t|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned)):(t=32-(e-=32),dS(this.low<<t|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned))},MS.rotr=MS.rotateRight,MS.toSigned=function(){return this.unsigned?dS(this.low,this.high,!1):this},MS.toUnsigned=function(){return this.unsigned?this:dS(this.low,this.high,!0)},MS.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},MS.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},MS.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},sS.fromBytes=function(e,t,n){return n?sS.fromBytesLE(e,t):sS.fromBytesBE(e,t)},sS.fromBytesLE=function(e,t){return new sS(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},sS.fromBytesBE=function(e,t){return new sS(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)},"function"==typeof BigInt&&(sS.fromBigInt=function(e,t){return dS(Number(BigInt.asIntN(32,e)),Number(BigInt.asIntN(32,e>>BigInt(32))),t)},sS.fromValue=function(e,t){return"bigint"==typeof e?sS.fromBigInt(e,t):gS(e,t)},MS.toBigInt=function(){var e=BigInt(this.low>>>0);return BigInt(this.unsigned?this.high>>>0:this.high)<<BigInt(32)|e});const RS=sS;function BS(e){"X"===e&&(e="");const t=e.padEnd(16,"0");return RS.fromString(t,!0,16)}const IS=180/Math.PI;function LS(e,t,n){const i=1<<t;return[(e[0]+n[0])/i,(e[1]+n[1])/i]}function FS(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function DS(e){return[FS(e[0]),FS(e[1])]}function OS(e,[t,n]){switch(e){case 0:return[1,t,n];case 1:return[-t,1,n];case 2:return[-t,-n,1];case 3:return[-1,-n,-t];case 4:return[n,-1,-t];case 5:return[n,t,-1];default:throw new Error("Invalid face")}}function NS([e,t,n]){const i=Math.atan2(n,Math.sqrt(e*e+t*t));return[Math.atan2(t,e)*IS,i*IS]}function kS(e,t,n,i){if(0===i){1===n&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);const i=t[0];t[0]=t[1],t[1]=i}}function US(e){const t=function(e){if(e.indexOf("/")>0)return e;const t=BS(e);return function(e){if(e.isZero())return"";let t=e.toString(2);for(;t.length<64;)t="0"+t;const n=t.lastIndexOf("1"),i=t.substring(0,3),r=t.substring(3,n),o=r.length/2,s=RS.fromString(i,!0,2).toString(10);let a="";if(0!==o)for(a=RS.fromString(r,!0,2).toString(4);a.length<o;)a="0"+a;return`${s}/${a}`}(t)}(e),n=function(e){if(0===e.length)throw new Error(`Invalid Hilbert quad key ${e}`);const t=e.split("/"),n=parseInt(t[0],10),i=t[1],r=i.length;let o=0;const s=[0,0];for(let e=r-1;e>=0;e--){o=r-e;const t=i[e];let n=0,a=0;"1"===t?a=1:"2"===t?(n=1,a=1):"3"===t&&(n=1);const l=Math.pow(2,o-1);kS(l,s,n,a),s[0]+=l*n,s[1]+=l*a}if(n%2==1){const e=s[0];s[0]=s[1],s[1]=e}return{face:n,ij:s,level:o}}(t);return n}function GS(e){const{face:t,ij:n,level:i}=e,r=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(100*Math.pow(2,-i))),s=new Float64Array(4*o*2+2);let a=0,l=0;for(let e=0;e<4;e++){const A=r[e].slice(0),c=r[e+1],u=(c[0]-A[0])/o,h=(c[1]-A[1])/o;for(let e=0;e<o;e++){A[0]+=u,A[1]+=h;const e=NS(OS(t,DS(LS(n,i,A))));Math.abs(e[1])>89.999&&(e[0]=l);const r=e[0]-l;e[0]+=r>180?-360:r<-180?360:0,s[a++]=e[0],s[a++]=e[1],l=e[0]}}return s[a++]=s[0],s[a++]=s[1],s}function VS(e){if(e.length%2!=0)throw new Error("Invalid corners");const t=[],n=[];for(let i=0;i<e.length;i+=2)t.push(e[i]),n.push(e[i+1]);return t.sort((e,t)=>e-t),n.sort((e,t)=>e-t),{west:t[0],east:t[t.length-1],north:n[n.length-1],south:n[0]}}function zS(e,t){const n=t?.minimumHeight||0,i=t?.maximumHeight||0,r=function(e){let t;if(2===e.face||5===e.face){let n=null,i=0;for(let t=0;t<4;t++){const r=GS(US(`${e.face}/${t}`));null==n&&(n=new Float64Array(4*r.length)),n.set(r,i),i+=r.length}t=VS(n)}else t=VS(GS(e));return t}(US(e)),o=r.west,s=r.south,a=r.east,l=r.north,A=[];return A.push(new Xn.P(o,l,n)),A.push(new Xn.P(a,l,n)),A.push(new Xn.P(a,s,n)),A.push(new Xn.P(o,s,n)),A.push(new Xn.P(o,l,i)),A.push(new Xn.P(a,l,i)),A.push(new Xn.P(a,s,i)),A.push(new Xn.P(o,s,i)),A}function HS(e){return function(e){const t=DS(LS(e.ij,e.level,[.5,.5]));return NS(OS(e.face,t))}(US(e))}function WS(e){const t=e.token,n={minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight},i=zS(t,n),r=HS(t),o=r[0],s=r[1],a=Ellipsoid.WGS84.cartographicToCartesian([o,s,n.maximumHeight]),l=new Xn.P(a[0],a[1],a[2]);i.push(l);const A=tb(i);return[...A.center,...A.halfAxes]}const jS={QUADTREE:4,OCTREE:8};function QS(e,t,n){if(e?.box){const i=function(e,t){const n=function(e){return e.and(e.not().add(1))}(e).shiftRightUnsigned(2);return e.add(RS.fromNumber(2*t+1-4).multiply(n))}(BS(e.s2VolumeInfo.token),t),r=function(e){if(e.isZero())return"X";let t=e.countTrailingZeros();t=(t-t%4)/4;const n=t;t*=4;const i=e.shiftRightUnsigned(t).toString(16).replace(/0+$/,"");return Array(17-n-i.length).join("0")+i}(i),o={...e.s2VolumeInfo};if(o.token=r,"OCTREE"===n){const t=e.s2VolumeInfo,n=t.maximumHeight-t.minimumHeight,i=n/2,r=t.minimumHeight+n/2;t.minimumHeight=r-i,t.maximumHeight=r+i}return{box:WS(o),s2VolumeInfo:o}}}async function XS(e){const{subtree:t,subtreeData:n={level:0,x:0,y:0,z:0},parentData:i={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:r=0,implicitOptions:o,loaderOptions:s,s2VolumeBox:a}=e,{subdivisionScheme:l,subtreeLevels:A,maximumLevel:c,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:d}=o,f={children:[],lodMetricValue:0,contentUrl:""};if(!c)return rS.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),f;const p=i.localLevel+1,g=n.level+p;if(g>c)return f;const m=jS[l],_=Math.log2(m),b=1&r,v=r>>1&1,y=r>>2&1,C=JS(i.localX,b,1),w=JS(i.localY,v,1),E=JS(i.localZ,y,1),x=JS(n.x,C,p),T=JS(n.y,w,p),S=JS(n.z,E,p),P=JS(i.mortonIndex,r,_);let M,R,B,I;if(p===A&&KS(t.childSubtreeAvailability,P)){const e=qS(`${d}/${h}`,g,x,T,S);M=await Yt(e,iS,s),I=0,R={level:g,x,y:T,z:S},B={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else{M=t;I=(m**p-1)/(m-1)+P,R=n,B={mortonIndex:P,localLevel:p,localX:C,localY:w,localZ:E}}if(!KS(M.tileAvailability,I))return f;KS(M.contentAvailability,I)&&(f.contentUrl=qS(u,g,x,T,S));for(let e=0;e<m;e++){const t=QS(a,e,l),n=await XS({subtree:M,subtreeData:R,parentData:B,childIndex:e,implicitOptions:o,loaderOptions:s,s2VolumeBox:t});(n.contentUrl||n.children.length)&&f.children.push(n)}if(f.contentUrl||f.children.length){const e=function(e,t,n,i){const{basePath:r,refine:o,getRefine:s,lodMetricType:a,getTileType:l,rootLodMetricValue:A,rootBoundingVolume:c}=n,u=e.contentUrl&&e.contentUrl.replace(`${r}/`,""),h=A/2**t.level,d=i?.box?{box:i.box}:c,f=function(e,t,n){if(e.region){const{level:i,x:r,y:o,z:s}=t,[a,l,A,c,u,h]=e.region,d=2**i,f=(A-a)/d,[p,g]=[a+f*r,a+f*(r+1)],m=(c-l)/d,[_,b]=[l+m*o,l+m*(o+1)];let v,y;if("OCTREE"===n){const e=(h-u)/d;[v,y]=[u+e*s,u+e*(s+1)]}else[v,y]=[u,h];return{region:[p,_,g,b,v,y]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${JSON.stringify(e)}`)}(d,t,n.subdivisionScheme);return{children:e.children,contentUrl:e.contentUrl,content:{uri:u},id:e.contentUrl,refine:s(o),type:l(e),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:e.transform,boundingVolume:f}}(f,{level:g,x,y:T,z:S},o,a);return e}return f}function KS(e,t){let n;return Array.isArray(e)?(n=e[0],e.length>1&&rS.once('Not supported extension "3DTILES_multiple_contents" has been detected')):n=e,"constant"in n?Boolean(n.constant):!!n.explicitBitstream&&function(e,t){const n=Math.floor(e/8),i=e%8;return 1==(t[n]>>i&1)}(t,n.explicitBitstream)}function JS(e,t,n){return(e<<n)+t}function qS(e,t,n,i,r){const o=function(e){const t={};for(const n in e)t[`{${n}}`]=e[n];return t}({level:t,x:n,y:i,z:r});return e.replace(/{level}|{x}|{y}|{z}/gi,e=>o[e])}function YS(e,t=""){if(!t)return Px.EMPTY;const n=t.split("?")[0].split(".").pop();switch(n){case"pnts":return Px.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return Px.SCENEGRAPH;default:return n||Px.EMPTY}}function ZS(e){switch(e){case"REPLACE":case"replace":return Sx.REPLACE;case"ADD":case"add":return Sx.ADD;default:return e}}function $S(e,t){if(/^[a-z][0-9a-z+.-]*:/i.test(t)){const n=new URL(e,`${t}/`);return decodeURI(n.toString())}return e.startsWith("/")?e:M(t,e)}function eP(e,t){if(!e)return null;let n;if(e.content){const i=e.content.uri||e.content?.url;void 0!==i&&(n=$S(i,t))}return{...e,id:n,contentUrl:n,lodMetricType:Rx.GEOMETRIC_ERROR,lodMetricValue:e.geometricError,transformMatrix:e.transform,type:YS(0,n),refine:ZS(e.refine)}}async function tP(e,t,n,i,r){const{subdivisionScheme:o,maximumLevel:s,availableLevels:a,subtreeLevels:l,subtrees:{uri:A}}=i,c=$S(qS(A,0,0,0,0),n),u=await Yt(c,iS,r),h=e.content?.uri,d=h?$S(h,n):"",f=t?.root?.refine,p=e.geometricError,g=e.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(g){const t={box:WS(g),s2VolumeInfo:g};e.boundingVolume=t}const m=e.boundingVolume,_={contentUrlTemplate:d,subtreesUriTemplate:A,subdivisionScheme:o,subtreeLevels:l,maximumLevel:Number.isFinite(a)?a-1:s,refine:f,basePath:n,lodMetricType:Rx.GEOMETRIC_ERROR,rootLodMetricValue:p,rootBoundingVolume:m,getTileType:YS,getRefine:ZS};return await async function(e,t,n,i,r){if(!e)return null;const{children:o,contentUrl:s}=await XS({subtree:n,implicitOptions:i,loaderOptions:r});let a,l=null;s&&(a=s,l={uri:s.replace(`${t}/`,"")});const A={...e,id:a,contentUrl:a,lodMetricType:Rx.GEOMETRIC_ERROR,lodMetricValue:e.geometricError,transformMatrix:e.transform,type:YS(0,a),refine:ZS(e.refine),content:l||e.content,children:o};return A}(e,n,u,_,r)}function nP(e){return e?.extensions?.["3DTILES_implicit_tiling"]||e?.implicitTiling}const iP={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:"4.4.3",extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:async function(e,t={},n){const i=t["3d-tiles"]||{};let r;r="auto"===i.isTileset?n?.url&&-1!==n.url.indexOf(".json"):i.isTileset;return r?async function(e,t,n){const i=JSON.parse((new TextDecoder).decode(e)),r=n?.url||"",o=function(e){return P(e)}(r),s=await async function(e,t,n){let i=null;const r=nP(e.root);i=r&&e.root?await tP(e.root,e,t,r,n):eP(e.root,t);const o=[];for(o.push(i);o.length>0;){const i=o.pop()||{},r=i.children||[],s=[];for(const i of r){const r=nP(i);let a;a=r?await tP(i,e,t,r,n):eP(i,t),a&&(s.push(a),o.push(a))}i.children=s}return i}(i,o,t||{}),a={...i,shape:"tileset3d",loader:iP,url:r,queryString:n?.queryString||"",basePath:o,root:s||i.root,type:Mx.TILES3D,lodMetricType:Rx.GEOMETRIC_ERROR,lodMetricValue:i.root?.geometricError||0};return a}(e,t,n):async function(e,t,n){const i={content:{shape:"tile3d",featureIds:null}},r=0;return await eS(e,r,t,n,i.content),i.content}(e,t,n)},options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};const rP=[0],oP={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:iP,onTilesetLoad:{type:"function",value:e=>{}},onTileLoad:{type:"function",value:e=>{}},onTileUnload:{type:"function",value:e=>{}},onTileError:{type:"function",value:(e,t,n)=>{}},_getMeshColor:{type:"function",value:e=>[255,255,255]}};class Tile3DLayer extends fo{initializeState(){"onTileLoadFail"in this.props&&_e.A.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){if(e.data&&e.data!==t.data&&this._loadTileset(e.data),n.viewportChanged){const{activeViewports:e}=this.state;Object.keys(e).length&&(this._updateTileset(e),this.state.lastUpdatedViewports=e,this.state.activeViewports={})}if(n.propsChanged){const{layerMap:e}=this.state;for(const t in e)e[t].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){const{activeViewports:t,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,t[e.id]=e;const i=n?.[e.id];i&&e.equals(i)||(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:t}){const n=t&&t.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:t,cullRect:n,isPicking:i}){const{tile:r}=e.props,{id:o}=t;if(!r.selected||!r.viewportIds.includes(o))return!1;if(i&&n&&r.content?.cartographicOrigin){const[e,i]=t.project(r.content.cartographicOrigin),o=n.x+n.width/2,s=n.y+n.height/2,a=Math.max(t.width,t.height)/4,l=e-o,A=i-s;if(l*l+A*A>a*a)return!1}return!0}_updateAutoHighlight(e){const t=e.sourceTile,n=this.state.layerMap[t?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){const t=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,i=Array.isArray(n)?n[0]:n,{tileset:r,...o}=t,s={loadOptions:{...o},...r};let a=e;if("preload"in i&&"function"==typeof i.preload){const n=await i.preload(e,t);n.url&&(a=n.url),n.headers&&(s.loadOptions.core={...s.loadOptions.core,fetch:{...s.loadOptions.core?.fetch,headers:n.headers}}),Object.assign(s,n)}const l=await Yt(a,i,s.loadOptions),A=new Tileset3D(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...s});this.setState({tileset3d:A,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(A)}_onTileLoad(e){const{lastUpdatedViewports:t}=this.state;e.tileDrawn=!1,this.props.onTileLoad(e),this._updateTileset(t),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;const{tileset3d:t}=this.state,{timeline:n}=this.context,i=Object.keys(e).length;n&&i&&t&&t.selectTiles(Object.values(e)).then(e=>{this.state.frameNumber!==e&&this.setState({frameNumber:e})})}_getSubLayer(e,t){if(!e.content)return null;switch(e.type){case Px.POINTCLOUD:return this._makePointCloudLayer(e,t);case Px.SCENEGRAPH:return this._make3DModelLayer(e);case Px.MESH:return this._makeSimpleMeshLayer(e,t);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,t){const{attributes:n,pointCount:i,constantRGBA:r,cartographicOrigin:o,modelMatrix:s}=e.content,{positions:a,normals:l,colors:A}=n;if(!a)return null;const c=t&&t.props.data||{header:{vertexCount:i},attributes:{POSITION:a,NORMAL:l,COLOR_0:A}},{pointSize:u,getPointColor:h}=this.props;return new(this.getSubLayerClass("pointcloud",Xs))({pointSize:u},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:c,coordinateSystem:mn.rf.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getColor:r||h,_offset:0})}_make3DModelLayer(e){const{gltf:t,instances:n,cartographicOrigin:i,modelMatrix:r}=e.content;return new(this.getSubLayerClass("scenegraph",BE))({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||rP,scenegraph:t,coordinateSystem:mn.rf.METER_OFFSETS,coordinateOrigin:i,modelMatrix:r,getTransformMatrix:e=>e.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,t){const n=e.content,{attributes:i,indices:r,modelMatrix:o,cartographicOrigin:s,coordinateSystem:a=mn.rf.METER_OFFSETS,material:l,featureIds:A}=n,{_getMeshColor:c}=this.props,u=t&&t.props.mesh||new Geometry({topology:"triangle-list",attributes:aP(i),indices:r});return new(this.getSubLayerClass("mesh",GE))(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:u,data:rP,getColor:c(e),pbrMaterial:l,modelMatrix:o,coordinateOrigin:s,coordinateSystem:a,featureIds:A,_offset:0})}renderLayers(){const{tileset3d:e,layerMap:t}=this.state;return e?e.tiles.map(e=>{const n=t[e.id]=t[e.id]||{tile:e};let{layer:i}=n;return e.selected&&(i?n.needsUpdate&&(i=this._getSubLayer(e,i),n.needsUpdate=!1):i=this._getSubLayer(e)),n.layer=i,i}).filter(Boolean):null}}Tile3DLayer.defaultProps=oP,Tile3DLayer.layerName="Tile3DLayer";const sP=Tile3DLayer;function aP(e){const t={};return t.positions={...e.positions,value:new Float32Array(e.positions.value)},e.normals&&(t.normals=e.normals),e.texCoords&&(t.texCoords=e.texCoords),e.colors&&(t.colors=e.colors),e.uvRegions&&(t.uvRegions=e.uvRegions),t}const lP={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:"4.4.3",worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}},AP=[1],cP={...Pb.defaultProps,elevationData:lb,texture:{...lb,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[lP]};function uP(e){return Array.isArray(e)?e.join(";"):e||""}class TerrainLayer extends fo{updateState({props:e,oldProps:t}){const n=e.elevationData!==t.elevationData;if(n){const{elevationData:t}=e,n=t&&(Array.isArray(t)||dP(t));this.setState({isTiled:n})}const i=n||e.meshMaxError!==t.meshMaxError||e.elevationDecoder!==t.elevationDecoder||e.bounds!==t.bounds;if(!this.state.isTiled&&i){const t=this.loadTerrain(e);this.setState({terrain:t})}e.workerUrl&&_e.A.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:t,elevationDecoder:n,meshMaxError:i,signal:r}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?2*i:0,...o?.terrain,bounds:t,meshMaxError:i,elevationDecoder:n}};const{fetch:s}=this.props;return s(e,{propName:"elevationData",layer:this,loadOptions:o,signal:r})}getTiledTerrainData(e){const{elevationData:t,fetch:n,texture:i,elevationDecoder:r,meshMaxError:o}=this.props,{viewport:s}=this.context,a=cb(t,e),l=i&&cb(i,e),{signal:A}=e;let c=[0,0],u=[0,0];if(s.isGeospatial){const t=e.bbox;c=s.projectFlat([t.west,t.south]),u=s.projectFlat([t.east,t.north])}else{const t=e.bbox;c=[t.left,t.bottom],u=[t.right,t.top]}const h=[c[0],c[1],u[0],u[1]],d=this.loadTerrain({elevationData:a,bounds:h,elevationDecoder:r,meshMaxError:o,signal:A}),f=l?n(l,{propName:"texture",layer:this,loaders:[],signal:A}).catch(e=>null):Promise.resolve(null);return Promise.all([d,f])}renderSubLayers(e){const t=this.getSubLayerClass("mesh",NE),{color:n,wireframe:i,material:r}=this.props,{data:o}=e;if(!o)return null;const[s,a]=o;return new t(e,{data:AP,mesh:s,texture:a,_instanced:!1,coordinateSystem:mn.rf.CARTESIAN,getPosition:e=>[0,0,0],getColor:n,wireframe:i,material:r})}onViewportLoad(e){if(!e)return;const{zRange:t}=this.state,n=e.map(e=>e.content).filter(Boolean).map(e=>e[0].header.boundingBox.map(e=>e[2]));if(0===n.length)return;const i=Math.min(...n.map(e=>e[0])),r=Math.max(...n.map(e=>e[1]));(!t||i<t[0]||r>t[1])&&this.setState({zRange:[i,r]})}renderLayers(){const{color:e,material:t,elevationData:n,texture:i,wireframe:r,meshMaxError:o,elevationDecoder:s,tileSize:a,maxZoom:l,minZoom:A,extent:c,maxRequests:u,onTileLoad:h,onTileUnload:d,onTileError:f,maxCacheSize:p,maxCacheByteSize:g,refinementStrategy:m,zoomOffset:_}=this.props;if(this.state.isTiled)return new Pb(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:uP(n),texture:uP(i),meshMaxError:o,elevationDecoder:s,projectionMode:this.context.viewport.projectionMode,zoomOffset:_}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:a,maxZoom:l,minZoom:A,extent:c,maxRequests:u,onTileLoad:h,onTileUnload:d,onTileError:f,maxCacheSize:p,maxCacheByteSize:g,refinementStrategy:m,zoomOffset:_});if(!n)return null;return new(this.getSubLayerClass("mesh",NE))(this.getSubLayerProps({id:"mesh"}),{data:AP,mesh:this.state.terrain,texture:i,_instanced:!1,getPosition:e=>[0,0,0],getColor:e,material:t,wireframe:r})}}TerrainLayer.defaultProps=cP,TerrainLayer.layerName="TerrainLayer";const hP=TerrainLayer,dP=e=>e.includes("{x}")&&(e.includes("{y}")||e.includes("{-y}"));var fP=n(31554),pP=n(37063);function gP(e,t,n){switch(e.type){case"Point":return function(e,t,n){const{positions:i}=e,r=_P(i,t,n);if(r.length>1)return{type:"MultiPoint",coordinates:r};return{type:"Point",coordinates:r[0]}}(e,t,n);case"LineString":return function(e,t=-1/0,n=1/0){const{positions:i}=e,r=e.pathIndices.value.filter(e=>e>=t&&e<=n);if(!(r.length>2)){return{type:"LineString",coordinates:_P(i,r[0],r[1])}}const o=[];for(let e=0;e<r.length-1;e++){const t=_P(i,r[e],r[e+1]);o.push(t)}return{type:"MultiLineString",coordinates:o}}(e,t,n);case"Polygon":return mP(e,t,n);default:const i=e;throw new Error(`Unsupported geometry type: ${i?.type}`)}}function mP(e,t=-1/0,n=1/0){const{positions:i}=e,r=e.polygonIndices.value.filter(e=>e>=t&&e<=n),o=e.primitivePolygonIndices.value.filter(e=>e>=t&&e<=n);if(!(r.length>2)){const e=[];for(let t=0;t<o.length-1;t++){const n=_P(i,o[t],o[t+1]);e.push(n)}return{type:"Polygon",coordinates:e}}const s=[];for(let t=0;t<r.length-1;t++){const n=mP(e,r[t],r[t+1]).coordinates;s.push(n)}return{type:"MultiPolygon",coordinates:s}}function _P(e,t,n){t=t||0,n=n||e.value.length/e.size;const i=[];for(let r=t;r<n;r++){const t=Array();for(let n=r*e.size;n<(r+1)*e.size;n++)t.push(Number(e.value[n]));i.push(t)}return i}function bP(e,t){const n=t?.globalFeatureId;return void 0!==n?function(e,t){const n=vP(e);for(const e of n){let n=0,i=e.featureIds.value[0];for(let r=0;r<e.featureIds.value.length;r++){const o=e.featureIds.value[r];if(o!==i){if(t===e.globalFeatureIds.value[n])return yP(e,n,r);n=r,i=o}}if(t===e.globalFeatureIds.value[n])return yP(e,n,e.featureIds.value.length)}throw new Error(`featureId:${t} not found`)}(e,n):function(e,t){const n=vP(e,t);return function(e){const t=[];for(const n of e){if(0===n.featureIds.value.length)continue;let e=0,i=n.featureIds.value[0];for(let r=0;r<n.featureIds.value.length;r++){const o=n.featureIds.value[r];o!==i&&(t.push(yP(n,e,r)),e=r,i=o)}t.push(yP(n,e,n.featureIds.value.length))}return t}(n)}(e,t?.type)}function vP(e,t){const n=[];return e.points&&(e.points.type="Point",n.push(e.points)),e.lines&&(e.lines.type="LineString",n.push(e.lines)),e.polygons&&(e.polygons.type="Polygon",n.push(e.polygons)),n}function yP(e,t,n){const i=gP(e,t,n),r=function(e,t=0){const n=Object.assign({},e.properties[e.featureIds.value[t]]);for(const i in e.numericProps)n[i]=e.numericProps[i].value[t];return n}(e,t),o=function(e,t=0){return e.fields&&e.fields[e.featureIds.value[t]]}(e,t);return{type:"Feature",geometry:i,properties:r,...o}}const CP={Point:wP,MultiPoint:function(e,t,n){return EP(e,t,n)},LineString:xP,MultiLineString:function(e,t,n){return e.map(e=>xP(e,t,n))},Polygon:TP,MultiPolygon:function(e,t,n){return e.map(e=>TP(e,t,n))}};function wP([e,t],[n,i],r){const o=(0,cn.Cc)(n[0],i[0],e),s=(0,cn.Cc)(n[1],i[1],t);return r.unprojectFlat([o,s])}function EP(e,t,n){return e.map(e=>wP(e,t,n))}function xP(e,t,n){return EP(e,t,n)}function TP(e,t,n){return e.map(e=>EP(e,t,n))}const SP=["points","lines","polygons"];function PP(e,t,n,i){const r=e.featureIds.value;if(!r.length)return-1;let o=0,s=r[r.length-1]+1;if(i){const t=function(e,t){if(!e.__layers){const t={},{properties:n}=e;for(let e=0;e<n.length;e++){const{layerName:i}=n[e];i&&(t[i]?t[i][1]=e:t[i]=[e,e])}e.__layers=t}return e.__layers[t]}(e,i);if(!t)return-1;o=t[0],s=t[1]+1}let a=-1;if(t in e.numericProps){const i=e.numericProps[t].value.findIndex((e,t)=>e===n&&r[t]>=o&&r[t]<s);return i>=0?e.globalFeatureIds.value[i]:-1}return t?a=MP(e.properties,e=>e[t]===n,o,s):e.fields&&(a=MP(e.fields,e=>e.id===n,o,s)),a>=0?function(e,t){if(!e.__ids){const t=[],n=e.featureIds.value,i=e.globalFeatureIds.value;for(let e=0;e<n.length;e++)t[n[e]]=i[e];e.__ids=t}return e.__ids[t]}(e,a):-1}function MP(e,t,n,i){for(let r=n;r<i;r++)if(t(e[r],r))return r;return-1}const RP={...ql.defaultProps,data:lb,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[pP.f],binary:!0};class MVTLayer extends Pb{initializeState(){super.initializeState();const e=void 0===this.context.viewport.resolution&&this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:t,context:n,changeFlags:i}){i.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:t,context:n,changeFlags:i}),this._setWGS84PropertyForTiles());const{highlightColor:r}=e;r!==t.highlightColor&&Array.isArray(r)&&this.setState({highlightColor:r})}async _updateTileData(){let e=this.props.data,t=null;if("string"!=typeof e||function(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(e)}(e))e&&"object"==typeof e&&"tilejson"in e&&(t=e);else{const{onDataLoad:n,fetch:i}=this.props;this.setState({data:null,tileJSON:null});try{t=await i(e,{propName:"data",layer:this,loaders:[]})}catch(t){this.raiseError(t,"loading TileJSON"),e=null}n&&n(t,{propName:"data",layer:this})}t&&(e=t.tiles),this.setState({data:e,tileJSON:t})}_getTilesetOptions(){const e=super._getTilesetOptions(),t=this.state.tileJSON,{minZoom:n,maxZoom:i}=this.props;return t&&(Number.isFinite(t.minzoom)&&t.minzoom>n&&(e.minZoom=t.minzoom),Number.isFinite(t.maxzoom)&&(!Number.isFinite(i)||t.maxzoom<i)&&(e.maxZoom=t.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){const{data:t,binary:n}=this.state,{index:i,signal:r}=e,o=cb(t,e);if(!o)return Promise.reject("Invalid URL");let s=this.getLoadOptions();const{fetch:a}=this.props;return s={...s,core:{...s?.core,mimeType:"application/x-protobuf"},mvt:{...s?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:i}},a(o,{propName:"data",layer:this,loadOptions:s,signal:r})}renderSubLayers(e){const{x:t,y:n,z:i}=e.tile.index,r=Math.pow(2,i),o=512/r,s=-o,a=512*t/r,l=512*(1-n/r),A=(new gn.k).scale([o,s,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=A,e.coordinateOrigin=[a,l,0],e.coordinateSystem=mn.rf.CARTESIAN,e.extensions=[...e.extensions||[],new fP.A]);const c=super.renderSubLayers(e);return!this.state.binary||c instanceof ql||_e.A.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),c}_updateAutoHighlight(e){const{uniqueIdProperty:t}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:i}=this.state,r=e.object;let o=null,s=null;r&&(o=IP(r,t),s=LP(r));let{highlightColor:a}=this.props;"function"==typeof a&&(a=a(e)),n===o&&i===s||this.setState({highlightColor:a,hoveredFeatureId:o,hoveredFeatureLayerName:s})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){const t=super.getPickingInfo(e);if(this.state.binary&&-1!==t.index){const{data:n}=e.sourceLayer.props;t.object=bP(n,{globalFeatureId:t.index})}return t.object&&!this._isWGS84()&&(t.object=DP(t.object,t.tile.bbox,this.context.viewport)),t}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){const{hoveredFeatureId:t,hoveredFeatureLayerName:n,binary:i}=this.state,{uniqueIdProperty:r,highlightedFeatureId:o}=this.props,s=e.content,a=FP(o);if(!(FP(t)||a))return-1;const l=a?o:t;return Array.isArray(s)?s.findIndex(e=>{const t=IP(e,r)===l,i=a||LP(e)===n;return t&&i}):s&&i?function(e,t,n,i){for(const r of SP){const o=e[r]&&PP(e[r],t,n,i);if(o>=0)return o}return-1}(s,r,l,a?"":n):-1}_pickObjects(e){const{deck:t,viewport:n}=this.context,i=n.width,r=n.height,o=n.x,s=n.y,a=[this.id];return t.pickObjects({x:o,y:s,width:i,height:r,layerIds:a,maxObjects:e})}getRenderedFeatures(e=null){const t=this._pickObjects(e),n=new Set,i=[];for(const e of t){const t=IP(e.object,this.props.uniqueIdProperty);void 0===t?i.push(e.object):n.has(t)||(n.add(t),i.push(e.object))}return i}_setWGS84PropertyForTiles(){const e="dataInWGS84";this.state.tileset.selectedTiles.forEach(t=>{t.hasOwnProperty(e)||Object.defineProperty(t,e,{get:()=>{if(!t.content)return null;if(this.state.binary&&Array.isArray(t.content)&&!t.content.length)return[];const{bbox:e}=t;if(void 0===t._contentWGS84&&function(e){return Number.isFinite(e.west)&&Number.isFinite(e.north)&&Number.isFinite(e.east)&&Number.isFinite(e.south)}(e)){const n=this.state.binary?bP(t.content):t.content;t._contentWGS84=n.map(t=>DP(t,e,this.context.viewport))}return t._contentWGS84}})})}}MVTLayer.layerName="MVTLayer",MVTLayer.defaultProps=RP;const BP=MVTLayer;function IP(e,t){return e.properties&&t?e.properties[t]:"id"in e?e.id:void 0}function LP(e){return e.properties?.layerName||null}function FP(e){return null!=e&&""!==e}function DP(e,t,n){const i={...e,geometry:{type:e.geometry.type}};return Object.defineProperty(i.geometry,"coordinates",{get:()=>{const i=function(e,t,n){const i=[n.projectFlat([t.west,t.north]),n.projectFlat([t.east,t.south])];return{...e,coordinates:CP[e.type](e.coordinates,i,n)}}(e.geometry,t,n);return i.coordinates}}),i}const OP="0123456789bcdefghjkmnpqrstuvwxyz",NP={};for(let e=0;e<32;e++)NP[OP.charAt(e)]=e;function kP(e){const[t,n,i,r]=function(e){let t,n=!0,i=90,r=-90,o=180,s=-180,a=0;for(let l=0,A=e.length;l<A;l++){const A=e[l].toLowerCase();a=NP[A];for(let e=4;e>=0;e--){const l=a>>e&1;n?(t=(o+s)/2,1===l?s=t:o=t):(t=(i+r)/2,1===l?r=t:i=t),n=!n}}return[r,s,i,o]}(e);return[r,i,r,t,n,t,n,i,r,i]}class GeohashLayer extends su{indexToBounds(){const{data:e,getGeohash:t}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(e,n)=>kP(t(e,n))}}}GeohashLayer.layerName="GeohashLayer",GeohashLayer.defaultProps={getGeohash:{type:"accessor",value:e=>e.geohash}};const UP=GeohashLayer;var GP=n(63696);const VP="undefined"!=typeof window?GP.useLayoutEffect:GP.useEffect;function zP(e,t){for(;e;){if(e===t)return!0;e=Object.getPrototypeOf(e)}return!1}const HP={position:"absolute",zIndex:-1};function WP(e,t){if("function"==typeof e)return e(t);if(Array.isArray(e))return e.map(e=>WP(e,t));if(jP(e)){if(n=e,n.props?.mapStyle)return t.style=HP,(0,GP.cloneElement)(e,t);if(function(e){const t=e.type;return t&&t.deckGLViewProps}(e))return(0,GP.cloneElement)(e,t)}var n;return e}function jP(e){return GP.isValidElement(e)}function QP(e){if("function"==typeof e)return(0,GP.createElement)(View,{},e);if(Array.isArray(e))return e.map(QP);if(jP(e)){if(e.type===GP.Fragment)return QP(e.props.children);if(zP(e.type,View))return e}return e}const XP=(0,GP.createContext)();const KP={mixBlendMode:null};function JP(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}const qP=GP.forwardRef(function(e,t){const[n,i]=(0,GP.useState)(0),r=(0,GP.useRef)({control:null,version:n,forceUpdate:()=>i(e=>e+1)}),o=r.current,s=(0,GP.useRef)(null),a=(0,GP.useRef)(null),l=(0,GP.useMemo)(()=>function({children:e,layers:t=[],views:n}){const i=[],r=[],o={};return GP.Children.forEach(QP(e),e=>{if(jP(e)){const t=e.type;if(zP(t,uo)){const n=function(e,t){const n={},i=e.defaultProps||{};for(const e in t)i[e]!==t[e]&&(n[e]=t[e]);return new e(n)}(t,e.props);r.push(n)}else i.push(e);if(zP(t,View)&&t!==View&&e.props.id){const n=new t(e.props);o[n.id]=n}}else e&&i.push(e)}),Object.keys(o).length>0&&(Array.isArray(n)?n.forEach(e=>{o[e.id]=e}):n&&(o[n.id]=n),n=Object.values(o)),{layers:t=r.length>0?[r,t]:t,children:i,views:n}}(e),[e.layers,e.views,e.children]);let A=!0;const c=t=>A&&e.viewState?(o.viewStateUpdateRequested=t,null):(o.viewStateUpdateRequested=null,e.onViewStateChange?.(t)),u=t=>{A?o.interactionStateUpdateRequested=t:(o.interactionStateUpdateRequested=null,e.onInteractionStateChange?.(t))},h=(0,GP.useMemo)(()=>{const t={widgets:[],...e,style:null,width:"100%",height:"100%",parent:s.current,canvas:a.current,layers:l.layers,onViewStateChange:c,onInteractionStateChange:u};return l.views&&(t.views=l.views),delete t._customRender,o.deck&&(o.deck.setProps(t),o.deck.isInitialized&&(o.lastRenderedViewports=o.deck.getViewports())),t},[e]);(0,GP.useEffect)(()=>{const t=e.Deck||Ji;return o.deck=function(e,t,n){const i=new t({...n,_customRender:"webgpu"===n.deviceProps?.adapters?.[0]?.type?void 0:t=>{e.redrawReason=t;const n=i.getViewports();e.lastRenderedViewports!==n?e.forceUpdate():JP(e)}});return i}(o,t,{...h,parent:s.current,canvas:a.current}),()=>o.deck?.finalize()},[]),VP(()=>{JP(o);const{viewStateUpdateRequested:e,interactionStateUpdateRequested:t}=o;e&&c(e),t&&u(t),o.deck?.isInitialized&&o.deck.redraw("Initial render")}),(0,GP.useImperativeHandle)(t,()=>function(e){return{get deck(){return e.deck},pickObjectAsync:t=>e.deck.pickObjectAsync(t),pickObjectsAsync:t=>e.deck.pickObjectsAsync(t),pickObject:t=>e.deck.pickObject(t),pickMultipleObjects:t=>e.deck.pickMultipleObjects(t),pickObjects:t=>e.deck.pickObjects(t)}}(o),[]);const d=o.deck&&o.deck.isInitialized?o.deck.getViewports():void 0,{ContextProvider:f,width:p="100%",height:g="100%",id:m,style:_}=e,{containerStyle:b,canvasStyle:v}=(0,GP.useMemo)(()=>function({width:e,height:t,style:n}){const i={position:"absolute",zIndex:0,left:0,top:0,width:e,height:t},r={left:0,top:0};if(n)for(const e in n)e in KP?r[e]=n[e]:i[e]=n[e];return{containerStyle:i,canvasStyle:r}}({width:p,height:g,style:_}),[p,g,_]);if(!o.viewStateUpdateRequested&&o.lastRenderedViewports===d||o.version!==n){o.lastRenderedViewports=d,o.version=n;const e=function({children:e,deck:t,ContextProvider:n=XP.Provider}){const{viewManager:i}=t||{};if(!i||!i.views.length)return[];const r={},o=i.views[0].id;for(const t of e){let e=o,n=t;jP(t)&&zP(t.type,View)&&(e=t.props.id||o,n=t.props.children);const s=i.getViewport(e),a=i.getViewState(e);if(s){a.padding=s.padding;const{x:t,y:i,width:o,height:l}=s;n=WP(n,{x:t,y:i,width:o,height:l,viewport:s,viewState:a}),r[e]||(r[e]={viewport:s,children:[]}),r[e].children.push(n)}}return Object.keys(r).map(e=>{const{viewport:i,children:o}=r[e],{x:s,y:a,width:l,height:A}=i,c={position:"absolute",left:s,top:a,width:l,height:A},u=`view-${e}`,h=(0,GP.createElement)("div",{key:u,id:u,style:c},...o),d={deck:t,viewport:i,container:t.canvas.offsetParent,eventManager:t.eventManager,onViewStateChange:n=>{n.viewId=e,t._onViewStateChange(n)},widgets:[]},f=`view-${e}-context`;return(0,GP.createElement)(n,{key:f,value:d},h)})}({children:l.children,deck:o.deck,ContextProvider:f}),t=(0,GP.createElement)("canvas",{key:"canvas",id:m||"deckgl-overlay",ref:a,style:v}),i=(0,GP.createElement)("div",{key:"deck-events-root",className:"deck-events-root",style:{width:p,height:g}},[t,e]),r=(0,GP.createElement)("div",{key:"deck-widgets-root",className:"deck-widgets-root"});o.control=(0,GP.createElement)("div",{id:`${m||"deckgl"}-wrapper`,ref:s,style:b},[i,r])}return A=!1,o.control}),YP=qP;var ZP,$P,eM,tM,nM,iM,rM,oM,sM,aM,lM,AM,cM,uM,hM={},dM=[],fM=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,pM=Array.isArray;function gM(e,t){for(var n in t)e[n]=t[n];return e}function mM(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function _M(e,t,n,i,r){var o={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++eM,__i:-1,__u:0};return null==r&&null!=$P.vnode&&$P.vnode(o),o}function bM(e){return e.children}function vM(e,t){this.props=e,this.context=t}function yM(e,t){if(null==t)return e.__?yM(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?yM(e):null}function CM(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,i=[],r=[],o=gM({},t);o.__v=t.__v+1,$P.vnode&&$P.vnode(o),LM(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,i,n??yM(t),!!(32&t.__u),r),o.__v=t.__v,o.__.__k[o.__i]=o,DM(i,o,r),t.__e=t.__=null,o.__e!=n&&wM(o)}}function wM(e){if(null!=(e=e.__)&&null!=e.__c)return e.__e=e.__c.base=null,e.__k.some(function(t){if(null!=t&&null!=t.__e)return e.__e=e.__c.base=t.__e}),wM(e)}function EM(e){(!e.__d&&(e.__d=!0)&&tM.push(e)&&!xM.__r++||nM!=$P.debounceRendering)&&((nM=$P.debounceRendering)||iM)(xM)}function xM(){try{for(var e,t=1;tM.length;)tM.length>t&&tM.sort(rM),e=tM.shift(),t=tM.length,CM(e)}finally{tM.length=xM.__r=0}}function TM(e,t,n,i,r,o,s,a,l,A,c){var u,h,d,f,p,g,m,_=i&&i.__k||dM,b=t.length;for(l=SM(n,t,_,l,b),u=0;u<b;u++)null!=(d=n.__k[u])&&(h=-1!=d.__i&&_[d.__i]||hM,d.__i=u,g=LM(e,d,h,r,o,s,a,l,A,c),f=d.__e,d.ref&&h.ref!=d.ref&&(h.ref&&kM(h.ref,null,d),c.push(d.ref,d.__c||f,d)),null==p&&null!=f&&(p=f),(m=!!(4&d.__u))||h.__k===d.__k?(l=PM(d,l,e,m),m&&h.__e&&(h.__e=null)):"function"==typeof d.type&&void 0!==g?l=g:f&&(l=f.nextSibling),d.__u&=-7);return n.__e=p,l}function SM(e,t,n,i,r){var o,s,a,l,A,c=n.length,u=c,h=0;for(e.__k=new Array(r),o=0;o<r;o++)null!=(s=t[o])&&"boolean"!=typeof s&&"function"!=typeof s?("string"==typeof s||"number"==typeof s||"bigint"==typeof s||s.constructor==String?s=e.__k[o]=_M(null,s,null,null,null):pM(s)?s=e.__k[o]=_M(bM,{children:s},null,null,null):void 0===s.constructor&&s.__b>0?s=e.__k[o]=_M(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[o]=s,l=o+h,s.__=e,s.__b=e.__b+1,a=null,-1!=(A=s.__i=MM(s,n,l,u))&&(u--,(a=n[A])&&(a.__u|=2)),null==a||null==a.__v?(-1==A&&(r>c?h--:r<c&&h++),"function"!=typeof s.type&&(s.__u|=4)):A!=l&&(A==l-1?h--:A==l+1?h++:(A>l?h--:h++,s.__u|=4))):e.__k[o]=null;if(u)for(o=0;o<c;o++)null!=(a=n[o])&&!(2&a.__u)&&(a.__e==i&&(i=yM(a)),UM(a,a));return i}function PM(e,t,n,i){var r,o;if("function"==typeof e.type){for(r=e.__k,o=0;r&&o<r.length;o++)r[o]&&(r[o].__=e,t=PM(r[o],t,n,i));return t}e.__e!=t&&(i&&(t&&e.type&&!t.parentNode&&(t=yM(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8==t.nodeType);return t}function MM(e,t,n,i){var r,o,s,a=e.key,l=e.type,A=t[n],c=null!=A&&!(2&A.__u);if(null===A&&null==a||c&&a==A.key&&l==A.type)return n;if(i>(c?1:0))for(r=n-1,o=n+1;r>=0||o<t.length;)if(null!=(A=t[s=r>=0?r--:o++])&&!(2&A.__u)&&a==A.key&&l==A.type)return s;return-1}function RM(e,t,n){"-"==t[0]?e.setProperty(t,n??""):e[t]=null==n?"":"number"!=typeof n||fM.test(t)?n:n+"px"}function BM(e,t,n,i,r){var o,s;e:if("style"==t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof i&&(e.style.cssText=i=""),i)for(t in i)n&&t in n||RM(e.style,t,"");if(n)for(t in n)i&&n[t]==i[t]||RM(e.style,t,n[t])}else if("o"==t[0]&&"n"==t[1])o=t!=(t=t.replace(lM,"$1")),s=t.toLowerCase(),t=s in e||"onFocusOut"==t||"onFocusIn"==t?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?i?n[aM]=i[aM]:(n[aM]=AM,e.addEventListener(t,o?uM:cM,o)):e.removeEventListener(t,o?uM:cM,o);else{if("http://www.w3.org/2000/svg"==r)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=t&&"height"!=t&&"href"!=t&&"list"!=t&&"form"!=t&&"tabIndex"!=t&&"download"!=t&&"rowSpan"!=t&&"colSpan"!=t&&"role"!=t&&"popover"!=t&&t in e)try{e[t]=n??"";break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!=t[4]?e.removeAttribute(t):e.setAttribute(t,"popover"==t&&1==n?"":n))}}function IM(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t[sM])t[sM]=AM++;else if(t[sM]<n[aM])return;return n($P.event?$P.event(t):t)}}}function LM(e,t,n,i,r,o,s,a,l,A){var c,u,h,d,f,p,g,m,_,b,v,y,C,w,E,x,T=t.type;if(void 0!==t.constructor)return null;128&n.__u&&(l=!!(32&n.__u),o=[a=t.__e=n.__e]),(c=$P.__b)&&c(t);e:if("function"==typeof T){u=s.length;try{if(_=t.props,b=T.prototype&&T.prototype.render,v=(c=T.contextType)&&i[c.__c],y=c?v?v.props.value:c.__:i,n.__c?m=(h=t.__c=n.__c).__=h.__E:(b?t.__c=h=new T(_,y):(t.__c=h=new vM(_,y),h.constructor=T,h.render=GM),v&&v.sub(h),h.state||(h.state={}),h.__n=i,d=h.__d=!0,h.__h=[],h._sb=[]),b&&null==h.__s&&(h.__s=h.state),b&&null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=gM({},h.__s)),gM(h.__s,T.getDerivedStateFromProps(_,h.__s))),f=h.props,p=h.state,h.__v=t,d)b&&null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),b&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(b&&null==T.getDerivedStateFromProps&&_!==f&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(_,y),t.__v==n.__v||!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(_,h.__s,y)){t.__v!=n.__v&&(h.props=_,h.state=h.__s,h.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),dM.push.apply(h.__h,h._sb),h._sb=[],h.__h.length&&s.push(h);break e}null!=h.componentWillUpdate&&h.componentWillUpdate(_,h.__s,y),b&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(f,p,g)})}if(h.context=y,h.props=_,h.__P=e,h.__e=!1,C=$P.__r,w=0,b)h.state=h.__s,h.__d=!1,C&&C(t),c=h.render(h.props,h.state,h.context),dM.push.apply(h.__h,h._sb),h._sb=[];else do{h.__d=!1,C&&C(t),c=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++w<25);h.state=h.__s,null!=h.getChildContext&&(i=gM(gM({},i),h.getChildContext())),b&&!d&&null!=h.getSnapshotBeforeUpdate&&(g=h.getSnapshotBeforeUpdate(f,p)),E=null!=c&&c.type===bM&&null==c.key?OM(c.props.children):c,a=TM(e,pM(E)?E:[E],t,n,i,r,o,s,a,l,A),h.base=t.__e,t.__u&=-161,h.__h.length&&s.push(h),m&&(h.__E=h.__=null)}catch(e){if(s.length=u,t.__v=null,l||null!=o){if(e.then){for(t.__u|=l?160:128;a&&8==a.nodeType&&a.nextSibling;)a=a.nextSibling;null!=o&&(o[o.indexOf(a)]=null),t.__e=a}else if(null!=o)for(x=o.length;x--;)mM(o[x])}else t.__e=n.__e;null==t.__k&&(t.__k=n.__k||[]),e.then||FM(t),$P.__e(e,t,n)}}else null==o&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):a=t.__e=NM(n.__e,t,n,i,r,o,s,l,A);return(c=$P.diffed)&&c(t),128&t.__u?void 0:a}function FM(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(FM))}function DM(e,t,n){for(var i=0;i<n.length;i++)kM(n[i],n[++i],n[++i]);$P.__c&&$P.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){$P.__e(e,t.__v)}})}function OM(e){return"object"!=typeof e||null==e||e.__b>0?e:pM(e)?e.map(OM):void 0!==e.constructor?null:gM({},e)}function NM(e,t,n,i,r,o,s,a,l){var A,c,u,h,d,f,p,g=n.props||hM,m=t.props,_=t.type;if("svg"==_?r="http://www.w3.org/2000/svg":"math"==_?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),null!=o)for(A=0;A<o.length;A++)if((d=o[A])&&"setAttribute"in d==!!_&&(_?d.localName==_:3==d.nodeType)){e=d,o[A]=null;break}if(null==e){if(null==_)return document.createTextNode(m);e=document.createElementNS(r,_,m.is&&m),a&&($P.__m&&$P.__m(t,o),a=!1),o=null}if(null==_)g===m||a&&e.data==m||(e.data=m);else{if(o="textarea"==_&&null!=m.defaultValue?null:o&&ZP.call(e.childNodes),!a&&null!=o)for(g={},A=0;A<e.attributes.length;A++)g[(d=e.attributes[A]).name]=d.value;for(A in g)d=g[A],"dangerouslySetInnerHTML"==A?u=d:"children"==A||A in m||"value"==A&&"defaultValue"in m||"checked"==A&&"defaultChecked"in m||BM(e,A,null,d,r);for(A in m)d=m[A],"children"==A?h=d:"dangerouslySetInnerHTML"==A?c=d:"value"==A?f=d:"checked"==A?p=d:a&&"function"!=typeof d||g[A]===d||BM(e,A,d,g[A],r);if(c)a||u&&(c.__html==u.__html||c.__html==e.innerHTML)||(e.innerHTML=c.__html),t.__k=[];else if(u&&(e.innerHTML=""),TM("template"==t.type?e.content:e,pM(h)?h:[h],t,n,i,"foreignObject"==_?"http://www.w3.org/1999/xhtml":r,o,s,o?o[0]:n.__k&&yM(n,0),a,l),null!=o)for(A=o.length;A--;)mM(o[A]);a&&"textarea"!=_||(A="value","progress"==_&&null==f?e.removeAttribute("value"):null!=f&&(f!==e[A]||"progress"==_&&!f||"option"==_&&f!=g[A])&&BM(e,A,f,g[A],r),A="checked",null!=p&&p!=e[A]&&BM(e,A,p,g[A],r))}return e}function kM(e,t,n){try{if("function"==typeof e){var i="function"==typeof e.__u;i&&e.__u(),i&&null==t||(e.__u=e(t))}else e.current=t}catch(e){$P.__e(e,n)}}function UM(e,t,n){var i,r;if($P.unmount&&$P.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||kM(i,null,t)),null!=(i=e.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){$P.__e(e,t)}i.base=i.__P=i.__n=null}if(i=e.__k)for(r=0;r<i.length;r++)i[r]&&UM(i[r],t,n||"function"!=typeof e.type);n||mM(e.__e),e.__c=e.__=e.__e=void 0}function GM(e,t,n){return this.constructor(e,n)}function VM(e,t,n){var i,r,o,s;t==document&&(t=document.documentElement),$P.__&&$P.__(e,t),r=(i="function"==typeof n)?null:n&&n.__k||t.__k,o=[],s=[],LM(t,e=(!i&&n||t).__k=function(e,t,n){var i,r,o,s={};for(o in t)"key"==o?i=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?ZP.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===s[o]&&(s[o]=e.defaultProps[o]);return _M(e,s,i,r,null)}(bM,null,[e]),r||hM,hM,t.namespaceURI,!i&&n?[n]:r?null:t.firstChild?ZP.call(t.childNodes):null,o,!i&&n?n:r?r.__e:t.firstChild,i,s),DM(o,e,s),e.props.children=null}ZP=dM.slice,$P={__e:function(e,t,n,i){for(var r,o,s;t=t.__;)if((r=t.__c)&&!r.__)try{if((o=r.constructor)&&null!=o.getDerivedStateFromError&&(r.setState(o.getDerivedStateFromError(e)),s=r.__d),null!=r.componentDidCatch&&(r.componentDidCatch(e,i||{}),s=r.__d),s)return r.__E=r}catch(t){e=t}throw e}},eM=0,vM.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=gM({},this.state),"function"==typeof e&&(e=e(gM({},n),this.props)),e&&gM(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),EM(this))},vM.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),EM(this))},vM.prototype.render=bM,tM=[],iM="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,rM=function(e,t){return e.__v.__b-t.__v.__b},xM.__r=0,oM=Math.random().toString(8),sM="__d"+oM,aM="__a"+oM,lM=/(PointerCapture)$|Capture$/i,AM=0,cM=IM(!1),uM=IM(!0);var zM=0;Array.isArray;function HM(e,t,n,i,r,o){t||(t={});var s,a,l=t;if("ref"in l)for(a in l={},t)"ref"==a?s=t[a]:l[a]=t[a];var A={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--zM,__i:-1,__u:0,__source:r,__self:o};if("function"==typeof e&&(s=e.defaultProps))for(a in s)void 0===l[a]&&(l[a]=s[a]);return $P.vnode&&$P.vnode(A),A}const WM=e=>{const{children:t,orientation:n="horizontal"}=e;return HM("div",{className:`deck-widget-button-group ${n}`,children:t})};var jM,QM,XM,KM,JM=0,qM=[],YM=$P,ZM=YM.__b,$M=YM.__r,eR=YM.diffed,tR=YM.__c,nR=YM.unmount,iR=YM.__;function rR(e,t){YM.__h&&YM.__h(QM,e,JM||t),JM=0;var n=QM.__H||(QM.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function oR(e){return JM=1,function(e,t,n){var i=rR(jM++,2);if(i.t=e,!i.__c&&(i.__=[n?n(t):mR(void 0,t),function(e){var t=i.__N?i.__N[0]:i.__[0],n=i.t(t,e);t!==n&&(i.__N=[n,i.__[1]],i.__c.setState({}))}],i.__c=QM,!QM.__f)){var r=function(e,t,n){if(!i.__c.__H)return!0;var r=!1,s=i.__c.props!==e;if(i.__c.__H.__.some(function(e){if(e.__N){r=!0;var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}}),o){var a=o.call(this,e,t,n);return r?a||s:a}return!r||s};QM.__f=!0;var o=QM.shouldComponentUpdate,s=QM.componentWillUpdate;QM.componentWillUpdate=function(e,t,n){if(this.__e){var i=o;o=void 0,r(e,t,n),o=i}s&&s.call(this,e,t,n)},QM.shouldComponentUpdate=r}return i.__N||i.__}(mR,e)}function sR(e,t){var n=rR(jM++,3);!YM.__s&&gR(n.__H,t)&&(n.__=e,n.u=t,QM.__H.__h.push(n))}function aR(e,t){var n=rR(jM++,4);!YM.__s&&gR(n.__H,t)&&(n.__=e,n.u=t,QM.__h.push(n))}function lR(e){return JM=5,AR(function(){return{current:e}},[])}function AR(e,t){var n=rR(jM++,7);return gR(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function cR(e,t){return JM=8,AR(function(){return e},t)}function uR(){for(var e;e=qM.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(fR),t.__h.some(pR),t.__h=[]}catch(n){t.__h=[],YM.__e(n,e.__v)}}}YM.__b=function(e){QM=null,ZM&&ZM(e)},YM.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),iR&&iR(e,t)},YM.__r=function(e){$M&&$M(e),jM=0;var t=(QM=e.__c).__H;t&&(XM===QM?(t.__h=[],QM.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(fR),t.__h.some(pR),t.__h=[],jM=0)),XM=QM},YM.diffed=function(e){eR&&eR(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==qM.push(t)&&KM===YM.requestAnimationFrame||((KM=YM.requestAnimationFrame)||dR)(uR)),t.__H.__.some(function(e){e.u&&(e.__H=e.u,e.u=void 0)})),XM=QM=null},YM.__c=function(e,t){t.some(function(e){try{e.__h.some(fR),e.__h=e.__h.filter(function(e){return!e.__||pR(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],YM.__e(n,e.__v)}}),tR&&tR(e,t)},YM.unmount=function(e){nR&&nR(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{fR(e)}catch(e){t=e}}),n.__H=void 0,t&&YM.__e(t,n.__v))};var hR="function"==typeof requestAnimationFrame;function dR(e){var t,n=function(){clearTimeout(i),hR&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,35);hR&&(t=requestAnimationFrame(n))}function fR(e){var t=QM,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),QM=t}function pR(e){var t=QM;e.__c=e.__(),QM=t}function gR(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function mR(e,t){return"function"==typeof t?t(e):t}function _R(e){if(!e)return;const t=`url("${e.replace(/"/g,"'")}")`;return{maskImage:t,WebkitMaskImage:t}}const bR=e=>{const{className:t="",style:n,color:i,icon:r,label:o,onClick:s,children:a}=e,l=AR(()=>{const e=_R(r);return i?{...e,backgroundColor:i}:e},[i,r]);return HM("div",{className:"deck-widget-button",style:n,children:HM("button",{className:`deck-widget-icon-button ${t}`,type:"button",onClick:s,title:o,children:a||HM("div",{className:"deck-widget-icon",style:l})})})};class ZoomWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-zoom",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){VM(HM(WM,{orientation:this.props.orientation,children:[HM(bR,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),HM(bR,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]}),e)}isOrthographicView(e){const t=this.deck;return(t?.isInitialized&&t.getView(e))instanceof xo}handleZoom(e,t){const n=this.getViewState(e),i={};if(this.isOrthographicView(e)){const{zoomAxis:r}=this.props,{zoomX:o,minZoomX:s,maxZoomX:a,zoomY:l,minZoomY:A,maxZoomY:c}=function({zoom:e=0,zoomX:t,zoomY:n,minZoom:i=-1/0,maxZoom:r=1/0,minZoomX:o=i,maxZoomX:s=r,minZoomY:a=i,maxZoomY:l=r}){return t=t??(Array.isArray(e)?e[0]:e),n=n??(Array.isArray(e)?e[1]:e),{zoomX:t,zoomY:n,minZoomX:o,minZoomY:a,maxZoomX:s,maxZoomY:l}}(n);let u,h;if("X"===r)u=vR(o+t,s,a),h=l;else if("Y"===r)u=o,h=vR(l+t,A,c);else{const e=vR(t,Math.max(s-o,A-l),Math.min(a-o,c-l));u=o+e,h=l+e}i.zoom=[u,h],i.zoomX=u,i.zoomY=h,this.props.onZoom?.({viewId:e,delta:t,zoom:"Y"===r?h:u,zoomX:u,zoomY:h})}else{const{zoom:r=0,minZoom:o,maxZoom:s}=n,a=vR(r+t,o,s);i.zoom=a,this.props.onZoom?.({viewId:e,delta:t,zoom:a})}const r={...n,...i};this.props.transitionDuration>0&&(r.transitionDuration=this.props.transitionDuration,r.transitionInterpolator="latitude"in r?new FlyToInterpolator:new LinearInterpolator({transitionProps:"zoomX"in i?["zoomX","zoomY"]:["zoom"]})),this.setViewState(e,r)}handleZoomIn(){for(const e of this.viewIds)this.handleZoom(e,1)}handleZoomOut(){for(const e of this.viewIds)this.handleZoom(e,-1)}}function vR(e,t,n){return e<t?t:e>n?n:e}ZoomWidget.defaultProps={...Widget.defaultProps,id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",zoomAxis:"all",viewId:null,onZoom:()=>{}};class ResetViewWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-reset-view",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){VM(HM(bR,{className:"deck-widget-reset-focus",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){const e=this.props.initialViewState||this.deck?.props.initialViewState;this.resetViewState(e)}resetViewState(e){for(const t of this.viewIds){const n={...e?.[t]??e};this.props.onReset?.({viewId:t,viewState:n}),this.setViewState(t,n)}}}ResetViewWidget.defaultProps={...Widget.defaultProps,id:"reset-view",placement:"top-left",label:"Reset View",initialViewState:void 0,viewId:null,onReset:()=>{}};class GimbalWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-gimbal",this.placement="top-left",this.viewports={},this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const t=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[t],{rotationOrbit:i,rotationX:r}=this.getNormalizedRotation(n);VM(HM("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:HM("button",{type:"button",onClick:()=>{for(const e of Object.values(this.viewports))this.resetOrbitView(e)},title:this.props.label,style:{position:"relative",width:26,height:26},children:[HM("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateY(${i}deg)`},children:HM("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),HM("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateX(${r}deg)`},children:HM("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})}),e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){const t=this.viewId||e?.id||"OrbitView",n=this.getViewState(t);if("rotationOrbit"in n||"rotationX"in n){this.props.onReset?.({viewId:t,rotationOrbit:0,rotationX:0});const e={...n,rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new LinearInterpolator({transitionProps:["rotationOrbit","rotationX"]})};this.setViewState(t,e)}}getNormalizedRotation(e){const t=this.viewId||e?.id||"OrbitView",n=this.getViewState(t),[i,r]=this.getRotation(n);return{rotationOrbit:yR(i),rotationX:yR(r)}}getRotation(e){return e&&("rotationOrbit"in e||"rotationX"in e)?[-(e.rotationOrbit||0),e.rotationX||0]:[0,0]}}function yR(e){let t=((e+180)%360+360)%360-180;const n=t-90;return Math.abs(n)<10&&(n<10?t=100:n>-10&&(t=80)),t}GimbalWidget.defaultProps={...Widget.defaultProps,id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",strokeWidth:1.5,transitionDuration:200,onReset:()=>{}};class CompassWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-compass",this.placement="top-left",this.viewports={},this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const t=this.viewId||Object.values(this.viewports)[0]?.id,n=this.viewports[t],[i,r]=this.getRotation(n);VM(HM("div",{className:"deck-widget-button",style:{perspective:100},children:HM("button",{type:"button",onClick:()=>{for(const e of Object.values(this.viewports))this.handleCompassReset(e)},title:this.props.label,style:{transform:`rotateX(${r}deg)`},children:HM("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:HM("g",{transform:`rotate(${i},13,13)`,children:[HM("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),HM("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})}),e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof An.A?[-e.bearing,e.pitch]:e instanceof Tn?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){const t=this.viewId||e.id;if(e instanceof An.A){const n=this.getViewState(t),i=0===this.getRotation(e)[0],r=0,o=i?0:e.pitch;this.props.onReset?.({viewId:t,bearing:r,pitch:o});const s={...n,bearing:r,...i?{pitch:o}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new FlyToInterpolator};this.setViewState(t,s)}}}CompassWidget.defaultProps={...Widget.defaultProps,id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",transitionDuration:200,onReset:()=>{}};class ScaleWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-scale",this.placement="bottom-left",this.scaleWidth=10,this.scaleValue=0,this.scaleText="",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const t=50;VM(HM("svg",{className:"deck-widget-scale",width:t+this.scaleWidth,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[HM("text",{x:55,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),HM("line",{x1:t,y1:"15",x2:t+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),HM("line",{x1:t,y1:"15",x2:t,y2:5,stroke:"black",strokeWidth:"6"}),HM("line",{x1:t+this.scaleWidth,y1:"15",x2:t+this.scaleWidth,y2:5,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;const{latitude:t,zoom:n}=e,i=function(e,t){return 40075016.686*Math.cos(e*Math.PI/180)/Math.pow(2,t+8)}(t,n),{candidate:r,candidatePixels:o}=function(e){const t=100,n=200,i=(t+n)/2*e,r=Math.floor(Math.log10(i)),o=Math.pow(10,r),s=[1,2,5];let a=s[0]*o,l=a/e;for(let i=0;i<s.length;i++){const r=s[i]*o,A=r/e;if(A>=t&&A<=n){a=r,l=A;break}if(A>n){a=i>0?s[i-1]*o:r,l=a/e;break}i===s.length-1&&A<t&&(a=s[0]*o*10,l=a/e)}return{candidate:a,candidatePixels:l}}(i);this.scaleValue=r,this.scaleWidth=o,this.scaleText=r>=1e3?`${(r/1e3).toFixed(1)} km`:`${r} m`,this.updateHTML()}handleClick(){}}function CR(e){return"string"==typeof e?e:e.label}ScaleWidget.defaultProps={...Widget.defaultProps,id:"scale",placement:"bottom-left",label:"Scale",viewId:null};const wR=e=>{const[t,n]=oR(!1);return HM(ER,{...e,style:{...e.style,position:"absolute"},isOpen:t,onClose:()=>n(!1),trigger:HM("button",{className:"deck-widget-dropdown-button",onClick:()=>n(!t),children:HM("span",{className:"deck-widget-dropdown-icon "+(t?"open":"")})})})},ER=e=>{const t=lR(null);sR(()=>{const n=n=>{t.current&&!t.current.contains(n.target)&&e.onClose()};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]);return 0===e.menuItems.length?null:HM("div",{className:"deck-widget-dropdown-container",ref:t,children:[e.trigger,e.isOpen&&HM("ul",{className:"deck-widget-dropdown-menu",style:e.style,children:e.menuItems.map((t,n)=>{const i=function(e){return"string"==typeof e?e:e.value}(t),r=function(e){return"string"==typeof e?void 0:e.icon}(t);return HM("li",{className:"deck-widget-dropdown-item "+(i?"":"disabled"),onClick:()=>((t,n)=>{t&&("object"==typeof n&&n.onSelect?.(),e.onSelect?.(t),e.onClose())})(i,t),children:[r&&HM("span",{className:"deck-widget-dropdown-item-icon",style:_R(r)}),CR(t)]},n)})})]})},xR="deck-geocoder-history";class GeocoderHistory{constructor(e){this.addressText="",this.errorText="",this.addressHistory=[],this.props={maxEntries:5,...e},this.addressHistory=this.loadPreviousAddresses()}async geocode(e,t,n){this.errorText="",this.addressText=t;try{const i=await e.geocode(t,n);if(i)return this.storeAddress(this.addressText),i;this.errorText="Invalid address"}catch(e){this.errorText=`${e.message}`}return null}loadPreviousAddresses(){try{const e=window.localStorage.getItem(xR),t=e&&JSON.parse(e),n=Array.isArray(t)?t.filter(e=>"string"==typeof e):[];return n}catch{}return[]}storeAddress(e){const t=e.trim();if(!t||"current"===t)return;const n=[t,...this.addressHistory.filter(e=>e!==t)];this.addressHistory=n.slice(0,this.props.maxEntries);try{window.localStorage.setItem(xR,JSON.stringify(this.addressHistory))}catch{}}}const TR={name:"google",requiresApiKey:!0,async geocode(e,t){const n=encodeURIComponent(e),i=await RR(`https://maps.googleapis.com/maps/api/geocode/json?address=${n}&key=${t}`);if("OK"===i.status){const e=i.results.length>0&&i.results[0].geometry.location;return e?{longitude:e.lng,latitude:e.lat}:null}throw new Error(`Google Geocoder failed: ${i.status}`)}},SR={name:"google",requiresApiKey:!0,async geocode(e,t){const n=encodeURIComponent(e),i=await RR(`https://api.mapbox.com/geocoding/v5/mapbox.places/${n}.json?access_token=${t}`);if(Array.isArray(i.features)&&i.features.length>0){const e=i.features[0].center;if(Array.isArray(e)&&e.length>=2)return{longitude:e[0],latitude:e[1]}}return null}},PR={name:"opencage",requiresApiKey:!0,async geocode(e,t){const n=encodeURIComponent(e),i=await RR(`https://api.opencagedata.com/geocode/v1/json?q=${n}&key=${t}`);if(Array.isArray(i.results)&&i.results.length>0){const e=i.results[0].geometry;return{longitude:e.lng,latitude:e.lat}}return null}},MR={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw new Error("Geolocation not supported");return new Promise((e,t)=>{navigator.geolocation.getCurrentPosition(t=>{const{longitude:n,latitude:i}=t.coords;e({longitude:n,latitude:i})},e=>t(new Error(e.message)))})}};async function RR(e){let t;try{t=await fetch(e)}catch(t){throw new Error(`CORS error? ${t}. ${e}: `)}if(!t.ok)throw new Error(`${t.statusText}. ${e}: `);const n=await t.json();if(!n)throw new Error(`No data returned. ${e}`);return n}const BR={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37°48'N, 122°27'W",geocode:async e=>function(e){const t=(e=e.trim()).split(/[,;]/).map(e=>e.trim());if(t.length<2)return null;const n=IR(t[0]),i=IR(t[1]);if(null===n||null===i)return null;if(Math.abs(n)>90&&Math.abs(i)>90)return null;if(Math.abs(n)>90)return{longitude:n,latitude:i};if(Math.abs(i)>90)return{longitude:i,latitude:n};return{latitude:n,longitude:i}}(e)||null};function IR(e){if((e=e.trim()).includes("°")||e.includes("'")||e.includes('"')){const t=function(e){const t=/(-?\d+)[°d]\s*(\d+)?['′m]?\s*(\d+(?:\.\d+)?)?[\"″s]?\s*([NSEW])?/i,n=e.match(t);if(!n)return NaN;const i=parseFloat(n[1])||0,r=parseFloat(n[2])||0,o=parseFloat(n[3])||0,s=n[4]||"",a=i<0?-1:1;let l=Math.abs(i)+r/60+o/3600;/[SW]/i.test(s)?l=-l:l*=a;return l}(e);return isNaN(t)?null:t}let t=1;/[SW]/i.test(e)&&(t=-1),e=e.replace(/[NSEW]/gi,"");const n=parseFloat(e);return isNaN(n)?null:t*n}const LR="current",FR={label:"Current location",value:LR,icon:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M480-480q33 0 56.5-23.5T560-560q0-33-23.5-56.5T480-640q-33 0-56.5 23.5T400-560q0 33 23.5 56.5T480-480Zm0 294q122-112 181-203.5T720-552q0-109-69.5-178.5T480-800q-101 0-170.5 69.5T240-552q0 71 59 162.5T480-186Zm0 106Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Z'/%3E%3C/svg%3E"};class GeocoderWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-geocoder",this.placement="top-left",this.geocodeHistory=new GeocoderHistory({}),this.addressText="",this.geocoder=BR,this.isGettingLocation=!1,this.setInput=e=>{this.addressText=e},this.handleKeyPress=e=>{"Enter"===e.key&&this.handleSubmit()},this.handleSelect=e=>{e===LR?this.getCurrentLocation():(this.setInput(e),this.handleSubmit())},this.handleSubmit=()=>{this.geocode(this.addressText)},this.getCurrentLocation=async()=>{this.isGettingLocation=!0,this.rootElement&&this.updateHTML();try{const e=await MR.geocode();e&&this.flyTo(e)}catch(e){this.geocodeHistory.errorText=e instanceof Error?e.message:"Location error"}finally{this.isGettingLocation=!1,this.rootElement&&this.updateHTML()}},this.geocode=async e=>{const t=await this.geocodeHistory.geocode(this.geocoder,this.addressText,this.props.apiKey);this.rootElement&&this.updateHTML(),t&&this.flyTo(t)},this.setProps(this.props)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this.geocoder=function(e){switch(e.geocoder){case"google":return TR;case"mapbox":return SR;case"opencage":return PR;case"coordinates":return BR;case"custom":if(!e.customGeocoder)throw new Error("Custom geocoder is not defined");return e.customGeocoder;default:throw new Error(`Unknown geocoder: ${e.geocoder}`)}}(this.props),this.geocoder.requiresApiKey&&!this.props.apiKey)throw new Error(`API key is required for the ${this.geocoder.name} geocoder`);super.setProps(e)}onRenderHTML(e){const t=this.props._geolocation?[FR,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];VM(HM("div",{className:"deck-widget-geocoder",children:[HM("input",{className:"deck-widget-geocoder-input",type:"text",placeholder:this.isGettingLocation?"Finding your location...":this.geocoder.placeholderLocation??"Enter address or location",value:this.geocodeHistory.addressText,onInput:e=>this.setInput(e.target?.value||""),onKeyPress:this.handleKeyPress}),HM(wR,{menuItems:t,onSelect:this.handleSelect}),this.geocodeHistory.errorText&&HM("div",{className:"deck-widget-geocoder-error",children:this.geocodeHistory.errorText})]}),e)}flyTo(e){for(const t of this.viewIds){"longitude"in e&&"latitude"in e&&this.props.onGeocode?.({viewId:t,coordinates:{longitude:e.longitude,latitude:e.latitude,zoom:e.zoom}});const n={...this.getViewState(t),...e};this.props.transitionDuration>0&&(n.transitionDuration=this.props.transitionDuration,n.transitionInterpolator="latitude"in n?new FlyToInterpolator:new LinearInterpolator),this.setViewState(t,n)}}}GeocoderWidget.defaultProps={...Widget.defaultProps,id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:BR,apiKey:"",_geolocation:!1,onGeocode:()=>{}};class FullscreenWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-fullscreen",this.placement="top-left",this.fullscreen=!1,this.setProps(this.props)}onAdd(){document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRemove(){document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRenderHTML(e){const t=this.getFullscreen();VM(HM(bR,{onClick:()=>{this.handleClick().catch(e=>_e.A.error(e)())},label:t?this.props.exitLabel:this.props.enterLabel,className:t?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"}),e)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}getContainer(){return this.props.container||this.deck?.props.parent||this.deck?.getCanvas()?.parentElement}getFullscreen(){return this.fullscreen}onFullscreenChange(){const e=document.fullscreenElement===this.getContainer();e!==this.fullscreen&&(this.fullscreen=e,this.props.onFullscreenChange?.(e),this.updateHTML())}async handleClick(){this.getFullscreen()?await this.exitFullscreen():await this.requestFullscreen()}async requestFullscreen(){const e=this.getContainer();e?.requestFullscreen?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){this.getContainer()?.classList.toggle("deck-pseudo-fullscreen"),this.fullscreen=!this.fullscreen,this.props.onFullscreenChange?.(this.fullscreen),this.updateHTML()}}function DR(e){const t=[],n=e=>"views"in e;return function e(i){const r=t.length,o=i.minSplit??.05,s=i.maxSplit??.95,a=Math.min(Math.max(i.initialSplit??.5,o),s),l={id:r,orientation:i.orientation,views:i.views,split:a,editable:i.editable??!0,minSplit:o,maxSplit:s,x:0,y:0,width:0,height:0};return t.push(l),l.views=[n(i.views[0])?e(i.views[0]):i.views[0],n(i.views[1])?e(i.views[1]):i.views[1]],l}(e),t}function OR(e){const t=[];return function e(n,i,r,o,s){n.x=i,n.y=r,n.width=o,n.height=s;const a=i,l=r;let A=o,c=s,u=i,h=r,d=o,f=s;"horizontal"===n.orientation?(A=o*n.split,u=i+A,d=o-A):(c=s*n.split,h=r+c,f=s-c);const[p,g]=n.views;"views"in p?e(p,a,l,A,c):t.push(p.clone({x:`${a}%`,y:`${l}%`,width:`${A}%`,height:`${c}%`})),"views"in g?e(g,u,h,d,f):t.push(g.clone({x:`${u}%`,y:`${h}%`,width:`${d}%`,height:`${f}%`}))}(e,0,0,100,100),t}FullscreenWidget.defaultProps={...Widget.defaultProps,id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",container:void 0,onFullscreenChange:()=>{}};class SplitterWidget extends Widget{constructor(e){super(e),this.className="deck-widget-splitter",this.placement="fill",this.needsUpdate=!0,this.viewLayouts=DR(this.props.viewLayout)}setProps(e){e.viewLayout&&!(0,$t.b)(e.viewLayout,this.props.viewLayout,-1)&&(this.viewLayouts=DR(e.viewLayout),this.views=void 0),super.setProps(e)}onRedraw(){super.updateHTML()}updateHTML(){this.views||(this.views=OR(this.viewLayouts[0]),this.props.onChange(this.views.slice())),requestAnimationFrame(()=>{this.doUpdate()})}doUpdate(){if(this.deck){const e=this.deck.props.views;e&&e!==this.lastViews||this.lastViews===this.views||(this.lastViews=this.views,this.deck.setProps({views:this.views}))}}onChange(e,t){t.split=e,this.views=OR(this.viewLayouts[0]),this.props.onChange(this.views.slice()),this.doUpdate()}onRenderHTML(e){VM(HM(bM,{children:this.viewLayouts.map(e=>e.editable&&HM(NR,{...e,onChange:t=>this.onChange(t,e),onDragStart:()=>this.props.onDragStart(),onDragEnd:()=>this.props.onDragStart()}))}),e)}}function NR({orientation:e,x:t,y:n,width:i,height:r,split:o,minSplit:s,maxSplit:a,onChange:l,onDragStart:A,onDragEnd:c}){const[u,h]=oR(!1),d=lR(null);sR(()=>{if(!u)return;const t=t=>{if(!d.current)return;const n=d.current.getBoundingClientRect();let i;i="horizontal"===e?(t.clientX-n.left)/n.width:(t.clientY-n.top)/n.height,i=Math.min(Math.max(i,s),a),l?.(i)},n=()=>{c?.(),h(!1)};return document.addEventListener("pointermove",t),document.addEventListener("pointerup",n),document.addEventListener("pointerleave",n),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",n),document.removeEventListener("pointerleave",n)}},[u]);return HM("div",{ref:d,style:{position:"absolute",top:`${n}%`,left:`${t}%`,width:`${i}%`,height:`${r}%`},children:HM("div",{className:`deck-widget-splitter-handle deck-widget-splitter-handle--${e} ${u?"active":""}`,style:"horizontal"===e?{left:100*o+"%"}:{top:100*o+"%"},onPointerDown:e=>{h(!0),A?.(),e.preventDefault()}})})}SplitterWidget.defaultProps={...Widget.defaultProps,id:"splitter-widget",viewLayout:void 0,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}};const kR=Math.min,UR=Math.max,GR=Math.round,VR=Math.floor,zR=e=>({x:e,y:e}),HR={left:"right",right:"left",bottom:"top",top:"bottom"};function WR(e,t,n){return UR(e,kR(t,n))}function jR(e,t){return"function"==typeof e?e(t):e}function QR(e){return e.split("-")[0]}function XR(e){return e.split("-")[1]}function KR(e){return"x"===e?"y":"x"}function JR(e){return"y"===e?"height":"width"}function qR(e){const t=e[0];return"t"===t||"b"===t?"y":"x"}function YR(e){return KR(qR(e))}function ZR(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const $R=["left","right"],eB=["right","left"],tB=["top","bottom"],nB=["bottom","top"];function iB(e,t,n,i){const r=XR(e);let o=function(e,t,n){switch(e){case"top":case"bottom":return n?t?eB:$R:t?$R:eB;case"left":case"right":return t?tB:nB;default:return[]}}(QR(e),"start"===n,i);return r&&(o=o.map(e=>e+"-"+r),t&&(o=o.concat(o.map(ZR)))),o}function rB(e){const t=QR(e);return HR[t]+e.slice(t.length)}function oB(e){return"number"!=typeof e?function(e){var t,n,i,r;return{top:null!=(t=e.top)?t:0,right:null!=(n=e.right)?n:0,bottom:null!=(i=e.bottom)?i:0,left:null!=(r=e.left)?r:0}}(e):{top:e,right:e,bottom:e,left:e}}function sB(e){const{x:t,y:n,width:i,height:r}=e;return{width:i,height:r,top:n,left:t,right:t+i,bottom:n+r,x:t,y:n}}function aB(e,t,n){let{reference:i,floating:r}=e;const o=qR(t),s=YR(t),a=JR(s),l=QR(t),A="y"===o,c=i.x+i.width/2-r.width/2,u=i.y+i.height/2-r.height/2,h=i[a]/2-r[a]/2;let d;switch(l){case"top":d={x:c,y:i.y-r.height};break;case"bottom":d={x:c,y:i.y+i.height};break;case"right":d={x:i.x+i.width,y:u};break;case"left":d={x:i.x-r.width,y:u};break;default:d={x:i.x,y:i.y}}const f=XR(t);return f&&(d[s]+=h*("end"===f?1:-1)*(n&&A?-1:1)),d}async function lB(e,t){var n;void 0===t&&(t={});const{x:i,y:r,platform:o,rects:s,elements:a,strategy:l}=e,{boundary:A="clippingAncestors",rootBoundary:c="viewport",elementContext:u="floating",altBoundary:h=!1,padding:d=0}=jR(t,e),f=oB(d),p=a[h?"floating"===u?"reference":"floating":u],g=sB(await o.getClippingRect({element:null==(n=await(null==o.isElement?void 0:o.isElement(p)))||n?p:p.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(a.floating)),boundary:A,rootBoundary:c,strategy:l})),m="floating"===u?{x:i,y:r,width:s.floating.width,height:s.floating.height}:s.reference,_=await(null==o.getOffsetParent?void 0:o.getOffsetParent(a.floating)),b=await(null==o.isElement?void 0:o.isElement(_))&&await(null==o.getScale?void 0:o.getScale(_))||{x:1,y:1},v=sB(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:m,offsetParent:_,strategy:l}):m);return{top:(g.top-v.top+f.top)/b.y,bottom:(v.bottom-g.bottom+f.bottom)/b.y,left:(g.left-v.left+f.left)/b.x,right:(v.right-g.right+f.right)/b.x}}const AB=new Set(["left","top"]);function cB(){return"undefined"!=typeof window}function uB(e){return fB(e)?(e.nodeName||"").toLowerCase():"#document"}function hB(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function dB(e){var t;return null==(t=(fB(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function fB(e){return!!cB()&&(e instanceof Node||e instanceof hB(e).Node)}function pB(e){return!!cB()&&(e instanceof Element||e instanceof hB(e).Element)}function gB(e){return!!cB()&&(e instanceof HTMLElement||e instanceof hB(e).HTMLElement)}function mB(e){return!(!cB()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof hB(e).ShadowRoot)}function _B(e){const{overflow:t,overflowX:n,overflowY:i,display:r}=PB(e);return/auto|scroll|overlay|hidden|clip/.test(t+i+n)&&"inline"!==r&&"contents"!==r}function bB(e){return/^(table|td|th)$/.test(uB(e))}function vB(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}const yB=/transform|translate|scale|rotate|perspective|filter/,CB=/paint|layout|strict|content/,wB=e=>!!e&&"none"!==e;let EB;function xB(e){const t=pB(e)?PB(e):e;return wB(t.transform)||wB(t.translate)||wB(t.scale)||wB(t.rotate)||wB(t.perspective)||!TB()&&(wB(t.backdropFilter)||wB(t.filter))||yB.test(t.willChange||"")||CB.test(t.contain||"")}function TB(){return null==EB&&(EB="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),EB}function SB(e){return/^(html|body|#document)$/.test(uB(e))}function PB(e){return hB(e).getComputedStyle(e)}function MB(e){return pB(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function RB(e){if("html"===uB(e))return e;const t=e.assignedSlot||e.parentNode||mB(e)&&e.host||dB(e);return mB(t)?t.host:t}function BB(e){const t=RB(e);return SB(t)?(e.ownerDocument||e).body:gB(t)&&_B(t)?t:BB(t)}function IB(e,t,n){var i;void 0===t&&(t=[]),void 0===n&&(n=!0);const r=BB(e),o=r===(null==(i=e.ownerDocument)?void 0:i.body),s=hB(r);if(o){const e=LB(s);return t.concat(s,s.visualViewport||[],_B(r)?r:[],e&&n?IB(e):[])}return t.concat(r,IB(r,[],n))}function LB(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function FB(e){const t=PB(e);let n=parseFloat(t.width)||0,i=parseFloat(t.height)||0;const r=gB(e),o=r?e.offsetWidth:n,s=r?e.offsetHeight:i,a=GR(n)!==o||GR(i)!==s;return a&&(n=o,i=s),{width:n,height:i,$:a}}function DB(e){return pB(e)?e:e.contextElement}function OB(e){const t=DB(e);if(!gB(t))return zR(1);const n=t.getBoundingClientRect(),{width:i,height:r,$:o}=FB(t);let s=(o?GR(n.width):n.width)/i,a=(o?GR(n.height):n.height)/r;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}const NB=zR(0);function kB(e){const t=hB(e);return TB()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:NB}function UB(e,t,n,i){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=e.getBoundingClientRect(),o=DB(e);let s=zR(1);t&&(i?pB(i)&&(s=OB(i)):s=OB(e));const a=function(e,t,n){return void 0===t&&(t=!1),!!n&&t&&n===hB(e)}(o,n,i)?kB(o):zR(0);let l=(r.left+a.x)/s.x,A=(r.top+a.y)/s.y,c=r.width/s.x,u=r.height/s.y;if(o&&i){const e=hB(o),t=pB(i)?hB(i):i;let n=e,r=LB(n);for(;r&&t!==n;){const e=OB(r),t=r.getBoundingClientRect(),i=PB(r),o=t.left+(r.clientLeft+parseFloat(i.paddingLeft))*e.x,s=t.top+(r.clientTop+parseFloat(i.paddingTop))*e.y;l*=e.x,A*=e.y,c*=e.x,u*=e.y,l+=o,A+=s,n=hB(r),r=LB(n)}}return sB({width:c,height:u,x:l,y:A})}function GB(e,t){const n=MB(e).scrollLeft;return t?t.left+n:UB(dB(e)).left+n}function VB(e,t){const n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-GB(e,n),y:n.top+t.scrollTop}}function zB(e,t,n){let i;if("viewport"===t||"layoutViewport"===t)i=function(e,t,n){void 0===n&&(n="viewport");const i="layoutViewport"===n,r=hB(e),o=dB(e),s=r.visualViewport;let a=o.clientWidth,l=o.clientHeight,A=0,c=0;if(s){const e=!TB()||"fixed"===t;i?e||(A=-s.offsetLeft,c=-s.offsetTop):(a=s.width,l=s.height,e&&(A=s.offsetLeft,c=s.offsetTop))}if(GB(o)<=0){const e=o.ownerDocument,t=e.body,n=getComputedStyle(t),i="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,r=Math.abs(o.clientWidth-t.clientWidth-i),s="stable both-edges"===getComputedStyle(o).scrollbarGutter?r/2:r;s<=25&&(a-=s)}return{width:a,height:l,x:A,y:c}}(e,n,t);else if("document"===t)i=function(e){const t=MB(e),n=e.ownerDocument.body,i=UR(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=UR(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let o=-t.scrollLeft+GB(e);const s=-t.scrollTop;return"rtl"===PB(n).direction&&(o+=UR(e.clientWidth,n.clientWidth)-i),{width:i,height:r,x:o,y:s}}(dB(e));else if(pB(t))i=function(e,t){const n=UB(e,!0,"fixed"===t),i=n.top+e.clientTop,r=n.left+e.clientLeft,o=OB(e);return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:r*o.x,y:i*o.y}}(t,n);else{const n=kB(e);i={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return sB(i)}function HB(e,t,n){const i=gB(t),r=dB(t),o="fixed"===n,s=UB(e,!0,o,t);let a={scrollLeft:0,scrollTop:0};const l=zR(0);if((i||!o)&&(("body"!==uB(t)||_B(r))&&(a=MB(t)),i)){const e=UB(t,!0,o,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}!i&&r&&(l.x=GB(r));const A=!r||i||o?zR(0):VB(r,a);return{x:s.left+a.scrollLeft-l.x-A.x,y:s.top+a.scrollTop-l.y-A.y,width:s.width,height:s.height}}function WB(e){return"static"===PB(e).position}function jB(e,t){if(!gB(e)||"fixed"===PB(e).position)return null;if(t)return t(e);let n=e.offsetParent;return dB(e)===n&&(n=n.ownerDocument.body),n}function QB(e,t){const n=hB(e);if(vB(e))return n;if(!gB(e)){let t=RB(e);for(;t&&!SB(t);){if(pB(t)&&!WB(t))return t;t=RB(t)}return n}let i=jB(e,t);for(;i&&bB(i)&&WB(i);)i=jB(i,t);return i&&SB(i)&&WB(i)&&!xB(i)?n:i||function(e){let t=RB(e);for(;gB(t)&&!SB(t);){if(xB(t))return t;if(vB(t))return null;t=RB(t)}return null}(e)||n}const XB={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:i,strategy:r}=e;const o="fixed"===r,s=dB(i),a=!!t&&vB(t.floating);if(i===s||a&&o)return n;let l={scrollLeft:0,scrollTop:0},A=zR(1);const c=zR(0),u=gB(i);if((u||!o)&&(("body"!==uB(i)||_B(s))&&(l=MB(i)),u)){const e=UB(i);A=OB(i),c.x=e.x+i.clientLeft,c.y=e.y+i.clientTop}const h=!s||u||o?zR(0):VB(s,l);return{width:n.width*A.x,height:n.height*A.y,x:n.x*A.x-l.scrollLeft*A.x+c.x+h.x,y:n.y*A.y-l.scrollTop*A.y+c.y+h.y}},getDocumentElement:dB,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:i,strategy:r}=e;const o="clippingAncestors"===n?vB(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let i=IB(e,[],!1).filter(e=>pB(e)&&"body"!==uB(e)),r=null;const o="fixed"===PB(e).position;let s=o?RB(e):e;for(;pB(s)&&!SB(s);){const e=PB(s),t=xB(s),n=r?r.position:o?"fixed":"";t||"fixed"!==n&&("absolute"!==n||"static"!==e.position)?r=e:i=i.filter(e=>e!==s),s=RB(s)}return t.set(e,i),i}(t,this._c):[].concat(n),s=[...o,i],a=zB(t,s[0],r);let l=a.top,A=a.right,c=a.bottom,u=a.left;for(let e=1;e<s.length;e++){const n=zB(t,s[e],r);l=UR(n.top,l),A=kR(n.right,A),c=kR(n.bottom,c),u=UR(n.left,u)}return{width:A-u,height:c-l,x:u,y:l}},getOffsetParent:QB,getElementRects:async function(e){const t=this.getOffsetParent||QB,n=this.getDimensions,i=await n(e.floating);return{reference:HB(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}},getClientRects:function(e){return e.getClientRects?Array.from(e.getClientRects()):[]},getDimensions:function(e){const{width:t,height:n}=FB(e);return{width:t,height:n}},getScale:OB,isElement:pB,isRTL:function(e){return"rtl"===PB(e).direction}};function KB(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function JB(e,t,n,i){void 0===i&&(i={});const{ancestorScroll:r=!0,ancestorResize:o=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:a="function"==typeof IntersectionObserver,animationFrame:l=!1}=i,A=DB(e),c=r||o?[...A?IB(A):[],...t?IB(t):[]]:[];c.forEach(e=>{r&&e.addEventListener("scroll",n),o&&e.addEventListener("resize",n)});const u=A&&a?function(e,t,n){let i,r=null;const o=dB(e);function s(){var e;clearTimeout(i),null==(e=r)||e.disconnect(),r=null}function a(n,l){void 0===n&&(n=!1),void 0===l&&(l=1),s();const A=e.getBoundingClientRect(),{left:c,top:u,width:h,height:d}=A;if(n||t(),!h||!d)return;const f={rootMargin:-VR(u)+"px "+-VR(o.clientWidth-(c+h))+"px "+-VR(o.clientHeight-(u+d))+"px "+-VR(c)+"px",threshold:UR(0,kR(1,l))||1};let p=!0;function g(t){const n=t[0].intersectionRatio;if(!KB(A,e.getBoundingClientRect()))return a();if(n!==l){if(!p)return a();n?a(!1,n):i=setTimeout(()=>{a(!1,1e-7)},1e3)}p=!1}try{r=new IntersectionObserver(g,{...f,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(g,f)}r.observe(e)}const l=hB(e),A=()=>a(n);return l.addEventListener("resize",A),a(!0),()=>{l.removeEventListener("resize",A),s()}}(A,n,o):null;let h,d=-1,f=null;s&&(f=new ResizeObserver(e=>{let[i]=e;i&&i.target===A&&f&&t&&(f.unobserve(t),cancelAnimationFrame(d),d=requestAnimationFrame(()=>{var e;null==(e=f)||e.observe(t)})),n()}),A&&!l&&f.observe(A),t&&f.observe(t));let p=l?UB(e):null;return l&&function t(){const i=UB(e);p&&!KB(p,i)&&n();p=i,h=requestAnimationFrame(t)}(),n(),()=>{var e;c.forEach(e=>{r&&e.removeEventListener("scroll",n),o&&e.removeEventListener("resize",n)}),null==u||u(),null==(e=f)||e.disconnect(),f=null,l&&cancelAnimationFrame(h)}}const qB=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,i;const{x:r,y:o,placement:s,middlewareData:a}=t,l=await async function(e,t){const{placement:n,platform:i,elements:r}=e,o=await(null==i.isRTL?void 0:i.isRTL(r.floating)),s=QR(n),a=XR(n),l="y"===qR(n),A=AB.has(s)?-1:1,c=o&&l?-1:1,u=jR(t,e);let{mainAxis:h,crossAxis:d,alignmentAxis:f}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return a&&"number"==typeof f&&(d="end"===a?-1*f:f),l?{x:d*c,y:h*A}:{x:h*A,y:d*c}}(t,e);return s===(null==(n=a.offset)?void 0:n.placement)&&null!=(i=a.arrow)&&i.alignmentOffset?{}:{x:r+l.x,y:o+l.y,data:{...l,placement:s}}}}},YB=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:i,placement:r,platform:o}=t,{mainAxis:s=!0,crossAxis:a=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...A}=jR(e,t),c={x:n,y:i},u=await o.detectOverflow(t,A),h=qR(r),d=KR(h);let f=c[d],p=c[h];const g=(e,t)=>WR(t+u["y"===e?"top":"left"],t,t-u["y"===e?"bottom":"right"]);s&&(f=g(d,f)),a&&(p=g(h,p));const m=l.fn({...t,[d]:f,[h]:p});return{...m,data:{x:m.x-n,y:m.y-i,enabled:{[d]:s,[h]:a}}}}}},ZB=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,i;const{placement:r,middlewareData:o,rects:s,initialPlacement:a,platform:l,elements:A}=t,{mainAxis:c=!0,crossAxis:u=!0,fallbackPlacements:h,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:f="none",flipAlignment:p=!0,...g}=jR(e,t);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const m=QR(r),_=qR(a),b=QR(a)===a,v=await(null==l.isRTL?void 0:l.isRTL(A.floating)),y=h||(b||!p?[rB(a)]:function(e){const t=rB(e);return[ZR(e),t,ZR(t)]}(a)),C="none"!==f;!h&&C&&y.push(...iB(a,p,f,v));const w=[a,...y],E=await l.detectOverflow(t,g),x=[];let T=(null==(i=o.flip)?void 0:i.overflows)||[];if(c&&x.push(E[m]),u){const e=function(e,t,n){void 0===n&&(n=!1);const i=XR(e),r=YR(e),o=JR(r);let s="x"===r?i===(n?"end":"start")?"right":"left":"start"===i?"bottom":"top";return t.reference[o]>t.floating[o]&&(s=rB(s)),[s,rB(s)]}(r,s,v);x.push(E[e[0]],E[e[1]])}if(T=[...T,{placement:r,overflows:x}],!x.every(e=>e<=0)){var S,P;const e=((null==(S=o.flip)?void 0:S.index)||0)+1,t=w[e];if(t){if(!("alignment"===u&&_!==qR(t))||T.every(e=>qR(e.placement)!==_||e.overflows[0]>0))return{data:{index:e,overflows:T},reset:{placement:t}}}let n=null==(P=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:P.placement;if(!n)switch(d){case"bestFit":{var M;const e=null==(M=T.filter(e=>{if(C){const t=qR(e.placement);return t===_||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:M[0];e&&(n=e);break}case"initialPlacement":n=a}if(r!==n)return{reset:{placement:n}}}return{}}}},$B=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:i,placement:r,rects:o,platform:s,elements:a,middlewareData:l}=t,{element:A,padding:c=0}=jR(e,t)||{};if(null==A)return{};const u=oB(c),h={x:n,y:i},d=YR(r),f=JR(d),p=await s.getDimensions(A),g="y"===d,m=g?"top":"left",_=g?"bottom":"right",b=g?"clientHeight":"clientWidth",v=o.reference[f]+o.reference[d]-h[d]-o.floating[f],y=h[d]-o.reference[d],C=await(null==s.getOffsetParent?void 0:s.getOffsetParent(A));let w=C?C[b]:0;w&&await(null==s.isElement?void 0:s.isElement(C))||(w=a.floating[b]||o.floating[f]);const E=v/2-y/2,x=w/2-p[f]/2-1,T=kR(u[m],x),S=kR(u[_],x),P=w-p[f]-S,M=w/2-p[f]/2+E,R=WR(T,M,P),B=!l.arrow&&null!=XR(r)&&M!==R&&o.reference[f]/2-(M<T?T:S)-p[f]/2<0,I=B?M<T?M-T:M-P:0;return{[d]:h[d]+I,data:{[d]:R,centerOffset:M-R-I,...B&&{alignmentOffset:I}},reset:B}}}),eI=(e,t,n)=>{const i=new Map,r=null!=n?n:{},o={...XB,...r.platform,_c:i};return(async(e,t,n)=>{const{placement:i="bottom",strategy:r="absolute",middleware:o=[],platform:s}=n,a=s.detectOverflow?s:{...s,detectOverflow:lB},l=await(null==s.isRTL?void 0:s.isRTL(t));let A=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:c,y:u}=aB(A,i,l),h=i,d=0;const f={};for(let n=0;n<o.length;n++){const p=o[n];if(!p)continue;const{name:g,fn:m}=p,{x:_,y:b,data:v,reset:y}=await m({x:c,y:u,initialPlacement:i,placement:h,strategy:r,middlewareData:f,rects:A,platform:a,elements:{reference:e,floating:t}});c=null!=_?_:c,u=null!=b?b:u,f[g]={...f[g],...v},y&&d<50&&(d++,"object"==typeof y&&(y.placement&&(h=y.placement),y.rects&&(A=!0===y.rects?await s.getElementRects({reference:e,floating:t,strategy:r}):y.rects),({x:c,y:u}=aB(A,h,l))),n=-1)}return{x:c,y:u,placement:h,strategy:r,middlewareData:f}})(e,t,{...r,platform:o})},tI=({x:e,y:t,placement:n="right",offset:i=0,arrow:r=!1,arrowColor:o="white",children:s})=>{const a=lR(null),l=lR(null),A=lR(null),c=lR();return c.current=()=>{if(!a.current||!l.current)return;const e=Array.isArray(r)?r[0]:r||0,t=Array.isArray(r)?r[1]:r||0,s=i+Math.max(t,e),c=n.includes("-")?[qB(s),ZB(),YB()]:[qB(s),YB(),ZB()];A.current&&c.push($B({element:A.current})),eI(a.current,l.current,{placement:n,strategy:"fixed",middleware:c}).then(n=>{l.current&&Object.assign(l.current.style,{left:`${n.x}px`,top:`${n.y}px`});const i=n.middlewareData.arrow;if(i&&A.current){const r=function(e,t,n,i){const r={width:0,height:0,top:"",bottom:"",left:"",right:""};i.startsWith("bottom")?(r.borderLeft=e/2+"px solid transparent",r.borderRight=e/2+"px solid transparent",r.borderBottom=`${t}px solid ${n}`,r.borderTop="",r.top=-t+"px"):i.startsWith("top")?(r.borderLeft=e/2+"px solid transparent",r.borderRight=e/2+"px solid transparent",r.borderTop=`${t}px solid ${n}`,r.borderBottom="",r.bottom=-t+"px"):i.startsWith("right")?(r.borderTop=e/2+"px solid transparent",r.borderBottom=e/2+"px solid transparent",r.borderRight=`${t}px solid ${n}`,r.borderLeft="",r.left=-t+"px"):i.startsWith("left")&&(r.borderTop=e/2+"px solid transparent",r.borderBottom=e/2+"px solid transparent",r.borderLeft=`${t}px solid ${n}`,r.borderRight="",r.right=-t+"px");return r}(e,t,o,n.placement);r.transform=`translate(${i.x||0}px, ${i.y||0}px)`,Object.assign(A.current.style,r)}})},AR(()=>{c.current?.()},[e,t,n,r,i]),sR(()=>{const e=a.current,t=l.current;if(!e||!t)return;t.style.visibility="visible";const n=JB(e,t,()=>c.current?.());return()=>{n()}},[]),HM("div",{style:{position:"absolute",left:e,top:t},ref:a,children:HM("div",{className:"deck-widget deck-widget-popover",style:{position:"fixed",visibility:"hidden",pointerEvents:"none"},ref:l,children:[Boolean(r)&&HM("div",{className:"deck-widget-popover-arrow",style:{position:"absolute"},ref:A}),s]})})};const nI=({text:e,html:t,element:n,...i})=>{const r=lR(null);return sR(()=>(r.current&&n&&r.current.append(n),()=>{n?.remove()}),[n]),HM("div",{ref:r,...i,dangerouslySetInnerHTML:t?{__html:t}:void 0,children:e})};class InfoWidget extends Widget{constructor(e){super(e),this.className="deck-widget-info",this.placement="fill",this.tooltip=null,this.setProps(this.props)}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd({deck:e}){this.deck=e}onRemove(){this.rootElement&&VM(null,this.rootElement)}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){"hover"===this.props.mode&&(this.tooltip=this._getTooltip(e),this.updateHTML())}onClick(e){"click"===this.props.mode&&(this.tooltip=this._getTooltip(e),this.updateHTML())}_getTooltip(e){if(!this.props.getTooltip)return null;const t=this.props.getTooltip(e,this)??null;if(null===t)return null;const n="string"==typeof t?{text:t}:t,i=n.position||e.coordinate;return i?{position:i,text:"",html:"",element:null,className:"",style:{},...n}:null}onRenderHTML(e){if(!this.viewport||null===this.tooltip)return void VM(null,e);const t={...this.props.style,...this.tooltip.style},[n,i]=this.viewport.project(this.tooltip.position);VM(HM(tI,{x:n,y:i,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:HM(nI,{className:`deck-widget-popup-content ${this.tooltip.className} ${this.props.className}`,style:t,html:this.tooltip.html,text:this.tooltip.text,element:this.tooltip.element})}),e)}}InfoWidget.defaultProps={...Widget.defaultProps,id:"info",viewId:null,mode:"hover",getTooltip:void 0,placement:"right",offset:10,arrow:10};class PopupWidget extends Widget{constructor(e){super(e),this.className="deck-widget-popup",this.placement="fill",this.setProps(this.props),this.isOpen=this.props.defaultIsOpen}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd({deck:e}){this.deck=e}onRemove(){this.rootElement&&VM(null,this.rootElement)}onViewportChange(e){this.viewport=e,this.updateHTML()}onClick(){this.props.closeOnClickOutside&&this._setIsOpen(!1)}_setIsOpen(e){this.isOpen!==e&&(this.isOpen=e,this.props.onOpenChange?.(e),this.updateHTML())}onRenderHTML(e){if(!this.viewport)return void VM(null,e);const{marker:t,content:n,style:i}=this.props,[r,o]=this.viewport.project(this.props.position);VM(HM("div",{children:[t&&HM("div",{className:"deck-widget-popup-marker",style:{left:r,top:o},children:HM(nI,{...t,onClick:()=>this._setIsOpen(!0)})}),this.isOpen&&HM(tI,{x:r,y:o,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:HM("div",{className:`deck-widget-popup-content ${this.props.className}`,style:i,children:[this.props.closeButton&&HM("div",{className:"deck-widget-popup-controls",style:{width:"100%",display:"flex",justifyContent:"end"},children:HM(bR,{className:"deck-widget-popup-close-button",onClick:()=>this._setIsOpen(!1)})}),HM(nI,{..."string"==typeof n?{text:n}:n})]})})]}),e)}}PopupWidget.defaultProps={...Widget.defaultProps,id:"info",viewId:null,position:[0,0],marker:null,defaultIsOpen:!0,content:"",placement:"right",offset:10,arrow:10,closeButton:!0,closeOnClickOutside:!1,onOpenChange:()=>{}};class ContextMenuWidget extends Widget{constructor(e){super(e),this.className="deck-widget-context-menu",this.placement="fill",this.menu=null,this.setProps(this.props)}onAdd({deck:e}){e.getCanvas()?.addEventListener("contextmenu",e=>this.handleContextMenu(e))}handleContextMenu(e){const t=e.target.getBoundingClientRect(),n=e.clientX-t.x,i=e.clientY-t.y,r=this.deck?.pickObject({x:n,y:i})||{x:n,y:i,picked:!1,layer:null,color:null,index:-1,pixelRatio:1},o=this.props.getMenuItems?.(r,this)||this.props.menuItems;this.menu=o.length>0?{items:o,pickInfo:r}:null,e.preventDefault(),this.updateHTML()}onRenderHTML(e){if(!this.menu)return void VM(null,e);const{items:t,pickInfo:n}=this.menu,i={pointerEvents:"auto",position:"static",...this.props.style};VM(HM(tI,{x:n.x,y:n.y,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:HM(ER,{menuItems:t,onSelect:e=>this.props.onMenuItemSelected(e,n),style:i,isOpen:!0,onClose:()=>this.hide()})}),e)}hide(){this.menu=null,this.updateHTML()}}ContextMenuWidget.defaultProps={...Widget.defaultProps,id:"context",viewId:null,menuItems:[],getMenuItems:void 0,onMenuItemSelected:()=>{},placement:"bottom-start",offset:10,arrow:!1};const iI={passive:!1},rI=(e,t,n)=>e<t?t:e>n?n:e,oI=(e,t)=>{if(!e||!e.firstElementChild)return[0,0];const n=e.firstElementChild.getBoundingClientRect();return t||t?[n.top,n.height]:[n.left,n.width]},sI=(e,t)=>"number"==typeof e&&!Number.isNaN(e)&&e>0?e:Math.max(1,t/10||1),aI=(e,t)=>"number"==typeof e&&!Number.isNaN(e)&&e>0?e:Math.max(1,t||1);function lI(e){const{className:t="",min:n,max:i,step:r,value:o,orientation:s,pageSize:a,stepButtons:l=!1,startButtonAriaLabel:A,endButtonAriaLabel:c,eventTarget:u,decorations:h=[],onChange:d}=e,f="horizontal"!==s,p=lR(null),g=lR(null),m=lR(null),_=lR(null),[b,v]=oR(0),y=i-n,C=Math.max(0,o[1]-o[0]),w=Math.max(0,y-C),E=rI(o[0],n,n+w),{thumbLength:x,thumbOffset:T}=AR(()=>{if(b<=0||y<=0)return{thumbLength:0,thumbOffset:0};if(y<=C)return{thumbLength:1,thumbOffset:0};const e=C/y,t=Math.max(0,1-e),i=w<=0?0:rI((E-n)/w,0,1);return{thumbLength:Math.max(0,Math.min(e,1)),thumbOffset:t*i}},[b,y,C,w,E,n]),S=cR(e=>{if(!d)return;const t=rI(e,n,n+w);d([t,t+C])},[d,n,w,C]),P=cR(e=>{e.stopPropagation(),S(E-sI(r,y))},[S,E,r,y]),M=cR(e=>{e.stopPropagation(),S(E+sI(r,y))},[S,E,r,y]),R=cR(e=>{if(0!==e.button)return;const t=e.target;if("true"===t?.dataset.scrollbarThumb)return;const i=g.current;if(!i)return;e.preventDefault(),e.stopPropagation();const[r]=oI(i,f),o=f?e.clientY-r:e.clientX-r,s=Math.max(1,1-x)*b,a=s<=0?0:rI((o-x/2*b)/s,0,1);S(n+a*w)},[f,b,x,S,n,w]),B=cR(e=>{const t=_.current;if(!t||t.pointerId!==e.pointerId)return;const[n,i]=oI(g.current,f),r=(f?e.clientY:e.clientX)-t.startCoord,o=t.startRatio+r/i,s=rI(o*(t.max-t.min),0,t.maxStart)+t.min;S(s),e.preventDefault()},[S,f]),I=cR(e=>{const t=_.current;t&&t.pointerId===e.pointerId&&(_.current=null,m.current?.releasePointerCapture(e.pointerId),e.preventDefault())},[]),L=cR(e=>{switch(e.key){case"ArrowUp":case"ArrowLeft":(f&&"ArrowUp"===e.key||!f&&"ArrowLeft"===e.key)&&(S(E-sI(r,y)),e.preventDefault());break;case"ArrowDown":case"ArrowRight":(f&&"ArrowDown"===e.key||!f&&"ArrowRight"===e.key)&&(S(E+sI(r,y)),e.preventDefault());break;case"PageUp":S(E-aI(a,C)),e.preventDefault();break;case"PageDown":S(E+aI(a,C)),e.preventDefault();break;case"Home":S(n),e.preventDefault();break;case"End":S(n+w),e.preventDefault()}},[f,S,E,r,y,a,C,n,w]),F=cR(e=>{if(e.preventDefault(),e.stopPropagation(),0===w)return;let t=f?e.deltaY:e.deltaX;f||0!==t||(t=e.deltaY),e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=sI(r,y):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=aI(a,C)),0!==t&&S(E+t)},[S,E,w,f,r,y,a,C]);aR(()=>{v(oI(g.current,f)[1])},[f]),aR(()=>{const e=g.current;if(!e)return;const t=()=>{v(oI(e,f)[1])};if(t(),"undefined"!=typeof ResizeObserver){const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()}return"undefined"!=typeof window?(window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)):void 0},[f]),sR(()=>{const e=u??p.current;if(e)return e.addEventListener("keydown",L),e.addEventListener("wheel",F,iI),()=>{e.removeEventListener("keydown",L),e.removeEventListener("wheel",F,iI)}},[u,L,F]);const D=AR(()=>!h.length||y<=0?[]:h.map((e,t)=>{const[i,r]=e.position,o=(i-n)/y,s=(r-n)/y,a=Math.round(1e3*o)/10,l=Math.max(0,Math.round(1e3*(s-o))/10);return HM("div",{className:"deck-widget-range__decoration",style:f?{left:"0",width:"100%",top:`${a}%`,height:`${l}%`}:{top:"0",height:"100%",left:`${a}%`,width:`${l}%`},children:e.element},`decoration-${t}`)}),[h,y,n,f]);return HM("div",{ref:p,tabIndex:0,role:"scrollbar","aria-valuemin":n,"aria-valuemax":n+w,"aria-valuenow":E,"aria-orientation":s,className:`${t} deck-widget-range deck-widget-range--${s} ${0===w?"deck-widget-range--disabled":""}`,children:[l&&HM("button",{type:"button",className:"deck-widget-range__button deck-widget-range__button--start","aria-label":A,disabled:E<=n,onClick:P,children:HM("span",{className:"deck-widget-icon"})}),HM("div",{className:"deck-widget-range__track",ref:g,onClick:R,children:[HM("div",{className:"deck-widget-range__decorations",children:D}),HM("div",{className:"deck-widget-range__thumb","data-scrollbar-thumb":"true",ref:m,style:f?{height:100*x+"%",top:100*T+"%"}:{width:100*x+"%",left:100*T+"%"},onPointerDown:e=>{if(0!==e.button)return;g.current&&(_.current={pointerId:e.pointerId,startCoord:f?e.clientY:e.clientX,startRatio:T,min:n,max:i,maxStart:w},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation())},onPointerMove:B,onPointerUp:I,onPointerCancel:I})]}),l&&HM("button",{type:"button",className:"deck-widget-range__button deck-widget-range__button--end","aria-label":c,disabled:E>=n+w,onClick:M,children:HM("span",{className:"deck-widget-icon"})})]})}const AI=(e,t,n)=>e<t?t:e>n?n:e;class ScrollbarWidget extends Widget{constructor(e){const t={...ScrollbarWidget.defaultProps,...e};super(t),this.className="deck-widget-scrollbar",this.placement="fill",this.contentSize=0,this.viewportSize=0,this.scrollOffset=0,this.handleRangeChange=e=>{this.emitScroll(e[0])},this.viewId=t.viewId??null}onViewportChange(e){this.viewport=e,this.onRenderHTML()}onRenderHTML(){const e=this.rootElement;if(!e)return;e.dataset.placement=this.props.placement;const t=this.viewport;this.updateViewport(t);const n=this.getClampedOffset(),i=this.getWheelEventTarget(this.props.captureWheel?"global":"local"),r=this.getDecorations(t),o=this.isVertical(),s=this.props.startButtonAriaLabel??(o?"Scroll up":"Scroll left"),a=this.props.endButtonAriaLabel??(o?"Scroll down":"Scroll right");VM(HM(lI,{min:0,max:Math.max(0,this.contentSize),step:this.getEffectiveStep(),pageSize:this.getEffectivePage(),value:[n,n+this.viewportSize],orientation:this.props.orientation,stepButtons:!0,startButtonAriaLabel:s,endButtonAriaLabel:a,eventTarget:i,decorations:r,onChange:this.handleRangeChange}),e)}onRemove(){this.rootElement&&VM(null,this.rootElement),super.onRemove()}getContentBounds(e){return this.props.contentBounds??this.deck?.getView(e)?.controller?.maxBounds??null}updateViewport(e){if(!e)return this.contentSize=0,this.scrollOffset=0,void(this.viewportSize=0);const t=this.getContentBounds(e.id),n=this.isVertical(),i=t?cI(t,e,n):[0,0];this.contentSize=i[1]-i[0],this.scrollOffset=-i[0],this.viewportSize=n?e.height:e.width}getDecorations(e){const{decorations:t=[]}=this.props;if(!e||0===t.length)return[];const n=this.getContentBounds(e.id);if(!n)return[];const i=this.isVertical(),[r]=cI(n,e,i);return t.map(t=>{const[n,o]=cI(t.contentBounds,e,i),s=t.onClick?e=>{const n=t.onClick?.(e);n&&(e.stopPropagation(),e.preventDefault())}:void 0;return{position:[n-r,o-r],element:HM("div",{style:{pointerEvents:s?"all":"none",width:"100%",height:"100%",backgroundColor:t.color},title:t.title,onClick:s})}})}getWheelEventTarget(e){return null===e?null:"local"===e?this.rootElement:this.deck?.props.parent||this.deck?.getCanvas()?.parentElement||this.rootElement}getMaxScroll(){return Math.max(0,this.contentSize-this.viewportSize)}getClampedOffset(){const e=this.getMaxScroll();return AI(this.scrollOffset,0,e)}isVertical(){return"horizontal"!==this.props.orientation}getEffectiveStep(){return"number"!=typeof this.props.stepSize||Number.isNaN(this.props.stepSize)?Math.max(1,this.viewportSize/10||1):this.props.stepSize}getEffectivePage(){return"number"!=typeof this.props.pageSize||Number.isNaN(this.props.pageSize)?this.viewportSize:this.props.pageSize}emitScroll(e){const t=this.getMaxScroll(),n=AI(Math.round(e),0,t),i=this.viewport;if(i&&n!==this.getClampedOffset()){const e=i.project(i.position);this.isVertical()?e[1]-=n-this.scrollOffset:e[0]-=n-this.scrollOffset;const{target:t}=i.panByPosition(i.position,e);this.deck._onViewStateChange({viewId:i.id,viewState:{...this.getViewState(i.id),target:t},interactionState:{}})}}}function cI(e,t,n){return e.map(([e,n])=>t.project([e,n,0])).reduce((e,[t,i])=>{const r=n?i:t;return e[0]=Math.min(e[0],r),e[1]=Math.max(e[1],r),e},[1/0,-1/0])}ScrollbarWidget.defaultProps={...Widget.defaultProps,contentBounds:null,placement:"top-right",viewId:null,orientation:"vertical",stepSize:null,pageSize:null,startButtonAriaLabel:"",endButtonAriaLabel:"",captureWheel:!1,decorations:[]};class IconWidget extends Widget{constructor(e){super(e),this.className="",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId,super.setProps(e)}onRenderHTML(e){const{className:t,style:n,icon:i,color:r,label:o,onClick:s}=this.props;VM(HM(bR,{className:t,style:n,color:r,icon:i,label:o,onClick:s}),e)}}IconWidget.defaultProps={...Widget.defaultProps,id:"icon",placement:"top-left",viewId:null,icon:"",label:"",color:"",onClick:void 0};class ToggleWidget extends Widget{constructor(e){super(e),this.className="deck-widget-toggle",this.placement="top-left",this._toggle=()=>{this.checked=!this.checked,this.props.onChange?.(this.checked),this.updateHTML()},this.checked=this.props.initialChecked,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId,super.setProps(e)}onRenderHTML(e){const{className:t,style:n,icon:i,label:r,color:o,onIcon:s=i,onLabel:a=r,onColor:l=o}=this.props,A=this.checked;e.dataset.checked=String(A),VM(HM(bR,{className:t,style:n,icon:A?s:i,label:A?a:r,color:A?l:o,onClick:this._toggle}),e)}}ToggleWidget.defaultProps={...Widget.defaultProps,id:"icon",placement:"top-left",viewId:null,initialChecked:!1,icon:"",onIcon:void 0,label:"",onLabel:void 0,color:"",onColor:void 0,onChange:void 0};class SelectorWidget extends Widget{constructor(e){super(e),this.className="deck-widget-selector",this.placement="top-left",this.isOpen=!1,this._toggleMenu=()=>{this.isOpen?this.isOpen=!1:this.rootElement&&(this.isOpen={x:this.rootElement.offsetLeft,y:this.rootElement.offsetTop,placement:this.props.placement.includes("right")?"left-start":"right-start"}),this.updateHTML()},this._handleSelectMode=e=>{this.value=e,this.props.onChange(e),this.updateHTML()},this.value=this.props.initialValue,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const t=this.props.options.find(e=>e.value===this.value)??this.props.options[0];VM(HM("div",{children:[HM(bR,{icon:t.icon,label:t.label,onClick:this._toggleMenu}),this.isOpen&&HM(tI,{...this.isOpen,children:HM(ER,{isOpen:!0,style:{pointerEvents:"auto",position:"static"},menuItems:this.props.options,onSelect:this._handleSelectMode,onClose:this._toggleMenu})})]}),e)}}SelectorWidget.defaultProps={...Widget.defaultProps,id:"view-selector",placement:"top-left",viewId:null,initialValue:"",options:[],onChange:()=>{}};class TimelineWidget extends Widget{getTime(){return this.props.time??this.currentTime}getPlaying(){return this.props.playing??this._playing}constructor(e={}){super(e),this.id="timeline",this.className="deck-widget-timeline",this.placement="fill",this._playing=!1,this.timerId=null,this.handlePlayPause=()=>{const e=!this.getPlaying();this.props.onPlayingChange?.(e),void 0===this.props.playing&&(e?this.play():this.stop())},this.handleTimeChange=([e])=>{this.props.onTimeChange(e),void 0===this.props.time&&(this.currentTime=e,this.props.timeline?.setTime(e),this.updateHTML())},this.tick=()=>{const{timeRange:[e,t],step:n,loop:i}=this.props;if(n>0){const r=this.getTime();let o=Math.round(r/n)*n+n;o>t&&(r<t?o=t:i?o=e:(o=t,this._playing=!1,this.props.onPlayingChange?.(!1))),this.props.onTimeChange(o),void 0===this.props.time&&(this.currentTime=o,this.props.timeline?.setTime(o)),this.updateHTML()}this._playing?this.timerId=window.setTimeout(this.tick,this.props.playInterval):this.timerId=null},this.currentTime=this.props.initialTime??this.props.timeRange[0];const t=this.props.time??this.currentTime;this.props.timeline?.setTime(t),this.setProps(this.props)}setProps(e){const{playing:t,time:n}=this.props;this.viewId=e.viewId??this.viewId,super.setProps(e),void 0!==e.time&&e.time!==n&&this.props.timeline?.setTime(e.time),void 0!==e.playing&&e.playing!==t&&(e.playing&&!this._playing?this._startTimer():!e.playing&&this._playing&&this._stopTimer())}onAdd(){this._playing=!1,this.timerId=null,this.props.autoPlay&&(void 0!==this.props.playing?this.props.onPlayingChange?.(!0):this.play())}onRemove(){this.stop()}onRenderHTML(e){const{timeRange:t,step:n,formatLabel:i}=this.props,r=this.getPlaying(),o=this.getTime();e.dataset.placement=this.props.placement,VM(HM("div",{className:"deck-widget-button-group",children:[HM(bR,r?{label:"Pause",className:"deck-widget-timeline-pause",onClick:this.handlePlayPause}:{label:"Play",className:"deck-widget-timeline-play",onClick:this.handlePlayPause}),HM(lI,{min:t[0],max:t[1],orientation:"horizontal",step:n,value:[o,o],onChange:this.handleTimeChange,decorations:[{position:[o,o+n],element:HM("div",{className:"deck-widget-timeline-label deck-widget-timeline-label--current",children:i(o)})}]})]}),e)}play(){this._playing=!0;const{timeRange:[e,t]}=this.props;void 0===this.props.time&&this.getTime()>=t&&(this.currentTime=e,this.props.onTimeChange(e),this.props.timeline?.setTime(e)),this.updateHTML(),this.tick()}stop(){this._stopTimer(),this.updateHTML()}_startTimer(){this._playing=!0,this.tick()}_stopTimer(){this._playing=!1,null!==this.timerId&&(window.clearTimeout(this.timerId),this.timerId=null)}}TimelineWidget.defaultProps={...Widget.defaultProps,id:"timeline",placement:"bottom-left",viewId:null,timeline:null,timeRange:[0,100],step:1,initialTime:void 0,time:void 0,onTimeChange:()=>{},autoPlay:!1,loop:!1,playInterval:1e3,playing:void 0,onPlayingChange:()=>{},formatLabel:String};class ScreenshotWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-screenshot",this.placement="top-left",this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){VM(HM(bR,{className:"deck-widget-camera",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture)return void this.props.onCapture(this);const e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){const t=this.deck?.getCanvas();return t?.toDataURL(e)}downloadDataURL(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.click()}}ScreenshotWidget.defaultProps={...Widget.defaultProps,id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0};class ThemeWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-theme",this.placement="top-left",this.themeMode="dark",this.appliedTheme={},this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){const{lightModeLabel:t,darkModeLabel:n}=this.props,i=this.getThemeMode();this._applyTheme(i,e),VM(HM(bR,{onClick:this._handleClick.bind(this),label:"dark"===i?n:t,className:"dark"===i?"deck-widget-moon":"deck-widget-sun"}),e)}getThemeMode(){return this.props.themeMode??this.themeMode}_handleClick(){const e="dark"===this.getThemeMode()?"light":"dark";this.props.onThemeModeChange?.(e),void 0===this.props.themeMode&&(this.themeMode=e,this.updateHTML())}_applyTheme(e,t){const n="dark"===e?this.props.darkModeTheme:this.props.lightModeTheme;if((0,$t.b)(n,this.appliedTheme,1))return;const i=t.closest(".deck-widget-container");if(!i)return;Ti(i,n),this.appliedTheme=n;const r="dark"===e?this.props.darkModeLabel:this.props.lightModeLabel;_e.A.log(1,`Switched theme to ${r}`,n)()}_getInitialThemeMode(){const{initialThemeMode:e}=this.props;return"auto"!==e?e:"undefined"==typeof window?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}}ThemeWidget.defaultProps={...Widget.defaultProps,id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTheme:{"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px","--menu-background":"rgba(255, 255, 255, 0.6)","--menu-backdrop-filter":"blur(4px)","--menu-border":"1px solid rgba(255, 255, 255, 0.6)","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--menu-text":"rgb(24, 24, 26, 1)","--menu-item-hover":"rgba(0, 0, 0, 0.08)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"rgba(215, 214, 229, 0.3)","--range-thumb-color":"rgba(97, 97, 102, 1)","--range-decoration-active-color":"rgba(255, 215, 0, 0.6)"},darkModeLabel:"Dark Mode",darkModeTheme:{"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px","--menu-background":"rgba(18, 18, 20, 0.75)","--menu-backdrop-filter":"blur(4px)","--menu-border":"1px solid rgba(18, 18, 20, 0.75)","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--menu-text":"rgb(215, 214, 229, 1)","--menu-item-hover":"rgba(255, 255, 255, 0.1)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"rgba(24, 24, 26, 0.3)","--range-thumb-color":"rgba(158, 157, 168, 1)","--range-decoration-active-color":"rgba(255, 145, 0, 0.6)"},initialThemeMode:"auto",themeMode:void 0,onThemeModeChange:()=>{}};class LoadingWidget extends Widget{constructor(e={}){super(e),this.className="deck-widget-loading",this.placement="top-left",this.loading=!0,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){VM(this.loading&&HM(bR,{className:"deck-widget-spinner",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}onRedraw({layers:e}){const t=e.some(e=>!e.isLoaded);t!==this.loading&&(this.loading=t,this.props.onLoadingChange?.(t),this.updateHTML())}handleClick(){}}LoadingWidget.defaultProps={...Widget.defaultProps,id:"loading",placement:"top-left",viewId:null,label:"Loading layer data",onLoadingChange:()=>{}};const uI=e=>`${e.name}: ${e.count}`;function hI(e){return e<1e3?`${e.toFixed(2)}ms`:`${(e/1e3).toFixed(2)}s`}function dI(e){return`${(e/1e6).toFixed(1)} MB`}const fI={count:uI,averageTime:e=>`${e.name}: ${hI(e.getAverageTime())}`,totalTime:e=>`${e.name}: ${hI(e.time)}`,fps:e=>`${e.name}: ${Math.round(e.getHz())}fps`,memory:e=>`${e.name}: ${dI(e.count)}`};class StatsWidget extends Widget{getExpanded(){return this.props.expanded??this._expanded}constructor(e={}){super(e),this.className="deck-widget-stats",this.placement="top-left",this._counter=0,this._expanded=!1,this._toggleExpanded=()=>{const e=!this.getExpanded();this.props.onExpandedChange?.(e),void 0===this.props.expanded&&(this._expanded=e,this.updateHTML())},this._getFps=()=>Math.round(this.deck?.metrics.fps??0),this._formatters={...fI},this._resetOnUpdate={...this.props.resetOnUpdate},this._expanded=Boolean(e.initialExpanded),this.setProps(e)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,e.formatters)for(const t in e.formatters){const n=e.formatters[t];this._formatters[t]="string"==typeof n?fI[n]||uI:n}e.resetOnUpdate&&(this._resetOnUpdate={...e.resetOnUpdate}),super.setProps(e)}onRemove(){this.rootElement&&VM(null,this.rootElement)}onRenderHTML(e){if(!this.getExpanded())return void VM(HM(pI,{getFps:this._getFps,onClick:this._toggleExpanded}),e);const t=this._getStats(),n=this.props.title||("id"in t?t.id:null)||"Stats",i=this._getDeviceLabel(),r=[];t&&t.forEach(e=>{const t=this._getLines(e).split("\n");this._resetOnUpdate&&this._resetOnUpdate[e.name]&&e.reset(),t.forEach((t,n)=>{r.push(HM("div",{style:{whiteSpace:"pre"},children:t},`${e.name}-${n}`))})}),VM(HM("div",{className:"deck-widget-stats-container",style:{cursor:"default"},children:[HM("div",{className:"deck-widget-stats-header",style:{cursor:"pointer",pointerEvents:"auto"},onClick:this._toggleExpanded,children:[HM("b",{children:n}),i&&HM("span",{className:"deck-widget-stats-device",children:i}),HM("button",{className:"deck-widget-dropdown-button",children:HM("span",{className:"deck-widget-dropdown-icon open"})})]}),HM("div",{className:"deck-widget-stats-content",children:r})]}),e)}onRedraw(){if(this.getExpanded()){const e=Math.max(1,this.props.framesPerUpdate||1);this._counter++%e===0&&this.updateHTML()}}_getStats(){switch(this.props.type){case"deck":const e=this.deck?.metrics??{};return Object.entries(e);case"luma":return Array.from(Li.stats.stats.values())[0];case"device":const t=this.deck?.device,n=t?.statsManager.stats.values();return n?Array.from(n)[0]:[];case"custom":return this.props.stats;default:throw new Error(`Unknown stats type: ${this.props.type}`)}}_getDeviceLabel(){const e=this.deck?.device?.type;if(!e)return null;switch(e){case"webgpu":return"WebGPU";case"webgl":return"WebGL";default:return String(e)}}_getLines(e){if("count"in e){return(this._formatters[e.name]||this._formatters[e.type||""]||uI)(e)}const[t,n]=e,i=t.endsWith("Memory")?dI(n):t.includes("Time")?hI(n):`${n.toFixed(2)}`;return`${t}: ${i}`}}function pI({getFps:e,onClick:t}){const[n,i]=oR(e());return sR(()=>{const t=()=>{i(e()),n=requestAnimationFrame(t)};let n=requestAnimationFrame(t);return()=>{cancelAnimationFrame(n)}},[e]),HM(bR,{onClick:t,children:HM("div",{className:"text",children:["FPS",HM("br",{}),n]})})}StatsWidget.defaultProps={...Widget.defaultProps,type:"deck",placement:"top-left",viewId:null,initialExpanded:!1,stats:void 0,title:"Stats",framesPerUpdate:1,formatters:{},resetOnUpdate:{},id:"stats",expanded:void 0,onExpandedChange:()=>{}}}}]);